[jbpm-commits] JBoss JBPM SVN: r3095 - in jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration: model and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 26 04:23:21 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-26 04:23:21 -0500 (Wed, 26 Nov 2008)
New Revision: 3095

Modified:
   jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/client/TokenImpl.java
   jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/model/ProcessImpl.java
   jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
   jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java
Log:
Update API integration

Modified: jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/client/TokenImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/client/TokenImpl.java	2008-11-26 08:54:46 UTC (rev 3094)
+++ jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/client/TokenImpl.java	2008-11-26 09:23:21 UTC (rev 3095)
@@ -21,8 +21,14 @@
  */
 package org.jbpm.integration.client;
 
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
+import javax.management.ObjectName;
+
+import org.jbpm.api.Constants;
 import org.jbpm.api.NotImplementedException;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
@@ -30,6 +36,7 @@
 import org.jbpm.api.model.Process;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.Process.ProcessStatus;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.integration.model.ProcessImpl;
@@ -47,17 +54,16 @@
   private org.jbpm.graph.exe.Token oldToken;
   private ProcessImpl procImpl;
   private Attachments att = new BasicAttachments();
-  
-  public TokenImpl(ProcessImpl proc, org.jbpm.graph.exe.Token oldToken, Attachments att)
+
+  public TokenImpl(ProcessImpl proc, org.jbpm.graph.exe.Token oldToken)
   {
     this.oldToken = oldToken;
     this.procImpl = proc;
-    this.att = att;
   }
 
-  public String getTokenID()
+  public ObjectName getKey()
   {
-    throw new NotImplementedException();
+    return ObjectNameFactory.create(Constants.ID_DOMAIN + ":id=" + oldToken.getId());
   }
 
   public Process getProcess()
@@ -70,13 +76,13 @@
     return procImpl.getProcessEngine();
   }
 
-  //@Override
+  // @Override
   public Attachments getAttachments()
   {
     return att;
   }
 
-  //@Override
+  // @Override
   public TokenStatus getTokenStatus()
   {
     TokenStatus status = TokenStatus.Suspended;
@@ -87,38 +93,68 @@
     return status;
   }
 
-  //@Override
+  // @Override
   public Set<Token> getChildTokens()
   {
-    throw new NotImplementedException();
+    Set<Token> childTokens = new HashSet<Token>();
+    Map oldChildMap = oldToken.getChildren();
+    if (oldChildMap != null)
+    {
+      Collection<org.jbpm.graph.exe.Token> oldChildTokens = oldChildMap.values();
+      for (org.jbpm.graph.exe.Token oldChildToken : oldChildTokens)
+      {
+        TokenImpl childToken = new TokenImpl(procImpl, oldChildToken);
+        childTokens.add(childToken);
+      }
+    }
+    return childTokens;
   }
 
-  //@Override
+  // @Override
   public Node getCurrentNode()
   {
     String nodeName = oldToken.getNode().getName();
     return procImpl.getNode(nodeName);
   }
 
-  //@Override
+  // @Override
   public SequenceFlow getLastFlow()
   {
     throw new NotImplementedException();
   }
 
-  //@Override
+  // @Override
   public Token getParentToken()
   {
-    throw new NotImplementedException();
+    org.jbpm.graph.exe.Token parent = oldToken.getParent();
+    return parent != null ? new TokenImpl(procImpl, parent) : null;
   }
 
-  //@Override
+  // @Override
   public Token getRootToken()
   {
-    throw new NotImplementedException();
+    org.jbpm.graph.exe.Token root = oldToken;
+    while (root.getParent() != null)
+      root = root.getParent();
+
+    return new TokenImpl(procImpl, root);
   }
 
-  //@Override
+  // @Override
+  public void signal(String name)
+  {
+    try
+    {
+      oldToken.signal(name);
+    }
+    catch (RuntimeException rte)
+    {
+      procImpl.setProcessStatus(ProcessStatus.Aborted);
+      throw rte;
+    }
+  }
+
+  // @Override
   public void signal()
   {
     try

Modified: jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/model/ProcessImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/model/ProcessImpl.java	2008-11-26 08:54:46 UTC (rev 3094)
+++ jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/model/ProcessImpl.java	2008-11-26 09:23:21 UTC (rev 3095)
@@ -22,11 +22,14 @@
 package org.jbpm.integration.model;
 
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.management.ObjectName;
 
 import org.jbpm.api.Constants;
+import org.jbpm.api.NotImplementedException;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.client.Token.TokenStatus;
@@ -51,7 +54,6 @@
   private ProcessDefinitionImpl procDef;
   private ProcessInstance oldProc;
   private ProcessStatus procStatus = ProcessStatus.None;
-  private Token rootToken;
   
   public ProcessImpl(ProcessDefinitionImpl procDef)
   {
@@ -80,6 +82,7 @@
   //@Override
   public ProcessStatus getProcessStatus()
   {
+    Token rootToken = getRootToken();
     if (rootToken != null && procStatus == ProcessStatus.Active)
     {
       if (rootToken.getTokenStatus() == TokenStatus.Destroyed)
@@ -136,21 +139,38 @@
   //@Override
   public Token startProcess()
   {
-    return startProcess(null);
+    setProcessStatus(ProcessStatus.Active);
+    oldProc = new ProcessInstance(procDef.getOldProcessDefinition());
+    Token rootToken = new TokenImpl(this, oldProc.getRootToken());
+    rootToken.signal();
+    return rootToken;
   }
 
   //@Override
   public Token startProcess(Attachments att)
   {
-    setProcessStatus(ProcessStatus.Active);
-    oldProc = new ProcessInstance(procDef.getOldProcessDefinition());
-    rootToken = new TokenImpl(this, oldProc.getRootToken(), att);
-    rootToken.signal();
-    return rootToken;
+    throw new NotImplementedException();
   }
 
   public Token getRootToken()
   {
-    return rootToken;
+    return new TokenImpl(this, oldProc.getRootToken());
   }
+
+  public Set<Token> getTokens()
+  {
+    return getAllTokens(getRootToken());
+  }
+  
+  private Set<Token> getAllTokens(Token token)
+  {
+    Set<Token> tokens = new HashSet<Token>();
+    if (token != null)
+    {
+      tokens.add(token);
+      for (Token childToken : token.getChildTokens())
+        tokens.addAll(getAllTokens(childToken));
+    }
+    return tokens;
+  }
 }

Modified: jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java	2008-11-26 08:54:46 UTC (rev 3094)
+++ jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessDefinitionServiceImpl.java	2008-11-26 09:23:21 UTC (rev 3095)
@@ -123,7 +123,7 @@
 
       // Unregister the associated process instances
       ProcessService procService = engine.getService(ProcessService.class);
-      for (ObjectName procID : procService.getProcesses(procDef.getName(), null))
+      for (ObjectName procID : procService.getProcesses(procDefID, null))
         procService.unregisterProcess(procID);
 
       // Works with the default configuration

Modified: jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java	2008-11-26 08:54:46 UTC (rev 3094)
+++ jbpm3/trunk/modules/integration/api/src/main/java/org/jbpm/integration/service/ProcessServiceImpl.java	2008-11-26 09:23:21 UTC (rev 3095)
@@ -100,17 +100,18 @@
   /**
    * Find the set of Processes for a given name
    * 
-   * @param name The process name
+   * @param procDefID The process name
    * @param status The optional process status
    * @return An empty set if the process cannot be found
    */
   //@Override
-  public Set<ObjectName> getProcesses(String name, ProcessStatus status)
+  public Set<ObjectName> getProcesses(ObjectName procDefID, ProcessStatus status)
   {
     Set<ObjectName> procSet = new HashSet<ObjectName>();
     for (Process auxProc : registeredProcs.values())
     {
-      if (auxProc.getName().equals(name))
+      ObjectName auxProcDefID = auxProc.getProcessDefinition().getKey();
+      if (auxProcDefID.equals(procDefID))
       {
         if (status == null || auxProc.getProcessStatus() == status)
           procSet.add(auxProc.getKey());




More information about the jbpm-commits mailing list