[jbpm-commits] JBoss JBPM SVN: r5611 - in projects/jopr-integration/trunk: src/main/java/org/rhq/plugins/jbpm4 and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Sep 1 05:02:39 EDT 2009


Author: jim.ma
Date: 2009-09-01 05:02:39 -0400 (Tue, 01 Sep 2009)
New Revision: 5611

Modified:
   projects/jopr-integration/trunk/pom.xml
   projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java
   projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessEngineComponent.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/ProcessInstanceDiscoveryComponent.java
   projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.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 average instance duration for JBPM enginge component: Added the processInstancesSelector operation

Modified: projects/jopr-integration/trunk/pom.xml
===================================================================
--- projects/jopr-integration/trunk/pom.xml	2009-08-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/pom.xml	2009-09-01 09:02:39 UTC (rev 5611)
@@ -63,6 +63,12 @@
 			<artifactId>jbpm-jpdl</artifactId>
 			<version>4.0-SNAPSHOT</version>
 			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.integration</groupId>
+			<artifactId>jboss-integration</artifactId>
+			<version>5.0.3.GA</version>
+			<type>pom</type>
 		</dependency>
 	</dependencies>
 

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-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessDefComponent.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -93,13 +93,22 @@
 				report.addData(value);
 			}
 
-			if (request.getName().equals("avgPerProcessInstanceDuration")) {
+			if (request.getName().equals("avgDuration")) {
 				String duration = StringUtil
 						.replaceNull(getAverageProcessInstanceDuration());
 				MeasurementDataTrait value = new MeasurementDataTrait(request,
 						duration);
 				report.addData(value);
 			}
+			if (request.getName().equals("processInstanceNum")) {
+				MeasurementDataTrait value = new MeasurementDataTrait(request, String.valueOf(getProcessInstanceNumber()));
+				report.addData(value);
+			}
+			if (request.getName().equals("endedProcessInstanceNum")) {
+				MeasurementDataTrait value = new MeasurementDataTrait(request, String.valueOf(getEndedProcessInstanceNumber()));
+				report.addData(value);
+			}
+			
 		}
 	}
 
@@ -150,12 +159,28 @@
 		}
 		return null;
 	}
+	
+	public int getProcessInstanceNumber() {
+		List<ProcessInstance> instances = this.jbpmConnection
+				.getProcessInstances(this.getResourceKey(), null, null, null);
+		return instances.size();
+	}
+	
+	public int getEndedProcessInstanceNumber() {
+		List<HistoryProcessInstance> instances = this.jbpmConnection
+				.getHistoryProcessInstances(null, this.getResourceKey(), HistoryProcessInstance.STATE_ENDED, null);
+		return instances.size();
+	}
+	
 
 	public OperationResult invokeOperation(String name, Configuration parameters) throws InterruptedException, Exception {
 		OperationResult result = null;
 		if (name.equals("historyProcessInstanceSelector")) {
 			result = queryHistoryProcessInstances(parameters);
 		}
+		if (name.equals("processInstanceSelector")) {
+			result = queryProcessInstances(parameters);
+		}
 		return result;
 	}
 	
@@ -200,4 +225,53 @@
 		return result;
 	}
 
+	public OperationResult queryProcessInstances(Configuration parameters) {
+		OperationResult result = new OperationResult();
+		String instanceId = null;
+		String instanceState = null;
+		PropertySimple processInstanceIdProp = parameters.getSimple("processInstanceId");
+		if (processInstanceIdProp.getStringValue() != null) {
+			instanceId = processInstanceIdProp.getStringValue();
+		}
+		
+		
+		PropertySimple firstResult = parameters.getSimple("firstResult");
+		Page page = null;
+		if (firstResult.getIntegerValue() != null) {
+			PropertySimple maxResults = parameters.getSimple("maxResults");
+			int first = firstResult.getIntegerValue();
+			int max = maxResults.getIntegerValue() != null ? maxResults.getIntegerValue() : 50;
+			page = new Page(first, max);				
+		}
+		
+		
+		PropertySimple state = parameters.getSimple("state");
+		if (state.getStringValue() != null) {
+			instanceState = state.getStringValue();
+		}
+		
+		List<ProcessInstance> instances =  jbpmConnection.getProcessInstances(this.getResourceKey(), instanceId, instanceState, page);
+		PropertyList resultInstances = new PropertyList("resultInstances");
+		result.getComplexResults().put(resultInstances);
+
+		for (ProcessInstance instance : instances) {
+
+	    		PropertyMap map = new PropertyMap("instance");
+	    		PropertySimple id = new PropertySimple("id", instance.getId());
+	    		PropertySimple name = new PropertySimple("name", StringUtil.replaceNull(instance.getName()));
+	    		PropertySimple definitionID = new PropertySimple("processDefinitionId", instance.getProcessDefinitionId());
+	    		PropertySimple stateProp = new PropertySimple("state", instance.getState());
+	    		PropertySimple priority = new PropertySimple("priority", StringUtil.replaceNull(instance.getPriority()));	    		
+	    		map.put(id);
+	    		map.put(name);
+	    		map.put(definitionID);
+	    		map.put(stateProp);
+	    		map.put(priority);
+	    		resultInstances.add(map);		    		
+	    	
+	    }
+		return result;
+	}	
+	
+	
 }

Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessEngineComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessEngineComponent.java	2009-08-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessEngineComponent.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -4,9 +4,12 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
+import java.util.List;
 import java.util.Set;
 
 
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.history.HistoryProcessInstance;
 import org.rhq.core.domain.configuration.Configuration;
 import org.rhq.core.domain.content.PackageDetailsKey;
 import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
@@ -39,6 +42,7 @@
 	private ResourceContext resourceContext = null;
 	private JBPMEngineConnection jbpmConnection = null;
 	private JBPMEngineConnector processEngineConnector = null;
+	private long instancesPerMin = 0l;
 	public void start(ResourceContext context) {
 		super.start(context);
 		resourceContext = context;
@@ -74,10 +78,37 @@
 			if (request.getName().equals("processInstancNumber")) {
 
 				MeasurementDataTrait value = new MeasurementDataTrait(request,
-						StringUtil.replaceNull(this.jbpmConnection.getAllProcessInstance().size()));
+						StringUtil.replaceNull(this.jbpmConnection.getProcessInstances(null, null, null, null).size()));
 				report.addData(value);
 			}
 			
+			
+			if (request.getName().equals("endedProcessInstancNumber")) {
+
+				MeasurementDataTrait value = new MeasurementDataTrait(request,
+						StringUtil.replaceNull(this.jbpmConnection.getHistoryProcessInstances(null, null, HistoryProcessInstance.STATE_ENDED, null).size()));
+				report.addData(value);
+			}
+			
+			
+			if (request.getName().equals("avgProcessInstanceDuration")) {
+				long duration = this.getAverageProcessInstanceDuration();
+				instancesPerMin = 60 * 3600 / duration;
+				MeasurementDataTrait value = new MeasurementDataTrait(request, StringUtil.replaceNull(duration));
+				report.addData(value);
+			}
+			
+			if (request.getName().equals("processInstancesPerMin")) {				
+				String number = "--";
+				if (instancesPerMin != 0L) {
+					Long longNum = new Long(instancesPerMin);
+					number = String.valueOf(longNum.intValue());
+				}
+				MeasurementDataTrait value = new MeasurementDataTrait(request, number);
+				report.addData(value);
+			}
+			
+			
 			if (request.getName().equals("jobsNumber")) {
 
 				MeasurementDataTrait value = new MeasurementDataTrait(request,
@@ -171,4 +202,18 @@
     }
     
     
+	private Long getAverageProcessInstanceDuration() {
+		List<HistoryProcessInstance> instances = this.jbpmConnection
+				.getHistoryProcessInstances(null, null,
+						ProcessInstance.STATE_ENDED, null);
+		Long sumDuration = 0L;
+		for (HistoryProcessInstance instance : instances) {
+			sumDuration = sumDuration + instance.getDuration();
+		}
+		if (sumDuration > 0) {
+			return sumDuration / instances.size();
+		}
+		return null;
+	} 
+    
 }
\ No newline at end of file

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-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceComponent.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -21,6 +21,7 @@
  */
 package org.rhq.plugins.jbpm4;
 
+import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.logging.Log;
@@ -49,8 +50,10 @@
 	public void start(ResourceContext<ProcessDefComponent> resourceContext) {
 		instanceId = resourceContext.getResourceKey();
 		jbpmConnection = resourceContext.getParentResourceComponent().getJBPMConnection();
-		instance = jbpmConnection.getProcessInstance(instanceId);
-		
+		List<ProcessInstance> instances = jbpmConnection.getProcessInstances(null, instanceId, null, null);
+		if (instances.size() > 0) {
+			instance = instances.get(0);
+		}
 	}
 
 	public void stop() {

Modified: projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceDiscoveryComponent.java
===================================================================
--- projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceDiscoveryComponent.java	2009-08-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/ProcessInstanceDiscoveryComponent.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -39,8 +39,8 @@
 			ResourceDiscoveryContext<ProcessDefComponent> context) {
 
 		Set<DiscoveredResourceDetails> jbpmDefs = new java.util.HashSet<DiscoveredResourceDetails>();
-        ProcessDefComponent defComponent = context.getParentResourceComponent();
-        List<ProcessInstance> instances = defComponent.getJBPMConnection().getProcessInstances(context.getParentResourceContext().getResourceKey());
+		ProcessDefComponent defComponent = context.getParentResourceComponent();
+        List<ProcessInstance> instances = defComponent.getJBPMConnection().getProcessInstances(context.getParentResourceContext().getResourceKey(), null, null, null);
 		for (ProcessInstance instance: instances) {
 			DiscoveredResourceDetails details = new DiscoveredResourceDetails(context.getResourceType(), String.valueOf(instance.getProcessInstance().getId()), instance.getId(), null, instance.getId(), null, null);
 			jbpmDefs.add(details);

Modified: 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	2009-08-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/TaskComponent.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -21,6 +21,7 @@
  */
 package org.rhq.plugins.jbpm4;
 
+import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.logging.Log;
@@ -111,8 +112,8 @@
 	
 	
 	public AvailabilityType getAvailability() {
-		ProcessInstance processInstance = getJBPMConnection().getProcessInstance(this.resourceContext.getParentResourceComponent().getResourceKey());
-		if (processInstance != null) {
+		List<ProcessInstance> processInstances = getJBPMConnection().getProcessInstances(null, this.resourceContext.getParentResourceComponent().getResourceKey(), null, null);
+		if (processInstances.size() > 0) {
 			return AvailabilityType.UP;
 		}
 		return AvailabilityType.DOWN;	   

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-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/JBPMEngineConnection.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -38,23 +38,36 @@
  *
  */
 public interface JBPMEngineConnection {
+	//the deployment api
+	void deleteDeployment(String deploymentId);
+	List<Deployment> getDeployments();
+	Deployment getDeployment(String deploymentId);
+	void suspendDeployment(String deploymentId);
+	void resumeDeployment(String deploymentId);
+	String deployProcess(File processFile) throws Exception;
+	
+	//definition api
 	List<ProcessDefinition> getProcessDefs();
 	ProcessDefinition getProcessDefById(String id);
-	String deployProcess(File processFile) throws Exception;
-	void deleteDeployment(String deploymentId);
-	List<ProcessInstance> getAllProcessInstance();
-	List<ProcessInstance> getProcessInstances(String defId);
-	ProcessInstance getProcessInstance(String instanceId);
+	
+	
+	//process instance api
+	List<ProcessInstance> getProcessInstances(String defId, String processInstanceId, String state, Page page);
 	void deleteProcessInstance(String instanceId);
 	ProcessInstance startProcessInstance(String defId);
-	List<Deployment> getDeployments();
-	Deployment getDeployment(String deploymentId);
+	
+	//Job api
 	public List<Job> queryJob(boolean timerOnly , boolean messageOnly, boolean exception, String processInstanceId);
 	Job getJob(String jobId);
+	Job executeJob(String jobDbid);
+	
+	//Activity api
 	Map<String, Long> avgDurationPerActivity(String processDefinitionId);
-	Job executeJob(String jobDbid);
+	
+	//History process instance api
 	List<HistoryProcessInstance> getHistoryProcessInstances(String definitionId, String processInstanceId, String state, Page page);
+	
+	//Task api
 	List<Task> getTasks(String definitionId, String processInstanceId);
-	void suspendDeployment(String deploymentId);
-	void resumeDeployment(String deploymentId);
+	
 }

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-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/java/org/rhq/plugins/jbpm4/connector/LocalJBPMEngineConnector.java	2009-09-01 09:02:39 UTC (rev 5611)
@@ -40,6 +40,7 @@
 import org.jbpm.api.ProcessDefinition;
 import org.jbpm.api.ProcessEngine;
 import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.ProcessInstanceQuery;
 import org.jbpm.api.TaskQuery;
 import org.jbpm.api.history.HistoryProcessInstance;
 import org.jbpm.api.history.HistoryProcessInstanceQuery;
@@ -170,8 +171,28 @@
 		return deployment.deploy();
 	}
 	
-	public List<ProcessInstance> getProcessInstances(String defId) {
-		return processEngine.getExecutionService().createProcessInstanceQuery().processDefinitionId(defId).list();
+	public List<ProcessInstance> getProcessInstances(String defId, String processInstanceId, String state, Page page) {
+		ProcessInstanceQuery query =  processEngine.getExecutionService().createProcessInstanceQuery();
+		if (defId != null) {
+			query.processDefinitionId(defId);
+		}
+		if (processInstanceId != null) {
+			query.processInstanceId(processInstanceId);
+		}
+		if (state != null && state.equals(ProcessInstance.STATE_SUSPENDED)) {
+			query.suspended();
+		}
+		
+		if (state != null && (!state.equals(ProcessInstance.STATE_SUSPENDED))) {
+			query.notSuspended();
+		} 
+		
+		if (page != null) {
+			query.page(page.firstResult, page.maxResults);
+		}
+		
+		return query.list();
+		
 	}
 	public ProcessInstance getProcessInstance(String instanceId) {
 		return processEngine.getExecutionService().createProcessInstanceQuery().processInstanceId(instanceId).uniqueResult();		

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-31 16:48:14 UTC (rev 5610)
+++ projects/jopr-integration/trunk/src/main/resources/META-INF/rhq-plugin.xml	2009-09-01 09:02:39 UTC (rev 5611)
@@ -28,9 +28,22 @@
 
 		<metric property="deployedProcessNumber" dataType="measurement"
 			displayType="summary" defaultOn="true" description="Deployed process number" />
+			
 		<metric property="processInstancNumber" dataType="measurement"
 			displayType="summary" defaultOn="true"
 			description="Process instances number includes started and suspended" />
+			
+		<metric property="endedProcessInstancNumber" dataType="measurement"
+			displayType="summary" defaultOn="true"
+			description="The number of ended process instances" />
+			
+		<metric property="avgProcessInstanceDuration" dataType="measurement"
+			displayType="summary" defaultOn="true"
+			description="The average duration of process instance" />
+			
+		<metric property="processInstancesPerMin" dataType="measurement"
+			displayType="summary" defaultOn="true"
+			description="The number of process instances that JBPM engin processed" />						
 
 		<metric property="jobsNumber" dataType="measurement"
 			displayType="summary" defaultOn="true" description="the number of normal jobs" />
@@ -139,17 +152,16 @@
                                 </c:map-property>
                         </c:list-property>
                 </results>
-             </operation>			
-
-          <operation name="processInstanceSelector" displayName="processInstanceSelector"
-                        description="lists the process instances">
+             </operation>
+            <operation name="processInstanceSelector" displayName="processInstanceSelector"
+                        description="Lists the process instance for the given condition">
                 <parameters>
-                   <c:simple-property name="duration" displayName="durationLargeThan" type="long" required="false" description="the duration value large than this"/>
-                   <c:simple-property name="state" displayName="state" type="string" required="false" default="ended"
+                   <c:simple-property name="processInstanceId" displayName="processInstanceId" type="string" required="false" description="process instance id"/>
+                   <c:simple-property name="state" displayName="state" type="string" required="false" default="notsuspended"
                                description="the process instance state">
                     <c:property-options>
-                       <c:option value="ended"  name="Ended" default="true"/>
-                       <c:option value="active" name="Active"/>
+                       <c:option value="suspended"  name="suspended" default="true"/>
+                       <c:option value="notSuspended" name="notSuspended"/>
                      </c:property-options>
                   </c:simple-property>
                  <c:simple-property name="firstResult" displayName="firstResult" type="integer" required="false" description="the index of first result"/>
@@ -158,19 +170,17 @@
                 
                 <results>
                         <c:list-property name="resultInstances" readOnly="true" required="false" displayName="Process Instances Result"
-                                         description="In this list you can review the process instance which duration is large than the select value">
+                                         description="In this list you can review the process instance ">
                                 <c:map-property name="instance" readOnly="true">
                                     <c:simple-property readOnly="true" name="id" displayName="id" description="ID"/>
-                                    <c:simple-property readOnly="true" name="definitionId" required="false" displayName="DefinitionId" description="Process DefinitionId"/>
-                                    <c:simple-property readOnly="true" name="startTime" required="false" displayName="StartTime" description="Time of the process instance starts"/>
-                                    <c:simple-property readOnly="true" name="endTime" required="false" displayName="EndTime" description="Time of the process instance ends"/>
-                                    <c:simple-property readOnly="true" name="duration" required="false" displayName="Duration" description="Process instance duration"/>
-                                    <c:simple-property readOnly="true" name="state" required="false" displayName="State" description="The process Instance State"/>
+                                    <c:simple-property readOnly="true" name="name" required="false" displayName="Name" description="Process instance name"/>
+                                    <c:simple-property readOnly="true" name="processDefinitionId" required="false" displayName="ProcessDefinitionId" description="Process definition id of this process"/>
+                                    <c:simple-property readOnly="true" name="state" required="false" displayName="State" description="Pocess instance state"/>
+                                    <c:simple-property readOnly="true" name="priority" required="false" displayName="Priority" description="Process instance priority"/>
                                 </c:map-property>
                         </c:list-property>
                 </results>
-             </operation>
-			
+             </operation>                        						
 			<metric property="version" displayName="version" dataType="trait"
 				displayType="summary" defaultOn="true" description="Process definition version" />
 			<metric property="id" displayName="id" dataType="trait"
@@ -178,11 +188,18 @@
 			<metric property="description" displayName="description"
 				dataType="trait" displayType="summary" defaultOn="true"
 				description="Process definition id" />
-		    <metric property="avgPerProcessInstanceDuration" displayName="avgPerProcessInstanceDuration"
+		    <metric property="avgDuration" displayName="avgDuration"
 				dataType="measurement" displayType="summary" defaultOn="true"
-				description="Average process instance duration" />	
-							
+				description="Average process instance duration" />
 				
+		    <metric property="processInstanceNum" displayName="processInstanceNum"
+				dataType="measurement" displayType="summary" defaultOn="true"
+				description="The number of process instance running " />
+				
+		    <metric property="endedProcessInstanceNum" displayName="endedProcessInstanceNum"
+				dataType="measurement" displayType="summary" defaultOn="true"
+				description="The number of ended process instance" />				
+														
 			<service name="Activies" discovery="ActivityDiscoveryComponent"
 				class="ActivityComponent" description="Process Activity">
 
@@ -195,7 +212,7 @@
 			
 			<service name="Running Process Instances" discovery="ProcessInstanceDiscoveryComponent"
 				class="ProcessInstanceComponent" createDeletePolicy="both"
-				creationDataType="configuration" description="Process Instance">
+				creationDataType="configuration" description="Process Instance" supportsManualAdd="true">
 
 				<metric property="id" displayName="id" dataType="trait"
 					displayType="summary" defaultOn="true" description="Process instance id" />
@@ -209,12 +226,13 @@
 				<metric property="priority" displayName="priority" dataType="trait"
 					displayType="summary" defaultOn="true" description="Process instance priority" />
 
-				<metric property="definitionId" displayName="definitionId"
+			    <metric property="definitionId" displayName="definitionId"
 					dataType="trait" displayType="summary" defaultOn="true"
 					description="Process definition id" />
 
 				<metric property="status" displayName="status" dataType="trait"
 					displayType="summary" defaultOn="true" description="Process instance status" />
+					
 				<resource-configuration>
 					<c:simple-property name="start instance"
 						displayName="startInstance" type="boolean" required="true"
@@ -279,7 +297,7 @@
 				<metric property="processInstanceId" displayName="processInstanceId" dataType="trait"
 					displayType="summary" defaultOn="true" description="Process instance id" />
 
-				<metric property="duration" displayName="duration" dataType="trait"
+				<metric property="duration" displayName="duration" dataType="measurement"
 					displayType="summary" defaultOn="true" description="Process instance duration" />
 
 				<metric property="startTime" displayName="startTime"
@@ -291,10 +309,7 @@
 					
 				<metric property="state" displayName="state" dataType="trait"
 					displayType="summary" defaultOn="true" description="Process instance state" />	
-			</service>
-			
-			
-			
+			</service>			
 		</service>
 	</service>
 </plugin>



More information about the jbpm-commits mailing list