[jbpm-commits] JBoss JBPM SVN: r3222 - in jbpm3/trunk/modules: integration/spec/src/main/java/org/jbpm/integration/spec/model and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Dec 5 08:36:50 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-12-05 08:36:50 -0500 (Fri, 05 Dec 2008)
New Revision: 3222
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java
jbpm3/trunk/modules/integration/spec/src/test/java/org/jbpm/test/integration/spec/task/TaskTest.java
Log:
Use ProcessDefinition.createNewProcessDefinition() to contruct the procDef
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -134,6 +134,29 @@
Services.assignId(this);
// create the optional definitions
+ addInitialModuleDefinitions(processDefinition);
+
+ // add the creation log
+ rootToken.addLog(new ProcessInstanceCreateLog());
+
+ // set the variables
+ addInitialContextVariables(variables);
+
+ Node initialNode = rootToken.getNode();
+ fireStartEvent(initialNode);
+ }
+
+ public void addInitialContextVariables(Map variables)
+ {
+ ContextInstance contextInstance = getContextInstance();
+ if ((contextInstance != null) && (variables != null))
+ {
+ contextInstance.addVariables(variables);
+ }
+ }
+
+ public void addInitialModuleDefinitions(ProcessDefinition processDefinition)
+ {
Map definitions = processDefinition.getDefinitions();
// if the state-definition has optional definitions
if (definitions != null)
@@ -152,19 +175,6 @@
}
}
}
-
- // add the creation log
- rootToken.addLog(new ProcessInstanceCreateLog());
-
- // set the variables
- ContextInstance contextInstance = getContextInstance();
- if ((contextInstance != null) && (variables != null))
- {
- contextInstance.addVariables(variables);
- }
-
- Node initialNode = rootToken.getNode();
- fireStartEvent(initialNode);
}
public void fireStartEvent(Node initialNode)
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -49,6 +49,7 @@
{
this.engine = engine;
this.objClass = objClass;
+
// Store the ID of the underlying jBPM3 object
objID = tempObj.getId();
if (objID == 0)
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -60,17 +60,15 @@
private ObjectName keyCache;
private List<Node> nodes;
- public ProcessDefinitionImpl(ProcessEngine engine, String name)
- {
- this(engine, new org.jbpm.graph.def.ProcessDefinition(name));
- }
-
public ProcessDefinitionImpl(ProcessEngine engine, org.jbpm.graph.def.ProcessDefinition tmpProcDef)
{
super(engine, tmpProcDef, org.jbpm.graph.def.ProcessDefinition.class);
if (tmpProcDef.getName() == null)
throw new InvalidProcessException("ProcessDefinition name cannot be null");
+
+ if (tmpProcDef.getId() > 0)
+ keyCache = getKey(tmpProcDef);
}
public ObjectName getKey()
@@ -113,6 +111,7 @@
{
ProcessInstance oldProc = new ProcessInstance();
oldProc.setProcessDefinition(getDelegate());
+ oldProc.addInitialModuleDefinitions(getDelegate());
Process proc = new ProcessImpl(getProcessEngine(), oldProc);
proc = InvocationProxy.newInstance((ProcessImpl)proc, Process.class);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessImpl.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessImpl.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -62,9 +62,12 @@
// [TODO] delegate this property
private ProcessStatus status = ProcessStatus.None;
- public ProcessImpl(ProcessEngine engine, ProcessInstance tempObj)
+ public ProcessImpl(ProcessEngine engine, ProcessInstance tmpProc)
{
- super(engine, tempObj, ProcessInstance.class);
+ super(engine, tmpProc, ProcessInstance.class);
+
+ if (tmpProc.getId() > 0)
+ keyCache = getKey(tmpProc);
}
// @Override
@@ -186,12 +189,12 @@
if (procService.getProcess(getKey()) == null)
procService.registerProcess(this);
- ProcessInstance delegate = getDelegate();
+ ProcessInstance procInst = getDelegate();
// Initialize the members
- org.jbpm.graph.exe.Token rootToken = new org.jbpm.graph.exe.Token(delegate);
- delegate.setStart(Clock.getCurrentTime());
- delegate.setRootToken(rootToken);
+ org.jbpm.graph.exe.Token rootToken = new org.jbpm.graph.exe.Token(procInst);
+ procInst.setStart(Clock.getCurrentTime());
+ procInst.setRootToken(rootToken);
// Create the root token
Token token = new TokenImpl(getProcessEngine(), rootToken);
@@ -216,7 +219,7 @@
// Fire the jbpm3 start event
NodeImpl<?> initialNode = (NodeImpl<?>)token.getCurrentNode();
- delegate.fireStartEvent(initialNode.getDelegate());
+ procInst.fireStartEvent(initialNode.getDelegate());
// Signal the root token
token.signal();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -85,7 +85,10 @@
//@Override
public ProcessBuilder addProcess(String name)
{
- procDefImpl = new ProcessDefinitionImpl(engine, name);
+ org.jbpm.graph.def.ProcessDefinition oldProcDef = org.jbpm.graph.def.ProcessDefinition.createNewProcessDefinition();
+ oldProcDef.setName(name);
+
+ procDefImpl = new ProcessDefinitionImpl(engine, oldProcDef);
return this;
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -38,6 +38,7 @@
import org.jboss.bpm.api.runtime.ExecutionContext;
import org.jboss.bpm.api.runtime.Token;
import org.jboss.bpm.api.service.ExecutionContextService;
+import org.jbpm.JbpmContext;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.Transition;
import org.jbpm.integration.spec.model.AbstractElementImpl;
@@ -58,12 +59,15 @@
private SequenceFlow lastFlow;
private Attachments att;
- public TokenImpl(ProcessEngine engine, org.jbpm.graph.exe.Token oldToken)
+ public TokenImpl(ProcessEngine engine, org.jbpm.graph.exe.Token tmpToken)
{
- super(engine, oldToken, org.jbpm.graph.exe.Token.class);
+ super(engine, tmpToken, org.jbpm.graph.exe.Token.class);
- ContextInstance context = oldToken.getProcessInstance().getContextInstance();
+ ContextInstance context = tmpToken.getProcessInstance().getContextInstance();
this.att = new TokenAttachmentDelegate(this, context);
+
+ if (tmpToken.getId() > 0)
+ keyCache = getKey(tmpToken);
}
public ObjectName getKey()
@@ -179,6 +183,8 @@
private void signalInternal(String name)
{
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
try
{
// Make sure we have a current node
@@ -212,6 +218,10 @@
lastFlow = currNode.getOutFlowByTransition(trans);
getDelegate().signal();
}
+
+ // Save the token
+ JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
+ jbpmContext.save(getDelegate());
}
catch (RuntimeException rte)
{
@@ -219,6 +229,10 @@
procImpl.setProcessStatus(ProcessStatus.Aborted);
throw rte;
}
+ finally
+ {
+ bpmContext.close();
+ }
}
public String toString()
Modified: jbpm3/trunk/modules/integration/spec/src/test/java/org/jbpm/test/integration/spec/task/TaskTest.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/test/java/org/jbpm/test/integration/spec/task/TaskTest.java 2008-12-05 13:30:54 UTC (rev 3221)
+++ jbpm3/trunk/modules/integration/spec/src/test/java/org/jbpm/test/integration/spec/task/TaskTest.java 2008-12-05 13:36:50 UTC (rev 3222)
@@ -30,6 +30,7 @@
import org.jboss.bpm.api.deployment.SimpleDeployment;
import org.jboss.bpm.api.model.Process;
import org.jboss.bpm.api.model.ProcessDefinition;
+import org.jboss.bpm.api.runtime.Token;
import org.jboss.bpm.api.service.DeploymentService;
import org.jboss.bpm.api.test.APITestCase;
import org.jbpm.JbpmConfiguration;
@@ -52,49 +53,9 @@
private JbpmContext jbpmContext;
private GraphSession graphSession;
- public void testCancelOld()
+ public void testCancel()
{
- org.jbpm.graph.def.ProcessDefinition processDefinition = org.jbpm.graph.def.ProcessDefinition.parseXmlString(
- "<process-definition name='endtasksprocess'>" +
- " <start-state>" +
- " <transition to='approval' />" +
- " </start-state>" +
- " <task-node name='approval' end-tasks='true'>" +
- " <task name='approve' description='Review order'>" +
- " <assignment pooled-actors='reviewers' />" +
- " </task>" +
- " <transition name='approve' to='process'>" +
- " <action class='"+Buzz.class.getName()+"' />" +
- " </transition>" +
- " <transition name='cancel' to='cancelled'/>" +
- " </task-node>" +
- " <state name='process' />" +
- " <state name='cancelled' />" +
- "</process-definition>"
- );
-
- jbpmContext = createJbpmContext();
-
- jbpmContext.deployProcessDefinition(processDefinition);
- ProcessInstance processInstance = jbpmContext.newProcessInstance("endtasksprocess");
-
- processInstance = saveAndReload(processInstance);
-
- processInstance.signal();
- assertEquals("approval", processInstance.getRootToken().getNode().getName());
-
- processInstance = saveAndReload(processInstance);
-
- processInstance.signal("cancel");
- assertEquals("cancelled", processInstance.getRootToken().getNode().getName());
-
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- jbpmContext.close();
- }
-
- public void _testCancel()
- {
- Deployment procDefDeployment = new SimpleDeployment(
+ Deployment dep = new SimpleDeployment(
"<process-definition name='endtasksprocess' xmlns='urn:jbpm.org:jpdl-3.2'>" +
" <start-state>" +
" <transition to='approval' />" +
@@ -114,16 +75,23 @@
);
DeploymentService depService = getProcessEngine().getService(DeploymentService.class);
- ProcessDefinition procDef = depService.deploy(procDefDeployment);
-
- Process proc = procDef.newInstance();
- proc.startProcess();
-
- assertEquals("approval", proc.getRootToken().getCurrentNode().getName());
- proc.getRootToken().signal("cancel");
- assertEquals("cancelled", proc.getRootToken().getCurrentNode().getName());
-
- depService.undeploy(procDefDeployment);
+ ProcessDefinition procDef = depService.deploy(dep);
+ try
+ {
+ Process proc = procDef.newInstance();
+
+ Token token = proc.startProcess();
+
+ assertEquals("approval", proc.getRootToken().getCurrentNode().getName());
+
+ token.signal("cancel");
+
+ assertEquals("cancelled", proc.getRootToken().getCurrentNode().getName());
+ }
+ finally
+ {
+ depService.undeploy(dep);
+ }
}
public void _testApprove()
More information about the jbpm-commits
mailing list