[jbpm-commits] JBoss JBPM SVN: r5559 - in projects/jopr-integration/trunk/src/main: java/org/rhq/plugins/jbpm4/connector and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Aug 27 03:58:58 EDT 2009
Author: jim.ma
Date: 2009-08-27 03:58:57 -0400 (Thu, 27 Aug 2009)
New Revision: 5559
Added:
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskDiscoveryComponent.java
Modified:
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceComponent.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryComponent.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryDiscoveryComponent.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/JBPMEngineConnection.java
projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/LocalJBPMEngineConnector.java
projects/jopr-integration/trunk/src/main/resources/META-INF/rhq-plugin.xml
Log:
Added the task discovery component
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -118,7 +118,7 @@
}
public Long getAverageProcessInstanceDuration() {
- List<HistoryProcessInstance> instances = this.jbpmConnection.getHistoryProcessInstances(this.getResourceKey(), null, null, false);
+ List<HistoryProcessInstance> instances = this.jbpmConnection.getHistoryProcessInstances(this.getResourceKey(), null, ProcessInstance.STATE_ENDED);
Long sumDuration = 0L;
for (HistoryProcessInstance instance : instances) {
sumDuration = sumDuration + instance.getDuration();
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceComponent.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -116,4 +116,8 @@
public void deleteResource() throws Exception {
this.jbpmConnection.deleteProcessInstance(instanceId);
}
+
+ public String getResourceKey() {
+ return instanceId;
+ }
}
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryComponent.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -50,7 +50,7 @@
public void start(ResourceContext<ProcessDefComponent> resourceContext) {
instanceId = resourceContext.getResourceKey();
jbpmConnection = resourceContext.getParentResourceComponent().getJBPMConnection();
- List<HistoryProcessInstance> instanceList = jbpmConnection.getHistoryProcessInstances(null,instanceId,null, false);
+ List<HistoryProcessInstance> instanceList = jbpmConnection.getHistoryProcessInstances(null,instanceId,HistoryProcessInstance.STATE_ENDED);
instance = instanceList.get(0);
}
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryDiscoveryComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryDiscoveryComponent.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceHistoryDiscoveryComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -41,7 +41,7 @@
Set<DiscoveredResourceDetails> historyInstances = new java.util.HashSet<DiscoveredResourceDetails>();
ProcessDefComponent defComponent = context.getParentResourceComponent();
- List<HistoryProcessInstance> historyProcessInstances = defComponent.getJBPMConnection().getHistoryProcessInstances(defComponent.getResourceKey(), null, HistoryProcessInstanceQuery.PROPERTY_STARTTIME, false);
+ List<HistoryProcessInstance> historyProcessInstances = defComponent.getJBPMConnection().getHistoryProcessInstances(defComponent.getResourceKey(), null, ProcessInstance.STATE_ENDED);
for (HistoryProcessInstance instance: historyProcessInstances) {
DiscoveredResourceDetails details = new DiscoveredResourceDetails(context.getResourceType(), String.valueOf(instance.getProcessInstanceId()), "ProcessInstance-" + instance.getProcessInstanceId(), null, null, null, null);
historyInstances.add(details);
Added: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.java (rev 0)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.rhq.plugins.jbpm4;
+
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.task.Task;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.plugins.jbpm4.connector.JBPMEngineConnection;
+/**
+ * @author ema at redhat.com
+ *
+ */
+public class TaskComponent implements ResourceComponent<ProcessInstanceComponent> , MeasurementFacet {
+ private ResourceContext<ProcessInstanceComponent> resourceContext;
+ private Log log = LogFactory.getLog(this.getClass());
+ private String taskId = null;
+ private Task task = null;
+ public void start(ResourceContext<ProcessInstanceComponent> resourceContext) {
+ taskId = resourceContext.getResourceKey();
+ this.resourceContext = resourceContext;
+ task = TaskDiscoveryComponent.tasksMap.get(taskId);
+
+ }
+
+ public void stop() {
+ }
+
+ public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> metrics) {
+ for (MeasurementScheduleRequest request : metrics) {
+ if (request.getName().equals("id")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getId());
+ report.addData(value);
+ }
+ if (request.getName().equals("name")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getName());
+ report.addData(value);
+ }
+
+ if (request.getName().equals("createTime")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, String.valueOf(task.getCreateTime()));
+ report.addData(value);
+ }
+
+ if (request.getName().equals("dueDate")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, String.valueOf(task.getDuedate()));
+ report.addData(value);
+ }
+
+ if (request.getName().equals("priority")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, String.valueOf(task.getPriority()));
+ report.addData(value);
+ }
+
+
+
+ if (request.getName().equals("activityName")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getActivityName());
+ report.addData(value);
+ }
+
+ if (request.getName().equals("assignee")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getAssignee());
+ report.addData(value);
+ }
+ if (request.getName().equals("description")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getDescription());
+ report.addData(value);
+ }
+
+
+ if (request.getName().equals("executionId")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getExecutionId());
+ report.addData(value);
+ }
+
+
+ if (request.getName().equals("formResourceName")) {
+ MeasurementDataTrait value = new MeasurementDataTrait(request, task.getFormResourceName());
+ report.addData(value);
+ }
+
+
+ }
+
+ }
+
+
+ public AvailabilityType getAvailability() {
+ ProcessInstance processInstance = getJBPMConnection().getProcessInstance(this.resourceContext.getParentResourceComponent().getResourceKey());
+ if (processInstance != null) {
+ return AvailabilityType.UP;
+ }
+ return AvailabilityType.DOWN;
+ }
+
+ public JBPMEngineConnection getJBPMConnection() {
+ return resourceContext.getParentResourceComponent().getJBPMConnection();
+ }
+}
Added: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskDiscoveryComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskDiscoveryComponent.java (rev 0)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskDiscoveryComponent.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.rhq.plugins.jbpm4;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jbpm.api.task.Task;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jbpm4.connector.JBPMEngineConnection;
+/**
+ * @author ema at redhat.com
+ *
+ */
+public class TaskDiscoveryComponent implements ResourceDiscoveryComponent<ProcessInstanceComponent> {
+ public static Map<String, Task> tasksMap = new HashMap<String, Task>();
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<ProcessInstanceComponent> context) {
+ //clear the map
+ tasksMap.clear();
+ Set<DiscoveredResourceDetails> discoveredTasks = new java.util.HashSet<DiscoveredResourceDetails>();
+ String processInstanceId = context.getParentResourceContext().getResourceKey();
+ JBPMEngineConnection jbpmConnection = context.getParentResourceComponent().getJBPMConnection();
+ List<Task> tasks = jbpmConnection.getTasks(null, processInstanceId);
+ for (Task task : tasks) {
+ DiscoveredResourceDetails details = new DiscoveredResourceDetails(context.getResourceType(), task.getId(), task.getName(),
+ null, task.getName(), null, null);
+ discoveredTasks.add(details);
+ //Cached the tasks in the map to avoid query database for each task component
+ tasksMap.put(task.getId(), task);
+ }
+ return discoveredTasks;
+ }
+}
\ No newline at end of file
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/JBPMEngineConnection.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/JBPMEngineConnection.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/JBPMEngineConnection.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -30,6 +30,7 @@
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.history.HistoryProcessInstance;
import org.jbpm.api.job.Job;
+import org.jbpm.api.task.Task;
/**
* @author ema at redhat.com
*
@@ -50,5 +51,6 @@
Job getJob(String jobId);
Map<String, Long> avgDurationPerActivity(String processDefinitionId);
Job executeJob(String jobDbid);
- List<HistoryProcessInstance> getHistoryProcessInstances(String definitionId, String processInstanceId, String orderBy, boolean orderAsc);
+ List<HistoryProcessInstance> getHistoryProcessInstances(String definitionId, String processInstanceId, String state);
+ List<Task> getTasks(String definitionId, String processInstanceId);
}
Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/LocalJBPMEngineConnector.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/LocalJBPMEngineConnector.java 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/LocalJBPMEngineConnector.java 2009-08-27 07:58:57 UTC (rev 5559)
@@ -40,9 +40,11 @@
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.TaskQuery;
import org.jbpm.api.history.HistoryProcessInstance;
import org.jbpm.api.history.HistoryProcessInstanceQuery;
import org.jbpm.api.job.Job;
+import org.jbpm.api.task.Task;
import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.cmd.ExecuteJobCmd;
/**
@@ -182,7 +184,7 @@
return commandService.execute(new ExecuteJobCmd(jobDbid));
}
- public List<HistoryProcessInstance> getHistoryProcessInstances(String definitionId, String processInstanceId, String orderBy, boolean orderAsc) {
+ public List<HistoryProcessInstance> getHistoryProcessInstances(String definitionId, String processInstanceId, String state) {
HistoryProcessInstanceQuery historyQuery = processEngine.getHistoryService().createHistoryProcessInstanceQuery();
if (definitionId != null) {
historyQuery.processDefinitionId(definitionId);
@@ -191,14 +193,22 @@
historyQuery.processInstanceId(processInstanceId);
}
- if (orderBy != null && orderAsc) {
- historyQuery.orderAsc(orderBy);
+ if (state != null) {
+ historyQuery.state(state);
}
- if (orderBy != null && !orderAsc) {
- historyQuery.orderDesc(orderBy);
- }
return historyQuery.list();
}
-
-
+
+ public List<Task> getTasks(String definitionId, String processInstanceId) {
+ TaskQuery taskQuery = processEngine.getTaskService().createTaskQuery();
+ if (definitionId != null) {
+ taskQuery.processDefinitionId(definitionId);
+ }
+
+ if (processInstanceId != null) {
+ taskQuery.processInstanceId(processInstanceId);
+ }
+
+ return taskQuery.list();
+ }
}
Modified: projects/jopr-integration/trunk/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- projects/jopr-integration/trunk/src/main/resources/META-INF/rhq-plugin.xml 2009-08-27 07:20:33 UTC (rev 5558)
+++ projects/jopr-integration/trunk/src/main/resources/META-INF/rhq-plugin.xml 2009-08-27 07:58:57 UTC (rev 5559)
@@ -130,34 +130,8 @@
<metric property="avgDuration" displayName="avgDuration" dataType="trait"
displayType="summary" defaultOn="true" description="Activity average duration" />
</service>
-
- <service name="Process Instance History" discovery="ProcessInstanceHistoryDiscoveryComponent"
- class="ProcessInstanceHistoryComponent" description="Process Instance History">
-
- <metric property="key" displayName="key" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance key" />
-
- <metric property="processDefinitionId" displayName="processDefinitionId" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance defnitionId" />
-
- <metric property="processInstanceId" displayName="processInstanceId" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance id" />
-
- <metric property="duration" displayName="duration" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance duration" />
-
- <metric property="startTime" displayName="startTime"
- dataType="trait" displayType="summary" defaultOn="true"
- description="Process instance start time" />
-
- <metric property="endTime" displayName="endTime" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance end time" />
-
- <metric property="state" displayName="state" dataType="trait"
- displayType="summary" defaultOn="true" description="Process instance state" />
- </service>
-
- <service name="Process Instances" discovery="ProcessInstanceDiscoveryComponent"
+
+ <service name="Running Process Instances" discovery="ProcessInstanceDiscoveryComponent"
class="ProcessInstanceComponent" createDeletePolicy="both"
creationDataType="configuration" description="Process Instance">
@@ -185,6 +159,31 @@
default="true">
</c:simple-property>
</resource-configuration>
+
+ <service name="Task" discovery="TaskDiscoveryComponent"
+ class="TaskComponent" description="Task">
+ <metric property="id" displayName="id" dataType="trait"
+ displayType="summary" defaultOn="true" description="taskId" />
+ <metric property="name" displayName="name" dataType="trait"
+ displayType="summary" defaultOn="true" description="task name" />
+ <metric property="createTime" displayName="createTime" dataType="trait"
+ displayType="summary" defaultOn="true" description="task createTime" />
+ <metric property="dueDate" displayName="dueDate" dataType="trait"
+ displayType="summary" defaultOn="true" description="task dueDate" />
+ <metric property="priority" displayName="priority" dataType="trait"
+ displayType="summary" defaultOn="true" description="task priority" />
+ <metric property="activityName" displayName="activityName" dataType="trait"
+ displayType="summary" defaultOn="true" description="task activityName" />
+ <metric property="assignee" displayName="assignee" dataType="trait"
+ displayType="summary" defaultOn="true" description="task assignee" />
+ <metric property="description" displayName="description" dataType="trait"
+ displayType="summary" defaultOn="true" description="task description" />
+ <metric property="executionId" displayName="executionId" dataType="trait"
+ displayType="summary" defaultOn="true" description="task executionId" />
+ <metric property="formResourceName" displayName="formResourceName" dataType="trait"
+ displayType="summary" defaultOn="true" description="form resourceName" />
+ </service>
+
<service name="Jobs" discovery="InstanceJobDiscoveryComponent"
class="JobComponent" description="JBPM jobs">
<metric property="id" displayName="id" dataType="trait"
@@ -205,6 +204,35 @@
description="job exception" />
</service>
</service>
+
+ <service name="Ended Process Instance" discovery="ProcessInstanceHistoryDiscoveryComponent"
+ class="ProcessInstanceHistoryComponent" description="Process Instance History">
+
+ <metric property="key" displayName="key" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance key" />
+
+ <metric property="processDefinitionId" displayName="processDefinitionId" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance defnitionId" />
+
+ <metric property="processInstanceId" displayName="processInstanceId" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance id" />
+
+ <metric property="duration" displayName="duration" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance duration" />
+
+ <metric property="startTime" displayName="startTime"
+ dataType="trait" displayType="summary" defaultOn="true"
+ description="Process instance start time" />
+
+ <metric property="endTime" displayName="endTime" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance end time" />
+
+ <metric property="state" displayName="state" dataType="trait"
+ displayType="summary" defaultOn="true" description="Process instance state" />
+ </service>
+
+
+
</service>
</service>
</plugin>
More information about the jbpm-commits
mailing list