[jbpm-commits] JBoss JBPM SVN: r3961 - in jbpm4/trunk/modules/enterprise: src/main/java/org/jbpm/enterprise/mgmt and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Feb 19 15:54:54 EST 2009
Author: heiko.braun at jboss.com
Date: 2009-02-19 15:54:54 -0500 (Thu, 19 Feb 2009)
New Revision: 3961
Modified:
jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml
jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ModelAdaptor.java
jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java
Log:
Console integration: Implement signaling on execution
Modified: jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml
===================================================================
--- jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml 2009-02-19 20:53:59 UTC (rev 3960)
+++ jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml 2009-02-19 20:54:54 UTC (rev 3961)
@@ -13,6 +13,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="gwt-parent" />
<orderEntry type="module" module-name="toplevel" />
+ <orderEntry type="module" module-name="gwt-server-integration" />
<orderEntry type="module-library" exported="">
<library name="M2 Dep: cargo:cargo:jar:0.5:test">
<CLASSES>
Modified: jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ModelAdaptor.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ModelAdaptor.java 2009-02-19 20:53:59 UTC (rev 3960)
+++ jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ModelAdaptor.java 2009-02-19 20:54:54 UTC (rev 3961)
@@ -27,8 +27,12 @@
import org.jbpm.model.OpenExecution;
import org.jbpm.model.OpenProcessDefinition;
+import org.jbpm.model.Transition;
import java.util.Date;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -55,22 +59,41 @@
ProcessInstanceRef ref = new ProcessInstanceRef();
ref.setId( e0.getId() );
ref.setKey(e0.getKey());
- ref.setDefinitionId(e0.getProcessDefinition().getId() );
-
-
- //ref.setState( ProcessInstanceRef.STATE.RUNNING); // TODO: FIXME
+ ref.setDefinitionId(e0.getProcessDefinition().getId() );
ref.setStartDate( new Date() ); // TODO: FIXME
- TokenReference tok = new TokenReference();
OpenExecution topLevelExecution = e0.getProcessInstance();
- tok.setName(topLevelExecution.getName());
- tok.setId(topLevelExecution.getId());
- tok.setCurrentNodeName( topLevelExecution.getActivityName() ); // TODO: is this the nodeName?
+ TokenReference tok = execution2TokenReference(topLevelExecution);
- // todo: parse childen
+ Collection<OpenExecution> childExecutions = topLevelExecution.getExecutions();
+ if(childExecutions!=null)
+ {
+ for(OpenExecution childExecution : childExecutions)
+ {
+ TokenReference childTok = execution2TokenReference(childExecution);
+ tok.getChildren().add(childTok);
+ }
+ }
ref.setRootToken(tok);
return ref;
}
+
+ private static TokenReference execution2TokenReference(OpenExecution topLevelExecution)
+ {
+ TokenReference tok = new TokenReference();
+ tok.setName(topLevelExecution.getName());
+ tok.setId(topLevelExecution.getId());
+ tok.setCurrentNodeName( topLevelExecution.getActivityName() );
+
+ List<String> availableSignals = new ArrayList<String>();
+ for(Transition t : topLevelExecution.getActivity().getOutgoingTransitions())
+ {
+ availableSignals.add(t.getName());
+ }
+
+ tok.setAvailableSignals(availableSignals);
+ return tok;
+ }
}
Modified: jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java 2009-02-19 20:53:59 UTC (rev 3960)
+++ jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java 2009-02-19 20:54:54 UTC (rev 3961)
@@ -86,6 +86,7 @@
ExecutionService execService = this.processEngine.getExecutionService();
ExecutionQuery query = execService.createExecutionQuery();
query.processDefinitionId(String.valueOf(procDefId));
+
List<Execution> executions = query.execute();
List<ProcessInstanceRef> results = adoptTopLevelExecutions(executions);
@@ -98,6 +99,12 @@
List<ProcessInstanceRef> results = new ArrayList<ProcessInstanceRef>();
for(Execution exec : executions)
{
+ if(exec.isEnded())
+ {
+ System.out.println("*** JBPM-2055: Execution ("+exec.getId()+") is already ended. Should not show up in query");
+ continue;
+ }
+
if(exec.isProcessInstance()) // parent execution
{
results.add( ModelAdaptor.adoptExecution((OpenExecution)exec) );
@@ -131,9 +138,15 @@
throw new RuntimeException("Not implemented");
}
- public void signalToken(long tokenId, String signal)
- {
- throw new RuntimeException("Not implemented");
+ public void signalToken(String tokenId, String signal)
+ {
+ ExecutionService execService = this.processEngine.getExecutionService();
+
+ if(null==signal)
+ execService.signalExecutionById(tokenId);
+ else
+ execService.signalExecutionById(tokenId, signal);
+
}
public void deploy(String fileName, String contentType, InputStream deployment)
More information about the jbpm-commits
mailing list