From b184b46d7d3960297503fb398ab8a0edbff7b17f Mon Sep 17 00:00:00 2001 From: Gavin Cornwell Date: Thu, 2 Sep 2010 21:17:57 +0000 Subject: [PATCH] Performance improvement for GET workflow-instances REST API. Added "priority" and "dueDate" to WorkflowInstance object, which means a query for the workflow start task is no longer required to retrieve this information. A query was previously being done for every row in the results. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22210 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/workflow/jbpm/JBPMEngine.java | 2 ++ .../cmr/workflow/WorkflowInstance.java | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java index 5a1c5e3a53..6ac14857b8 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java @@ -2898,6 +2898,8 @@ public class JBPMEngine extends BPMEngine WorkflowInstance workflowInstance = new WorkflowInstance(); workflowInstance.id = createGlobalId(new Long(instance.getId()).toString()); workflowInstance.description = (String)instance.getContextInstance().getVariable(mapQNameToName(WorkflowModel.PROP_WORKFLOW_DESCRIPTION)); + workflowInstance.priority = (Integer)instance.getContextInstance().getVariable(mapQNameToName(WorkflowModel.PROP_WORKFLOW_PRIORITY)); + workflowInstance.dueDate = (Date)instance.getContextInstance().getVariable(mapQNameToName(WorkflowModel.PROP_WORKFLOW_DUE_DATE)); workflowInstance.definition = createWorkflowDefinition(instance.getProcessDefinition()); workflowInstance.active = !instance.hasEnded(); JBPMNode initiator = (JBPMNode)instance.getContextInstance().getVariable("initiator"); diff --git a/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java b/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java index ea61634e98..3982680451 100644 --- a/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java +++ b/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java @@ -47,9 +47,15 @@ public class WorkflowInstance implements Serializable /** Initiator (cm:person) - null if System initiated */ public NodeRef initiator; + /** Workflow priority */ + public Integer priority; + /** Workflow Start Date */ public Date startDate; + /** Workflow Due Date */ + public Date dueDate; + /** Workflow End Date */ public Date endDate; @@ -102,6 +108,14 @@ public class WorkflowInstance implements Serializable return initiator; } + /** + * @return the priority, null if there is no priority set + */ + public Integer getPriority() + { + return this.priority; + } + /** * @return the startDate */ @@ -109,6 +123,14 @@ public class WorkflowInstance implements Serializable { return startDate; } + + /** + * @return the dueDate + */ + public Date getDueDate() + { + return dueDate; + } /** * @return the endDate