[jbpm-commits] JBoss JBPM SVN: r1877 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 16 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Aug 12 10:30:23 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-08-12 10:30:22 -0400 (Tue, 12 Aug 2008)
New Revision: 1877
Added:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/TokenExecutor.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn_diagram
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn_diagram
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram
Removed:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Executable.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowScheduler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/MutableFlowScheduler.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowSchedulerImpl.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/cts-specification.txt
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn_diagram
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn_diagram
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn_diagram
jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/
Modified:
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngine.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java
jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/RuntimeProcess.java
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/test/AbstractAPITestCase.java
jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.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/client/internal/ProcessManagerImpl.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/EndEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.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/IntermediateEventImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/RuntimeProcessImpl.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/testsuite/src/test/java/org/jboss/bpm/cts/engine/EngineShutdownTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelSplitTest.java
jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
Log:
Every Token is a task handled by the TokenExecutor
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -49,19 +49,11 @@
}
/**
- * Get the ProcessEngine
- */
- public ProcessEngine getProcessEngine()
- {
- return ProcessEngineLocator.locateProcessEngine();
- }
-
- /**
* Locate the ExecutionManager
*/
public static ExecutionManager locateExecutionManager()
{
- ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine engine = ProcessEngine.locateProcessEngine();
return engine.getExecutionManager();
}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -55,19 +55,11 @@
private Set<MessageListener> messageListeners = new HashSet<MessageListener>();
/**
- * Get the ProcessEngine
- */
- public ProcessEngine getProcessEngine()
- {
- return ProcessEngineLocator.locateProcessEngine();
- }
-
- /**
* Locate the MessageManager
*/
public static MessageManager locateMessageManager()
{
- ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine engine = ProcessEngine.locateProcessEngine();
return engine.getMessageManager();
}
@@ -94,7 +86,7 @@
*/
public void sendMessage(ObjectName procID, String targetName, Message msg)
{
- ProcessManager pm = getProcessEngine().getProcessManager();
+ ProcessManager pm = ProcessManager.locateProcessManager();
Process proc = pm.getProcessByID(procID);
FlowObject target = proc.getFlowObject(targetName);
if (target == null)
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngine.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngine.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngine.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -21,7 +21,16 @@
*/
package org.jboss.bpm.client;
+import java.net.URL;
+import org.jboss.bpm.BPMException;
+import org.jboss.bpm.client.internal.EmbeddedBeansDeployer;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.util.KernelLocator;
+import org.jboss.kernel.spi.registry.KernelRegistryEntry;
+import org.jboss.kernel.spi.registry.KernelRegistryEntryNotFoundException;
+
+
// $Id$
/**
@@ -54,6 +63,49 @@
}
/**
+ * Locate the ProcessEngine instance shared by all clients.
+ *
+ * @return The configured instance of a process engine
+ */
+ @SuppressWarnings("deprecation")
+ public static ProcessEngine locateProcessEngine()
+ {
+ KernelRegistryEntry entry = null;
+ Kernel kernel = KernelLocator.getKernel();
+ if (kernel == null)
+ {
+ deployEngineConfiguration();
+ kernel = KernelLocator.getKernel();
+ entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
+ }
+ else
+ {
+ try
+ {
+ entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
+ }
+ catch (KernelRegistryEntryNotFoundException ex)
+ {
+ deployEngineConfiguration();
+ entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
+ }
+ }
+
+ ProcessEngine engine = (ProcessEngine)entry.getTarget();
+ return engine;
+ }
+
+ private static void deployEngineConfiguration()
+ {
+ String config = ProcessEngine.JBPM_ENGINE_CONFIG;
+ URL url = Thread.currentThread().getContextClassLoader().getResource(config);
+ if (url == null)
+ throw new BPMException("Cannot find resource: " + config);
+
+ new EmbeddedBeansDeployer().deploy(url);
+ }
+
+ /**
* Prepare the engine for shutdown. During shutdown the creation of new processes is disallowed.
*/
public void prepareForShutdown()
Deleted: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.client;
-
-// $Id$
-
-import java.net.URL;
-
-import org.jboss.bpm.BPMException;
-import org.jboss.bpm.client.internal.EmbeddedBeansDeployer;
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.plugins.util.KernelLocator;
-import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-import org.jboss.kernel.spi.registry.KernelRegistryEntryNotFoundException;
-
-/**
- * The ProcessEngineLocator is the main entry point for all client operations. It locates the process engine instance shared by all clients.
- *
- * @author thomas.diesler at jboss.com
- * @since 18-Jun-2008
- */
-public abstract class ProcessEngineLocator
-{
- // Hide the constructor
- private ProcessEngineLocator()
- {
- }
-
- /**
- * Locate the ProcessEngine instance shared by all clients.
- *
- * @return The configured instance of a process engine
- */
- @SuppressWarnings("deprecation")
- public static ProcessEngine locateProcessEngine()
- {
- KernelRegistryEntry entry = null;
- Kernel kernel = KernelLocator.getKernel();
- if (kernel == null)
- {
- deployEngineConfiguration();
- kernel = KernelLocator.getKernel();
- entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
- }
- else
- {
- try
- {
- entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
- }
- catch (KernelRegistryEntryNotFoundException ex)
- {
- deployEngineConfiguration();
- entry = kernel.getRegistry().getEntry(ProcessEngine.BEAN_NAME);
- }
- }
-
- ProcessEngine engine = (ProcessEngine)entry.getTarget();
- return engine;
- }
-
- private static void deployEngineConfiguration()
- {
- String config = ProcessEngine.JBPM_ENGINE_CONFIG;
- URL url = Thread.currentThread().getContextClassLoader().getResource(config);
- if (url == null)
- throw new BPMException("Cannot find resource: " + config);
-
- new EmbeddedBeansDeployer().deploy(url);
- }
-}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -41,7 +41,7 @@
import org.jboss.bpm.BPMException;
import org.jboss.bpm.EngineShutdownException;
import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.Process.Status;
+import org.jboss.bpm.model.Process.ProcessStatus;
import org.jboss.bpm.runtime.Attachments;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -70,19 +70,11 @@
}
/**
- * Get the ProcessEngine
- */
- public ProcessEngine getProcessEngine()
- {
- return ProcessEngineLocator.locateProcessEngine();
- }
-
- /**
* Locate the ProcessManager
*/
public static ProcessManager locateProcessManager()
{
- ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine engine = ProcessEngine.locateProcessEngine();
return engine.getProcessManager();
}
@@ -91,7 +83,7 @@
*/
public final Process createProcess(String pXML)
{
- if (getProcessEngine().isPrepareForShutdown())
+ if (ProcessEngine.locateProcessEngine().isPrepareForShutdown())
throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
String nsURI = getNamespaceURI(new ByteArrayInputStream(pXML.getBytes()));
@@ -105,7 +97,7 @@
*/
public final Process createProcess(URL pURL) throws IOException
{
- if (getProcessEngine().isPrepareForShutdown())
+ if (ProcessEngine.locateProcessEngine().isPrepareForShutdown())
throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
String nsURI = getNamespaceURI(pURL.openStream());
@@ -129,14 +121,14 @@
* @param status The optional process status
* @return An empty set if the process cannot be found
*/
- public Set<Process> getProcesses(String name, Process.Status status)
+ public Set<Process> getProcesses(String name, Process.ProcessStatus status)
{
Set<Process> procSet = new HashSet<Process>();
for (Process aux : procs)
{
if (aux.getName().equals(name))
{
- if (status == null || aux.getStatus() == status)
+ if (status == null || aux.getProcessStatus() == status)
procSet.add(aux);
}
}
@@ -168,9 +160,9 @@
}
/**
- * Remove a Process This is not part of the API.
+ * Destroy a Process.
*/
- protected void removeProcess(Process proc)
+ public void destroyProcess(Process proc)
{
procs.remove(proc);
}
@@ -209,7 +201,7 @@
* was aborted this method throws the causing RuntimeException if avaialable.
*
*/
- public abstract Status waitForEnd(ObjectName procID, long timeout);
+ public abstract ProcessStatus waitForEnd(ObjectName procID, long timeout);
/**
* Get the handler for the dialect with the given namespace URI
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -49,20 +49,12 @@
// The map of registered signal listeners
private Map<String, Set<SignalListener>> signalListeners = new HashMap<String, Set<SignalListener>>();
- /**
- * Get the ProcessEngine
- */
- public ProcessEngine getProcessEngine()
- {
- return ProcessEngineLocator.locateProcessEngine();
- }
-
/**
* Locate the SignalManager
*/
public static SignalManager locateSignalManager()
{
- ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine engine = ProcessEngine.locateProcessEngine();
return engine.getSignalManager();
}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/MessageBuilderFactory.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,7 +23,7 @@
//$Id$
-import org.jboss.bpm.client.ProcessEngineLocator;
+import org.jboss.bpm.client.ProcessEngine;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
@@ -51,7 +51,7 @@
public static MessageBuilderFactory newInstance()
{
// Make sure the engine is bootstrapped
- ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (MessageBuilderFactory)entry.getTarget();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -48,7 +48,7 @@
/**
* Defines the status a {@link Process} can be in
*/
- enum Status
+ enum ProcessStatus
{
None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
};
@@ -61,7 +61,7 @@
/**
* Get the process state
*/
- Status getStatus();
+ ProcessStatus getProcessStatus();
/**
* Get the list of flow objects
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,7 +23,7 @@
//$Id$
-import org.jboss.bpm.client.ProcessEngineLocator;
+import org.jboss.bpm.client.ProcessEngine;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
@@ -51,7 +51,7 @@
public static ProcessBuilderFactory newInstance()
{
// Make sure the engine is bootstrapped
- ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (ProcessBuilderFactory)entry.getTarget();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertyBuilderFactory.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,7 +23,7 @@
//$Id$
-import org.jboss.bpm.client.ProcessEngineLocator;
+import org.jboss.bpm.client.ProcessEngine;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.util.KernelLocator;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
@@ -51,7 +51,7 @@
public static PropertyBuilderFactory newInstance()
{
// Make sure the engine is bootstrapped
- ProcessEngineLocator.locateProcessEngine();
+ ProcessEngine.locateProcessEngine();
Kernel kernel = KernelLocator.getKernel();
KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
return (PropertyBuilderFactory)entry.getTarget();
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Signal.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -46,8 +46,7 @@
ENTER_GATEWAY, EXIT_GATEWAY,
ENTER_PROCESS, EXIT_PROCESS,
ENTER_SUB_PROCESS, EXIT_SUB_PROCESS,
- ENTER_TASK, EXIT_TASK, TASK_TRIGGER,
- USER_SIGNAL
+ ENTER_TASK, EXIT_TASK, TASK_TRIGGER
}
private SignalType type;
Deleted: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Executable.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Executable.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Executable.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.runtime;
-
-import org.jboss.bpm.model.FlowObject;
-
-//$Id$
-
-/**
- * Marks Flow Objects as executable.
- *
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public interface Executable
-{
- /**
- * Engine calls this to execute the {@link FlowObject}
- */
- void execute(Token token);
-}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -40,8 +40,8 @@
* Execute the the FlowHandler.
* <p/>
* The FlowHandler will add the active outgoing {@link SequenceFlow}s to
- * the the {@link FlowScheduler} for the {@link ProcessEngine} to execute.
+ * the the {@link TokenExecutor} for the {@link ProcessEngine} to execute.
*/
- void execute(FlowScheduler scheduler, Token token);
+ void execute(TokenExecutor scheduler, Token token);
}
\ No newline at end of file
Deleted: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowScheduler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowScheduler.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowScheduler.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.runtime;
-
-//$Id$
-
-import org.jboss.bpm.model.ConnectingObject;
-
-/**
- * The {@link FlowHandler} invokes the FlowScheduler to schedule {@link Token}s
- * together with their associated {@link ConnectingObject}.
- *
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface FlowScheduler
-{
- /**
- * Start a given {@link Token} along a {@link ConnectingObject}.
- */
- void startToken(ConnectingObject flow, Token token);
-
- /**
- * Continue a given {@link Token} along a {@link ConnectingObject}.
- */
- void continueToken(ConnectingObject flow, Token token);
-}
Deleted: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/MutableFlowScheduler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/MutableFlowScheduler.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/MutableFlowScheduler.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,44 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.runtime;
-
-//$Id$
-
-
-/**
- * The {@link FlowScheduler} that can be manipulated.
- *
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface MutableFlowScheduler extends FlowScheduler
-{
- /**
- * Peek the head {@link Token}
- */
- Token peekHeadTuple();
-
- /**
- * Remove the head {@link Token}
- */
- Token removeHeadTuple();
-}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/RuntimeProcess.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/RuntimeProcess.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/RuntimeProcess.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -40,7 +40,7 @@
Process getProcess();
/**
- * Get the {@link FlowScheduler} for this {@link Process}
+ * Get the {@link TokenExecutor} for this {@link Process}
*/
- FlowScheduler getFlowScheduler();
+ TokenExecutor getTokenExecutor();
}
\ 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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Token.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -43,7 +43,17 @@
*/
public interface Token
{
+ public enum TokenStatus
+ {
+ Created, Started, Stoped, Destroyed, Suspended
+ }
+
/**
+ * Get the token status
+ */
+ TokenStatus getTokenStatus();
+
+ /**
* Get the unique token identity
*/
String getTokenID();
Copied: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/TokenExecutor.java (from rev 1867, jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowScheduler.java)
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/TokenExecutor.java (rev 0)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/TokenExecutor.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.runtime;
+
+//$Id$
+
+import java.util.Set;
+
+import org.jboss.bpm.model.ConnectingObject;
+import org.jboss.bpm.model.SequenceFlow;
+
+/**
+ * The {@link FlowHandler} invokes the TokenExecutor to move {@link Token}s
+ * along the {@link SequenceFlow}s in the {@link Process}.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface TokenExecutor
+{
+ /**
+ * Get the set of active tokens
+ */
+ Set<Token> getActiveTokens();
+
+ /**
+ * True if there are active tokens
+ */
+ boolean hasActiveTokens();
+
+ /**
+ * Create a {@link Token} with an initial flow
+ */
+ void create(Token token, ConnectingObject flow);
+
+ /**
+ * Start a {@link Token}
+ */
+ void start(Token token);
+
+ /**
+ * Stop a {@link Token}
+ */
+ void stop(Token token);
+
+ /**
+ * Destroy a {@link Token}
+ */
+ void destroy(Token token);
+
+ /**
+ * Suspend a {@link Token}
+ */
+ String suspend(Token token);
+
+ /**
+ * Activate a {@link Token}
+ */
+ Token activate(String tokenID);
+
+ /**
+ * Move a given {@link Token} along a given flow.
+ */
+ void move(Token token, ConnectingObject flow);
+}
Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -73,6 +73,8 @@
{
log.debug("tearDown: " + getName());
undeployBeans(getBeansConfig());
+ //ProcessManager pm = ProcessManager.locateProcessManager();
+ //System.out.println("XXX " + pm.getProcesses());
super.tearDown();
}
@@ -113,7 +115,6 @@
public void catchSignal(Signal signal)
{
signals.add(signal);
- log.debug("catchSignal: " + signal);
}
public List<Signal> getSignals()
Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -37,14 +37,17 @@
*/
public class ProcessIncludeTest extends DefaultEngineTestCase
{
+
public void testInclude() throws Exception
{
ProcessManager pm = ProcessManager.locateProcessManager();
Process proc = pm.createProcess(getResourceURL("include/proc-api10.xml"));
-
+
ReceiveTask recTask = (ReceiveTask)proc.getFlowObject("A");
Message msg = recTask.getMessageRef();
assertEquals("FooMsg", msg.getName());
assertEquals("bar", msg.getPropertyValue("foo"));
+
+ pm.destroyProcess(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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -28,25 +28,19 @@
import org.jboss.bpm.InvalidProcessException;
import org.jboss.bpm.client.ExecutionManager;
import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.model.ConnectingObject;
-import org.jboss.bpm.model.FlowObject;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.StartEvent;
-import org.jboss.bpm.model.Process.Status;
+import org.jboss.bpm.model.Process.ProcessStatus;
import org.jboss.bpm.model.Signal.SignalType;
-import org.jboss.bpm.model.internal.FlowSchedulerImpl;
import org.jboss.bpm.model.internal.ProcessImpl;
import org.jboss.bpm.model.internal.RuntimeProcessImpl;
import org.jboss.bpm.model.internal.SequenceFlowImpl;
+import org.jboss.bpm.model.internal.TokenExecutorImpl;
import org.jboss.bpm.runtime.Attachments;
-import org.jboss.bpm.runtime.Executable;
-import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.HandlerSupport;
-import org.jboss.bpm.runtime.MutableFlowScheduler;
import org.jboss.bpm.runtime.RuntimeProcess;
-import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.internal.TokenImpl;
/**
@@ -63,92 +57,33 @@
@Override
public void startProcess(Process proc, Attachments att)
{
- ((ProcessImpl)proc).setStatus(Status.Active);
+ ((ProcessImpl)proc).setProcessStatus(ProcessStatus.Active);
+
+ SignalManager signalManager = SignalManager.locateSignalManager();
+ signalManager.throwSignal(proc.getName(), new Signal(proc.getName(), SignalType.ENTER_PROCESS));
- RuntimeProcessImpl rtProc = new RuntimeProcessImpl(proc);
- final ProcessRunner runner = new ProcessRunner(rtProc, att);
- FlowSchedulerImpl.StartCallback callback = new FlowSchedulerImpl.StartCallback()
+ final RuntimeProcessImpl rtProc = new RuntimeProcessImpl(proc);
+ final RunnableProcess runner = new RunnableProcess(rtProc, att);
+ TokenExecutorImpl.StartCallback callback = new TokenExecutorImpl.StartCallback()
{
public void start(Token token)
{
new Thread(runner).start();
}
};
- FlowSchedulerImpl flowScheduler = new FlowSchedulerImpl(callback);
- rtProc.setScheduler(flowScheduler);
+ TokenExecutor scheduler = new TokenExecutorImpl(rtProc, callback);
+ rtProc.setTokenExecutor(scheduler);
addRuntimeProcess(rtProc);
StartEvent start = getStartEvent(proc);
if (start != null)
{
- Token initalToken = new TokenImpl(att);
- flowScheduler.startToken(new InitialFlow(start), initalToken);
+ TokenImpl token = new TokenImpl(att);
+ scheduler.create(token, new InitialFlow(start));
+ scheduler.start(token);
}
}
- private void startProcessInternal(RuntimeProcess rtProc, Attachments att)
- {
- ProcessImpl proc = (ProcessImpl)rtProc.getProcess();
- String procName = proc.getName();
-
- SignalManager signalManager = getProcessEngine().getSignalManager();
- signalManager.throwSignal(procName, new Signal(procName, SignalType.ENTER_PROCESS));
- MutableFlowScheduler flowScheduler = (MutableFlowScheduler)rtProc.getFlowScheduler();
-
- try
- {
- while (flowScheduler.peekHeadTuple() != null)
- {
- // Peek the head flow
- Token token = flowScheduler.peekHeadTuple();
- ConnectingObject flow = token.getFlow();
-
- // Get the target and its handlers
- FlowObject target = (FlowObject)flow.getTargetRef();
- Executable executable = getExecutable(target);
- SignalHandler sigHandler = getSignalHandler(target);
- FlowHandler flowHandler = getFlowHandler(target);
-
- // Execute the FlowObject's ExecutionHandler
- try
- {
- signalManager.throwSignal(procName, sigHandler.getEnterSignal());
- executable.execute(token);
- }
- finally
- {
- signalManager.throwSignal(procName, sigHandler.getExitSignal());
- }
-
- // Remove the head tuple
- flowScheduler.removeHeadTuple();
-
- // Transfer the token to the FlowHandler
- flowHandler.execute(flowScheduler, token);
- }
- proc.setStatus(Status.Completed);
- }
- catch (RuntimeException rte)
- {
- log.error("Process aborted: " + proc, rte);
- proc.setStatus(Status.Aborted);
- proc.setRuntimeException(rte);
- }
- finally
- {
- signalManager.throwSignal(procName, new Signal(procName, Signal.SignalType.EXIT_PROCESS));
- removeRuntimeProcess(proc.getID());
- }
- }
-
- private Executable getExecutable(FlowObject target)
- {
- if (target instanceof Executable == false)
- throw new IllegalStateException("Flow Object is not executable: " + target);
-
- return (Executable)target;
- }
-
private StartEvent getStartEvent(Process proc)
{
StartEvent start = null;
@@ -164,35 +99,8 @@
return start;
}
- private SignalHandler getSignalHandler(FlowObject target)
- {
- HandlerSupport handlerSupport = getHandlerSupport(target);
- SignalHandler handler = handlerSupport.getSignalHandler();
- if (handler == null)
- throw new IllegalStateException("Cannot obtain signal handler from: " + target);
-
- return handler;
- }
-
- private FlowHandler getFlowHandler(FlowObject target)
- {
- HandlerSupport handlerSupport = getHandlerSupport(target);
- FlowHandler handler = handlerSupport.getFlowHandler();
- if (handler == null)
- throw new IllegalStateException("Cannot obtain flow handler from: " + target);
-
- return handler;
- }
-
- private HandlerSupport getHandlerSupport(FlowObject fo)
- {
- if (fo instanceof HandlerSupport == false)
- throw new IllegalStateException("Flow object does not implement handler support: " + fo);
- return (HandlerSupport)fo;
- }
-
/**
- * The initial flow 'to' the StartEvent
+ * The initial flow to the StartEvent
*/
@SuppressWarnings("serial")
class InitialFlow extends SequenceFlowImpl
@@ -203,13 +111,13 @@
setTargetRef(start);
}
}
-
- class ProcessRunner implements Runnable
+
+ class RunnableProcess implements Runnable
{
RuntimeProcess rtProc;
Attachments att;
- public ProcessRunner(RuntimeProcess rtProc, Attachments att)
+ public RunnableProcess(RuntimeProcess rtProc, Attachments att)
{
this.rtProc = rtProc;
this.att = att;
@@ -217,7 +125,33 @@
public void run()
{
- startProcessInternal(rtProc, att);
+ TokenExecutor scheduler = rtProc.getTokenExecutor();
+ ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
+ String procName = procImpl.getName();
+
+ ProcessStatus procStatus = procImpl.getProcessStatus();
+ try
+ {
+ while (procStatus == ProcessStatus.Active && scheduler.hasActiveTokens())
+ {
+ Thread.sleep(100);
+ procStatus = procImpl.getProcessStatus();
+ }
+ }
+ catch (InterruptedException ex)
+ {
+ log.error(ex);
+ }
+ finally
+ {
+ SignalManager signalManager = SignalManager.locateSignalManager();
+ signalManager.throwSignal(procName, new Signal(procName, Signal.SignalType.EXIT_PROCESS));
+
+ if (procStatus == ProcessStatus.Active)
+ procImpl.setProcessStatus(ProcessStatus.Completed);
+
+ removeRuntimeProcess(procImpl.getID());
+ }
}
}
}
\ No newline at end of file
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -37,7 +37,7 @@
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.internal.ProcessImpl;
-import org.jboss.bpm.model.Process.Status;
+import org.jboss.bpm.model.Process.ProcessStatus;
import org.jboss.bpm.runtime.Attachments;
/**
@@ -68,16 +68,9 @@
super.registerProcess(proc);
}
- // Provide public access
- @Override
- public void removeProcess(Process proc)
- {
- super.removeProcess(proc);
- }
-
public ObjectName startProcess(String name, Attachments att)
{
- Set<Process> procSet = getProcesses(name, Status.Ready);
+ Set<Process> procSet = getProcesses(name, ProcessStatus.Ready);
if (procSet.size() == 0)
throw new IllegalStateException("Cannot obtain process with name: " + name);
if (procSet.size() > 1)
@@ -93,19 +86,19 @@
registerProcess(proc.copyProcess());
// Start the process in a thread
- ExecutionManager exm = getProcessEngine().getExecutionManager();
+ ExecutionManager exm = ExecutionManager.locateExecutionManager();
exm.startProcess(proc, att);
return proc.getID();
}
@Override
- public Status waitForEnd(ObjectName procID, long timeout)
+ public ProcessStatus waitForEnd(ObjectName procID, long timeout)
{
- ProcessImpl proc = (ProcessImpl)getProcessByID(procID);
- Status status = proc.getStatus();
+ ProcessImpl procImpl = (ProcessImpl)getProcessByID(procID);
+ ProcessStatus status = procImpl.getProcessStatus();
- if (status == Status.None || status == Status.Ready)
+ if (status == ProcessStatus.None || status == ProcessStatus.Ready)
throw new IllegalStateException("Cannot wait for process in state: " + status);
// Wait a little for the process to end
@@ -116,14 +109,14 @@
{
while (forever || now < until)
{
- status = proc.getStatus();
- if (status == Status.Cancelled || status == Status.Completed)
+ status = procImpl.getProcessStatus();
+ if (status == ProcessStatus.Cancelled || status == ProcessStatus.Completed)
{
return status;
}
- else if (status == Status.Aborted)
+ else if (status == ProcessStatus.Aborted)
{
- RuntimeException rte = proc.getRuntimeException();
+ RuntimeException rte = procImpl.getRuntimeException();
if (rte == null)
return status;
else
@@ -140,7 +133,7 @@
finally
{
// Remove the process
- removeProcess(proc);
+ destroyProcess(procImpl);
}
// Throw timeout exception if it took too long
Added: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java (rev 0)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,153 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.client.internal;
+
+// $Id$
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.ConnectingObject;
+import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.Process.ProcessStatus;
+import org.jboss.bpm.model.internal.FlowObjectImpl;
+import org.jboss.bpm.model.internal.ProcessImpl;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.HandlerSupport;
+import org.jboss.bpm.runtime.RuntimeProcess;
+import org.jboss.bpm.runtime.SignalHandler;
+import org.jboss.bpm.runtime.TokenExecutor;
+import org.jboss.bpm.runtime.Token.TokenStatus;
+import org.jboss.bpm.runtime.internal.TokenImpl;
+
+/**
+ * The RunnableToken implements the logic to move the token from one FlowObject to the next.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public class RunnableToken implements Runnable
+{
+ // provide logging
+ private static final Log log = LogFactory.getLog(RunnableToken.class);
+
+ private RuntimeProcess rtProc;
+ private TokenImpl token;
+
+ public RunnableToken(RuntimeProcess rtProc, TokenImpl token)
+ {
+ this.rtProc = rtProc;
+ this.token = token;
+ }
+
+ public TokenImpl getToken()
+ {
+ return token;
+ }
+
+ public void run()
+ {
+ SignalManager signalManager = SignalManager.locateSignalManager();
+ TokenExecutor scheduler = rtProc.getTokenExecutor();
+ ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
+
+ token.setTokenStatus(TokenStatus.Started);
+ try
+ {
+ ConnectingObject flow = token.getFlow();
+ if (flow == null)
+ throw new IllegalStateException("Cannot obtain initial flow");
+
+ TokenStatus tokStatus = token.getTokenStatus();
+ ProcessStatus procStatus = procImpl.getProcessStatus();
+ while (procStatus == ProcessStatus.Active && tokStatus == TokenStatus.Started)
+ {
+ flow = token.getFlow();
+
+ // Get the target and its handlers
+ FlowObjectImpl target = (FlowObjectImpl)flow.getTargetRef();
+ SignalHandler sigHandler = getSignalHandler(target);
+ FlowHandler flowHandler = getFlowHandler(target);
+
+ // Synchronize execution of the target and the flow handler
+ synchronized (rtProc)
+ {
+ // Execute the FlowObject
+ try
+ {
+ signalManager.throwSignal(procImpl.getName(), sigHandler.getEnterSignal());
+ target.execute(token);
+ }
+ finally
+ {
+ signalManager.throwSignal(procImpl.getName(), sigHandler.getExitSignal());
+ }
+
+ // Transfer the token to the FlowHandler
+ flowHandler.execute(scheduler, token);
+ }
+
+ tokStatus = token.getTokenStatus();
+ procStatus = procImpl.getProcessStatus();
+
+ // Make sure the next flow is different from the previous one
+ ConnectingObject nextFlow = token.getFlow();
+ if (tokStatus == TokenStatus.Started && nextFlow == flow)
+ throw new IllegalStateException("Flow handler did not move the token: " + target);
+ }
+ }
+ catch (RuntimeException rte)
+ {
+ log.error("Process aborted: " + procImpl, rte);
+ token.setTokenStatus(TokenStatus.Destroyed);
+ procImpl.setProcessStatus(ProcessStatus.Aborted);
+ procImpl.setRuntimeException(rte);
+ }
+ }
+
+ private SignalHandler getSignalHandler(FlowObject target)
+ {
+ HandlerSupport handlerSupport = getHandlerSupport(target);
+ SignalHandler handler = handlerSupport.getSignalHandler();
+ if (handler == null)
+ throw new IllegalStateException("Cannot obtain signal handler from: " + target);
+
+ return handler;
+ }
+
+ private FlowHandler getFlowHandler(FlowObject target)
+ {
+ HandlerSupport handlerSupport = getHandlerSupport(target);
+ FlowHandler handler = handlerSupport.getFlowHandler();
+ if (handler == null)
+ throw new IllegalStateException("Cannot obtain flow handler from: " + target);
+
+ return handler;
+ }
+
+ private HandlerSupport getHandlerSupport(FlowObject fo)
+ {
+ if (fo instanceof HandlerSupport == false)
+ throw new IllegalStateException("Flow object does not implement handler support: " + fo);
+ return (HandlerSupport)fo;
+ }
+}
\ No newline at end of file
Property changes on: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -39,7 +39,7 @@
import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.MutablePropertySupport;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.internal.TokenImpl;
@@ -307,9 +307,9 @@
{
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
- scheduler.continueToken(outFlow, token);
+ scheduler.move(token, outFlow);
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -32,7 +32,7 @@
import org.jboss.bpm.model.EventDetail;
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
@@ -84,9 +84,10 @@
{
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
log.debug("End reached in: " + getName());
+ scheduler.destroy(token);
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -24,7 +24,9 @@
//$Id$
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -32,12 +34,13 @@
import org.jboss.bpm.model.ExclusiveGateway;
import org.jboss.bpm.model.Expression;
import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.GraphicalElement;
import org.jboss.bpm.model.SequenceFlow;
import org.jboss.bpm.model.Expression.ExpressionLanguage;
import org.jboss.bpm.model.SequenceFlow.ConditionType;
import org.jboss.bpm.runtime.ExecutionContext;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.runtime.Attachments.Key;
import org.mvel.MVEL;
@@ -55,6 +58,9 @@
// provide logging
private static final Log log = LogFactory.getLog(ExclusiveGatewayImpl.class);
+ // Sync management
+ private Set<ConnectingObject> outstandingFlows;
+
public ExclusiveGatewayImpl(String name)
{
super(name);
@@ -72,6 +78,19 @@
}
@Override
+ public void execute(Token token)
+ {
+ super.execute(token);
+
+ // Multiple incomingFlows must be synchronized
+ if (outstandingFlows == null)
+ outstandingFlows = new HashSet<ConnectingObject>(inFlows);
+
+ ConnectingObject flow = token.getFlow();
+ outstandingFlows.remove(flow);
+ }
+
+ @Override
public FlowHandler getFlowHandler()
{
FlowHandler handler = super.getFlowHandler();
@@ -79,26 +98,29 @@
{
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
+ GraphicalElement sourceRef = token.getFlow().getSourceRef();
+
// Schedule the first token that arrives
- if (receivedTokens.size() == 1)
+ if (token == receivedTokens.get(0))
{
+ log.debug("Propagate token comming from: " + sourceRef);
Gate selectedGate = getSelectedGate(token);
SequenceFlow outFlow = selectedGate.getOutgoingSequenceFlow();
- scheduler.continueToken(outFlow, token);
+ scheduler.move(token, outFlow);
}
// Ignore all other tokens
else
{
- log.debug("Ignore token: " + token);
+ log.debug("Ignore token comming from: " + sourceRef);
+ scheduler.destroy(token);
}
// Reset the gateway
- if (expectedFlows.size() == 0)
+ if (outstandingFlows.size() == 0)
{
- expectedFlows.addAll(inFlows);
- receivedTokens.clear();
+ resetGateway();
}
}
};
@@ -106,6 +128,13 @@
return handler;
}
+ @Override
+ protected void resetGateway()
+ {
+ super.resetGateway();
+ outstandingFlows = null;
+ }
+
// Get a single selected gate which' condition evaluates to TRUE
// Fall back to the default gate if there is one
// Choke if there is no selected gate
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -33,7 +33,6 @@
import org.jboss.bpm.model.Process;
import org.jboss.bpm.model.SingleInFlowSupport;
import org.jboss.bpm.model.SingleOutFlowSupport;
-import org.jboss.bpm.runtime.Executable;
import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
import org.jboss.bpm.runtime.SignalHandler;
@@ -48,7 +47,7 @@
* @since 08-Jul-2008
*/
@SuppressWarnings("serial")
-public abstract class FlowObjectImpl extends GraphicalElementImpl implements FlowObject, HandlerSetterSupport, Executable
+public abstract class FlowObjectImpl extends GraphicalElementImpl implements FlowObject, HandlerSetterSupport
{
private String name;
private Process proc;
Deleted: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowSchedulerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowSchedulerImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowSchedulerImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,83 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal;
-
-//$Id$
-
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import org.jboss.bpm.model.ConnectingObject;
-import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.MutableFlowScheduler;
-import org.jboss.bpm.runtime.Token;
-import org.jboss.bpm.runtime.internal.TokenImpl;
-
-/**
- * The {@link FlowHandler} invokes the FlowScheduler to schedule
- * {@link ConnectingObject} objects together with their associated {@link Token}.
- *
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public class FlowSchedulerImpl implements MutableFlowScheduler
-{
- private Queue<Token> flowQueue = new ConcurrentLinkedQueue<Token>();
- private StartCallback startCallback;
-
- public FlowSchedulerImpl(StartCallback startCallback)
- {
- this.startCallback = startCallback;
- }
-
- public void startToken(ConnectingObject flow, Token token)
- {
- TokenImpl tokenImpl = (TokenImpl)token;
- tokenImpl.setFlow(flow);
- flowQueue.add(tokenImpl);
-
- if (startCallback != null)
- startCallback.start(token);
- }
-
- public void continueToken(ConnectingObject flow, Token token)
- {
- TokenImpl tokenImpl = (TokenImpl)token;
- tokenImpl.setFlow(flow);
- flowQueue.add(tokenImpl);
- }
-
- public Token peekHeadTuple()
- {
- return flowQueue.peek();
- }
-
- public Token removeHeadTuple()
- {
- return flowQueue.remove();
- }
-
- public interface StartCallback
- {
- void start(Token token);
- }
-}
\ No newline at end of file
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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -29,8 +29,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.Gate;
import org.jboss.bpm.model.Gateway;
@@ -51,9 +49,6 @@
@SuppressWarnings("serial")
public abstract class GatewayImpl extends FlowObjectImpl implements Gateway, MultipleInFlowSetterSupport
{
- // provide logging
- private static final Log log = LogFactory.getLog(GatewayImpl.class);
-
// The list of incomming flows
protected List<ConnectingObject> inFlows = new ArrayList<ConnectingObject>();
// The list of outgoing gates
@@ -127,7 +122,8 @@
// Call execution handler
ExecutionHandler exHandler = getExecutionHandler();
- exHandler.execute(token);
+ if (exHandler != null)
+ exHandler.execute(token);
// Remove the flow from the expected list
expectedFlows.remove(flow);
@@ -136,22 +132,13 @@
receivedTokens.add(token);
}
- public ExecutionHandler getExecutionHandler()
+ // Reset the gateway
+ protected void resetGateway()
{
- ExecutionHandler handler = super.getExecutionHandler();
- if (handler == null)
- {
- handler = new ExecutionHandler()
- {
- public void execute(Token token)
- {
- log.debug("Nothing to do in gateway: " + getName());
- }
- };
- }
- return handler;
+ expectedFlows = null;
+ receivedTokens = null;
}
-
+
public SignalHandler getSignalHandler()
{
SignalHandler handler = super.getSignalHandler();
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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,16 +23,13 @@
//$Id$
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.IntermediateEvent;
import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.TokenExecutor;
/**
* An Intermediate Event is an Event that occurs after a Process has been started. It will affect the Flow of the Process, but will not start or (directly) terminate
@@ -45,9 +42,6 @@
@SuppressWarnings("serial")
public class IntermediateEventImpl extends EventImpl implements IntermediateEvent, SingleInFlowSetterSupport, SingleOutFlowSetterSupport
{
- // provide logging
- private static final Log log = LogFactory.getLog(IntermediateEventImpl.class);
-
private ConnectingObject inFlow;
private ConnectingObject outFlow;
@@ -76,22 +70,6 @@
this.outFlow = flow;
}
- public ExecutionHandler getExecutionHandler()
- {
- ExecutionHandler handler = super.getExecutionHandler();
- if (handler == null)
- {
- handler = new ExecutionHandler()
- {
- public void execute(Token token)
- {
- log.debug("Nothing to do in event");
- }
- };
- }
- return handler;
- }
-
public FlowHandler getFlowHandler()
{
FlowHandler handler = super.getFlowHandler();
@@ -99,9 +77,9 @@
{
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
- scheduler.continueToken(getOutFlow(), token);
+ scheduler.move(token, getOutFlow());
}
};
}
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -30,19 +30,18 @@
import org.apache.commons.logging.LogFactory;
import org.jboss.bpm.model.ConnectingObject;
import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.Gateway;
import org.jboss.bpm.model.GraphicalElement;
import org.jboss.bpm.model.NameSupport;
import org.jboss.bpm.model.ParallelGateway;
import org.jboss.bpm.model.SequenceFlow;
-import org.jboss.bpm.runtime.ExecutionHandler;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.internal.TokenImpl;
-
/**
- * Parallel Gateway is required when two or more Activities need to be executed in parallel.
+ * Parallel Gateway is required when two or more Activities need to be executed in parallel.
*
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
@@ -66,10 +65,12 @@
{
return GatewayType.Parallel;
}
-
+
@Override
public void execute(Token token)
{
+ super.execute(token);
+
// Multiple incomingFlows must be synchronized
if (getInFlows().size() > 1)
{
@@ -85,38 +86,38 @@
if (outstandingFlows.size() > 0)
mergeTokens.add(token);
}
+ }
- // Call the execution handler with the InputSet
- ExecutionHandler handler = getExecutionHandler();
- if (handler != null)
- {
- handler.execute(token);
- }
- }
-
public FlowHandler getFlowHandler()
{
FlowHandler handler = super.getFlowHandler();
- if (handler == null && getGates().size() == 1)
+ if (handler == null)
{
- Gate onlyGate = getGates().iterator().next();
- final SequenceFlow outFlow = onlyGate.getOutgoingSequenceFlow();
+ final Gateway gateway = this;
+
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
- if (getInFlows().size() > 1)
+ // In any case the in token is not propagated
+ scheduler.suspend(token);
+
+ // If the gateway has a single incomming flow the out token is the in token
+ Token outToken = (getInFlows().size() == 1 ? token : null);
+
+ // The out token is the merge of all in tokens
+ if (outToken == null)
{
+ // If there are no more outstanding flows
if (outstandingFlows.size() == 0)
{
- Token mergedToken = mergeTokens(token);
- scheduler.continueToken(outFlow, mergedToken);
- outstandingFlows = null;
- mergeTokens = null;
+ // Merge the tokens together and submit the merged tokens
+ outToken = mergeTokens(token);
}
- else
+
+ // There are outstanding flows
+ else if (outstandingFlows.size() > 0)
{
- // Log the list of outstanding flows
Set<String> sourceNames = new HashSet<String>();
for (ConnectingObject flow : outstandingFlows)
{
@@ -126,33 +127,45 @@
else
sourceNames.add(sourceRef.getID().getCanonicalName());
}
- log.debug("Waiting for " + outstandingFlows + " in gateway: " + sourceNames);
+ log.debug("Waiting for [" + sourceNames + "] in gateway: " + gateway);
}
}
- else
+
+ // Schedule the out token
+ if (outToken != null)
{
- scheduler.continueToken(outFlow, token);
+ // Start a copy of the out token for every gate
+ for(Gate gate : getGates())
+ {
+ SequenceFlow outFlow = gate.getOutgoingSequenceFlow();
+ Token copyToken = outToken.copyToken();
+ scheduler.create(copyToken, outFlow);
+ scheduler.start(copyToken);
+ }
+
+ // Destroy the received tokens
+ for (Token auxToken : receivedTokens)
+ {
+ scheduler.destroy(auxToken);
+ }
+
+ // Reset the gateway
+ resetGateway();
}
}
};
}
- else if (handler == null && getGates().size() > 1)
- {
- handler = new FlowHandler()
- {
- public void execute(FlowScheduler scheduler, Token token)
- {
- for(Gate gate : getGates())
- {
- SequenceFlow outFlow = gate.getOutgoingSequenceFlow();
- scheduler.startToken(outFlow, token.copyToken());
- }
- }
- };
- }
return handler;
}
+ @Override
+ protected void resetGateway()
+ {
+ super.resetGateway();
+ outstandingFlows = null;
+ mergeTokens = null;
+ }
+
private Token mergeTokens(Token token)
{
TokenImpl mergedToken = new TokenImpl(null);
@@ -161,7 +174,7 @@
return mergedToken;
}
-
+
public String toString()
{
return "ParallelGateway[" + getName() + "]";
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -67,7 +67,7 @@
// The process properties
private List<Property> props = new ArrayList<Property>();
// the status of the process
- private Status status = Status.None;
+ private ProcessStatus status = ProcessStatus.None;
// The possible exception that caused the process to abort
private RuntimeException runtimeException;
@@ -160,7 +160,7 @@
public List<FlowObject> getFlowObjects()
{
- if (status == Status.None)
+ if (status == ProcessStatus.None)
return flowObjects;
return Collections.unmodifiableList(flowObjects);
@@ -197,8 +197,8 @@
{
ProcessManagerImpl pm = (ProcessManagerImpl)ProcessManager.locateProcessManager();
- if (getStatus() != Status.Ready)
- throw new IllegalStateException("Cannot start process in state: " + getStatus());
+ if (getProcessStatus() != ProcessStatus.Ready)
+ throw new IllegalStateException("Cannot start process in state: " + getProcessStatus());
// Register the process if needed
if (pm.getProcesses(getName(), null).size() == 0)
@@ -254,12 +254,12 @@
return retFlowObjects;
}
- public Status getStatus()
+ public ProcessStatus getProcessStatus()
{
return status;
}
- public void setStatus(Status status)
+ public void setProcessStatus(ProcessStatus status)
{
this.status = status;
}
@@ -289,7 +289,7 @@
public void initialize()
{
- if (status != Status.None)
+ if (status != ProcessStatus.None)
throw new IllegalStateException("Cannot initialize process in state: " + status);
// Initialize the Element
@@ -314,7 +314,7 @@
((FlowObjectImpl)aux).initialize(this);
}
- status = Status.Ready;
+ status = ProcessStatus.Ready;
}
public String toString()
Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/RuntimeProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/RuntimeProcessImpl.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/RuntimeProcessImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -24,7 +24,7 @@
//$Id$
import org.jboss.bpm.model.Process;
-import org.jboss.bpm.runtime.FlowScheduler;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.RuntimeProcess;
/**
@@ -36,7 +36,7 @@
public class RuntimeProcessImpl implements RuntimeProcess
{
private Process process;
- private FlowScheduler scheduler;
+ private TokenExecutor tokenExecutor;
public RuntimeProcessImpl(Process process)
{
@@ -48,13 +48,13 @@
return process;
}
- public FlowScheduler getFlowScheduler()
+ public TokenExecutor getTokenExecutor()
{
- return scheduler;
+ return tokenExecutor;
}
- public void setScheduler(FlowScheduler scheduler)
+ public void setTokenExecutor(TokenExecutor tokenExecutor)
{
- this.scheduler = scheduler;
+ this.tokenExecutor = tokenExecutor;
}
}
\ No newline at end of file
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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -38,12 +38,12 @@
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.SignalEventDetail;
import org.jboss.bpm.model.StartEvent;
-import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.model.Process.ProcessStatus;
import org.jboss.bpm.runtime.FlowHandler;
-import org.jboss.bpm.runtime.FlowScheduler;
import org.jboss.bpm.runtime.RuntimeProcess;
import org.jboss.bpm.runtime.SignalHandler;
import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.TokenExecutor;
import org.jboss.bpm.runtime.internal.TokenImpl;
/**
@@ -95,22 +95,6 @@
this.outFlow = flow;
}
- public ExecutionHandler getExecutionHandler()
- {
- ExecutionHandler handler = super.getExecutionHandler();
- if (handler == null)
- {
- handler = new ExecutionHandler()
- {
- public void execute(Token token)
- {
- log.debug("Nothing to do in start-event");
- }
- };
- }
- return handler;
- }
-
public FlowHandler getFlowHandler()
{
FlowHandler handler = super.getFlowHandler();
@@ -118,9 +102,9 @@
{
handler = new FlowHandler()
{
- public void execute(FlowScheduler scheduler, Token token)
+ public void execute(TokenExecutor scheduler, Token token)
{
- scheduler.continueToken(outFlow, token);
+ scheduler.move(token, outFlow);
}
};
}
@@ -149,7 +133,7 @@
}
@Override
- protected void initialize(Process proc)
+ protected void initialize(final Process proc)
{
super.initialize(proc);
@@ -163,16 +147,20 @@
{
if (startSignal.getType() == signal.getType() && startSignal.getMessage().equals(signal.getMessage()))
{
- log.debug("Start process from signal: " + signal);
-
- Token initalToken = new TokenImpl(null);
- SequenceFlowImpl seqFlow = new SequenceFlowImpl(start.getName());
- seqFlow.setTargetRef(start);
-
- ExecutionManager exManager = ExecutionManager.locateExecutionManager();
- RuntimeProcess rtProc = exManager.getRuntimeProcess(start.getProcess().getID());
- FlowScheduler flowScheduler = rtProc.getFlowScheduler();
- flowScheduler.startToken(seqFlow, initalToken);
+ if (proc.getProcessStatus() == ProcessStatus.Active)
+ {
+ log.debug("Start process from signal: " + signal);
+ ExecutionManager exManager = ExecutionManager.locateExecutionManager();
+ RuntimeProcess rtProc = exManager.getRuntimeProcess(start.getProcess().getID());
+ TokenExecutor scheduler = rtProc.getTokenExecutor();
+ TokenImpl token = new TokenImpl(null);
+ scheduler.create(token, getOutFlow());
+ scheduler.start(token);
+ }
+ else
+ {
+ log.debug("Ignore start signal for process: " + proc);
+ }
}
}
};
Copied: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java (from rev 1867, jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowSchedulerImpl.java)
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java (rev 0)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TokenExecutorImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,145 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal;
+
+//$Id$
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.client.internal.RunnableToken;
+import org.jboss.bpm.model.ConnectingObject;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Process.ProcessStatus;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.RuntimeProcess;
+import org.jboss.bpm.runtime.Token;
+import org.jboss.bpm.runtime.TokenExecutor;
+import org.jboss.bpm.runtime.Token.TokenStatus;
+import org.jboss.bpm.runtime.internal.TokenImpl;
+
+/**
+ * The {@link FlowHandler} invokes the TokenExecutor to schedule
+ * {@link ConnectingObject} objects together with their associated {@link Token}.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class TokenExecutorImpl implements TokenExecutor
+{
+ public interface StartCallback
+ {
+ void start(Token token);
+ }
+
+ private RuntimeProcess rtProc;
+ private ExecutorService executor = Executors.newCachedThreadPool();
+ private Map<String, RunnableToken> activeTokens = new HashMap<String, RunnableToken>();
+ private StartCallback startCallback;
+
+ public TokenExecutorImpl(RuntimeProcess rtProc, StartCallback startCallback)
+ {
+ this.rtProc = rtProc;
+ this.startCallback = startCallback;
+ }
+
+ public Set<Token> getActiveTokens()
+ {
+ Set<Token> tokens = new HashSet<Token>();
+ for (RunnableToken rt : activeTokens.values())
+ tokens.add(rt.getToken());
+
+ return Collections.unmodifiableSet(tokens);
+ }
+
+ public boolean hasActiveTokens()
+ {
+ return activeTokens.size() > 0;
+ }
+
+ public void create(Token token, ConnectingObject initialFlow)
+ {
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setFlow(initialFlow);
+ RunnableToken rtToken = new RunnableToken(rtProc, tokenImpl);
+ activeTokens.put(token.getTokenID(), rtToken);
+ }
+
+ public void start(Token token)
+ {
+ Process proc = rtProc.getProcess();
+ if (proc.getProcessStatus() != ProcessStatus.Active)
+ throw new IllegalStateException("Cannot start token to process in state: " + proc.getProcessStatus());
+
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setTokenStatus(TokenStatus.Started);
+
+ if (startCallback != null)
+ {
+ startCallback.start(token);
+ startCallback = null;
+ }
+
+ RunnableToken rtToken = activeTokens.get(token.getTokenID());
+ executor.submit(rtToken);
+ }
+
+ public void move(Token token, ConnectingObject flow)
+ {
+ if (flow == null)
+ throw new IllegalArgumentException("Flow cannot be null");
+
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setFlow(flow);
+ }
+
+ public void stop(Token token)
+ {
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setTokenStatus(TokenStatus.Stoped);
+ }
+
+ public void destroy(Token token)
+ {
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setTokenStatus(TokenStatus.Destroyed);
+ activeTokens.remove(token.getTokenID());
+ }
+
+ public String suspend(Token token)
+ {
+ TokenImpl tokenImpl = (TokenImpl)token;
+ tokenImpl.setTokenStatus(TokenStatus.Suspended);
+ return token.getTokenID();
+ }
+
+ public Token activate(String tokenID)
+ {
+ throw new NotImplementedException();
+ }
+}
\ No newline at end of file
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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/runtime/internal/TokenImpl.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -53,6 +53,7 @@
private ExecutionContext context;
private InputSet inputSet;
private OutputSet outputSet;
+ private TokenStatus status;
/**
* Construct a Token with given {@link Attachments}
@@ -61,6 +62,7 @@
{
this.context = new InitialContext(att);
this.id = new UID().toString();
+ this.status = TokenStatus.Created;
}
public String getTokenID()
@@ -68,6 +70,16 @@
return id;
}
+ public TokenStatus getTokenStatus()
+ {
+ return status;
+ }
+
+ public void setTokenStatus(TokenStatus status)
+ {
+ this.status = status;
+ }
+
public ExecutionContext getExecutionContext()
{
return context;
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/engine/EngineShutdownTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/engine/EngineShutdownTest.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/engine/EngineShutdownTest.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -27,7 +27,6 @@
import org.jboss.bpm.EngineShutdownException;
import org.jboss.bpm.client.ProcessEngine;
-import org.jboss.bpm.client.ProcessEngineLocator;
import org.jboss.bpm.client.ProcessManager;
import org.jboss.bpm.test.DefaultEngineTestCase;
@@ -48,7 +47,7 @@
{
super.setUp();
jpdlURL = getResourceURL("cts/engine/basic-engine-" + getDialect() + ".xml");
- engine = ProcessEngineLocator.locateProcessEngine();
+ engine = ProcessEngine.locateProcessEngine();
engine.cancelShutdown();
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/exclusive/ExclusiveMergeTest.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,6 +23,7 @@
// $Id$
+import org.jboss.bpm.client.SignalListener;
import org.jboss.bpm.client.SignalManager;
import org.jboss.bpm.model.EventBuilder;
import org.jboss.bpm.model.Process;
@@ -31,23 +32,28 @@
import org.jboss.bpm.model.Signal;
import org.jboss.bpm.model.Gateway.GatewayType;
import org.jboss.bpm.model.Signal.SignalType;
+import org.jboss.bpm.runtime.ExecutionContext;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.Token;
import org.jboss.bpm.test.DefaultEngineTestCase;
/**
- * Exclusive data-based gateway that has multiple incoming sequence flows.
- * The first token arriving from one of the incoming sequence flows proceeds along the outgoing sequence flow.
- * All other token are ignored until a token has arrived from each incoming sequence flow.
+ * Exclusive data-based gateway that has multiple incoming sequence flows. The first token arriving from one of the
+ * incoming sequence flows proceeds along the outgoing sequence flow. All other token are ignored until a token has
+ * arrived from each incoming sequence flow.
*
* @author thomas.diesler at jboss.com
* @since 06-Aug-2008
*/
public class ExclusiveMergeTest extends DefaultEngineTestCase
{
+ private SignalManager signalManager;
+
@Override
protected void setUp() throws Exception
{
super.setUp();
- SignalManager signalManager = SignalManager.locateSignalManager();
+ signalManager = SignalManager.locateSignalManager();
signalManager.addSignalListener(getName(), this);
}
@@ -56,27 +62,108 @@
Process proc = getProcess();
proc.startProcess();
- SignalManager signalManager = SignalManager.locateSignalManager();
- Signal signal = new Signal(getName(), SignalType.START_TRIGGER, "A");
- signalManager.throwSignal(proc.getName(), signal);
+ // Add a signal listener that sends the other start trigger signal
+ Signal startTrigger = new Signal(getName(), SignalType.START_TRIGGER, "B");
+ signalManager.addSignalListener(getName(), new MergeListener(getName(), startTrigger));
+ // Send start trigger signal
+ signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.START_TRIGGER, "A"));
+
+ // Wait for the process to end
proc.waitForEnd();
+
+ // Verify the result
+ assertEquals("TaskA", TaskC.taskValue);
}
public void testGateB() throws Exception
{
+ Process proc = getProcess();
+ proc.startProcess();
+
+ // Add a signal listener that sends the other start trigger signal
+ Signal startTrigger = new Signal(getName(), SignalType.START_TRIGGER, "A");
+ signalManager.addSignalListener(getName(), new MergeListener(getName(), startTrigger));
+
+ // Send start trigger signal
+ signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.START_TRIGGER, "B"));
+
+ // Wait for the process to end
+ proc.waitForEnd();
+
+ // Verify the result
+ assertEquals("TaskB", TaskC.taskValue);
}
private Process getProcess()
{
ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
EventBuilder eventBuilder = procBuilder.addProcess(getName()).addStartEvent("StartA");
- eventBuilder.addSignalTrigger(SignalType.START_TRIGGER, "A").addSequenceFlow("Merge");
+ eventBuilder.addSignalTrigger(SignalType.START_TRIGGER, "A").addSequenceFlow("TaskA");
+ procBuilder.addTask("TaskA").addExecutionHandler(TaskA.class).addSequenceFlow("Merge");
eventBuilder = procBuilder.addStartEvent("StartB");
- eventBuilder.addSignalTrigger(SignalType.START_TRIGGER, "B").addSequenceFlow("Merge");
- procBuilder.addGateway("Merge", GatewayType.Exclusive);
- procBuilder.addSequenceFlow("End").addEndEvent("End");
+ eventBuilder.addSignalTrigger(SignalType.START_TRIGGER, "B").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskB").addExecutionHandler(TaskB.class).addSequenceFlow("Merge");
+ procBuilder.addGateway("Merge", GatewayType.Exclusive).addSequenceFlow("TaskC");
+ procBuilder.addTask("TaskC").addExecutionHandler(TaskC.class).addSequenceFlow("End");
+ procBuilder.addEndEvent("End");
Process proc = procBuilder.getProcess();
return proc;
}
+
+ public static class MergeListener implements SignalListener
+ {
+ private String fromRef;
+ private Signal nextSignal;
+
+ public MergeListener(String fromRef, Signal nextSignal)
+ {
+ this.fromRef = fromRef;
+ this.nextSignal = nextSignal;
+ }
+
+ public void catchSignal(Signal signal)
+ {
+ if (signal.getType() == SignalType.ENTER_GATEWAY)
+ {
+ if (nextSignal != null)
+ {
+ SignalManager signalManager = SignalManager.locateSignalManager();
+ signalManager.throwSignal(fromRef, nextSignal);
+ nextSignal = null;
+ }
+ }
+ }
+ }
+
+ @SuppressWarnings("serial")
+ public static class TaskA implements ExecutionHandler
+ {
+ public void execute(Token token)
+ {
+ ExecutionContext exContext = token.getExecutionContext();
+ exContext.addAttachment("taskValue", "TaskA");
+ }
+ }
+
+ @SuppressWarnings("serial")
+ public static class TaskB implements ExecutionHandler
+ {
+ public void execute(Token token)
+ {
+ ExecutionContext exContext = token.getExecutionContext();
+ exContext.addAttachment("taskValue", "TaskB");
+ }
+ }
+
+ @SuppressWarnings("serial")
+ public static class TaskC implements ExecutionHandler
+ {
+ public static Object taskValue;
+ public void execute(Token token)
+ {
+ ExecutionContext exContext = token.getExecutionContext();
+ taskValue = exContext.getAttachment("taskValue");
+ }
+ }
}
Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelSplitTest.java 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelSplitTest.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -23,7 +23,15 @@
// $Id$
+import java.util.List;
+
import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.Gateway.GatewayType;
+import org.jboss.bpm.model.Signal.SignalType;
import org.jboss.bpm.test.DefaultEngineTestCase;
/**
@@ -43,8 +51,25 @@
signalManager.addSignalListener(getName(), this);
}
- public void testGateA() throws Exception
+ public void testParallelSplit() throws Exception
{
- System.out.println("FIXME: ParallelSplitTest");
+ Process proc = getProcess();
+ proc.startProcess();
+ proc.waitForEnd();
+
+ // Validate received signals
+ List<Signal> signals = getSignals(SignalType.ENTER_END_EVENT);
+ assertEquals(2, signals.size());
+ String fromRefs = signals.get(0).getFromRef() + signals.get(1).getFromRef();
+ assertTrue("Unexpected from refs: " + fromRefs, fromRefs.contains("EndA"));
+ assertTrue("Unexpected from refs: " + fromRefs, fromRefs.contains("EndB"));
}
+
+ private Process getProcess()
+ {
+ ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+ Process proc = procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("Split").addGateway("Split", GatewayType.Parallel).
+ addSequenceFlow("EndA").addSequenceFlow("EndB").addEndEvent("EndA").addEndEvent("EndB").getProcess();
+ return 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-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java 2008-08-12 14:30:22 UTC (rev 1877)
@@ -61,7 +61,7 @@
// Create a Process through the ProcessManager
ProcessManager pm = ProcessManager.locateProcessManager();
Process proc = pm.createProcess(jpdlURL);
-
+
runProcess(proc);
}
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/cts-specification.txt
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/cts-specification.txt 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/cts-specification.txt 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,8 +0,0 @@
-# $Id$
-
-BPM Compatibility Test Specification
-
-1. Process
-
-
-
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_l8nUEWOQEd2mS_8SFTXMeQ" iD="_l8nUEGOQEd2mS_8SFTXMeQ">
- <pools xmi:type="bpmn:Pool" xmi:id="_l8n7IWOQEd2mS_8SFTXMeQ" iD="_l8n7IGOQEd2mS_8SFTXMeQ" name="Pool">
- <vertices xmi:type="bpmn:Activity" xmi:id="_qdNxcWOQEd2mS_8SFTXMeQ" iD="_qdNxcGOQEd2mS_8SFTXMeQ" outgoingEdges="_uRhwkWOQEd2mS_8SFTXMeQ" name="StartA" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_rWe7wWOQEd2mS_8SFTXMeQ" iD="_rWe7wGOQEd2mS_8SFTXMeQ" outgoingEdges="_u0nPgWOQEd2mS_8SFTXMeQ" name="StartB" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_sa_FsWOQEd2mS_8SFTXMeQ" iD="_sa_FsGOQEd2mS_8SFTXMeQ" outgoingEdges="_w0h40WOQEd2mS_8SFTXMeQ" incomingEdges="_uRhwkWOQEd2mS_8SFTXMeQ _u0nPgWOQEd2mS_8SFTXMeQ" activityType="GatewayDataBasedExclusive"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_tWoOkWOQEd2mS_8SFTXMeQ" iD="_tWoOkGOQEd2mS_8SFTXMeQ" incomingEdges="_w0h40WOQEd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_uRhwkWOQEd2mS_8SFTXMeQ" iD="_uRhwkGOQEd2mS_8SFTXMeQ" source="_qdNxcWOQEd2mS_8SFTXMeQ" target="_sa_FsWOQEd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_u0nPgWOQEd2mS_8SFTXMeQ" iD="_u0nPgGOQEd2mS_8SFTXMeQ" source="_rWe7wWOQEd2mS_8SFTXMeQ" target="_sa_FsWOQEd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_w0h40WOQEd2mS_8SFTXMeQ" iD="_w0h40GOQEd2mS_8SFTXMeQ" source="_sa_FsWOQEd2mS_8SFTXMeQ" target="_tWoOkWOQEd2mS_8SFTXMeQ"/>
- </pools>
-</bpmn:BpmnDiagram>
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn_diagram 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_l8nUEmOQEd2mS_8SFTXMeQ" type="Bpmn" name="exclusive-join.bpmn_diagram" measurementUnit="Pixel">
- <children xmi:type="notation:Node" xmi:id="_l8pJQGOQEd2mS_8SFTXMeQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_l8pwUGOQEd2mS_8SFTXMeQ" type="4008"/>
- <children xmi:type="notation:Node" xmi:id="_l8qXYGOQEd2mS_8SFTXMeQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_qdOYgGOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_qdO_kGOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_qdOYgWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_qdOYgmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_qdOYg2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_qdOYhGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="exclusive-join.bpmn#_qdNxcWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qdOYhWOQEd2mS_8SFTXMeQ" x="60" y="24"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_rWgJ4GOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_rWgw8GOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_rWgJ4WOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_rWgJ4mOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_rWgJ42OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_rWgJ5GOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="exclusive-join.bpmn#_rWe7wWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rWgJ5WOQEd2mS_8SFTXMeQ" x="60" y="132"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_sa_swGOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_sbAT0WOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_sa_swWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_sa_swmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_sa_sw2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_sa_sxGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="exclusive-join.bpmn#_sa_FsWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbAT0GOQEd2mS_8SFTXMeQ" x="134" y="74"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_tWpcsGOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_tWqDwGOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_tWpcsWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_tWpcsmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_tWpcs2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_tWpctGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="exclusive-join.bpmn#_tWoOkWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWpctWOQEd2mS_8SFTXMeQ" x="252" y="84"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_l8qXYWOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_l8qXYmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_l8qXY2OQEd2mS_8SFTXMeQ"/>
- </children>
- <styles xmi:type="notation:FontStyle" xmi:id="_l8pJQWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8pJQmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_l8pJQ2OQEd2mS_8SFTXMeQ" fillColor="16771304"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_l8pJRGOQEd2mS_8SFTXMeQ" lineColor="11119017"/>
- <element xmi:type="bpmn:Pool" href="exclusive-join.bpmn#_l8n7IWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8q-cGOQEd2mS_8SFTXMeQ" x="16" y="16" width="369" height="200"/>
- </children>
- <styles xmi:type="notation:PageStyle" xmi:id="_l8nUE2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:GuideStyle" xmi:id="_l8nUFGOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8nUFWOQEd2mS_8SFTXMeQ"/>
- <element xmi:type="bpmn:BpmnDiagram" href="exclusive-join.bpmn#_l8nUEWOQEd2mS_8SFTXMeQ"/>
- <edges xmi:type="notation:Edge" xmi:id="_uRi-sGOQEd2mS_8SFTXMeQ" type="3001" source="_qdOYgGOQEd2mS_8SFTXMeQ" target="_sa_swGOQEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_uRjlwmOQEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_uRkM0GOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_uRkM0WOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_uRkM0mOQEd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_uRi-sWOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_uRi-smOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_uRjlwGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="exclusive-join.bpmn#_uRhwkWOQEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uRjlwWOQEd2mS_8SFTXMeQ" points="[15, 6, -92, -54]$[122, 50, 15, -10]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_u0odoGOQEd2mS_8SFTXMeQ" type="3001" source="_rWgJ4GOQEd2mS_8SFTXMeQ" target="_sa_swGOQEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_u0pEsGOQEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_u0pEsWOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_u0pEsmOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_u0pEs2OQEd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_u0odoWOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_u0odomOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_u0odo2OQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="exclusive-join.bpmn#_u0nPgWOQEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u0odpGOQEd2mS_8SFTXMeQ" points="[15, -7, -86, 27]$[112, -48, 11, -14]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_w0jG8GOQEd2mS_8SFTXMeQ" type="3001" source="_sa_swGOQEd2mS_8SFTXMeQ" target="_tWpcsGOQEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_w0juAGOQEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_w0juAWOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_w0juAmOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_w0juA2OQEd2mS_8SFTXMeQ" y="40"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_w0jG8WOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_w0jG8mOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_w0jG82OQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="exclusive-join.bpmn#_w0h40WOQEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w0jG9GOQEd2mS_8SFTXMeQ" points="[23, 1, -85, 1]$[109, 15, 1, 15]"/>
- </edges>
-</notation:Diagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_l8nUEWOQEd2mS_8SFTXMeQ" iD="_l8nUEGOQEd2mS_8SFTXMeQ">
+ <pools xmi:type="bpmn:Pool" xmi:id="_l8n7IWOQEd2mS_8SFTXMeQ" iD="_l8n7IGOQEd2mS_8SFTXMeQ" name="Pool">
+ <vertices xmi:type="bpmn:Activity" xmi:id="_qdNxcWOQEd2mS_8SFTXMeQ" iD="_qdNxcGOQEd2mS_8SFTXMeQ" outgoingEdges="_uRhwkWOQEd2mS_8SFTXMeQ" name="StartA" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_rWe7wWOQEd2mS_8SFTXMeQ" iD="_rWe7wGOQEd2mS_8SFTXMeQ" outgoingEdges="_u0nPgWOQEd2mS_8SFTXMeQ" name="StartB" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_sa_FsWOQEd2mS_8SFTXMeQ" iD="_sa_FsGOQEd2mS_8SFTXMeQ" outgoingEdges="_w0h40WOQEd2mS_8SFTXMeQ" incomingEdges="_uRhwkWOQEd2mS_8SFTXMeQ _u0nPgWOQEd2mS_8SFTXMeQ" activityType="GatewayDataBasedExclusive"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_tWoOkWOQEd2mS_8SFTXMeQ" iD="_tWoOkGOQEd2mS_8SFTXMeQ" incomingEdges="_w0h40WOQEd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_uRhwkWOQEd2mS_8SFTXMeQ" iD="_uRhwkGOQEd2mS_8SFTXMeQ" source="_qdNxcWOQEd2mS_8SFTXMeQ" target="_sa_FsWOQEd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_u0nPgWOQEd2mS_8SFTXMeQ" iD="_u0nPgGOQEd2mS_8SFTXMeQ" source="_rWe7wWOQEd2mS_8SFTXMeQ" target="_sa_FsWOQEd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_w0h40WOQEd2mS_8SFTXMeQ" iD="_w0h40GOQEd2mS_8SFTXMeQ" source="_sa_FsWOQEd2mS_8SFTXMeQ" target="_tWoOkWOQEd2mS_8SFTXMeQ"/>
+ </pools>
+</bpmn:BpmnDiagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn_diagram (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-join.bpmn_diagram)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn_diagram (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/exclusive/exclusive-merge.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_l8nUEmOQEd2mS_8SFTXMeQ" type="Bpmn" name="exclusive-merge.bpmn_diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_l8pJQGOQEd2mS_8SFTXMeQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_l8pwUGOQEd2mS_8SFTXMeQ" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_l8qXYGOQEd2mS_8SFTXMeQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_qdOYgGOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_qdO_kGOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qdOYgWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_qdOYgmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_qdOYg2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_qdOYhGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="exclusive-merge.bpmn#_qdNxcWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qdOYhWOQEd2mS_8SFTXMeQ" x="60" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rWgJ4GOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_rWgw8GOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_rWgJ4WOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_rWgJ4mOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_rWgJ42OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_rWgJ5GOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="exclusive-merge.bpmn#_rWe7wWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rWgJ5WOQEd2mS_8SFTXMeQ" x="60" y="132"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sa_swGOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_sbAT0WOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sa_swWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_sa_swmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_sa_sw2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_sa_sxGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="exclusive-merge.bpmn#_sa_FsWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbAT0GOQEd2mS_8SFTXMeQ" x="134" y="74"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tWpcsGOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_tWqDwGOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tWpcsWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_tWpcsmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_tWpcs2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_tWpctGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="exclusive-merge.bpmn#_tWoOkWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWpctWOQEd2mS_8SFTXMeQ" x="252" y="84"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_l8qXYWOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l8qXYmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l8qXY2OQEd2mS_8SFTXMeQ"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_l8pJQWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8pJQmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_l8pJQ2OQEd2mS_8SFTXMeQ" fillColor="16771304"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_l8pJRGOQEd2mS_8SFTXMeQ" lineColor="11119017"/>
+ <element xmi:type="bpmn:Pool" href="exclusive-merge.bpmn#_l8n7IWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8q-cGOQEd2mS_8SFTXMeQ" x="16" y="16" width="369" height="200"/>
+ </children>
+ <styles xmi:type="notation:PageStyle" xmi:id="_l8nUE2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:GuideStyle" xmi:id="_l8nUFGOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8nUFWOQEd2mS_8SFTXMeQ"/>
+ <element xmi:type="bpmn:BpmnDiagram" href="exclusive-merge.bpmn#_l8nUEWOQEd2mS_8SFTXMeQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_uRi-sGOQEd2mS_8SFTXMeQ" type="3001" source="_qdOYgGOQEd2mS_8SFTXMeQ" target="_sa_swGOQEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_uRjlwmOQEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_uRkM0GOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_uRkM0WOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uRkM0mOQEd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_uRi-sWOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uRi-smOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_uRjlwGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="exclusive-merge.bpmn#_uRhwkWOQEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uRjlwWOQEd2mS_8SFTXMeQ" points="[15, 6, -92, -54]$[122, 50, 15, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_u0odoGOQEd2mS_8SFTXMeQ" type="3001" source="_rWgJ4GOQEd2mS_8SFTXMeQ" target="_sa_swGOQEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_u0pEsGOQEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_u0pEsWOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_u0pEsmOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u0pEs2OQEd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_u0odoWOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_u0odomOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_u0odo2OQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="exclusive-merge.bpmn#_u0nPgWOQEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u0odpGOQEd2mS_8SFTXMeQ" points="[15, -7, -86, 27]$[112, -48, 11, -14]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_w0jG8GOQEd2mS_8SFTXMeQ" type="3001" source="_sa_swGOQEd2mS_8SFTXMeQ" target="_tWpcsGOQEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_w0juAGOQEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_w0juAWOQEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_w0juAmOQEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w0juA2OQEd2mS_8SFTXMeQ" y="40"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_w0jG8WOQEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w0jG8mOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_w0jG82OQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="exclusive-merge.bpmn#_w0h40WOQEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w0jG9GOQEd2mS_8SFTXMeQ" points="[23, 1, -85, 1]$[109, 15, 1, 15]"/>
+ </edges>
+</notation:Diagram>
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_l8nUEWOQEd2mS_8SFTXMeQ" iD="_l8nUEGOQEd2mS_8SFTXMeQ">
- <pools xmi:type="bpmn:Pool" xmi:id="_l8n7IWOQEd2mS_8SFTXMeQ" iD="_l8n7IGOQEd2mS_8SFTXMeQ" name="Pool">
- <vertices xmi:type="bpmn:Activity" xmi:id="_qdNxcWOQEd2mS_8SFTXMeQ" iD="_qdNxcGOQEd2mS_8SFTXMeQ" outgoingEdges="_SIYfIWOREd2mS_8SFTXMeQ" name="StartA" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_rWe7wWOQEd2mS_8SFTXMeQ" iD="_rWe7wGOQEd2mS_8SFTXMeQ" outgoingEdges="_Sr7REWOREd2mS_8SFTXMeQ" name="StartB" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_tWoOkWOQEd2mS_8SFTXMeQ" iD="_tWoOkGOQEd2mS_8SFTXMeQ" incomingEdges="_UaiH8WOREd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_ReploWOREd2mS_8SFTXMeQ" iD="_ReploGOREd2mS_8SFTXMeQ" outgoingEdges="_UaiH8WOREd2mS_8SFTXMeQ" incomingEdges="_SIYfIWOREd2mS_8SFTXMeQ _Sr7REWOREd2mS_8SFTXMeQ" activityType="GatewayDataBasedInclusive"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_SIYfIWOREd2mS_8SFTXMeQ" iD="_SIYfIGOREd2mS_8SFTXMeQ" source="_qdNxcWOQEd2mS_8SFTXMeQ" target="_ReploWOREd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_Sr7REWOREd2mS_8SFTXMeQ" iD="_Sr7REGOREd2mS_8SFTXMeQ" source="_rWe7wWOQEd2mS_8SFTXMeQ" target="_ReploWOREd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_UaiH8WOREd2mS_8SFTXMeQ" iD="_UaiH8GOREd2mS_8SFTXMeQ" source="_ReploWOREd2mS_8SFTXMeQ" target="_tWoOkWOQEd2mS_8SFTXMeQ"/>
- </pools>
-</bpmn:BpmnDiagram>
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn_diagram 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_l8nUEmOQEd2mS_8SFTXMeQ" type="Bpmn" name="inclusive-join.bpmn_diagram" measurementUnit="Pixel">
- <children xmi:type="notation:Node" xmi:id="_l8pJQGOQEd2mS_8SFTXMeQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_l8pwUGOQEd2mS_8SFTXMeQ" type="4008"/>
- <children xmi:type="notation:Node" xmi:id="_l8qXYGOQEd2mS_8SFTXMeQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_qdOYgGOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_qdO_kGOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_qdOYgWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_qdOYgmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_qdOYg2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_qdOYhGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="inclusive-join.bpmn#_qdNxcWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qdOYhWOQEd2mS_8SFTXMeQ" x="60" y="24"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_rWgJ4GOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_rWgw8GOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_rWgJ4WOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_rWgJ4mOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_rWgJ42OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_rWgJ5GOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="inclusive-join.bpmn#_rWe7wWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rWgJ5WOQEd2mS_8SFTXMeQ" x="60" y="144"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_tWpcsGOQEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_tWqDwGOQEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_tWpcsWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_tWpcsmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_tWpcs2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_tWpctGOQEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="inclusive-join.bpmn#_tWoOkWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWpctWOQEd2mS_8SFTXMeQ" x="228" y="96"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_ReqMsGOREd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_ReqzwmOREd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_ReqMsWOREd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_ReqMsmOREd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_ReqMs2OREd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_ReqzwGOREd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="inclusive-join.bpmn#_ReploWOREd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ReqzwWOREd2mS_8SFTXMeQ" x="132" y="84"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_l8qXYWOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_l8qXYmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_l8qXY2OQEd2mS_8SFTXMeQ"/>
- </children>
- <styles xmi:type="notation:FontStyle" xmi:id="_l8pJQWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8pJQmOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_l8pJQ2OQEd2mS_8SFTXMeQ" fillColor="16771304"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_l8pJRGOQEd2mS_8SFTXMeQ" lineColor="11119017"/>
- <element xmi:type="bpmn:Pool" href="inclusive-join.bpmn#_l8n7IWOQEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8q-cGOQEd2mS_8SFTXMeQ" x="16" y="16" width="345" height="212"/>
- </children>
- <styles xmi:type="notation:PageStyle" xmi:id="_l8nUE2OQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:GuideStyle" xmi:id="_l8nUFGOQEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8nUFWOQEd2mS_8SFTXMeQ"/>
- <element xmi:type="bpmn:BpmnDiagram" href="inclusive-join.bpmn#_l8nUEWOQEd2mS_8SFTXMeQ"/>
- <edges xmi:type="notation:Edge" xmi:id="_SIZtQGOREd2mS_8SFTXMeQ" type="3001" source="_qdOYgGOQEd2mS_8SFTXMeQ" target="_ReqMsGOREd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_SIaUUGOREd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_SIaUUWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_SIaUUmOREd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_SIaUU2OREd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_SIZtQWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_SIZtQmOREd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_SIZtQ2OREd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="inclusive-join.bpmn#_SIYfIWOREd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SIZtRGOREd2mS_8SFTXMeQ" points="[15, 9, -74, -59]$[112, 66, 23, -2]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_Sr9GQGOREd2mS_8SFTXMeQ" type="3001" source="_rWgJ4GOQEd2mS_8SFTXMeQ" target="_ReqMsGOREd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_Sr9tUGOREd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_Sr9tUWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Sr9tUmOREd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Sr9tU2OREd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_Sr9GQWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_Sr9GQmOREd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Sr9GQ2OREd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="inclusive-join.bpmn#_Sr7REWOREd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sr9GRGOREd2mS_8SFTXMeQ" points="[15, -7, -74, 33]$[74, -30, -15, 10]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_UajWEGOREd2mS_8SFTXMeQ" type="3001" source="_ReqMsGOREd2mS_8SFTXMeQ" target="_tWpcsGOQEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_Uaj9IGOREd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_Uaj9IWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Uaj9ImOREd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Uaj9I2OREd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_UajWEWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_UajWEmOREd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_UajWE2OREd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="inclusive-join.bpmn#_UaiH8WOREd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UajWFGOREd2mS_8SFTXMeQ" points="[23, 2, -80, -2]$[118, 2, 15, -2]"/>
- </edges>
-</notation:Diagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_l8nUEWOQEd2mS_8SFTXMeQ" iD="_l8nUEGOQEd2mS_8SFTXMeQ">
+ <pools xmi:type="bpmn:Pool" xmi:id="_l8n7IWOQEd2mS_8SFTXMeQ" iD="_l8n7IGOQEd2mS_8SFTXMeQ" name="Pool">
+ <vertices xmi:type="bpmn:Activity" xmi:id="_qdNxcWOQEd2mS_8SFTXMeQ" iD="_qdNxcGOQEd2mS_8SFTXMeQ" outgoingEdges="_SIYfIWOREd2mS_8SFTXMeQ" name="StartA" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_rWe7wWOQEd2mS_8SFTXMeQ" iD="_rWe7wGOQEd2mS_8SFTXMeQ" outgoingEdges="_Sr7REWOREd2mS_8SFTXMeQ" name="StartB" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_tWoOkWOQEd2mS_8SFTXMeQ" iD="_tWoOkGOQEd2mS_8SFTXMeQ" incomingEdges="_UaiH8WOREd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_ReploWOREd2mS_8SFTXMeQ" iD="_ReploGOREd2mS_8SFTXMeQ" outgoingEdges="_UaiH8WOREd2mS_8SFTXMeQ" incomingEdges="_SIYfIWOREd2mS_8SFTXMeQ _Sr7REWOREd2mS_8SFTXMeQ" activityType="GatewayDataBasedInclusive"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_SIYfIWOREd2mS_8SFTXMeQ" iD="_SIYfIGOREd2mS_8SFTXMeQ" source="_qdNxcWOQEd2mS_8SFTXMeQ" target="_ReploWOREd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_Sr7REWOREd2mS_8SFTXMeQ" iD="_Sr7REGOREd2mS_8SFTXMeQ" source="_rWe7wWOQEd2mS_8SFTXMeQ" target="_ReploWOREd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_UaiH8WOREd2mS_8SFTXMeQ" iD="_UaiH8GOREd2mS_8SFTXMeQ" source="_ReploWOREd2mS_8SFTXMeQ" target="_tWoOkWOQEd2mS_8SFTXMeQ"/>
+ </pools>
+</bpmn:BpmnDiagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn_diagram (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-join.bpmn_diagram)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn_diagram (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/inclusive/inclusive-merge.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_l8nUEmOQEd2mS_8SFTXMeQ" type="Bpmn" name="inclusive-merge.bpmn_diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_l8pJQGOQEd2mS_8SFTXMeQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_l8pwUGOQEd2mS_8SFTXMeQ" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_l8qXYGOQEd2mS_8SFTXMeQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_qdOYgGOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_qdO_kGOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qdOYgWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_qdOYgmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_qdOYg2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_qdOYhGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="inclusive-merge.bpmn#_qdNxcWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qdOYhWOQEd2mS_8SFTXMeQ" x="60" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rWgJ4GOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_rWgw8GOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_rWgJ4WOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_rWgJ4mOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_rWgJ42OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_rWgJ5GOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="inclusive-merge.bpmn#_rWe7wWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rWgJ5WOQEd2mS_8SFTXMeQ" x="60" y="144"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tWpcsGOQEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_tWqDwGOQEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tWpcsWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_tWpcsmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_tWpcs2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_tWpctGOQEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="inclusive-merge.bpmn#_tWoOkWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWpctWOQEd2mS_8SFTXMeQ" x="228" y="96"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ReqMsGOREd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_ReqzwmOREd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ReqMsWOREd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_ReqMsmOREd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_ReqMs2OREd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_ReqzwGOREd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="inclusive-merge.bpmn#_ReploWOREd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ReqzwWOREd2mS_8SFTXMeQ" x="132" y="84"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_l8qXYWOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l8qXYmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l8qXY2OQEd2mS_8SFTXMeQ"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_l8pJQWOQEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8pJQmOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_l8pJQ2OQEd2mS_8SFTXMeQ" fillColor="16771304"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_l8pJRGOQEd2mS_8SFTXMeQ" lineColor="11119017"/>
+ <element xmi:type="bpmn:Pool" href="inclusive-merge.bpmn#_l8n7IWOQEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l8q-cGOQEd2mS_8SFTXMeQ" x="16" y="16" width="345" height="212"/>
+ </children>
+ <styles xmi:type="notation:PageStyle" xmi:id="_l8nUE2OQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:GuideStyle" xmi:id="_l8nUFGOQEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_l8nUFWOQEd2mS_8SFTXMeQ"/>
+ <element xmi:type="bpmn:BpmnDiagram" href="inclusive-merge.bpmn#_l8nUEWOQEd2mS_8SFTXMeQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_SIZtQGOREd2mS_8SFTXMeQ" type="3001" source="_qdOYgGOQEd2mS_8SFTXMeQ" target="_ReqMsGOREd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_SIaUUGOREd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_SIaUUWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_SIaUUmOREd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SIaUU2OREd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_SIZtQWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SIZtQmOREd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_SIZtQ2OREd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="inclusive-merge.bpmn#_SIYfIWOREd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SIZtRGOREd2mS_8SFTXMeQ" points="[15, 9, -74, -59]$[112, 66, 23, -2]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Sr9GQGOREd2mS_8SFTXMeQ" type="3001" source="_rWgJ4GOQEd2mS_8SFTXMeQ" target="_ReqMsGOREd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_Sr9tUGOREd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_Sr9tUWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Sr9tUmOREd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sr9tU2OREd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_Sr9GQWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sr9GQmOREd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Sr9GQ2OREd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="inclusive-merge.bpmn#_Sr7REWOREd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sr9GRGOREd2mS_8SFTXMeQ" points="[15, -7, -74, 33]$[74, -30, -15, 10]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_UajWEGOREd2mS_8SFTXMeQ" type="3001" source="_ReqMsGOREd2mS_8SFTXMeQ" target="_tWpcsGOQEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_Uaj9IGOREd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_Uaj9IWOREd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Uaj9ImOREd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Uaj9I2OREd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_UajWEWOREd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UajWEmOREd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_UajWE2OREd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="inclusive-merge.bpmn#_UaiH8WOREd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UajWFGOREd2mS_8SFTXMeQ" points="[23, 2, -80, -2]$[118, 2, 15, -2]"/>
+ </edges>
+</notation:Diagram>
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_AXFyUWOSEd2mS_8SFTXMeQ" iD="_AXFyUGOSEd2mS_8SFTXMeQ">
- <pools xmi:type="bpmn:Pool" xmi:id="_AXHAcWOSEd2mS_8SFTXMeQ" iD="_AXHAcGOSEd2mS_8SFTXMeQ" name="Pool">
- <vertices xmi:type="bpmn:Activity" xmi:id="_EPuQwWOSEd2mS_8SFTXMeQ" iD="_EPuQwGOSEd2mS_8SFTXMeQ" outgoingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" incomingEdges="_ImmxcWOSEd2mS_8SFTXMeQ _JC-kYWOSEd2mS_8SFTXMeQ" activityType="GatewayParallel"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_FY9wwWOSEd2mS_8SFTXMeQ" iD="_FY9wwGOSEd2mS_8SFTXMeQ" outgoingEdges="_ImmxcWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_FobwIWOSEd2mS_8SFTXMeQ" iD="_FobwIGOSEd2mS_8SFTXMeQ" outgoingEdges="_JC-kYWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
- <vertices xmi:type="bpmn:Activity" xmi:id="_LFtRIWOSEd2mS_8SFTXMeQ" iD="_LFtRIGOSEd2mS_8SFTXMeQ" incomingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_ImmxcWOSEd2mS_8SFTXMeQ" iD="_ImmxcGOSEd2mS_8SFTXMeQ" source="_FY9wwWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_JC-kYWOSEd2mS_8SFTXMeQ" iD="_JC-kYGOSEd2mS_8SFTXMeQ" source="_FobwIWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>
- <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_LxpxIWOSEd2mS_8SFTXMeQ" iD="_LxpxIGOSEd2mS_8SFTXMeQ" source="_EPuQwWOSEd2mS_8SFTXMeQ" target="_LFtRIWOSEd2mS_8SFTXMeQ"/>
- </pools>
-</bpmn:BpmnDiagram>
Deleted: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn_diagram 2008-08-12 12:24:55 UTC (rev 1876)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_AXGZYGOSEd2mS_8SFTXMeQ" type="Bpmn" name="parallel-join.bpmn_diagram" measurementUnit="Pixel">
- <children xmi:type="notation:Node" xmi:id="_AXIOkGOSEd2mS_8SFTXMeQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_AXI1oGOSEd2mS_8SFTXMeQ" type="4008"/>
- <children xmi:type="notation:Node" xmi:id="_AXI1oWOSEd2mS_8SFTXMeQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_EPve4GOSEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_EPwF8GOSEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_EPve4WOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_EPve4mOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_EPve42OSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_EPve5GOSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="parallel-join.bpmn#_EPuQwWOSEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EPve5WOSEd2mS_8SFTXMeQ" x="108" y="72"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_FY--4GOSEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_FY_l8GOSEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_FY--4WOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_FY--4mOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_FY--42OSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_FY--5GOSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="parallel-join.bpmn#_FY9wwWOSEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FY--5WOSEd2mS_8SFTXMeQ" x="43" y="23"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_Foc-QGOSEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_FodlUGOSEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_Foc-QWOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_Foc-QmOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_Foc-Q2OSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Foc-RGOSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="parallel-join.bpmn#_FobwIWOSEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Foc-RWOSEd2mS_8SFTXMeQ" x="36" y="144"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_LFt4MGOSEd2mS_8SFTXMeQ" type="2001">
- <children xmi:type="notation:Node" xmi:id="_LFufRWOSEd2mS_8SFTXMeQ" type="4001"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_LFufQGOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_LFufQWOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_LFufQmOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_LFufQ2OSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:Activity" href="parallel-join.bpmn#_LFtRIWOSEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFufRGOSEd2mS_8SFTXMeQ" x="204" y="84"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_AXI1omOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_AXI1o2OSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_AXI1pGOSEd2mS_8SFTXMeQ"/>
- </children>
- <styles xmi:type="notation:FontStyle" xmi:id="_AXIOkWOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_AXIOkmOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:FillStyle" xmi:id="_AXIOk2OSEd2mS_8SFTXMeQ" fillColor="16771304"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_AXIOlGOSEd2mS_8SFTXMeQ" lineColor="11119017"/>
- <element xmi:type="bpmn:Pool" href="parallel-join.bpmn#_AXHAcWOSEd2mS_8SFTXMeQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AXI1pWOSEd2mS_8SFTXMeQ" x="16" y="16" width="345" height="200"/>
- </children>
- <styles xmi:type="notation:PageStyle" xmi:id="_AXGZYWOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:GuideStyle" xmi:id="_AXGZYmOSEd2mS_8SFTXMeQ"/>
- <styles xmi:type="notation:DescriptionStyle" xmi:id="_AXGZY2OSEd2mS_8SFTXMeQ"/>
- <element xmi:type="bpmn:BpmnDiagram" href="parallel-join.bpmn#_AXFyUWOSEd2mS_8SFTXMeQ"/>
- <edges xmi:type="notation:Edge" xmi:id="_ImomoGOSEd2mS_8SFTXMeQ" type="3001" source="_FY--4GOSEd2mS_8SFTXMeQ" target="_EPve4GOSEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_Imp0wGOSEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_Imp0wWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Imp0wmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Imp0w2OSEd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_ImomoWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_ImomomOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Imomo2OSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="parallel-join.bpmn#_ImmxcWOSEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ImompGOSEd2mS_8SFTXMeQ" points="[15, 11, -73, -63]$[106, 80, 18, 6]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_JC_ygGOSEd2mS_8SFTXMeQ" type="3001" source="_Foc-QGOSEd2mS_8SFTXMeQ" target="_EPve4GOSEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_JDAZkGOSEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_JDAZkWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_JDAZkmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_JDAZk2OSEd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_JC_ygWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_JC_ygmOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_JC_yg2OSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="parallel-join.bpmn#_JC-kYWOSEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JC_yhGOSEd2mS_8SFTXMeQ" points="[15, -8, -70, 42]$[95, -35, 10, 15]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_Lxq_QGOSEd2mS_8SFTXMeQ" type="3001" source="_EPve4GOSEd2mS_8SFTXMeQ" target="_LFt4MGOSEd2mS_8SFTXMeQ">
- <children xmi:type="notation:Node" xmi:id="_LxrmUGOSEd2mS_8SFTXMeQ" type="4012">
- <styles xmi:type="notation:FillStyle" xmi:id="_LxrmUWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_LxrmUmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_LxrmU2OSEd2mS_8SFTXMeQ" y="-10"/>
- </children>
- <styles xmi:type="notation:RoutingStyle" xmi:id="_Lxq_QWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_Lxq_QmOSEd2mS_8SFTXMeQ" fontName="Arial"/>
- <styles xmi:type="notation:LineStyle" xmi:id="_Lxq_Q2OSEd2mS_8SFTXMeQ" lineColor="0"/>
- <element xmi:type="bpmn:SequenceEdge" href="parallel-join.bpmn#_LxpxIWOSEd2mS_8SFTXMeQ"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lxq_RGOSEd2mS_8SFTXMeQ" points="[24, -1, -86, -3]$[125, -4, 15, -6]"/>
- </edges>
-</notation:Diagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_AXFyUWOSEd2mS_8SFTXMeQ" iD="_AXFyUGOSEd2mS_8SFTXMeQ">
+ <pools xmi:type="bpmn:Pool" xmi:id="_AXHAcWOSEd2mS_8SFTXMeQ" iD="_AXHAcGOSEd2mS_8SFTXMeQ" name="Pool">
+ <vertices xmi:type="bpmn:Activity" xmi:id="_EPuQwWOSEd2mS_8SFTXMeQ" iD="_EPuQwGOSEd2mS_8SFTXMeQ" outgoingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" incomingEdges="_ImmxcWOSEd2mS_8SFTXMeQ _JC-kYWOSEd2mS_8SFTXMeQ" activityType="GatewayParallel"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_FY9wwWOSEd2mS_8SFTXMeQ" iD="_FY9wwGOSEd2mS_8SFTXMeQ" outgoingEdges="_ImmxcWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_FobwIWOSEd2mS_8SFTXMeQ" iD="_FobwIGOSEd2mS_8SFTXMeQ" outgoingEdges="_JC-kYWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
+ <vertices xmi:type="bpmn:Activity" xmi:id="_LFtRIWOSEd2mS_8SFTXMeQ" iD="_LFtRIGOSEd2mS_8SFTXMeQ" incomingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_ImmxcWOSEd2mS_8SFTXMeQ" iD="_ImmxcGOSEd2mS_8SFTXMeQ" source="_FY9wwWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_JC-kYWOSEd2mS_8SFTXMeQ" iD="_JC-kYGOSEd2mS_8SFTXMeQ" source="_FobwIWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>
+ <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_LxpxIWOSEd2mS_8SFTXMeQ" iD="_LxpxIGOSEd2mS_8SFTXMeQ" source="_EPuQwWOSEd2mS_8SFTXMeQ" target="_LFtRIWOSEd2mS_8SFTXMeQ"/>
+ </pools>
+</bpmn:BpmnDiagram>
Copied: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram (from rev 1866, jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-join.bpmn_diagram)
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram (rev 0)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram 2008-08-12 14:30:22 UTC (rev 1877)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation" xmi:id="_AXGZYGOSEd2mS_8SFTXMeQ" type="Bpmn" name="parallel-merge.bpmn_diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_AXIOkGOSEd2mS_8SFTXMeQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_AXI1oGOSEd2mS_8SFTXMeQ" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_AXI1oWOSEd2mS_8SFTXMeQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_EPve4GOSEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_EPwF8GOSEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EPve4WOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_EPve4mOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_EPve42OSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_EPve5GOSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="parallel-merge.bpmn#_EPuQwWOSEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EPve5WOSEd2mS_8SFTXMeQ" x="108" y="72"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FY--4GOSEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_FY_l8GOSEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FY--4WOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_FY--4mOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_FY--42OSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_FY--5GOSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="parallel-merge.bpmn#_FY9wwWOSEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FY--5WOSEd2mS_8SFTXMeQ" x="43" y="23"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Foc-QGOSEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_FodlUGOSEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Foc-QWOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_Foc-QmOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_Foc-Q2OSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Foc-RGOSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="parallel-merge.bpmn#_FobwIWOSEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Foc-RWOSEd2mS_8SFTXMeQ" x="36" y="144"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LFt4MGOSEd2mS_8SFTXMeQ" type="2001">
+ <children xmi:type="notation:Node" xmi:id="_LFufRWOSEd2mS_8SFTXMeQ" type="4001"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LFufQGOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_LFufQWOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_LFufQmOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_LFufQ2OSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:Activity" href="parallel-merge.bpmn#_LFtRIWOSEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFufRGOSEd2mS_8SFTXMeQ" x="204" y="84"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_AXI1omOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AXI1o2OSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AXI1pGOSEd2mS_8SFTXMeQ"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AXIOkWOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_AXIOkmOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:FillStyle" xmi:id="_AXIOk2OSEd2mS_8SFTXMeQ" fillColor="16771304"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_AXIOlGOSEd2mS_8SFTXMeQ" lineColor="11119017"/>
+ <element xmi:type="bpmn:Pool" href="parallel-merge.bpmn#_AXHAcWOSEd2mS_8SFTXMeQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AXI1pWOSEd2mS_8SFTXMeQ" x="16" y="16" width="345" height="200"/>
+ </children>
+ <styles xmi:type="notation:PageStyle" xmi:id="_AXGZYWOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:GuideStyle" xmi:id="_AXGZYmOSEd2mS_8SFTXMeQ"/>
+ <styles xmi:type="notation:DescriptionStyle" xmi:id="_AXGZY2OSEd2mS_8SFTXMeQ"/>
+ <element xmi:type="bpmn:BpmnDiagram" href="parallel-merge.bpmn#_AXFyUWOSEd2mS_8SFTXMeQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_ImomoGOSEd2mS_8SFTXMeQ" type="3001" source="_FY--4GOSEd2mS_8SFTXMeQ" target="_EPve4GOSEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_Imp0wGOSEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_Imp0wWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Imp0wmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Imp0w2OSEd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_ImomoWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ImomomOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Imomo2OSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="parallel-merge.bpmn#_ImmxcWOSEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ImompGOSEd2mS_8SFTXMeQ" points="[15, 11, -73, -63]$[106, 80, 18, 6]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_JC_ygGOSEd2mS_8SFTXMeQ" type="3001" source="_Foc-QGOSEd2mS_8SFTXMeQ" target="_EPve4GOSEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_JDAZkGOSEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_JDAZkWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_JDAZkmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JDAZk2OSEd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_JC_ygWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JC_ygmOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_JC_yg2OSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="parallel-merge.bpmn#_JC-kYWOSEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JC_yhGOSEd2mS_8SFTXMeQ" points="[15, -8, -70, 42]$[95, -35, 10, 15]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Lxq_QGOSEd2mS_8SFTXMeQ" type="3001" source="_EPve4GOSEd2mS_8SFTXMeQ" target="_LFt4MGOSEd2mS_8SFTXMeQ">
+ <children xmi:type="notation:Node" xmi:id="_LxrmUGOSEd2mS_8SFTXMeQ" type="4012">
+ <styles xmi:type="notation:FillStyle" xmi:id="_LxrmUWOSEd2mS_8SFTXMeQ" fillColor="16776959"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_LxrmUmOSEd2mS_8SFTXMeQ" lineColor="16776959"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LxrmU2OSEd2mS_8SFTXMeQ" y="-10"/>
+ </children>
+ <styles xmi:type="notation:RoutingStyle" xmi:id="_Lxq_QWOSEd2mS_8SFTXMeQ" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lxq_QmOSEd2mS_8SFTXMeQ" fontName="Arial"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_Lxq_Q2OSEd2mS_8SFTXMeQ" lineColor="0"/>
+ <element xmi:type="bpmn:SequenceEdge" href="parallel-merge.bpmn#_LxpxIWOSEd2mS_8SFTXMeQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lxq_RGOSEd2mS_8SFTXMeQ" points="[24, -1, -86, -3]$[125, -4, 15, -6]"/>
+ </edges>
+</notation:Diagram>
More information about the jbpm-commits
mailing list