[jbpm-commits] JBoss JBPM SVN: r1827 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/runtime and 15 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Aug 5 15:47:06 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-08-05 15:47:06 -0400 (Tue, 05 Aug 2008)
New Revision: 1827
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Token.java
jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/TokenImpl.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
Log:
Move access to inputSet/outputSet to Token
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -53,11 +53,19 @@
* Get the {@link Process}.
* <p/>
* This is the final call to the ProcessBuilder after all elements have been added.
- * @param initProcess If true the builder initializes the process
+ * The {@link Process} is initialized and put in state READY
*/
- Process getProcess(boolean initProcess);
+ Process getProcess();
/**
+ * Get the {@link Process} for inclusion in another.
+ * <p/>
+ * This is the final call to the ProcessBuilder after all elements have been added.
+ * The {@link Process} is not initialized and put in state READY
+ */
+ Process getProcessForInclude();
+
+ /**
* Add a {@link SequenceFlow} with a given name
*/
ProcessBuilder addSequenceFlow(String targetName);
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -25,8 +25,6 @@
import org.jboss.bpm.client.ProcessEngine;
import org.jboss.bpm.model.FlowObject;
-import org.jboss.bpm.model.InputSet;
-import org.jboss.bpm.model.OutputSet;
/**
* The {@link ProcessEngine} invokes the ExecutionHandler on a
@@ -40,6 +38,6 @@
/**
* Execute the associated business logic.
*/
- void execute(Token token, InputSet input, OutputSet output);
+ void execute(Token token);
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Token.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Token.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Token.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -24,7 +24,8 @@
//$Id$
import org.jboss.bpm.model.ConnectingObject;
-import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.SequenceFlow;
/**
@@ -47,11 +48,6 @@
String getTokenID();
/**
- * Get the associated {@link Process}
- */
- Process getProcess();
-
- /**
* Get the associated {@link ExecutionContext}
*/
ExecutionContext getExecutionContext();
@@ -62,6 +58,18 @@
ConnectingObject getFlow();
/**
+ * Get the active {@link InputSet}
+ * @return null if the {@link Activity} does not define one
+ */
+ InputSet getInputSet();
+
+ /**
+ * Get the active {@link OutputSet}
+ * @return null if the {@link Activity} does not define one
+ */
+ OutputSet getOutputSet();
+
+ /**
* Create a schallow copy of this Token.
* <p/>
* The content in the {@link ExecutionContext} will be copied by reference.
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -126,7 +126,7 @@
}
}
- Process proc = procBuilder.getProcess(!isInclude);
+ Process proc = (isInclude ? procBuilder.getProcessForInclude() : procBuilder.getProcess());
return proc;
}
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -51,7 +51,7 @@
procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
msgBuilder.addProperty("foo", "bar");
- Process expProc = procBuilder.getProcess(true);
+ Process expProc = procBuilder.getProcess();
ProcessManager pm = ProcessManager.locateProcessManager();
DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
@@ -72,7 +72,7 @@
MessageBuilder msgBuilder = taskBuilder.addMessage("FooMsg");
msgBuilder.addProperty("foo", "bar");
procBuilder.addSequenceFlow("End").addEndEvent("End");
- Process expProc = procBuilder.getProcess(true);
+ Process expProc = procBuilder.getProcess();
ProcessManager pm = ProcessManager.locateProcessManager();
DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
@@ -96,7 +96,7 @@
TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
taskBuilder.addMessageRef("FooMsg");
procBuilder.addSequenceFlow("End").addEndEvent("End");
- Process expProc = procBuilder.getProcess(true);
+ Process expProc = procBuilder.getProcess();
ProcessManager pm = ProcessManager.locateProcessManager();
DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -78,7 +78,7 @@
}
}
- Process proc = builder.getProcess(true);
+ Process proc = builder.getProcess();
return proc;
}
Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -90,7 +90,7 @@
Element root = doc.getDocumentElement();
diagram = unmarshaller.unmarshal(root, BpmnDiagram.class).getValue();
- ProcessBuilder builder = adaptDiagram(diagram);
+ ProcessBuilder procBuilder = adaptDiagram(diagram);
// Initialize the list of sequence edges
Element poolEl = (Element)DOMUtils.getChildElements(root, "pools").next();
@@ -130,10 +130,10 @@
// Build the activities
for (Activity stpActivity : activities)
{
- adaptActivity(builder, stpActivity);
+ adaptActivity(procBuilder, stpActivity);
}
- Process proc = builder.getProcess(!isInclude);
+ Process proc = (isInclude ? procBuilder.getProcessForInclude() : procBuilder.getProcess());
return proc;
}
Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -70,7 +70,7 @@
}
}
- Process proc = builder.getProcess(true);
+ Process proc = builder.getProcess();
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -78,7 +78,7 @@
MutableFlowScheduler flowScheduler = rtProc.getFlowScheduler();
try
{
- Token initalToken = new TokenImpl(proc, att);
+ Token initalToken = new TokenImpl(att);
StartEvent start = proc.getStartEvent();
flowScheduler.scheduleTuple(new InitialFlow(start), initalToken);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -42,6 +42,7 @@
import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.MutablePropertySupport;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.internal.TokenImpl;
/**
* An activity is a generic term for work that a company or organization performs via business processes. An activity
@@ -52,7 +53,8 @@
* @since 08-Jul-2008
*/
@SuppressWarnings("serial")
-public abstract class ActivityImpl extends FlowObjectImpl implements Activity, MutablePropertySupport, SingleInFlowSetterSupport, SingleOutFlowSetterSupport
+public abstract class ActivityImpl extends FlowObjectImpl implements Activity, MutablePropertySupport,
+ SingleInFlowSetterSupport, SingleOutFlowSetterSupport
{
private String name;
private List<InputSet> inputSets = new ArrayList<InputSet>();
@@ -186,11 +188,12 @@
@Override
public void execute(Token token)
{
- OutputSetImpl outputSet = new OutputSetImpl();
- InputSet inputSet = getActiveInputSet(token);
- executeHandler(token, inputSet, outputSet);
- processOutputSet(token, outputSet);
- postProcessInputSet(token, inputSet);
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setOutputSet(getActiveOutputSet());
+ tokenImpl.setInputSet(getActiveInputSet(token));
+ executeHandler(token);
+ processOutputSet(token);
+ postProcessInputSet(token);
}
/**
@@ -236,55 +239,76 @@
}
/**
+ * Select the active outputSet
+ */
+ protected OutputSet getActiveOutputSet()
+ {
+ OutputSet outputSet = null;
+ if (outputSets.size() > 0)
+ {
+ if (outputSets.size() > 1)
+ throw new NotImplementedException("IORules and multiple outputSets not supported");
+
+ outputSet = new OutputSetImpl();
+ for (Property prop : outputSets.get(0).getProperties())
+ {
+ outputSet.addProperty(prop);
+ }
+ }
+
+ // Create an empty output set
+ if (outputSet == null)
+ outputSet = new OutputSetImpl();
+
+ return outputSet;
+ }
+
+ /**
* Execute external business logic
*/
- protected void executeHandler(Token token, InputSet inputSet, OutputSet outputSet)
+ protected void executeHandler(Token token)
{
// Call the execution handler with the InputSet
ExecutionHandler handler = getExecutionHandler();
if (handler != null)
{
- handler.execute(token, inputSet, outputSet);
+ handler.execute(token);
}
}
/**
* Transfer data from outputSet to Token
*/
- protected void processOutputSet(Token token, OutputSet outputSet)
+ protected void processOutputSet(Token token)
{
ExecutionContext exContext = token.getExecutionContext();
// Add the outputSet properties to the Token
- if (outputSet != null && outputSets.size() > 0)
+ OutputSet outputSet = token.getOutputSet();
+ for (Property prop : getActiveOutputSet().getProperties())
{
- if (outputSets.size() > 1)
- throw new NotImplementedException("IORules and multiple outputSets not supported");
+ Property outProp = outputSet.getProperty(prop.getName());
+ if (outProp == null)
+ throw new IllegalStateException("Cannot find outputSet property '" + prop.getName() + "' in Activity: " + getName());
- OutputSet auxSet = outputSets.get(0);
- for (Property prop : auxSet.getProperties())
- {
- Property outProp = outputSet.getProperty(prop.getName());
- if (outProp == null)
- throw new IllegalStateException("Cannot find required outputSet property '" + prop.getName()
- + "' in Activity: " + getName());
-
- exContext.addAttachment(outProp.getName(), outProp.getValue().getExpressionBody());
- }
+ String name = outProp.getName();
+ String value = outProp.getValue().getExpressionBody();
+ exContext.addAttachment(name, value);
}
}
/**
* Remove the inputSet properties
*/
- protected void postProcessInputSet(Token token, InputSet inputSet)
+ protected void postProcessInputSet(Token token)
{
-// ExecutionContext exContext = token.getExecutionContext();
-// for (Property prop : inputSet.getProperties())
-// {
-// // TODO: define proper scope for token data
-// exContext.removeAttachment(prop.getName());
-// }
+ // InputSet inputSet = token.getInputSet();
+ // ExecutionContext exContext = token.getExecutionContext();
+ // for (Property prop : inputSet.getProperties())
+ // {
+ // // TODO: define proper scope for token data
+ // exContext.removeAttachment(prop.getName());
+ // }
}
public FlowHandler getFlowHandler()
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -37,9 +37,7 @@
import org.jboss.bpm.model.Gate;
import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.GraphicalElement;
-import org.jboss.bpm.model.InputSet;
import org.jboss.bpm.model.NameSupport;
-import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.SequenceFlow.ConditionType;
@@ -146,7 +144,7 @@
ExecutionHandler handler = getExecutionHandler();
if (handler != null)
{
- handler.execute(token, null, null);
+ handler.execute(token);
}
}
@@ -157,7 +155,7 @@
{
handler = new ExecutionHandler()
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
log.debug("Nothing to do in gateway: " + getName());
}
@@ -213,7 +211,7 @@
private Token mergeTokens(Token token)
{
- TokenImpl mergedToken = new TokenImpl(token.getProcess(), null);
+ TokenImpl mergedToken = new TokenImpl(null);
for (Token auxToken : mergeTokens)
mergedToken.mergeToken(auxToken);
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -25,7 +25,9 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import org.jboss.bpm.model.ArtifactInput;
import org.jboss.bpm.model.InputSet;
@@ -42,7 +44,7 @@
public class InputSetImpl extends SupportingElementImpl implements InputSet, MutablePropertySupport
{
private List<ArtifactInput> artInputs = new ArrayList<ArtifactInput>();
- private List<Property> props = new ArrayList<Property>();
+ private Map<String,Property> props = new LinkedHashMap<String,Property>();
public List<ArtifactInput> getArtifactInputs()
{
@@ -56,12 +58,7 @@
public Property getProperty(String name)
{
- for (Property prop : props)
- {
- if (prop.getName().equals(name))
- return prop;
- }
- return null;
+ return props.get(name);
}
public String getPropertyValue(String name)
@@ -72,21 +69,16 @@
public List<Property> getProperties()
{
- return Collections.unmodifiableList(props);
+ return Collections.unmodifiableList(new ArrayList<Property>(props.values()));
}
public List<String> getPropertyNames()
{
- List<String> names = new ArrayList<String>();
- for (Property prop : props)
- {
- names.add(prop.getName());
- }
- return names;
+ return new ArrayList<String>(props.keySet());
}
public void addProperty(Property prop)
{
- props.add(prop);
+ props.put(prop.getName(), prop);
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -26,9 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.ConnectingObject;
-import org.jboss.bpm.model.InputSet;
import org.jboss.bpm.model.IntermediateEvent;
-import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
@@ -91,7 +89,7 @@
{
handler = new ExecutionHandler()
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
log.debug("Nothing to do in event");
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -25,7 +25,9 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import org.jboss.bpm.model.ArtifactOutput;
import org.jboss.bpm.model.OutputSet;
@@ -42,7 +44,7 @@
public class OutputSetImpl extends SupportingElementImpl implements OutputSet, MutablePropertySupport
{
private List<ArtifactOutput> artOutputs = new ArrayList<ArtifactOutput>();
- private List<Property> props = new ArrayList<Property>();
+ private Map<String,Property> props = new LinkedHashMap<String,Property>();
public List<ArtifactOutput> getArtifactOutputs()
{
@@ -56,12 +58,7 @@
public Property getProperty(String name)
{
- for (Property prop : props)
- {
- if (prop.getName().equals(name))
- return prop;
- }
- return null;
+ return props.get(name);
}
public String getPropertyValue(String name)
@@ -72,21 +69,16 @@
public List<Property> getProperties()
{
- return Collections.unmodifiableList(props);
+ return Collections.unmodifiableList(new ArrayList<Property>(props.values()));
}
public List<String> getPropertyNames()
{
- List<String> names = new ArrayList<String>();
- for (Property prop : props)
- {
- names.add(prop.getName());
- }
- return names;
+ return new ArrayList<String>(props.keySet());
}
public void addProperty(Property prop)
{
- props.add(prop);
+ props.put(prop.getName(), prop);
}
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -78,17 +78,21 @@
return this;
}
- public Process getProcess(boolean initProcess)
+ public Process getProcess()
{
if (proc == null)
throw new IllegalStateException("No process has been added");
-
- if (initProcess)
- proc.initialize();
-
+ proc.initialize();
return proc;
}
+ public Process getProcessForInclude()
+ {
+ if (proc == null)
+ throw new IllegalStateException("No process has been added");
+ return proc;
+ }
+
public ProcessBuilder addSequenceFlow(String targetName)
{
if (flowObject instanceof SingleOutFlowSetterSupport)
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -27,11 +27,9 @@
import org.jboss.bpm.client.MessageManager;
import org.jboss.bpm.client.ObjectNameFactory;
import org.jboss.bpm.model.Entity;
-import org.jboss.bpm.model.InputSet;
import org.jboss.bpm.model.Message;
import org.jboss.bpm.model.MessageBuilder;
import org.jboss.bpm.model.MessageBuilderFactory;
-import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.Participant;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Property;
@@ -84,13 +82,13 @@
/**
* Execute external business logic
*/
- protected void executeHandler(Token token, InputSet inputSet, OutputSet outputSet)
+ protected void executeHandler(Token token)
{
// Call the execution handler with the InputSet
ExecutionHandler handler = getExecutionHandler();
if (handler != null)
{
- handler.execute(token, inputSet, outputSet);
+ handler.execute(token);
}
// Assume the the single IORule actually mapps the data
else
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -28,10 +28,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.NotImplementedException;
-import org.jboss.bpm.model.EventDetail;
import org.jboss.bpm.model.ConnectingObject;
-import org.jboss.bpm.model.InputSet;
-import org.jboss.bpm.model.OutputSet;
+import org.jboss.bpm.model.EventDetail;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.StartEvent;
import org.jboss.bpm.runtime.ExecutionHandler;
@@ -78,7 +76,7 @@
{
handler = new ExecutionHandler()
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
log.debug("Nothing to do in start-event");
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/TokenImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/TokenImpl.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/TokenImpl.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -24,6 +24,9 @@
//$Id$
import org.jboss.bpm.model.ConnectingObject;
+import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.OutputSet;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.runtime.Attachments;
import org.jboss.bpm.runtime.BasicAttachments;
@@ -35,11 +38,11 @@
/**
* A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
*
- * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, and gets split into parallel paths, the normal Sequence Flow should be
- * completely definable.
+ * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths,
+ * and gets split into parallel paths, the normal Sequence Flow should be completely definable.
*
- * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of concurrent process instances or the splitting of the Token
- * for parallel processing within a single process instance.
+ * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of
+ * concurrent process instances or the splitting of the Token for parallel processing within a single process instance.
*
* @author Thomas.Diesler at jboss.com
* @since 20-Apr-2007
@@ -47,16 +50,16 @@
public class TokenImpl implements Token
{
private String id;
- private Process proc;
private ConnectingObject flow;
private ExecutionContext context;
+ private InputSet inputSet;
+ private OutputSet outputSet;
/**
* Construct a Token with a given {@link Process} and {@link Attachments}
*/
- public TokenImpl(Process proc, Attachments att)
+ public TokenImpl(Attachments att)
{
- this.proc = proc;
this.context = new InitialContext(att);
this.id = new UID().toString();
}
@@ -66,11 +69,6 @@
return id;
}
- public Process getProcess()
- {
- return proc;
- }
-
public ExecutionContext getExecutionContext()
{
return context;
@@ -86,6 +84,26 @@
this.flow = flow;
}
+ public InputSet getInputSet()
+ {
+ return inputSet;
+ }
+
+ public void setInputSet(InputSet inputSet)
+ {
+ this.inputSet = inputSet;
+ }
+
+ public OutputSet getOutputSet()
+ {
+ return outputSet;
+ }
+
+ public void setOutputSet(OutputSet outputSet)
+ {
+ this.outputSet = outputSet;
+ }
+
/**
* Create a schallow copy of this Token.
* <p/>
@@ -93,7 +111,7 @@
*/
public Token copyToken()
{
- return new TokenImpl(proc, context);
+ return new TokenImpl(context);
}
/**
@@ -115,7 +133,8 @@
public String toString()
{
- return "[proc=" + proc.getID() + ",ctx=" + context + "]";
+ FlowObject fo = (FlowObject)flow.getTargetRef();
+ return "[fo=" + fo + ",ctx=" + context + "]";
}
static class InitialContext extends BasicAttachments implements ExecutionContext
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -254,7 +254,7 @@
addProperty(PROPERTY_PRICE, null, true);
// Get the process
- Process proc = procBuilder.getProcess(true);
+ Process proc = procBuilder.getProcess();
return proc;
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -39,8 +39,10 @@
@SuppressWarnings("serial")
public class AvailabilityHandler implements ExecutionHandler
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
+ InputSet inputSet = token.getInputSet();
+ OutputSet outputSet = token.getOutputSet();
PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
Integer seats = Integer.valueOf(inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_SEATS));
outputSet.addProperty(builder.newProperty(AirticketProcessBuilder.PROPERTY_IS_AVAILABLE, new Boolean(seats < 10).toString()));
Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -39,8 +39,10 @@
@SuppressWarnings("serial")
public class ValidationHandler implements ExecutionHandler
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
+ InputSet inputSet = token.getInputSet();
+ OutputSet outputSet = token.getOutputSet();
String name = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_NAME);
String from = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_FROM);
String to = inputSet.getPropertyValue(AirticketProcessBuilder.PROPERTY_TO);
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -48,7 +48,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").
- addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ addSequenceFlow("end").addEndEvent("end").getProcess();
assertEquals("AnonymousProcess#0", proc.getName());
StartEvent start = proc.getStartEvent();
@@ -68,7 +68,7 @@
{
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
- builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
fail("InvalidProcessException expected");
}
catch (InvalidProcessException ex)
@@ -84,7 +84,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
- addTask("end").getProcess(true);
+ addTask("end").getProcess();
fail("InvalidProcessException expected");
}
catch (InvalidProcessException ex)
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -66,7 +66,7 @@
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -76,7 +76,7 @@
{
ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
- addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
return proc;
}
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -44,7 +44,7 @@
procBuilder.addTask("A", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
try
{
- procBuilder.getProcess(true);
+ procBuilder.getProcess();
fail("A Message for the MessageRef attribute MUST be entered");
}
catch (InvalidProcessException ex)
@@ -60,7 +60,7 @@
procBuilder.addTask("A", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
try
{
- procBuilder.getProcess(true);
+ procBuilder.getProcess();
fail("A Message for the MessageRef attribute MUST be entered");
}
catch (InvalidProcessException ex)
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("gateway").addGateway("gateway", GatewayType.Parallel).
- addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess(true);
+ addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess();
runProcess(proc);
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
- addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ addSequenceFlow("end").addEndEvent("end").getProcess();
runProcess(proc);
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -73,7 +73,7 @@
// Create a Process through the ProcessBuilder
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
- addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess(true);
+ addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess();
runProcess(proc);
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java 2008-08-05 17:18:46 UTC (rev 1826)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java 2008-08-05 19:47:06 UTC (rev 1827)
@@ -23,11 +23,7 @@
// $Id$
-import org.jboss.bpm.model.InputSet;
-import org.jboss.bpm.model.OutputSet;
-import org.jboss.bpm.model.Property;
-import org.jboss.bpm.model.PropertyBuilder;
-import org.jboss.bpm.model.PropertyBuilderFactory;
+import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.Token;
@@ -40,10 +36,9 @@
@SuppressWarnings("serial")
public class TaskA implements ExecutionHandler
{
- public void execute(Token token, InputSet inputSet, OutputSet outputSet)
+ public void execute(Token token)
{
- PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
- Property prop = builder.newProperty("SomeString", "Task: TaskA");
- outputSet.addProperty(prop);
+ ExecutionContext exContext = token.getExecutionContext();
+ exContext.addAttachment("SomeString", "Task: TaskA");
}
}
More information about the jbpm-commits
mailing list