[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