[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