From 7f6cc4d654eee1fcfd7f303062992771ee7892a4 Mon Sep 17 00:00:00 2001 From: Cristiano Nicolai Date: Fri, 11 Feb 2011 13:21:46 +1000 Subject: [PATCH 4/4] Fix for listing ended processes instances on jBPM Console --- .../process/audit/JPAProcessInstanceDbLog.java | 8 ++++++++ .../jbpm/integration/console/CommandDelegate.java | 4 ++++ .../integration/console/ProcessManagement.java | 8 +++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/jbpm-bam/src/main/java/org/jbpm/process/audit/JPAProcessInstanceDbLog.java b/jbpm-bam/src/main/java/org/jbpm/process/audit/JPAProcessInstanceDbLog.java index 0f75e06..495e023 100644 --- a/jbpm-bam/src/main/java/org/jbpm/process/audit/JPAProcessInstanceDbLog.java +++ b/jbpm-bam/src/main/java/org/jbpm/process/audit/JPAProcessInstanceDbLog.java @@ -49,6 +49,14 @@ public class JPAProcessInstanceDbLog { .setParameter("processId", processId).getResultList(); return result; } + + @SuppressWarnings("unchecked") + public List findActiveProcessInstances(String processId) { + List result = getEntityManager() + .createQuery("FROM ProcessInstanceLog p WHERE p.processId = :processId AND p.end is null ") + .setParameter("processId", processId).getResultList(); + return result; + } public ProcessInstanceLog findProcessInstance(long processInstanceId) { ProcessInstanceLog result = (ProcessInstanceLog) getEntityManager() diff --git a/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/CommandDelegate.java b/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/CommandDelegate.java index d149fd5..87474d7 100644 --- a/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/CommandDelegate.java +++ b/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/CommandDelegate.java @@ -230,6 +230,10 @@ public class CommandDelegate { return log.findProcessInstances(processId); } + public List getActiveProcessInstanceLogsByProcessId(String processId) { + return log.findActiveProcessInstances(processId); + } + public ProcessInstanceLog startProcess(String processId, Map parameters) { long processInstanceId = ksession.startProcess(processId, parameters).getId(); return log.findProcessInstance(processInstanceId); diff --git a/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/ProcessManagement.java b/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/ProcessManagement.java index 0aca18c..b3f8db0 100644 --- a/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/ProcessManagement.java +++ b/jbpm-gwt/jbpm-gwt-console/src/main/java/org/jbpm/integration/console/ProcessManagement.java @@ -60,14 +60,12 @@ public class ProcessManagement implements org.jboss.bpm.console.server.integrati } public List getProcessInstances(String definitionId) { - // TODO: query for active process instances only - List processInstances = delegate.getProcessInstanceLogsByProcessId(definitionId); + List processInstances = delegate.getActiveProcessInstanceLogsByProcessId(definitionId); List result = new ArrayList(); for (ProcessInstanceLog processInstance: processInstances) { - if (processInstance.getEnd() == null) { - result.add(Transform.processInstance(processInstance)); - } + result.add(Transform.processInstance(processInstance)); } + return result; } -- 1.7.3.4