[jbpm-commits] JBoss JBPM SVN: r1636 - in api/trunk/modules: api/src/main/java/org/jboss/bpm/client and 15 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jul 15 09:05:26 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-15 09:05:25 -0400 (Tue, 15 Jul 2008)
New Revision: 1636

Added:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
   api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/
   api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml
   api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn
   api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn_diagram
   api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.png
Removed:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Executable.java
   api/trunk/modules/api/src/test/java/org/jboss/bpm/pattern/
Modified:
   api/trunk/modules/api/pom.xml
   api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Event.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SubProcess.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java
   api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
   api/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml
   api/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml
Log:
[JBPM-1321] ParallelSplit

Modified: api/trunk/modules/api/pom.xml
===================================================================
--- api/trunk/modules/api/pom.xml	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/pom.xml	2008-07-15 13:05:25 UTC (rev 1636)
@@ -62,18 +62,17 @@
     <plugins>
       <plugin>
         <!--
-          ~/.m2/settings.xml
+          ~/.m2/settings.xml 
+          <pluginGroups> 
+           <pluginGroup>com.sun.tools.jxc.maven2</pluginGroup>
+          </pluginGroups> 
           
-          <pluginGroups>
-            <pluginGroup>com.sun.tools.jxc.maven2</pluginGroup>
-          </pluginGroups>
-         
-          mvn jaxb-schemagen:generate 
+          mvn jaxb-schemagen:generate
         -->
         <groupId>com.sun.tools.jxc.maven2</groupId>
         <artifactId>maven-jaxb-schemagen-plugin</artifactId>
         <configuration>
-          <srcdir>src/main/java/org/jboss/bpm/model</srcdir>
+          <srcdir>${basedir}/src/main/java/org/jboss/bpm/model/internal/jaxb</srcdir>
           <destdir>target/schema</destdir>
           <schemas>
             <schema>
@@ -82,37 +81,29 @@
             </schema>
           </schemas>
           <includes>
+            <include>JAXBActivity.java</include>
+            <include>JAXBComplexGateway.java</include>
+            <include>JAXBEndEvent.java</include>
+            <include>JAXBEvent.java</include>
+            <include>JAXBExclusiveGateway.java</include>
+            <include>JAXBExecutionHandler.java</include>
+            <include>JAXBFlowHandler.java</include>
+            <include>JAXBFlow.java</include>
+            <include>JAXBFlowObject.java</include>
+            <include>JAXBGateway.java</include>
+            <include>JAXBHandler.java</include>
+            <include>JAXBInclusiveGateway.java</include>
+            <include>JAXBIntermediateEvent.java</include>
+            <include>JAXBMessageFlow.java</include>
+            <include>JAXBParallelGateway.java</include>
+            <include>JAXBProcess.java</include>
+            <include>JAXBSequenceFlow.java</include>
+            <include>JAXBSignalHandler.java</include>
+            <include>JAXBStartEvent.java</include>
+            <include>JAXBSubProcess.java</include>
+            <include>JAXBTask.java</include>
+            <include>ObjectFactory.java</include>
             <include>package-info.java</include>
-            <include>AbstractActivity.java</include>
-            <include>AbstractEndEvent.java</include>
-            <include>AbstractEvent.java</include>
-            <include>AbstractFlow.java</include>
-            <include>AbstractFlowObject.java</include>
-            <include>AbstractGateway.java</include>
-            <include>AbstractItermediateEvent.java</include>
-            <include>AbstractProcess.java</include>
-            <include>AbstractStartEvent.java</include>
-            <include>AbstractSubProcess.java</include>
-            <include>AbstractTask.java</include>
-            
-            <include>Activity.java</include>
-            <include>ComplexGateway.java</include>
-            <include>EndEvent.java</include>
-            <include>Event.java</include>
-            <include>ExclusiveGateway.java</include>
-            <include>FlowObject.java</include>
-            <include>Flow.java</include>
-            <include>Gateway.java</include>
-            <include>InclusiveGateway.java</include>
-            <include>ItermediateEvent.java</include>
-            <include>MessageFlow.java</include>
-            <include>ParallelGateway.java</include>
-            <include>Process.java</include>
-            <include>SequenceFlow.java</include>
-            <include>Signal.java</include>
-            <include>StartEvent.java</include>
-            <include>SubProcess.java</include>
-            <include>Task.java</include>
           </includes>
           <verbose>false</verbose>
         </configuration>

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -25,7 +25,6 @@
 
 import java.util.concurrent.Future;
 
-import org.jboss.bpm.model.Executable;
 import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
@@ -34,6 +33,7 @@
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.HandlerSupport;
 
 /**
  * The ExecutionManager executes processes 
@@ -70,21 +70,21 @@
 
   protected ExecutionHandler getExecutionHandler(FlowObject target)
   {
-    Executable exfo = getExecutable(target);
+    HandlerSupport exfo = getExecutable(target);
     ExecutionHandler handler = exfo.getExecutionHandler();
     return handler != null ? handler : exfo.getDefaultExecutionHandler();
   }
 
   protected SignalHandler getSignalHandler(FlowObject target)
   {
-    Executable exfo = getExecutable(target);
+    HandlerSupport exfo = getExecutable(target);
     SignalHandler handler = exfo.getSignalHandler();
     return handler != null ? handler : exfo.getDefaultSignalHandler();
   }
 
   protected FlowHandler getFlowHandler(FlowObject target)
   {
-    Executable exfo = getExecutable(target);
+    HandlerSupport exfo = getExecutable(target);
     FlowHandler handler = exfo.getFlowHandler();
     return handler != null ? handler : exfo.getDefaultFlowHandler();
   }
@@ -95,10 +95,10 @@
     sm.throwSignal(signal);
   }
 
-  private Executable getExecutable(FlowObject fo)
+  private HandlerSupport getExecutable(FlowObject fo)
   {
-    if (fo instanceof Executable == false)
+    if (fo instanceof HandlerSupport == false)
       throw new IllegalStateException("Flow object is not executable: " + fo);
-    return (Executable)fo;
+    return (HandlerSupport)fo;
   }
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Event.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Event.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Event.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.model;
 
+
 //$Id$
 
 /**
@@ -31,7 +32,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface Event extends FlowObject, Executable
+public interface Event extends FlowObject
 {
 
 }
\ No newline at end of file

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Executable.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Executable.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Executable.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -1,51 +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;
-
-//$Id$
-
-/**
- * A combined interface for execution aspects
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Executable
-{
-  /** Get the associated ExecutionHandler */ 
-  ExecutionHandler getExecutionHandler();
-  
-  /** Get the default ExecutionHandler */ 
-  ExecutionHandler getDefaultExecutionHandler();
-  
-  /** Get the associated SignalHandler */ 
-  SignalHandler getSignalHandler();
-  
-  /** Get the default SignalHandler */ 
-  SignalHandler getDefaultSignalHandler();
-  
-  /** Get the associated FlowHandler */ 
-  FlowHandler getFlowHandler();
-  
-  /** Get the default FlowHandler */ 
-  FlowHandler getDefaultFlowHandler();
-}
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -24,10 +24,11 @@
 //$Id$
 
 import org.jboss.bpm.client.ProcessEngine;
+import org.jboss.bpm.runtime.HandlerSupport;
 import org.jboss.bpm.runtime.Token;
 
 /**
- * The {@link ProcessEngine} invokes the ExecutionHandler on an {@link Executable} 
+ * The {@link ProcessEngine} invokes the ExecutionHandler on an {@link HandlerSupport} 
  * {@link FlowObject} to execute user provided business logic.
  * 
  * @author thomas.diesler at jboss.com

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -24,10 +24,11 @@
 //$Id$
 
 import org.jboss.bpm.client.ProcessEngine;
+import org.jboss.bpm.runtime.HandlerSupport;
 import org.jboss.bpm.runtime.Token;
 
 /**
- * The {@link ProcessEngine} invokes the FlowHandler on an {@link Executable} 
+ * The {@link ProcessEngine} invokes the FlowHandler on an {@link HandlerSupport} 
  * {@link FlowObject} to move the {@link Token} to the next {@link FlowObject}.
  * 
  * @author thomas.diesler at jboss.com

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.model;
 
+
 //$Id: ExecutionHandlerImpl.java 1627 2008-07-14 15:16:28Z thomas.diesler at jboss.com $
 
 /**
@@ -31,7 +32,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface Gateway extends FlowObject, NamedFlowObject, Executable, MultipleOutFlowSupport, MultipleInFlowSupport
+public interface Gateway extends FlowObject, NamedFlowObject, MultipleOutFlowSupport, MultipleInFlowSupport
 {
 
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -21,142 +21,94 @@
  */
 package org.jboss.bpm.model;
 
+import org.jboss.bpm.client.ProcessManager;
+
 //$Id$
 
-import org.jboss.bpm.model.internal.ComplexGatewayImpl;
-import org.jboss.bpm.model.internal.EndEventImpl;
-import org.jboss.bpm.model.internal.ExclusiveGatewayImpl;
-import org.jboss.bpm.model.internal.FlowObjectImpl;
-import org.jboss.bpm.model.internal.InclusiveGatewayImpl;
-import org.jboss.bpm.model.internal.IntermediateEventImpl;
-import org.jboss.bpm.model.internal.MessageFlowImpl;
-import org.jboss.bpm.model.internal.ParallelGatewayImpl;
-import org.jboss.bpm.model.internal.ProcessImpl;
-import org.jboss.bpm.model.internal.SequenceFlowImpl;
-import org.jboss.bpm.model.internal.StartEventImpl;
-import org.jboss.bpm.model.internal.SubProcessImpl;
-import org.jboss.bpm.model.internal.TaskImpl;
 
 /**
- * The ProcessBuilder can be used to dynamically build {@link Process}es.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class ProcessBuilder
+public interface ProcessBuilder
 {
-  private ProcessImpl proc;
-  private FlowObjectImpl flowObject;
-  
-  public ProcessBuilder (String procName)
-  {
-    proc = new ProcessImpl(procName);
-  }
-  
-  public Process getProcess()
-  {
-    proc.initialize();
-    return proc;
-  }
-  
-  public ProcessBuilder addStartEvent()
-  {
-    flowObject = new StartEventImpl();
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addSequenceFlow(String name)
-  {
-    if (flowObject instanceof SingleOutFlowSupport)
-    {
-      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
-      outFlow.setOutFlow(new SequenceFlowImpl(name));
-    }
-    else if (flowObject instanceof MultipleOutFlowSupport)
-    {
-      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
-      outFlow.addOutFlow(new SequenceFlowImpl(name));
-    }
-    else
-    {
-      throw new IllegalStateException("Cannot add a sequence flow to: " + flowObject);
-    }
-    return this;
-  }
-  
-  public ProcessBuilder addMessageFlow(String name)
-  {
-    if (flowObject instanceof SingleOutFlowSupport)
-    {
-      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
-      outFlow.setOutFlow(new MessageFlowImpl(name));
-    }
-    else if (flowObject instanceof MultipleOutFlowSupport)
-    {
-      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
-      outFlow.addOutFlow(new MessageFlowImpl(name));
-    }
-    else
-    {
-      throw new IllegalStateException("Cannot add a message flow to: " + flowObject);
-    }
-    return this;
-  }
-  
-  public ProcessBuilder addTask(String name)
-  {
-    flowObject = new TaskImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addExclusiveGateway(String name)
-  {
-    flowObject = new ExclusiveGatewayImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addInclusiveGateway(String name)
-  {
-    flowObject = new InclusiveGatewayImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addComplexGateway(String name)
-  {
-    flowObject = new ComplexGatewayImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addParallelGateway(String name)
-  {
-    flowObject = new ParallelGatewayImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addSubProcess(String name)
-  {
-    flowObject = new SubProcessImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addItermediateEvent(String name)
-  {
-    flowObject = new IntermediateEventImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
-  
-  public ProcessBuilder addEndEvent(String name)
-  {
-    flowObject = new EndEventImpl(name);
-    proc.addFlowObject(flowObject);
-    return this;
-  }
+  /**
+   * Create the {@link Process}.
+   * <p/>
+   * This is the final call to the ProcessBuilder after all elements have been added.
+   * Internally it registers the {@link Process} with the {@link ProcessManager}.  
+   */
+  Process createProcess();
+
+  /**
+   * Add a {@link StartEvent}
+   */
+  ProcessBuilder addStartEvent();
+
+  /**
+   * Add a {@link SequenceFlow} with a given name
+   */
+  ProcessBuilder addSequenceFlow(String name);
+
+  /**
+   * Add a {@link MessageFlow} with a given name
+   */
+  ProcessBuilder addMessageFlow(String name);
+
+  /**
+   * Add a {@link Task} with a given name
+   */
+  ProcessBuilder addTask(String name);
+
+  /**
+   * Add an {@link ExclusiveGateway} with a given name
+   */
+  ProcessBuilder addExclusiveGateway(String name);
+
+  /**
+   * Add an {@link InclusiveGateway} with a given name
+   */
+  ProcessBuilder addInclusiveGateway(String name);
+
+  /**
+   * Add a {@link ComplexGateway} with a given name
+   */
+  ProcessBuilder addComplexGateway(String name);
+
+  /**
+   * Add a {@link ParallelGateway} with a given name
+   */
+  ProcessBuilder addParallelGateway(String name);
+
+  /**
+   * Add a {@link SubProcess} with a given name
+   */
+  ProcessBuilder addSubProcess(String name);
+
+  /**
+   * Add an {@link ItermediateEvent} with a given name
+   */
+  ProcessBuilder addItermediateEvent(String name);
+
+  /**
+   * Add an {@link EndEvent} with a given name
+   */
+  ProcessBuilder addEndEvent(String name);
+
+  /**
+   * Add an {@link ExecutionHandler} with a given Class
+   */
+  ProcessBuilder addExecutionHandler(Class<?> clazz);
+
+  /**
+   * Add an {@link FlowHandler} with a given Class
+   */
+  ProcessBuilder addFlowHandler(Class<?> clazz);
+
+  /**
+   * Add an {@link SignalHandler} with a given Class
+   */
+  ProcessBuilder addSignalHandler(Class<?> clazz);
 }
\ No newline at end of file

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+import org.jboss.bpm.model.internal.ProcessBuilderImpl;
+
+//$Id$
+
+/**
+ * A Factory for the {@link ProcessBuilder}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public abstract class ProcessBuilderFactory
+{
+  /**
+   * Get a {@link ProcessBuilder} for a given process name.
+   */
+  public static ProcessBuilder newInstance(String processName)
+  {
+    return new ProcessBuilderImpl(processName);
+  }
+  
+}
\ No newline at end of file


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilderFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -25,9 +25,10 @@
 
 import org.jboss.bpm.client.ProcessEngine;
 import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.runtime.HandlerSupport;
 
 /**
- * The {@link ProcessEngine} invokes the SignalHandler on an {@link Executable} 
+ * The {@link ProcessEngine} invokes the SignalHandler on an {@link HandlerSupport} 
  * {@link FlowObject} to send {@link Signal}s to the {@link SignalManager}.
  * 
  * @author thomas.diesler at jboss.com

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SubProcess.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SubProcess.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SubProcess.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.model;
 
+
 //$Id$
 
 /**
@@ -29,6 +30,6 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface SubProcess extends Process, Executable, SingleInFlowSupport, SingleOutFlowSupport
+public interface SubProcess extends Process, SingleInFlowSupport, SingleOutFlowSupport
 {
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.model;
 
+
 //$Id$
 
 /**
@@ -32,6 +33,6 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface Task extends Activity, Executable, SingleInFlowSupport, SingleOutFlowSupport
+public interface Task extends Activity, SingleInFlowSupport, SingleOutFlowSupport
 {
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -26,6 +26,7 @@
 import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBEvent;
+import org.jboss.bpm.runtime.HandlerSetterSupport;
 
 //$Id$
 
@@ -37,7 +38,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public abstract class EventImpl extends FlowObjectImpl implements Event
+public abstract class EventImpl extends FlowObjectImpl implements Event, HandlerSetterSupport
 {
   private ExecutionHandler executionHandler;
   private FlowHandler flowHandler;

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -38,6 +38,7 @@
 import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBGateway;
+import org.jboss.bpm.runtime.HandlerSetterSupport;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -47,7 +48,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class GatewayImpl extends FlowObjectImpl implements Gateway
+public class GatewayImpl extends FlowObjectImpl implements Gateway, HandlerSetterSupport
 {
   // provide logging
   private static final Log log = LogFactory.getLog(GatewayImpl.class);

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -25,6 +25,7 @@
 
 import org.jboss.bpm.model.Handler;
 import org.jboss.bpm.model.internal.jaxb.JAXBHandler;
+import org.jboss.bpm.NotImplementedException;
 
 /**
  * Implement to handle the outgoing Flows for an FlowObject
@@ -41,8 +42,30 @@
     this.delegate = delegate;
   }
 
+  @SuppressWarnings("unchecked")
   protected <T> T newInstance(Class<T> clazz)
   {
-    return delegate.newInstance(clazz);
+    try
+    {
+      String className = delegate.getClassName();
+      String beanRef = delegate.getBeanRef();
+      if (className != null)
+      {
+        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+        return (T)ctxLoader.loadClass(className).newInstance();
+      }
+      else if (beanRef != null)
+      {
+        throw new NotImplementedException();
+      }
+      else
+      {
+        throw new IllegalStateException("There is no 'class' nor 'bean' attribute set for this handler");
+      }
+    }
+    catch (Exception ex)
+    {
+      throw new IllegalStateException("Cannot instanciate the handler", ex);
+    }
   }
 }
\ No newline at end of file

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,199 @@
+/*
+ * 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 org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.ExecutionHandler;
+import org.jboss.bpm.model.FlowHandler;
+import org.jboss.bpm.model.MultipleOutFlowSupport;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.SignalHandler;
+import org.jboss.bpm.model.SingleOutFlowSupport;
+import org.jboss.bpm.runtime.HandlerSetterSupport;
+
+/**
+ * The ProcessBuilder can be used to dynamically build {@link Process}es.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessBuilderImpl implements ProcessBuilder
+{
+  private ProcessImpl proc;
+  private FlowObjectImpl flowObject;
+
+  public ProcessBuilderImpl(String procName)
+  {
+    proc = new ProcessImpl(procName);
+  }
+
+  public Process createProcess()
+  {
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    pm.registerProcess(proc);
+    return proc;
+  }
+
+  public ProcessBuilder addStartEvent()
+  {
+    flowObject = new StartEventImpl();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addSequenceFlow(String name)
+  {
+    if (flowObject instanceof SingleOutFlowSupport)
+    {
+      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
+      outFlow.setOutFlow(new SequenceFlowImpl(name));
+    }
+    else if (flowObject instanceof MultipleOutFlowSupport)
+    {
+      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
+      outFlow.addOutFlow(new SequenceFlowImpl(name));
+    }
+    else
+    {
+      throw new IllegalStateException("Cannot add a sequence flow to: " + flowObject);
+    }
+    return this;
+  }
+
+  public ProcessBuilder addMessageFlow(String name)
+  {
+    if (flowObject instanceof SingleOutFlowSupport)
+    {
+      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
+      outFlow.setOutFlow(new MessageFlowImpl(name));
+    }
+    else if (flowObject instanceof MultipleOutFlowSupport)
+    {
+      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
+      outFlow.addOutFlow(new MessageFlowImpl(name));
+    }
+    else
+    {
+      throw new IllegalStateException("Cannot add a message flow to: " + flowObject);
+    }
+    return this;
+  }
+
+  public ProcessBuilder addTask(String name)
+  {
+    flowObject = new TaskImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addExclusiveGateway(String name)
+  {
+    flowObject = new ExclusiveGatewayImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addInclusiveGateway(String name)
+  {
+    flowObject = new InclusiveGatewayImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addComplexGateway(String name)
+  {
+    flowObject = new ComplexGatewayImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addParallelGateway(String name)
+  {
+    flowObject = new ParallelGatewayImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addSubProcess(String name)
+  {
+    flowObject = new SubProcessImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addItermediateEvent(String name)
+  {
+    flowObject = new IntermediateEventImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addEndEvent(String name)
+  {
+    flowObject = new EndEventImpl(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+
+  public ProcessBuilder addExecutionHandler(Class<?> clazz)
+  {
+    return addHandler(clazz);
+  }
+
+  public ProcessBuilder addFlowHandler(Class<?> clazz)
+  {
+    return addHandler(clazz);
+  }
+
+  public ProcessBuilder addSignalHandler(Class<?> clazz)
+  {
+    return addHandler(clazz);
+  }
+
+  private ProcessBuilder addHandler(Class<?> clazz)
+  {
+    if (flowObject instanceof HandlerSetterSupport == false)
+      throw new IllegalStateException("Current flow object does not support handlers: " + flowObject);
+
+    HandlerSetterSupport hs = (HandlerSetterSupport)flowObject;
+    try
+    {
+      Object handler = clazz.newInstance();
+      if (handler instanceof ExecutionHandler)
+        hs.setExecutionHandler((ExecutionHandler)handler);
+      else if (handler instanceof FlowHandler)
+        hs.setFlowHandler((FlowHandler)handler);
+      else if (handler instanceof SignalHandler)
+        hs.setSignalHandler((SignalHandler)handler);
+      else
+        throw new IllegalArgumentException("Given class is not a supported handler");
+    }
+    catch (Exception ex)
+    {
+      throw new IllegalArgumentException("Cannot instanciate handler", ex);
+    }
+    return this;
+  }
+}
\ No newline at end of file


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -32,6 +32,7 @@
 import org.jboss.bpm.model.SubProcess;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBSubProcess;
+import org.jboss.bpm.runtime.HandlerSetterSupport;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -40,7 +41,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class SubProcessImpl extends ProcessImpl implements SubProcess
+public class SubProcessImpl extends ProcessImpl implements SubProcess, HandlerSetterSupport
 {
   private Flow inFlow;
   private Flow outFlow;

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -32,6 +32,7 @@
 import org.jboss.bpm.model.Task;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBTask;
+import org.jboss.bpm.runtime.HandlerSetterSupport;
 import org.jboss.bpm.runtime.Token;
 
 //$Id$
@@ -45,7 +46,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class TaskImpl extends ActivityImpl implements Task
+public class TaskImpl extends ActivityImpl implements Task, HandlerSetterSupport
 {
   // provide logging
   private static final Log log = LogFactory.getLog(TaskImpl.class);

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -26,8 +26,6 @@
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
-import org.jboss.bpm.NotImplementedException;
-
 /**
  * Implement to handle the outgoing Flows for an FlowObject
  * 
@@ -61,29 +59,4 @@
   {
     this.beanRef = beanRef;
   }
-  
-  @SuppressWarnings("unchecked")
-  public <T> T newInstance(Class<T> clazz)
-  {
-    try
-    {
-      if (className != null)
-      {
-        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
-        return (T)ctxLoader.loadClass(className).newInstance();
-      }
-      else if (beanRef != null)
-      {
-        throw new NotImplementedException();
-      }
-      else
-      {
-        throw new IllegalStateException("There is no 'class' nor 'bean' attribute set for this handler");
-      }
-    }
-    catch (Exception ex)
-    {
-      throw new IllegalStateException("Cannot instanciate the handler", ex);
-    }
-  }
 }
\ No newline at end of file

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,46 @@
+/*
+ * 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.ExecutionHandler;
+import org.jboss.bpm.model.FlowHandler;
+import org.jboss.bpm.model.SignalHandler;
+
+//$Id$
+
+/**
+ * A combined interface for execution aspects
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface HandlerSetterSupport extends HandlerSupport
+{
+  /** Set the associated ExecutionHandler */ 
+  void setExecutionHandler(ExecutionHandler handler);
+  
+  /** Set the associated SignalHandler */ 
+  void setSignalHandler(SignalHandler handler);
+  
+  /** Set the associated FlowHandler */ 
+  void setFlowHandler(FlowHandler handler);
+}
\ No newline at end of file


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,55 @@
+/*
+ * 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.ExecutionHandler;
+import org.jboss.bpm.model.FlowHandler;
+import org.jboss.bpm.model.SignalHandler;
+
+//$Id$
+
+/**
+ * A combined interface for execution aspects
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface HandlerSupport
+{
+  /** Get the associated ExecutionHandler */ 
+  ExecutionHandler getExecutionHandler();
+  
+  /** Get the default ExecutionHandler */ 
+  ExecutionHandler getDefaultExecutionHandler();
+  
+  /** Get the associated SignalHandler */ 
+  SignalHandler getSignalHandler();
+  
+  /** Get the default SignalHandler */ 
+  SignalHandler getDefaultSignalHandler();
+  
+  /** Get the associated FlowHandler */ 
+  FlowHandler getFlowHandler();
+  
+  /** Get the default FlowHandler */ 
+  FlowHandler getDefaultFlowHandler();
+}
\ No newline at end of file


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
===================================================================
--- api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -26,8 +26,8 @@
 import java.io.StringReader;
 import java.io.StringWriter;
 
-import junit.framework.TestCase;
-
+import org.jboss.bpm.MockEngineTestCase;
+import org.jboss.bpm.model.internal.ProcessBuilderImpl;
 import org.jboss.bpm.util.ProcessMarshaller;
 import org.jboss.bpm.util.ProcessUnmarshaller;
 
@@ -37,21 +37,21 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class ProcessMarshallerTest extends TestCase
+public class ProcessMarshallerTest extends MockEngineTestCase
 {
   public void testProcess() throws Exception
   { 
-    Process inProc = new ProcessBuilder("myproc").addStartEvent().addSequenceFlow("task").addTask("task").
+    Process inProc = new ProcessBuilderImpl("myproc").addStartEvent().addSequenceFlow("task").addTask("task").
     addSequenceFlow("split").addParallelGateway("split").addSequenceFlow("subproc").addSequenceFlow("event").
     addSubProcess("subproc").addSequenceFlow("join").addItermediateEvent("event").addSequenceFlow("join").
-    addParallelGateway("join").addSequenceFlow("end").addEndEvent("end").getProcess();
+    addParallelGateway("join").addSequenceFlow("end").addEndEvent("end").createProcess();
 
     StringWriter strwr = new StringWriter();
     ProcessMarshaller marshaller = new ProcessMarshaller();
     marshaller.marshallProcess(inProc, strwr);
     String xml = strwr.toString();
 
-    System.out.println(xml);
+    //System.out.println(xml);
 
     ProcessUnmarshaller unmarshaller = new ProcessUnmarshaller();
     Process outProc = unmarshaller.unmarshallProcess(new StringReader(xml));

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -23,7 +23,7 @@
 
 // $Id$
 
-import org.jboss.bpm.model.internal.ExecutionHandlerImpl;
+import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.runtime.ExecutionContext;
 import org.jboss.bpm.runtime.Token;
 
@@ -33,9 +33,8 @@
  * @author Thomas.Diesler at jboss.com
  * @since 04-Jul-2008
  */
-public class TaskA extends ExecutionHandlerImpl
+public class TaskA implements ExecutionHandler
 {
-  @Override
   public void execute(Token token)
   {
     ExecutionContext ctx = token.getExecutionContext();

Added: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java	                        (rev 0)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,98 @@
+/*
+ * 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.samples.parallelsplit;
+
+// $Id$
+
+import java.net.URL;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
+import org.jboss.bpm.client.ProcessManager;
+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.Result;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * A point in the workflow process where a single thread of control splits 
+ * into multiple threads of control which can be executed in parallel, 
+ * thus allowing activities to be executed simultaneously or in any order. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class ParallelSplitTest extends DefaultEngineTestCase
+{
+  @Override
+  protected void setUp() throws Exception
+  {
+    super.setUp();
+    SignalManager em = SignalManager.locateSignalManager();
+    em.addListener(getName(), this);
+  }
+
+  /**
+   * The ParallelGateway uses non threaded SequenceFlows 
+   */
+  public void testParallelSplit() throws Exception 
+  {
+    URL jpdlURL = getResourceURL("samples/parallelsplit/parallel-split-" + getDialect() + ".xml");
+
+    // Create a Process through the ProcessManager
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(jpdlURL);
+    
+    runProcess(proc);
+  }
+
+  public void testParallelSplitDynamic() throws Exception 
+  {
+    // Create a Process through the ProcessBuilder
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance(getName());
+    Process proc = procBuilder.addStartEvent().addSequenceFlow("gateway").addParallelGateway("gateway").
+    addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").createProcess();
+    
+    runProcess(proc);
+  }
+
+  private void runProcess(Process proc) throws InterruptedException, ExecutionException
+  {
+    // Start the Process
+    Future<Result> end = proc.startProcess();
+    Result result = end.get();
+    
+    // Validate received signals
+    List<Signal> signals = getSignals();
+    assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(5).getType());
+    assertEquals("EndEvent[endA]", signals.get(5).getFlowObject());
+    assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(6).getType());
+    
+    assertEquals(Signal.Type.ENTER_END_EVENT, signals.get(7).getType());
+    assertEquals("EndEvent[endB]", signals.get(7).getFlowObject());
+    assertEquals(Signal.Type.EXIT_END_EVENT, signals.get(8).getType());
+  }
+}


Property changes on: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -25,11 +25,14 @@
 
 import java.net.URL;
 import java.util.List;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import org.jboss.bpm.client.ProcessManager;
 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.Result;
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.test.DefaultEngineTestCase;
@@ -42,34 +45,51 @@
  */
 public class BasicSequenceTest extends DefaultEngineTestCase
 {
-  private URL jpdlURL;
-  
   @Override
   protected void setUp() throws Exception
   {
     super.setUp();
-    jpdlURL = getResourceURL("samples/sequence/basic-sequence-" + getDialect() + ".xml");
     SignalManager em = SignalManager.locateSignalManager();
-    em.addListener("basic-sequence", this);
+    em.addListener(getName(), this);
   }
 
   /**
    * Test a basic sequence
    */
-  public void testBasicSequence() throws Exception 
+  public void testBasicSequence() throws Exception
   {
+    URL jpdlURL = getResourceURL("samples/sequence/basic-sequence-" + getDialect() + ".xml");
+
     // Create a Process through the ProcessManager
     ProcessManager pm = ProcessManager.locateProcessManager();
     Process proc = pm.createProcess(jpdlURL);
-    
+
+    runProcess(proc);
+  }
+
+  /**
+   * Test a basic sequence through the ProcessBuilder
+   */
+  public void testBasicSequenceDynamic() throws Exception
+  {
+    // Create a Process through the ProcessBuilder
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance(getName());
+    Process proc = procBuilder.addStartEvent().addSequenceFlow("stateA").addTask("stateA").
+    addSequenceFlow("end").addEndEvent("end").createProcess();
+
+    runProcess(proc);
+  }
+
+  private void runProcess(Process proc) throws InterruptedException, ExecutionException
+  {
     // Start the Process
     Future<Result> end = proc.startProcess();
     Result result = end.get();
-    
+
     // Validate the Result
     assertNotNull("Result expected", result);
     assertEquals("No attachments expected", 0, result.getAttachments().getAttachmentKeys().size());
-    
+
     // Validate received signals
     List<Signal> signals = getSignals();
     assertEquals(Signal.Type.ENTER_PROCESS, signals.get(0).getType());

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -25,11 +25,14 @@
 
 import java.net.URL;
 import java.util.List;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import org.jboss.bpm.client.ProcessManager;
 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.Result;
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.runtime.Attachments;
@@ -43,37 +46,53 @@
  */
 public class BasicTaskTest extends DefaultEngineTestCase
 {
-  private URL jpdlURL;
-  
   @Override
   protected void setUp() throws Exception
   {
     super.setUp();
-    jpdlURL = getResourceURL("samples/task/basic-task-" + getDialect() + ".xml");
     SignalManager em = SignalManager.locateSignalManager();
-    em.addListener("basic-task", this);
+    em.addListener(getName(), this);
   }
 
   /**
-   * Test that the execution context variables set by the Task
-   * are visible to the client. 
+   * Test that the execution context variables set by the Task are visible to the client.
    */
   public void testBasicTask() throws Exception
   {
+    URL jpdlURL = getResourceURL("samples/task/basic-task-" + getDialect() + ".xml");
+
     // Create a Process through the ProcessManager
     ProcessManager pm = ProcessManager.locateProcessManager();
     Process proc = pm.createProcess(jpdlURL);
-    
+
+    runProcess(proc);
+  }
+
+  /**
+   * Test a basic task through the ProcessBuilder
+   */
+  public void testBasicTaskDynamic() throws Exception
+  {
+    // Create a Process through the ProcessBuilder
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance(getName());
+    Process proc = procBuilder.addStartEvent().addSequenceFlow("stateA").addTask("stateA").addExecutionHandler(TaskA.class).
+    addSequenceFlow("end").addEndEvent("end").createProcess();
+
+    runProcess(proc);
+  }
+
+  private void runProcess(Process proc) throws InterruptedException, ExecutionException
+  {
     // Start the Process
     Future<Result> end = proc.startProcess();
     Result result = end.get();
-    
+
     // Validate the Result
     assertNotNull("Result expected", result);
     Attachments att = result.getAttachments();
     assertEquals("Attachments expected", 1, att.getAttachmentKeys().size());
     assertEquals("Task: TaskA", att.getAttachment(String.class));
-    
+
     // Validate received signals
     List<Signal> signals = getSignals();
     assertEquals(Signal.Type.ENTER_PROCESS, signals.get(0).getType());

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java	2008-07-15 13:05:25 UTC (rev 1636)
@@ -23,7 +23,7 @@
 
 // $Id$
 
-import org.jboss.bpm.model.internal.ExecutionHandlerImpl;
+import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.runtime.ExecutionContext;
 import org.jboss.bpm.runtime.Token;
 
@@ -33,9 +33,8 @@
  * @author Thomas.Diesler at jboss.com
  * @since 04-Jul-2008
  */
-public class TaskA extends ExecutionHandlerImpl
+public class TaskA implements ExecutionHandler
 {
-  @Override
   public void execute(Token token)
   {
     ExecutionContext ctx = token.getExecutionContext();

Added: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml
===================================================================
--- api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml	                        (rev 0)
+++ api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml	2008-07-15 13:05:25 UTC (rev 1636)
@@ -0,0 +1,11 @@
+<ns2:process name="testParallelSplit" xmlns:ns2="urn:api.bpm.jboss:jpdl-0.1">
+  <start>
+    <sequence to="gateway" />
+  </start>
+  <parallel-gateway name="gateway">
+    <sequence to="endA" />
+    <sequence to="endB" />
+  </parallel-gateway>
+  <end name="endA" />
+  <end name="endB" />
+</ns2:process>
\ No newline at end of file


Property changes on: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn
===================================================================
--- api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn	                        (rev 0)
+++ api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn	2008-07-15 13:05:25 UTC (rev 1636)
@@ -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="__6YwkFJsEd2rTur0B442zw" iD="__6XicFJsEd2rTur0B442zw">
+  <pools xmi:type="bpmn:Pool" xmi:id="__7duoVJsEd2rTur0B442zw" iD="__7duoFJsEd2rTur0B442zw" name="Pool">
+    <vertices xmi:type="bpmn:Activity" xmi:id="_I-ywUVJtEd2rTur0B442zw" iD="_I-ywUFJtEd2rTur0B442zw" outgoingEdges="_P3mbMVJtEd2rTur0B442zw _Ry4cIVJtEd2rTur0B442zw" incomingEdges="_KocOsVJtEd2rTur0B442zw" activityType="GatewayParallel"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_KM9MkVJtEd2rTur0B442zw" iD="_KM9MkFJtEd2rTur0B442zw" outgoingEdges="_KocOsVJtEd2rTur0B442zw" activityType="EventStartEmpty"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_NKHhQVJtEd2rTur0B442zw" iD="_NKHhQFJtEd2rTur0B442zw" incomingEdges="_P3mbMVJtEd2rTur0B442zw" name="endA" activityType="EventEndEmpty"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_RywgUFJtEd2rTur0B442zw" iD="_Ryv5QFJtEd2rTur0B442zw" incomingEdges="_Ry4cIVJtEd2rTur0B442zw" name="endB" activityType="EventEndEmpty"/>
+    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_KocOsVJtEd2rTur0B442zw" iD="_KocOsFJtEd2rTur0B442zw" source="_KM9MkVJtEd2rTur0B442zw" target="_I-ywUVJtEd2rTur0B442zw"/>
+    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_P3mbMVJtEd2rTur0B442zw" iD="_P3mbMFJtEd2rTur0B442zw" source="_I-ywUVJtEd2rTur0B442zw" target="_NKHhQVJtEd2rTur0B442zw"/>
+    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_Ry4cIVJtEd2rTur0B442zw" iD="_Ry4cIFJtEd2rTur0B442zw" source="_I-ywUVJtEd2rTur0B442zw" target="_RywgUFJtEd2rTur0B442zw"/>
+  </pools>
+</bpmn:BpmnDiagram>

Added: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn_diagram
===================================================================
--- api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn_diagram	                        (rev 0)
+++ api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.bpmn_diagram	2008-07-15 13:05:25 UTC (rev 1636)
@@ -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="__63RsFJsEd2rTur0B442zw" type="Bpmn" name="parallel-split.bpmn_diagram" measurementUnit="Pixel">
+  <children xmi:type="notation:Node" xmi:id="__89jcFJsEd2rTur0B442zw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="__9DDAFJsEd2rTur0B442zw" type="4008"/>
+    <children xmi:type="notation:Node" xmi:id="__9E4MFJsEd2rTur0B442zw" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_I-6sIFJtEd2rTur0B442zw" type="2001">
+        <children xmi:type="notation:Node" xmi:id="_I-76QFJtEd2rTur0B442zw" type="4001"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_I-6sIVJtEd2rTur0B442zw" fontName="Arial"/>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_I-6sIlJtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:FillStyle" xmi:id="_I-6sI1JtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:LineStyle" xmi:id="_I-6sJFJtEd2rTur0B442zw" lineColor="0"/>
+        <element xmi:type="bpmn:Activity" href="parallel-split.bpmn#_I-ywUVJtEd2rTur0B442zw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I-7TMFJtEd2rTur0B442zw" x="96" y="72"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_KM-asFJtEd2rTur0B442zw" type="2001">
+        <children xmi:type="notation:Node" xmi:id="_KM_BwFJtEd2rTur0B442zw" type="4001"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_KM-asVJtEd2rTur0B442zw" fontName="Arial"/>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_KM-aslJtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:FillStyle" xmi:id="_KM-as1JtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:LineStyle" xmi:id="_KM-atFJtEd2rTur0B442zw" lineColor="0"/>
+        <element xmi:type="bpmn:Activity" href="parallel-split.bpmn#_KM9MkVJtEd2rTur0B442zw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KM-atVJtEd2rTur0B442zw" x="17" y="82"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_NKIvYFJtEd2rTur0B442zw" type="2001">
+        <children xmi:type="notation:Node" xmi:id="_NKJ9gFJtEd2rTur0B442zw" type="4001"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_NKJWcFJtEd2rTur0B442zw" fontName="Arial"/>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_NKJWcVJtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:FillStyle" xmi:id="_NKJWclJtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:LineStyle" xmi:id="_NKJWc1JtEd2rTur0B442zw" lineColor="0"/>
+        <element xmi:type="bpmn:Activity" href="parallel-split.bpmn#_NKHhQVJtEd2rTur0B442zw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKJWdFJtEd2rTur0B442zw" x="180" y="24"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_RyyVgFJtEd2rTur0B442zw" type="2001">
+        <children xmi:type="notation:Node" xmi:id="_Ryy8kFJtEd2rTur0B442zw" type="4001"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_RyyVgVJtEd2rTur0B442zw" fontName="Arial"/>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_RyyVglJtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:FillStyle" xmi:id="_RyyVg1JtEd2rTur0B442zw"/>
+        <styles xmi:type="notation:LineStyle" xmi:id="_RyyVhFJtEd2rTur0B442zw" lineColor="0"/>
+        <element xmi:type="bpmn:Activity" href="parallel-split.bpmn#_RywgUFJtEd2rTur0B442zw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RyyVhVJtEd2rTur0B442zw" x="180" y="132"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="__9E4MVJsEd2rTur0B442zw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="__9E4MlJsEd2rTur0B442zw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="__9E4M1JsEd2rTur0B442zw"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="__89jcVJsEd2rTur0B442zw" fontName="Arial"/>
+    <styles xmi:type="notation:DescriptionStyle" xmi:id="__89jclJsEd2rTur0B442zw"/>
+    <styles xmi:type="notation:FillStyle" xmi:id="__89jc1JsEd2rTur0B442zw" fillColor="16771304"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="__89jdFJsEd2rTur0B442zw" lineColor="11119017"/>
+    <element xmi:type="bpmn:Pool" href="parallel-split.bpmn#__7duoVJsEd2rTur0B442zw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__9GGUFJsEd2rTur0B442zw" x="16" y="16" width="333" height="202"/>
+  </children>
+  <styles xmi:type="notation:PageStyle" xmi:id="__63RsVJsEd2rTur0B442zw"/>
+  <styles xmi:type="notation:GuideStyle" xmi:id="__63RslJsEd2rTur0B442zw"/>
+  <styles xmi:type="notation:DescriptionStyle" xmi:id="__63Rs1JsEd2rTur0B442zw"/>
+  <element xmi:type="bpmn:BpmnDiagram" href="parallel-split.bpmn#__6YwkFJsEd2rTur0B442zw"/>
+  <edges xmi:type="notation:Edge" xmi:id="_Kof5EFJtEd2rTur0B442zw" type="3001" source="_KM-asFJtEd2rTur0B442zw" target="_I-6sIFJtEd2rTur0B442zw">
+    <children xmi:type="notation:Node" xmi:id="_Koi8YFJtEd2rTur0B442zw" type="4012">
+      <styles xmi:type="notation:FillStyle" xmi:id="_Koi8YVJtEd2rTur0B442zw" fillColor="16776959"/>
+      <styles xmi:type="notation:LineStyle" xmi:id="_Koi8YlJtEd2rTur0B442zw" lineColor="16776959"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Koi8Y1JtEd2rTur0B442zw" y="-10"/>
+    </children>
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_Kof5EVJtEd2rTur0B442zw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_Kof5ElJtEd2rTur0B442zw" fontName="Arial"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="_Kof5E1JtEd2rTur0B442zw" lineColor="0"/>
+    <element xmi:type="bpmn:SequenceEdge" href="parallel-split.bpmn#_KocOsVJtEd2rTur0B442zw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kof5FFJtEd2rTur0B442zw" points="[15, 0, -213, -12]$[208, 6, -20, -6]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_P3o3cFJtEd2rTur0B442zw" type="3001" source="_I-6sIFJtEd2rTur0B442zw" target="_NKIvYFJtEd2rTur0B442zw">
+    <children xmi:type="notation:Node" xmi:id="_P3pegFJtEd2rTur0B442zw" type="4012">
+      <styles xmi:type="notation:FillStyle" xmi:id="_P3pegVJtEd2rTur0B442zw" fillColor="16776959"/>
+      <styles xmi:type="notation:LineStyle" xmi:id="_P3peglJtEd2rTur0B442zw" lineColor="16776959"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_P3peg1JtEd2rTur0B442zw" y="-10"/>
+    </children>
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_P3o3cVJtEd2rTur0B442zw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_P3o3clJtEd2rTur0B442zw" fontName="Arial"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="_P3o3c1JtEd2rTur0B442zw" lineColor="0"/>
+    <element xmi:type="bpmn:SequenceEdge" href="parallel-split.bpmn#_P3mbMVJtEd2rTur0B442zw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P3o3dFJtEd2rTur0B442zw" points="[-23, -2, -136, 55]$[98, -51, -15, 6]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_Ry5qQFJtEd2rTur0B442zw" type="3001" source="_I-6sIFJtEd2rTur0B442zw" target="_RyyVgFJtEd2rTur0B442zw">
+    <children xmi:type="notation:Node" xmi:id="_Ry64YFJtEd2rTur0B442zw" type="4012">
+      <styles xmi:type="notation:FillStyle" xmi:id="_Ry64YVJtEd2rTur0B442zw" fillColor="16776959"/>
+      <styles xmi:type="notation:LineStyle" xmi:id="_Ry64YlJtEd2rTur0B442zw" lineColor="16776959"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Ry64Y1JtEd2rTur0B442zw" y="-10"/>
+    </children>
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_Ry5qQVJtEd2rTur0B442zw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_Ry6RUFJtEd2rTur0B442zw" fontName="Arial"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="_Ry6RUVJtEd2rTur0B442zw" lineColor="0"/>
+    <element xmi:type="bpmn:SequenceEdge" href="parallel-split.bpmn#_Ry4cIVJtEd2rTur0B442zw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ry6RUlJtEd2rTur0B442zw" points="[-14, -12, 109, 87]$[-121, -97, 2, 2]"/>
+  </edges>
+</notation:Diagram>

Added: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.png
===================================================================
(Binary files differ)


Property changes on: api/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: api/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml
===================================================================
--- api/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml	2008-07-15 13:05:25 UTC (rev 1636)
@@ -1,4 +1,4 @@
-<ns2:process name="basic-sequence" xmlns:ns2="urn:api.bpm.jboss:jpdl-0.1">
+<ns2:process name="testBasicSequence" xmlns:ns2="urn:api.bpm.jboss:jpdl-0.1">
   <start>
     <sequence to="stateA" />
   </start>

Modified: api/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml
===================================================================
--- api/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml	2008-07-15 10:23:31 UTC (rev 1635)
+++ api/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml	2008-07-15 13:05:25 UTC (rev 1636)
@@ -1,4 +1,4 @@
-<ns2:process name="basic-task" xmlns:ns2="urn:api.bpm.jboss:jpdl-0.1">
+<ns2:process name="testBasicTask" xmlns:ns2="urn:api.bpm.jboss:jpdl-0.1">
   <start>
     <sequence to="stateA" />
   </start>




More information about the jbpm-commits mailing list