[jbpm-commits] JBoss JBPM SVN: r3091 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/model and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Nov 26 03:44:19 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-11-26 03:44:19 -0500 (Wed, 26 Nov 2008)
New Revision: 3091
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
Log:
Add token management to process
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -25,6 +25,8 @@
import java.util.Set;
+import javax.management.ObjectName;
+
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
@@ -62,7 +64,7 @@
/**
* Get the unique token identity
*/
- String getTokenID();
+ ObjectName getKey();
/**
* Get the token status
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -24,6 +24,7 @@
//$Id$
import java.util.Date;
+import java.util.Set;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -61,6 +62,16 @@
ProcessStatus getProcessStatus();
/**
+ * Get the root Token associated with this Process
+ */
+ Token getRootToken();
+
+ /**
+ * Get the set of Tokens associated with this Process
+ */
+ Set<Token> getTokens();
+
+ /**
* Start the process
*/
Token startProcess();
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -24,6 +24,7 @@
//$Id$
import java.util.Date;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -94,6 +95,9 @@
private Date endDate;
@Transient
+ private Token rootToken;
+
+ @Transient
private transient RuntimeException runtimeException;
public ProcessImpl(ProcessEngine engine, ProcessDefinitionImpl procDef, ProcessStructureImpl procStruct)
@@ -162,6 +166,30 @@
}
@Override
+ public Token getRootToken()
+ {
+ return rootToken;
+ }
+
+ @Override
+ public Set<Token> getTokens()
+ {
+ return getAllTokens(rootToken);
+ }
+
+ 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;
+ }
+
+ @Override
public List<Assignment> getAssignments()
{
return procStruct.getAssignments();
@@ -271,13 +299,15 @@
@Override
public Token startProcess()
{
- return startProcessInternal(null);
+ rootToken = startProcessInternal(null);
+ return rootToken;
}
@Override
public Token startProcess(Attachments att)
{
- return startProcessInternal(att);
+ rootToken = startProcessInternal(att);
+ return rootToken;
}
private Token startProcessInternal(Attachments att)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -25,6 +25,8 @@
import java.util.Set;
+import javax.management.ObjectName;
+
import org.hibernate.Session;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
@@ -79,9 +81,9 @@
}
@Override
- public String getTokenID()
+ public ObjectName getKey()
{
- return delegateToken.getTokenID();
+ return delegateToken.getKey();
}
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -31,6 +31,8 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import javax.management.ObjectName;
+
import org.jbpm.api.client.Token;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.SequenceFlow;
@@ -54,7 +56,7 @@
private RuntimeProcess rtProc;
private ExecutorService executor = Executors.newCachedThreadPool();
- Map<String, RunnableToken> runnableTokens = new HashMap<String, RunnableToken>();
+ Map<ObjectName, RunnableToken> runnableTokens = new HashMap<ObjectName, RunnableToken>();
public ThreadingTokenExecutor(RuntimeProcess rtProc)
{
@@ -93,7 +95,7 @@
log.debug("Create Token: " + token);
RunnableToken rtToken = new RunnableToken(this, rtProc, mutableToken);
- runnableTokens.put(token.getTokenID(), rtToken);
+ runnableTokens.put(token.getKey(), rtToken);
}
}
@@ -110,7 +112,7 @@
MutableToken mutableToken = (MutableToken)token;
mutableToken.setTokenStatus(TokenStatus.Started);
- RunnableToken rtToken = runnableTokens.get(token.getTokenID());
+ RunnableToken rtToken = runnableTokens.get(token.getKey());
executor.submit(rtToken);
}
}
@@ -150,7 +152,7 @@
log.debug("Destroy Token: " + token);
MutableToken mutableToken = (MutableToken)token;
mutableToken.setTokenStatus(TokenStatus.Destroyed);
- runnableTokens.remove(token.getTokenID());
+ runnableTokens.remove(token.getKey());
}
}
@@ -159,7 +161,7 @@
{
synchronized (runnableTokens)
{
- RunnableToken rtToken = runnableTokens.get(token.getTokenID());
+ RunnableToken rtToken = runnableTokens.get(token.getKey());
if (rtToken == null)
throw new IllegalStateException("Not a runnable token: " + token);
@@ -177,7 +179,7 @@
{
synchronized (runnableTokens)
{
- String tokenID = token.getTokenID();
+ ObjectName tokenID = token.getKey();
RunnableToken rtToken = runnableTokens.get(tokenID);
if (rtToken == null)
throw new IllegalStateException("Not a runnable token: " + tokenID);
@@ -190,7 +192,7 @@
mutableToken.setTokenStatus(TokenStatus.Started);
rtToken = new RunnableToken(this, rtProc, mutableToken);
- runnableTokens.put(token.getTokenID(), rtToken);
+ runnableTokens.put(token.getKey(), rtToken);
executor.submit(rtToken);
}
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-26 08:44:19 UTC (rev 3091)
@@ -27,8 +27,11 @@
import java.util.HashSet;
import java.util.Set;
+import javax.management.ObjectName;
+
import org.hibernate.Session;
import org.jboss.util.id.UID;
+import org.jbpm.api.Constants;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
import org.jbpm.api.model.Node;
@@ -36,6 +39,7 @@
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.model.WaitState;
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.api.runtime.Attachments.Key;
@@ -58,7 +62,7 @@
*/
public class TokenImpl implements MutableToken
{
- private String id;
+ private ObjectName key;
private SequenceFlow flow;
private Attachments att;
private TokenStatus status;
@@ -74,7 +78,7 @@
public TokenImpl(Process proc, Attachments att)
{
this.att = new BasicAttachments(att);
- this.id = new UID().toString();
+ this.key = ObjectNameFactory.create(Constants.ID_DOMAIN + ":id=" + new UID());
this.status = TokenStatus.Created;
this.proc = proc;
}
@@ -86,9 +90,9 @@
}
@Override
- public String getTokenID()
+ public ObjectName getKey()
{
- return id;
+ return key;
}
@Override
@@ -273,6 +277,6 @@
public String toString()
{
- return "[sf=" + getLastFlow() + ",status=" + getTokenStatus() + ",ctx=" + getAttachments() + ",id=" + id + "]";
+ return "[sf=" + getLastFlow() + ",status=" + getTokenStatus() + ",ctx=" + getAttachments() + ",key=" + key + "]";
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-26 08:04:34 UTC (rev 3090)
+++ projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-26 08:44:19 UTC (rev 3091)
@@ -11,7 +11,6 @@
<property name="services">
<set elementClass="org.jbpm.api.service.Service">
<inject bean="jBPMDialectHandlerService" />
- <inject bean="jBPMExecutionService" />
<inject bean="jBPMMessageService" />
<inject bean="jBPMMessageBuilderService" />
<inject bean="jBPMPersistenceService" />
@@ -20,6 +19,7 @@
<inject bean="jBPMProcessService" />
<inject bean="jBPMSignalService" />
<inject bean="jBPMSignalBuilderService" />
+ <inject bean="jBPMThreadingService" />
</set>
</property>
</bean>
@@ -92,12 +92,12 @@
<bean name="jBPMDialectHandlerXPDL21" class="org.jbpm.dialect.xpdl21.DialectHandlerImpl"/>
<!-- Other Services -->
- <bean name="jBPMExecutionService" class="org.jbpm.ri.service.ExecutionServiceImpl" />
<bean name="jBPMMessageService" class="org.jbpm.ri.service.MessageServiceImpl" />
<bean name="jBPMMessageBuilderService" class="org.jbpm.ri.service.MessageBuilderServiceImpl" />
<bean name="jBPMProcessBuilderService" class="org.jbpm.ri.service.ProcessBuilderServiceImpl" />
<bean name="jBPMProcessDefinitionService" class="org.jbpm.ri.service.ProcessDefinitionServiceImpl" />
<bean name="jBPMSignalBuilderService" class="org.jbpm.ri.service.SignalBuilderServiceImpl" />
<bean name="jBPMSignalService" class="org.jbpm.ri.service.SignalServiceImpl" />
+ <bean name="jBPMThreadingService" class="org.jbpm.ri.service.ThreadingServiceImpl" />
</deployment>
More information about the jbpm-commits
mailing list