[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