[jbpm-commits] JBoss JBPM SVN: r1809 - in jbossbpm/spec/trunk/modules: api/src/main/java/org/jboss/bpm/model and 9 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Aug 2 19:46:18 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-08-02 19:46:18 -0400 (Sat, 02 Aug 2008)
New Revision: 1809

Added:
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
Removed:
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt
Modified:
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
   jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.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/ProcessBuilderImpl.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/TaskImpl.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/.project
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.png
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
Log:
STP descriptor include - ok

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -37,6 +37,8 @@
  */
 public interface DialectHandler
 {
+  String DEFAULT_NAMESPACE_URI = "urn:bpm.jboss:pdl-0.1";
+
   /**
    * Get the the supported namespace from this dialect. 
    */

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -67,4 +67,16 @@
    * When two Gates are required, one of them MAY be the DefaultGate.
    */
   List<Gate> getGates();
+  
+  /**
+   * Get the optional default gate
+   * @return null if there is none
+   */
+  Gate getDefaultGate();
+  
+  /**
+   * Get the gate for the given target name
+   * @return null if there is none
+   */
+  Gate getGateByTargetName(String targetName);
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.model;
 
+import org.jboss.bpm.client.DialectHandler;
 import org.jboss.bpm.model.Gateway.GatewayType;
 import org.jboss.bpm.model.Task.TaskType;
 import org.jboss.bpm.runtime.ExecutionHandler;
@@ -43,9 +44,10 @@
   ProcessBuilder addProcess(String name);
 
   /**
-   * Merge with another {@link Process} 
+   * Add all elements from another {@link Process}.
+   * This is typically used by a {@link DialectHandler} when processing an include. 
    */
-  ProcessBuilder mergeProcess(Process proc);
+  ProcessBuilder addProcessElements(Process proc);
   
   /**
    * Get the {@link Process}. 

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -43,11 +43,9 @@
  */
 public class DialectHandlerImpl implements DialectHandler
 {
-  public static final String NAMESPACE_URI = "urn:bpm.jboss:pdl-0.1";
-
   public String getNamespaceURI()
   {
-    return NAMESPACE_URI;
+    return DEFAULT_NAMESPACE_URI;
   }
 
   public Process createProcess(String pXML, boolean isInclude)

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -25,6 +25,7 @@
 
 import java.io.IOException;
 import java.io.Reader;
+import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 
@@ -151,8 +152,15 @@
       
       ProcessManager pm = ProcessManager.locateProcessManager();
       DialectHandler dh = pm.getDialectHandler(nsURI);
-      Process procInclude = dh.createProcess(procURL, true);
-      procBuilder.mergeProcess(procInclude);
+      Process procIncl = dh.createProcess(procURL, true);
+      
+      // Debug the included process
+      StringWriter strwr = new StringWriter();
+      DialectHandler dhapi = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
+      dhapi.marshallProcess(procIncl, strwr);
+      //System.out.println(strwr);
+      
+      procBuilder.addProcessElements(procIncl);
     }
   }
 

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -55,7 +55,7 @@
     Process expProc = procBuilder.getProcess(true);
     
     ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
     
     StringWriter strwr = new StringWriter();
     dh.marshallProcess(expProc, strwr);
@@ -76,7 +76,7 @@
     Process expProc = procBuilder.getProcess(true);
     
     ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
     
     StringWriter strwr = new StringWriter();
     dh.marshallProcess(expProc, strwr);
@@ -100,7 +100,7 @@
     Process expProc = procBuilder.getProcess(true);
     
     ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    DialectHandler dh = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
     
     StringWriter strwr = new StringWriter();
     dh.marshallProcess(expProc, strwr);

Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -168,7 +168,14 @@
     else if (activityType == ActivityType.TASK)
     {
       String name = stpActivity.getLabel();
-      builder.addTask(name, TaskType.None);
+      
+      TaskType taskType = TaskType.None;
+      if (name.startsWith("Send"))
+        taskType = TaskType.Send;
+      if (name.startsWith("Receive"))
+        taskType = TaskType.Receive;
+      
+      builder.addTask(name, taskType);
       adaptOutgoingEdges(builder, stpActivity);
     }
     else if (activityType == ActivityType.GATEWAY_DATA_BASED_EXCLUSIVE)

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-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -31,6 +31,7 @@
 import org.jboss.bpm.model.Expression;
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.Gateway;
 import org.jboss.bpm.model.SequenceFlow;
 import org.jboss.bpm.model.Expression.ExpressionLanguage;
 import org.jboss.bpm.model.SequenceFlow.ConditionType;
@@ -73,6 +74,7 @@
   @Override
   public FlowHandler getFlowHandler()
   {
+    final Gateway gateway = this;
     FlowHandler handler = super.getFlowHandler();
     if (handler == null && getGates().size() > 1)
     {
@@ -127,7 +129,7 @@
           }
           
           if (selectedGate == null)
-            throw new IllegalStateException("Cannot select applicable gate for: " + token);
+            throw new IllegalStateException("Cannot select applicable gate in: " + gateway);
 
           SequenceFlow outFlow = selectedGate.getOutgoingSequenceFlow();
           scheduler.scheduleTuple(outFlow, token);

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-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -95,17 +95,6 @@
     // noting to do
   }
   
-  public void merge(FlowObjectImpl foIncl)
-  {
-    // Merge Handlers
-    if (executionHandler == null)
-      executionHandler = foIncl.getExecutionHandler();
-    if (flowHandler == null)
-      flowHandler = foIncl.getFlowHandler();
-    if (signalHandler == null)
-      signalHandler = foIncl.getSignalHandler();
-  }
-  
   @Override
   protected void initialize(Process proc)
   {
@@ -126,7 +115,7 @@
         {
           String auxName = ((NameSupport)aux).getName();
           if (name.equals(auxName))
-            throw new NameNotUniqueException("NamedFlowObject: " + this);
+            throw new NameNotUniqueException(this.toString());
         }
       }
     }

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-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -26,7 +26,9 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.logging.Log;
@@ -40,6 +42,7 @@
 import org.jboss.bpm.model.OutputSet;
 import org.jboss.bpm.model.SequenceFlow;
 import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.SequenceFlow.ConditionType;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -48,8 +51,8 @@
 import org.jboss.bpm.runtime.internal.TokenImpl;
 
 /**
- * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge within a Process. If the flow does not need to be
- * controlled, then a Gateway is not needed.
+ * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge
+ * within a Process. If the flow does not need to be controlled, then a Gateway is not needed.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -62,7 +65,9 @@
 
   private String name;
   protected List<Flow> inFlows = new ArrayList<Flow>();
-  private List<Gate> gates = new ArrayList<Gate>();
+  private Map<String, Gate> gates = new LinkedHashMap<String, Gate>();
+
+  // Sync management
   private Set<Flow> outstandingFlows;
   private Set<Token> mergeTokens;
 
@@ -78,14 +83,15 @@
 
   public List<Gate> getGates()
   {
-    return Collections.unmodifiableList(gates);
+    return Collections.unmodifiableList(new ArrayList<Gate>(gates.values()));
   }
 
   public void addGate(Gate gate)
   {
-    gates.add(gate);
+    String targetName = gate.getOutgoingSequenceFlow().getTargetName();
+    gates.put(targetName, gate);
   }
-  
+
   public List<Flow> getInFlows()
   {
     return Collections.unmodifiableList(inFlows);
@@ -96,10 +102,31 @@
     this.inFlows.add(inFlow);
   }
 
+  public Gate getDefaultGate()
+  {
+    Gate gate = null;
+    for (Gate aux : gates.values())
+    {
+      SequenceFlow seqFlow = aux.getOutgoingSequenceFlow();
+      if (seqFlow.getConditionType() == ConditionType.Default)
+      {
+        gate = aux;
+        break;
+      }
+    }
+    return gate;
+  }
+
+  public Gate getGateByTargetName(String targetName)
+  {
+    Gate gate = gates.get(targetName);
+    return gate;
+  }
+
   @Override
   public void execute(Token token)
   {
-    // Multiple incomingFlows must be synchronized 
+    // Multiple incomingFlows must be synchronized
     if (getInFlows().size() > 1)
     {
       if (outstandingFlows == null)
@@ -107,14 +134,14 @@
         outstandingFlows = new HashSet<Flow>(inFlows);
         mergeTokens = new HashSet<Token>();
       }
-      
+
       Flow flow = token.getFlow();
       outstandingFlows.remove(flow);
-      
+
       if (outstandingFlows.size() > 0)
         mergeTokens.add(token);
     }
-    
+
     // Call the execution handler with the InputSet
     ExecutionHandler handler = getExecutionHandler();
     if (handler != null)
@@ -122,7 +149,7 @@
       handler.execute(token, null, null);
     }
   }
-  
+
   public ExecutionHandler getExecutionHandler()
   {
     ExecutionHandler handler = super.getExecutionHandler();
@@ -144,7 +171,8 @@
     FlowHandler handler = super.getFlowHandler();
     if (handler == null && gates.size() == 1)
     {
-      final SequenceFlow outFlow = gates.get(0).getOutgoingSequenceFlow();
+      Gate onlyGate = gates.values().iterator().next();
+      final SequenceFlow outFlow = onlyGate.getOutgoingSequenceFlow();
       handler = new FlowHandler()
       {
         public void execute(FlowScheduler scheduler, Token token)
@@ -162,7 +190,7 @@
             {
               // Log the list of outstanding flows
               Set<String> sourceNames = new HashSet<String>();
-              for(Flow flow : outstandingFlows)
+              for (Flow flow : outstandingFlows)
               {
                 GraphicalElement sourceRef = flow.getSourceRef();
                 if (sourceRef instanceof NameSupport)
@@ -188,10 +216,10 @@
     TokenImpl mergedToken = new TokenImpl(token.getProcess(), null);
     for (Token auxToken : mergeTokens)
       mergedToken.mergeToken(auxToken);
-    
+
     return mergedToken;
   }
-  
+
   public SignalHandler getSignalHandler()
   {
     SignalHandler handler = super.getSignalHandler();

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -24,8 +24,10 @@
 //$Id$
 
 import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Gateway;
 import org.jboss.bpm.model.GatewayBuilder;
+import org.jboss.bpm.model.Message;
 import org.jboss.bpm.model.MessageBuilder;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.ProcessBuilder;
@@ -63,9 +65,16 @@
     return this;
   }
 
-  public ProcessBuilder mergeProcess(Process procInclude)
+  public ProcessBuilder addProcessElements(Process addProc)
   {
-    proc.merge(procInclude);
+    for(Message msg : addProc.getMessages())
+    {
+      proc.addMessage(msg);
+    }
+    for(FlowObject fo : addProc.getFlowObjects())
+    {
+      proc.addFlowObject(fo);
+    }
     return this;
   }
 
@@ -125,22 +134,23 @@
 
   public ProcessBuilder addStartEvent()
   {
-    flowObject = new StartEventImpl();
-    addFlowObject();
+    flowObject = addFlowObject(new StartEventImpl());
     return this;
   }
 
   public ProcessBuilder addEvent(String name)
   {
-    flowObject = new IntermediateEventImpl(name);
-    addFlowObject();
+    flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+    if (flowObject == null)
+      flowObject = addFlowObject(new IntermediateEventImpl(name));
     return this;
   }
 
   public ProcessBuilder addEndEvent(String name)
   {
-    flowObject = new EndEventImpl(name);
-    addFlowObject();
+    flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+    if (flowObject == null)
+      flowObject = addFlowObject(new EndEventImpl(name));
     return this;
   }
 
@@ -151,45 +161,53 @@
   
   public TaskBuilder addTask(String name, TaskType type)
   {
-    if (type == TaskType.None || type == null)
+    flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+    if (flowObject == null)
     {
-      flowObject = new NoneTaskImpl(name);
+      if (type == TaskType.None || type == null)
+      {
+        flowObject = new NoneTaskImpl(name);
+      }
+      else if (type == TaskType.Receive)
+      {
+        flowObject = new ReceiveTaskImpl(name);
+      }
+      else if (type == TaskType.Send)
+      {
+        flowObject = new SendTaskImpl(name);
+      }
+      else
+      {
+        throw new NotImplementedException("Task type: " + type);
+      }
+      addFlowObject(flowObject);
     }
-    else if (type == TaskType.Receive)
-    {
-      flowObject = new ReceiveTaskImpl(name);
-    }
-    else if (type == TaskType.Send)
-    {
-      flowObject = new SendTaskImpl(name);
-    }
-    else
-    {
-      throw new NotImplementedException("Task type: " + type);
-    }
-    addFlowObject();
     return new TaskBuilderImpl(proc, flowObject);
   }
 
   public GatewayBuilder addGateway(String name, GatewayType type)
   {
-    if (GatewayType.Exclusive == type)
+    flowObject = (FlowObjectImpl)proc.getFlowObjectByName(name);
+    if (flowObject == null)
     {
-      flowObject = new ExclusiveGatewayDataBasedImpl(name);
+      if (GatewayType.Exclusive == type)
+      {
+        flowObject = new ExclusiveGatewayDataBasedImpl(name);
+      }
+      else if (GatewayType.Inclusive == type)
+      {
+        flowObject = new InclusiveGatewayImpl(name);
+      }
+      else if (GatewayType.Parallel == type)
+      {
+        flowObject = new ParallelGatewayImpl(name);
+      }
+      else if (GatewayType.Complex == type)
+      {
+        flowObject = new ComplexGatewayImpl(name);
+      }
+      addFlowObject(flowObject);
     }
-    else if (GatewayType.Inclusive == type)
-    {
-      flowObject = new InclusiveGatewayImpl(name);
-    }
-    else if (GatewayType.Parallel == type)
-    {
-      flowObject = new ParallelGatewayImpl(name);
-    }
-    else if (GatewayType.Complex == type)
-    {
-      flowObject = new ComplexGatewayImpl(name);
-    }
-    addFlowObject();
     return new GatewayBuilderImpl(proc, flowObject);
   }
   
@@ -247,11 +265,12 @@
     return this;
   }
   
-  private void addFlowObject()
+  private FlowObjectImpl addFlowObject(FlowObjectImpl fo)
   {
     if (proc == null)
       throw new IllegalStateException("No process has been added");
     
-    proc.addFlowObject(flowObject);
+    proc.addFlowObject(fo);
+    return fo;
   }
 }
\ No newline at end of file

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-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -279,9 +279,29 @@
     this.status = status;
   }
   
-  /**
-   * Set the process state
-   */
+  public List<Message> getMessages()
+  {
+    return Collections.unmodifiableList(messages);
+  }
+
+  public void addMessage(Message msg)
+  {
+    if (getMessageByName(msg.getName()) != null)
+      throw new InvalidProcessException("Duplicate message: " + msg);
+    
+    messages.add(msg);
+  }
+  
+  public Message getMessageByName(String msgName)
+  {
+    for (Message msg : messages)
+    {
+      if (msg.getName().equals(msgName))
+        return msg;
+    }
+    return null;
+  }
+  
   public void initialize()
   {
     if (status != Status.None)
@@ -312,53 +332,6 @@
     status = Status.Ready;
   }
 
-  public List<Message> getMessages()
-  {
-    return Collections.unmodifiableList(messages);
-  }
-
-  public void addMessage(Message msg)
-  {
-    if (getMessageByName(msg.getName()) != null)
-      throw new InvalidProcessException("Duplicate message: " + msg);
-    
-    messages.add(msg);
-  }
-  
-  public Message getMessageByName(String msgName)
-  {
-    for (Message msg : messages)
-    {
-      if (msg.getName().equals(msgName))
-        return msg;
-    }
-    return null;
-  }
-  
-  public void merge(Process procIncl)
-  {
-    for(Message msg : procIncl.getMessages())
-    {
-      addMessage(msg);
-    }
-    for(FlowObject foIncl : procIncl.getFlowObjects())
-    {
-      if (foIncl instanceof NameSupport)
-      {
-        String foName = ((NameSupport)foIncl).getName();
-        FlowObjectImpl fo = (FlowObjectImpl)getFlowObjectByName(foName);
-        if (fo != null)
-        {
-          fo.merge((FlowObjectImpl)foIncl);
-        }
-        else
-        {
-          addFlowObject(foIncl);
-        }
-      }
-    }
-  }
-  
   public String toString()
   {
     return "Process[" + getName() + "]";

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -77,7 +77,7 @@
 
   public String toString()
   {
-    return "Task[" + getName() + "]";
+    return "Task[" + getTaskType() + "," + getName() + "]";
   }
 
   protected void initializeMessageRef(Process proc, Message msg)

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/.project
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/.project	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/.project	2008-08-02 23:46:18 UTC (rev 1809)
@@ -15,9 +15,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.stp.bpmn.validation.BatchValidationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+		<nature>org.eclipse.stp.bpmn.validation.BatchValidationBuildAbleNature</nature>
 	</natures>
 </projectDescription>

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -57,15 +57,15 @@
     procBuilder.addProcess("Airticket");
     
     // Add Start Event
-    procBuilder.addStartEvent().addSequenceFlow("ReceiveReqTask");
+    procBuilder.addStartEvent().addSequenceFlow("ReceiveReq");
 
     // Build the ReceiveReqTask
-    TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
+    TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReq", TaskType.Receive);
     taskBuilder.addMessageRef("ReqDataMsg").
-    addSequenceFlow("ValidateTask");
+    addSequenceFlow("Validate");
 
     // Build the ValidateTask
-    taskBuilder = procBuilder.addTask("ValidateTask");
+    taskBuilder = procBuilder.addTask("Validate");
     taskBuilder.addExecutionHandler(ValidationHandler.class).
     addInputSet().
     addPropertyInput("Name", null).
@@ -75,15 +75,15 @@
     addPropertyInput("Seats", null).
     addOutputSet().
     addPropertyOutput("isReqDataValid", null).
-    addSequenceFlow("ValidateGateway");
+    addSequenceFlow("IsValid");
 
     // Build the ValidateGateway
-    GatewayBuilder gatewayBuilder = procBuilder.addGateway("ValidateGateway", GatewayType.Exclusive);
-    gatewayBuilder.addConditionalGate("CheckAvailabilityTask", ExpressionLanguage.MVEL, "isReqDataValid == true").
-    addDefaultGate("SendInvalidTask");
+    GatewayBuilder gatewayBuilder = procBuilder.addGateway("IsValid", GatewayType.Exclusive);
+    gatewayBuilder.addConditionalGate("CheckAvailable", ExpressionLanguage.MVEL, "isReqDataValid == true").
+    addDefaultGate("SendInvalid");
 
     // Build the CheckAvailabilityTask
-    taskBuilder = procBuilder.addTask("CheckAvailabilityTask");
+    taskBuilder = procBuilder.addTask("CheckAvailable");
     taskBuilder.addExecutionHandler(AvailabilityHandler.class).
     addInputSet().
     addPropertyInput("From", null).
@@ -93,67 +93,67 @@
     addOutputSet().
     addPropertyOutput("isAvailable", null).
     addPropertyOutput("Price", null).
-    addSequenceFlow("AvailabilityGateway");
+    addSequenceFlow("IsAvailable");
 
     // Build the SendInvalidTask
-    taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
+    taskBuilder = procBuilder.addTask("SendInvalid", TaskType.Send);
     taskBuilder.addMessageRef("InvalidDataMsg").
-    addSequenceFlow("ReceiveReqTask");
+    addSequenceFlow("ReceiveReq");
 
     // Build the AvailabilityGateway
-    gatewayBuilder = procBuilder.addGateway("AvailabilityGateway", GatewayType.Exclusive);
-    gatewayBuilder.addConditionalGate("SendOfferTask", ExpressionLanguage.MVEL, "isAvailable == true").
-    addDefaultGate("SendNotAvailableTask");
+    gatewayBuilder = procBuilder.addGateway("IsAvailable", GatewayType.Exclusive);
+    gatewayBuilder.addConditionalGate("SendOffer", ExpressionLanguage.MVEL, "isAvailable == true").
+    addDefaultGate("SendNotAvailable");
     
     // Build the SendOfferTask
-    taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
+    taskBuilder = procBuilder.addTask("SendOffer", TaskType.Send);
     taskBuilder.addMessageRef("OfferMsg").
-    addSequenceFlow("ReceiveOrderTask");
+    addSequenceFlow("ReceiveOrder");
 
     // Build the SendNotAvailableTask
-    taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
+    taskBuilder = procBuilder.addTask("SendNotAvailable", TaskType.Send);
     taskBuilder.addMessageRef("NotAvailableMsg").
-    addSequenceFlow("ReceiveReqTask");
+    addSequenceFlow("ReceiveReq");
 
     // Build the ReceiveReqTask
-    taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
+    taskBuilder = procBuilder.addTask("ReceiveOrder", TaskType.Receive);
     taskBuilder.addMessageRef("AcceptOfferMsg").
-    addSequenceFlow("AcceptOfferGateway");
+    addSequenceFlow("IsAccepted");
     
     // Build the AcceptOfferGateway
-    gatewayBuilder = procBuilder.addGateway("AcceptOfferGateway", GatewayType.Exclusive);
-    gatewayBuilder.addConditionalGate("ParallelSplitGateway", ExpressionLanguage.MVEL, "isOfferAccepted == true").
-    addDefaultGate("ReceiveReqTask");
+    gatewayBuilder = procBuilder.addGateway("IsAccepted", GatewayType.Exclusive);
+    gatewayBuilder.addConditionalGate("Split", ExpressionLanguage.MVEL, "isOfferAccepted == true").
+    addDefaultGate("ReceiveReq");
     
     // Build the AcceptOfferGateway
-    gatewayBuilder = procBuilder.addGateway("ParallelSplitGateway", GatewayType.Parallel);
-    gatewayBuilder.addGate("CreditCardTask").
-    addGate("BookingTask");
+    gatewayBuilder = procBuilder.addGateway("Split", GatewayType.Parallel);
+    gatewayBuilder.addGate("CreditCard").
+    addGate("Booking");
     
     // Build the CreditCardTask
-    taskBuilder = procBuilder.addTask("CreditCardTask");
+    taskBuilder = procBuilder.addTask("CreditCard");
     taskBuilder.addInputSet().
     addPropertyInput("CreditCard", null).
     addPropertyInput("Expire", null).
     addPropertyInput("Price", null).
-    addSequenceFlow("SynchronizedJoinGateway");
+    addSequenceFlow("SyncJoin");
     
     // Build the BookingTask
-    taskBuilder = procBuilder.addTask("BookingTask");
+    taskBuilder = procBuilder.addTask("Booking");
     taskBuilder.addInputSet().
     addPropertyInput("Name", null).
     addPropertyInput("From", null).
     addPropertyInput("To", null).
     addPropertyInput("Date", null).
     addPropertyInput("Seats", null).
-    addSequenceFlow("SynchronizedJoinGateway");
+    addSequenceFlow("SyncJoin");
     
     // Build the SynchronizedJoinGateway
-    gatewayBuilder = procBuilder.addGateway("SynchronizedJoinGateway", GatewayType.Parallel);
-    gatewayBuilder.addGate("SendConfirmTask");
+    gatewayBuilder = procBuilder.addGateway("SyncJoin", GatewayType.Parallel);
+    gatewayBuilder.addGate("SendConfirm");
     
     // Build the SendConfirmTask
-    taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
+    taskBuilder = procBuilder.addTask("SendConfirm", TaskType.Send);
     taskBuilder.addMessageRef("ConfirmMsg").
     addSequenceFlow("End");
     

Copied: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java (from rev 1804, jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java)
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AbstractAirticketTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,173 @@
+/*
+ * 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.airticket;
+
+// $Id$
+
+import javax.management.ObjectName;
+
+import org.jboss.bpm.client.MessageListener;
+import org.jboss.bpm.client.MessageManager;
+import org.jboss.bpm.client.ObjectNameFactory;
+import org.jboss.bpm.client.SignalListener;
+import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.MessageBuilder;
+import org.jboss.bpm.model.MessageBuilderFactory;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test the Airticket sample application
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public abstract class AbstractAirticketTest extends DefaultEngineTestCase
+{
+  @Override
+  public ObjectName getMessageListenerID()
+  {
+    return ObjectNameFactory.create("jboss.bpm:client=AirticketTest");
+  }
+  
+  @Override
+  protected void setUp() throws Exception
+  {
+    super.setUp();
+
+    // Add a signal listener
+    SignalListener sl = new SignalListener()
+    {
+      public void catchSignal(Signal signal)
+      {
+        // System.out.println(signal);
+      }
+    };
+    SignalManager engine = SignalManager.locateSignalManager();
+    engine.addSignalListener("Airticket", sl);
+  }
+
+  protected void runProcessInvalidData(Process proc)
+  {
+    MessageManager mm = MessageManager.locateMessageManager();
+    AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
+    mm.addMessageListener(msgListener);
+
+    mm.sendMessage(proc.getID(), "ReceiveReq", getInvalidRequestMessage());
+    proc.waitForEnd();
+
+    Message confirmMessage = msgListener.getConfirmMessage();
+    assertNotNull("Expected confirm message", confirmMessage);
+    String price = confirmMessage.getPropertyValue("Price");
+    assertEquals("222", price);
+  }
+
+  protected void runProcessValidData(Process proc)
+  {
+    MessageManager mm = MessageManager.locateMessageManager();
+    AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
+    mm.addMessageListener(msgListener);
+
+    mm.sendMessage(proc.getID(), "ReceiveReq", getValidRequestMessage());
+    proc.waitForEnd();
+
+    Message confirmMessage = msgListener.getConfirmMessage();
+    assertNotNull("Expected confirm message", confirmMessage);
+    String price = confirmMessage.getPropertyValue("Price");
+    assertEquals("222", price);
+  }
+
+  private Message getValidRequestMessage()
+  {
+    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+    Message msg = msgBuilder.newMessage("ReqDataMsg").
+    addProperty("Name", "Kermit").
+    addProperty("From", "MUC").
+    addProperty("To", "NYC").
+    addProperty("Date", "25-Jul-2008").
+    addProperty("Seats", "2").getMessage();
+    return msg;
+  }
+
+  private Message getInvalidRequestMessage()
+  {
+    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+    Message msg = msgBuilder.newMessage("ReqDataMsg").
+    addToRef(getMessageListenerID()).
+    addProperty("Name", "Kermit").
+    addProperty("From", "MUC").
+    addProperty("To", "NYC").
+    addProperty("Date", "25-Jul-2008").
+    addProperty("Seats", "0"). // Invalid number of seats
+    getMessage();
+    return msg;
+  }
+
+  private Message getAcceptOfferMessage()
+  {
+    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
+    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
+    Message msg = msgBuilder.newMessage("AcceptOfferMsg").
+    addProperty("CreditCard", "1234-1234-1234-1234").
+    addProperty("Expire", "25-Jul-2012").
+    addProperty("isOfferAccepted", "true").
+    getMessage();
+    return msg;
+  }
+
+  class AirticketMessageListener implements MessageListener
+  {
+    private ObjectName listenerID;
+    private Message confirmMessage;
+
+    private AirticketMessageListener(ObjectName listenerID)
+    {
+      this.listenerID = listenerID;
+    }
+
+    public Message getConfirmMessage()
+    {
+      return confirmMessage;
+    }
+
+    public void catchMessage(Message msg)
+    {
+      ObjectName procID = msg.getFrom().getProcess().getID();
+      MessageManager mm = MessageManager.locateMessageManager();
+      if (msg.getName().equals("InvalidDataMsg"))
+        mm.sendMessage(procID, "ReceiveReq", getValidRequestMessage());
+      else if (msg.getName().equals("OfferMsg"))
+        mm.sendMessage(procID, "ReceiveOrder", getAcceptOfferMessage());
+      else if (msg.getName().equals("ConfirmMsg"))
+        confirmMessage = msg;
+    }
+
+    public ObjectName getMessageListenerID()
+    {
+      return listenerID;
+    }
+  }
+}
\ No newline at end of file

Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,56 @@
+/*
+ * 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.airticket;
+
+// $Id$
+
+import java.net.URL;
+
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketAPIDescriptorTest extends AbstractAirticketTest
+{
+  public void testValidData() throws Exception
+  {
+    URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(expURL);
+    proc.startProcess();
+    runProcessValidData(proc);
+  }
+
+  public void testInvalidData() throws Exception
+  {
+    URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(expURL);
+    proc.startProcess();
+    runProcessInvalidData(proc);
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketAPIDescriptorTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,51 @@
+/*
+ * 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.airticket;
+
+// $Id$
+
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketProcBuilderTest extends AbstractAirticketTest
+{
+  public void testValidData() throws Exception
+  {
+    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
+    Process proc = builder.buildProcess();
+    proc.startProcess();
+    runProcessValidData(proc);
+  }
+
+  public void testInvalidData() throws Exception
+  {
+    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
+    Process proc = builder.buildProcess();
+    proc.startProcess();
+    runProcessInvalidData(proc);
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketProcBuilderTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -0,0 +1,65 @@
+/*
+ * 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.airticket;
+
+// $Id$
+
+import java.io.StringWriter;
+import java.net.URL;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Process;
+
+/**
+ * Test the Airticket sample application
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class AirticketSTPDescriptorTest extends AbstractAirticketTest
+{
+  public void testValidData() throws Exception
+  {
+    URL expURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(expURL);
+    
+    // Debug the effective process
+    StringWriter strwr = new StringWriter();
+    DialectHandler dhapi = pm.getDialectHandler(DialectHandler.DEFAULT_NAMESPACE_URI);
+    dhapi.marshallProcess(proc, strwr);
+    //System.out.println(strwr);
+    
+    proc.startProcess();
+    runProcessValidData(proc);
+  }
+
+  public void testInvalidData() throws Exception
+  {
+    URL expURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(expURL);
+    proc.startProcess();
+    runProcessInvalidData(proc);
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketSTPDescriptorTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,190 +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.samples.airticket;
-
-// $Id$
-
-import java.net.URL;
-
-import javax.management.ObjectName;
-
-import org.jboss.bpm.client.MessageListener;
-import org.jboss.bpm.client.MessageManager;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.client.SignalListener;
-import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.model.Message;
-import org.jboss.bpm.model.MessageBuilder;
-import org.jboss.bpm.model.MessageBuilderFactory;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-
-/**
- * Test the Airticket sample application
- * 
- * @author thomas.diesler at jboss.com
- * @since 03-Jul-2008
- */
-public class AirticketTest extends DefaultEngineTestCase
-{
-  @Override
-  protected void setUp() throws Exception
-  {
-    super.setUp();
-
-    // Add a signal listener
-    SignalListener sl = new SignalListener()
-    {
-      public void catchSignal(Signal signal)
-      {
-        // System.out.println(signal);
-      }
-    };
-    SignalManager engine = SignalManager.locateSignalManager();
-    engine.addSignalListener("Airticket", sl);
-  }
-
-  public void _testProcessStart() throws Exception
-  {
-    URL jpdlURL = getResourceURL("samples/airticket/airticket.bpmn");
-
-    // Create a Process through the ProcessManager
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    Process proc = pm.createProcess(jpdlURL);
-    assertNotNull(proc);
-
-    proc.startProcess();
-    proc.waitForEnd();
-  }
-
-  public void testValidRequest() throws Exception
-  {
-    MessageManager mm = MessageManager.locateMessageManager();
-    AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
-    mm.addMessageListener(msgListener);
-
-    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
-    Process proc = builder.buildProcess();
-    proc.startProcess();
-
-    mm.sendMessage(proc.getID(), "ReceiveReqTask", getValidRequestMessage());
-    proc.waitForEnd();
-
-    Message confirmMessage = msgListener.getConfirmMessage();
-    assertNotNull("Expected confirm message", confirmMessage);
-    String price = confirmMessage.getPropertyValue("Price");
-    assertEquals("222", price);
-  }
-
-  public void testInvalidRequest() throws Exception
-  {
-    MessageManager mm = MessageManager.locateMessageManager();
-    AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
-    mm.addMessageListener(msgListener);
-
-    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
-    Process proc = builder.buildProcess();
-    proc.startProcess();
-
-    mm.sendMessage(proc.getID(), "ReceiveReqTask", getInvalidRequestMessage());
-    proc.waitForEnd();
-
-    Message confirmMessage = msgListener.getConfirmMessage();
-    assertNotNull("Expected confirm message", confirmMessage);
-    String price = confirmMessage.getPropertyValue("Price");
-    assertEquals("222", price);
-  }
-
-  private Message getValidRequestMessage()
-  {
-    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
-    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
-    Message msg = msgBuilder.newMessage("ReqDataMsg").
-    addProperty("Name", "Kermit").
-    addProperty("From", "MUC").
-    addProperty("To", "NYC").
-    addProperty("Date", "25-Jul-2008").
-    addProperty("Seats", "2").getMessage();
-    return msg;
-  }
-
-  private Message getInvalidRequestMessage()
-  {
-    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
-    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
-    Message msg = msgBuilder.newMessage("ReqDataMsg").
-    addToRef(getMessageListenerID()).
-    addProperty("Name", "Kermit").
-    addProperty("From", "MUC").
-    addProperty("To", "NYC").
-    addProperty("Date", "25-Jul-2008").
-    addProperty("Seats", "0"). // Invalid number of seats
-    getMessage();
-    return msg;
-  }
-
-  private Message getAcceptOfferMessage()
-  {
-    MessageBuilderFactory msgFactory = MessageBuilderFactory.newInstance();
-    MessageBuilder msgBuilder = msgFactory.newMessageBuilder();
-    Message msg = msgBuilder.newMessage("AcceptOfferMsg").
-    addProperty("CreditCard", "1234-1234-1234-1234").
-    addProperty("Expire", "25-Jul-2012").
-    addProperty("isOfferAccepted", "true").
-    getMessage();
-    return msg;
-  }
-
-  class AirticketMessageListener implements MessageListener
-  {
-    private ObjectName listenerID;
-    private Message confirmMessage;
-
-    private AirticketMessageListener(ObjectName listenerID)
-    {
-      this.listenerID = listenerID;
-    }
-
-    public Message getConfirmMessage()
-    {
-      return confirmMessage;
-    }
-
-    public void catchMessage(Message msg)
-    {
-      ObjectName procID = msg.getFrom().getProcess().getID();
-      MessageManager mm = MessageManager.locateMessageManager();
-      if (msg.getName().equals("InvalidDataMsg"))
-        mm.sendMessage(procID, "ReceiveReqTask", getValidRequestMessage());
-      else if (msg.getName().equals("OfferMsg"))
-        mm.sendMessage(procID, "ReceiveOrderTask", getAcceptOfferMessage());
-      else if (msg.getName().equals("ConfirmMsg"))
-        confirmMessage = msg;
-    }
-
-    public ObjectName getMessageListenerID()
-    {
-      return listenerID;
-    }
-  }
-}
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -24,11 +24,13 @@
 // $Id$
 
 import java.io.ByteArrayInputStream;
-import java.io.FileWriter;
 import java.io.StringWriter;
 import java.net.URL;
 
+import javax.management.ObjectName;
+
 import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ObjectNameFactory;
 import org.jboss.bpm.client.ProcessManager;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.test.DefaultEngineTestCase;
@@ -44,6 +46,12 @@
  */
 public class ProcessMarshallerTest extends DefaultEngineTestCase
 {
+  @Override
+  public ObjectName getMessageListenerID()
+  {
+    return ObjectNameFactory.create("jboss.bpm:client=AirticketTest");
+  }
+
   /**
    * Build the process through a ProcessBuilder.
    * Marshall it through the DialectHandler.
@@ -68,14 +76,8 @@
     Element expEl = DOMUtils.parse(expURL.openStream());
     String expStr = DOMWriter.printNode(expEl, true);
 
-    // Write the file for debugging
-    if (expStr.equals(wasStr) == false)
-    {
-      FileWriter fileWriter = new FileWriter("airticket-was-api10.xml");
-      fileWriter.write(wasStr);
-      fileWriter.close();
-    }
-    
+    //System.out.println(expStr);
+    //System.out.println(wasStr);
     assertEquals(expStr, wasStr);
   }
   

Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/STPProcessIncludeTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,72 +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.samples.airticket;
-
-// $Id$
-
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-import java.net.URL;
-
-import org.jboss.bpm.client.DialectHandler;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-import org.jboss.util.xml.DOMUtils;
-import org.jboss.util.xml.DOMWriter;
-import org.w3c.dom.Element;
-
-/**
- * Test the Airticket process marshaller
- * 
- * @author thomas.diesler at jboss.com
- * @since 03-Jul-2008
- */
-public class STPProcessIncludeTest extends DefaultEngineTestCase
-{
-  /**
-   * Build the process through the ProcessManager. Uses an process definition with an include of an STP process.
-   * Marshall it through the DialectHandler. Compare the output with expected file content.
-   */
-  public void testBPMNProcessMerge() throws Exception
-  {
-    URL bpmnURL = getResourceURL("samples/airticket/airticket-stp-api10.xml");
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    Process proc = pm.createProcess(bpmnURL);
-
-    StringWriter strwr = new StringWriter();
-    DialectHandler dh = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
-    dh.marshallProcess(proc, strwr);
-    String procXML = strwr.toString();
-
-    Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
-    String wasStr = DOMWriter.printNode(wasEl, true);
-
-    URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
-    Element expEl = DOMUtils.parse(expURL.openStream());
-    String expStr = DOMWriter.printNode(expEl, true);
-
-    // System.out.println(expStr);
-    // System.out.println(wasStr);
-    assertEquals(expStr, wasStr);
-  }
-}
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml	2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,13 +1,13 @@
 <ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
  <start>
-  <seqflow to='ReceiveReqTask'/>
+  <seqflow to='ReceiveReq'/>
  </start>
- <task name='ReceiveReqTask' taskType='Receive'>
-  <seqflow to='ValidateTask'/>
+ <task name='ReceiveReq' taskType='Receive'>
+  <seqflow to='Validate'/>
   <msgref nameRef='ReqDataMsg'/>
  </task>
- <task name='ValidateTask' taskType='None'>
-  <seqflow to='ValidateGateway'/>
+ <task name='Validate' taskType='None'>
+  <seqflow to='IsValid'/>
   <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler'/>
   <input-set>
    <property>
@@ -32,14 +32,14 @@
    </property>
   </output-set>
  </task>
- <exclusive-gateway name='ValidateGateway'>
-  <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+ <exclusive-gateway name='IsValid'>
+  <seqflow conditionType='Expression' to='CheckAvailable'>
    <condition lang='MVEL'>isReqDataValid == true</condition>
   </seqflow>
-  <seqflow conditionType='Default' to='SendInvalidTask'/>
+  <seqflow conditionType='Default' to='SendInvalid'/>
  </exclusive-gateway>
- <task name='CheckAvailabilityTask' taskType='None'>
-  <seqflow to='AvailabilityGateway'/>
+ <task name='CheckAvailable' taskType='None'>
+  <seqflow to='IsAvailable'/>
   <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler'/>
   <input-set>
    <property>
@@ -64,40 +64,40 @@
    </property>
   </output-set>
  </task>
- <task name='SendInvalidTask' taskType='Send'>
-  <seqflow to='ReceiveReqTask'/>
+ <task name='SendInvalid' taskType='Send'>
+  <seqflow to='ReceiveReq'/>
   <msgref nameRef='InvalidDataMsg'/>
  </task>
- <exclusive-gateway name='AvailabilityGateway'>
-  <seqflow conditionType='Expression' to='SendOfferTask'>
+ <exclusive-gateway name='IsAvailable'>
+  <seqflow conditionType='Expression' to='SendOffer'>
    <condition lang='MVEL'>isAvailable == true</condition>
   </seqflow>
-  <seqflow conditionType='Default' to='SendNotAvailableTask'/>
+  <seqflow conditionType='Default' to='SendNotAvailable'/>
  </exclusive-gateway>
- <task name='SendOfferTask' taskType='Send'>
-  <seqflow to='ReceiveOrderTask'/>
+ <task name='SendOffer' taskType='Send'>
+  <seqflow to='ReceiveOrder'/>
   <msgref nameRef='OfferMsg'/>
  </task>
- <task name='SendNotAvailableTask' taskType='Send'>
-  <seqflow to='ReceiveReqTask'/>
+ <task name='SendNotAvailable' taskType='Send'>
+  <seqflow to='ReceiveReq'/>
   <msgref nameRef='NotAvailableMsg'/>
  </task>
- <task name='ReceiveOrderTask' taskType='Receive'>
-  <seqflow to='AcceptOfferGateway'/>
+ <task name='ReceiveOrder' taskType='Receive'>
+  <seqflow to='IsAccepted'/>
   <msgref nameRef='AcceptOfferMsg'/>
  </task>
- <exclusive-gateway name='AcceptOfferGateway'>
-  <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+ <exclusive-gateway name='IsAccepted'>
+  <seqflow conditionType='Expression' to='Split'>
    <condition lang='MVEL'>isOfferAccepted == true</condition>
   </seqflow>
-  <seqflow conditionType='Default' to='ReceiveReqTask'/>
+  <seqflow conditionType='Default' to='ReceiveReq'/>
  </exclusive-gateway>
- <parallel-gateway name='ParallelSplitGateway'>
-  <seqflow to='CreditCardTask'/>
-  <seqflow to='BookingTask'/>
+ <parallel-gateway name='Split'>
+  <seqflow to='CreditCard'/>
+  <seqflow to='Booking'/>
  </parallel-gateway>
- <task name='CreditCardTask' taskType='None'>
-  <seqflow to='SynchronizedJoinGateway'/>
+ <task name='CreditCard' taskType='None'>
+  <seqflow to='SyncJoin'/>
   <input-set>
    <property>
     <name>CreditCard</name>
@@ -110,8 +110,8 @@
    </property>
   </input-set>
  </task>
- <task name='BookingTask' taskType='None'>
-  <seqflow to='SynchronizedJoinGateway'/>
+ <task name='Booking' taskType='None'>
+  <seqflow to='SyncJoin'/>
   <input-set>
    <property>
     <name>Name</name>
@@ -130,10 +130,10 @@
    </property>
   </input-set>
  </task>
- <parallel-gateway name='SynchronizedJoinGateway'>
-  <seqflow to='SendConfirmTask'/>
+ <parallel-gateway name='SyncJoin'>
+  <seqflow to='SendConfirm'/>
  </parallel-gateway>
- <task name='SendConfirmTask' taskType='Send'>
+ <task name='SendConfirm' taskType='Send'>
   <seqflow to='End'/>
   <msgref nameRef='ConfirmMsg'/>
  </task>
@@ -156,7 +156,7 @@
   </property>
  </message>
  <message name='InvalidDataMsg'>
-  <to>jboss.bpm:test=testProcessMarshaller</to>
+  <to>jboss.bpm:client=AirticketTest</to>
   <property correlation='true'>
    <name>Name</name>
   </property>
@@ -174,7 +174,7 @@
   </property>
  </message>
  <message name='NotAvailableMsg'>
-  <to>jboss.bpm:test=testProcessMarshaller</to>
+  <to>jboss.bpm:client=AirticketTest</to>
   <property correlation='true'>
    <name>Name</name>
   </property>
@@ -192,7 +192,7 @@
   </property>
  </message>
  <message name='OfferMsg'>
-  <to>jboss.bpm:test=testProcessMarshaller</to>
+  <to>jboss.bpm:client=AirticketTest</to>
   <property correlation='true'>
    <name>Name</name>
   </property>
@@ -224,7 +224,7 @@
   </property>
  </message>
  <message name='ConfirmMsg'>
-  <to>jboss.bpm:test=testProcessMarshaller</to>
+  <to>jboss.bpm:client=AirticketTest</to>
   <property correlation='true'>
    <name>Name</name>
   </property>

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-stp-api10.xml	2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,9 +1,14 @@
 <ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
   <include namespace="http://stp.eclipse.org/bpmn" location="samples/airticket/airticket.bpmn" />
-  <task name='ReceiveReqTask' taskType='Receive'>
+  <!-- start>
+    <seqflow to='ReceiveReq' />
+  </start-->
+  <task name='ReceiveReq' taskType='Receive'>
+    <!-- seqflow to='Validate' /-->
     <msgref nameRef='ReqDataMsg' />
   </task>
-  <task name='ValidateTask' taskType='None'>
+  <task name='Validate' taskType='None'>
+    <!-- seqflow to='IsValid' /-->
     <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
     <input-set>
       <property>
@@ -28,13 +33,14 @@
       </property>
     </output-set>
   </task>
-  <exclusive-gateway name='ValidateGateway'>
-    <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
+  <exclusive-gateway name='IsValid'>
+    <seqflow conditionType='Expression' to='CheckAvailable'>
       <condition lang='MVEL'>isReqDataValid == true</condition>
     </seqflow>
-    <seqflow conditionType='Default' to='SendInvalidTask' />
+    <seqflow conditionType='Default' to='SendInvalid' />
   </exclusive-gateway>
-  <task name='CheckAvailabilityTask' taskType='None'>
+  <task name='CheckAvailable' taskType='None'>
+    <!-- seqflow to='IsAvailable' /-->
     <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
     <input-set>
       <property>
@@ -59,31 +65,40 @@
       </property>
     </output-set>
   </task>
-  <task name='SendInvalidTask' taskType='Send'>
+  <task name='SendInvalid' taskType='Send'>
+    <!-- seqflow to='ReceiveReq' /-->
     <msgref nameRef='InvalidDataMsg' />
   </task>
-  <exclusive-gateway name='AvailabilityGateway'>
-    <seqflow conditionType='Expression' to='SendOfferTask'>
+  <exclusive-gateway name='IsAvailable'>
+    <seqflow conditionType='Expression' to='SendOffer'>
       <condition lang='MVEL'>isAvailable == true</condition>
     </seqflow>
-    <seqflow conditionType='Default' to='SendNotAvailableTask' />
+    <seqflow conditionType='Default' to='SendNotAvailable' />
   </exclusive-gateway>
-  <task name='SendOfferTask' taskType='Send'>
+  <task name='SendOffer' taskType='Send'>
+    <!-- seqflow to='ReceiveOrder' /-->
     <msgref nameRef='OfferMsg' />
   </task>
-  <task name='SendNotAvailableTask' taskType='Send'>
+  <task name='SendNotAvailable' taskType='Send'>
+    <!-- seqflow to='ReceiveReq' /-->
     <msgref nameRef='NotAvailableMsg' />
   </task>
-  <task name='ReceiveOrderTask' taskType='Receive'>
+  <task name='ReceiveOrder' taskType='Receive'>
+    <!-- seqflow to='IsAccepted' /-->
     <msgref nameRef='AcceptOfferMsg' />
   </task>
-  <exclusive-gateway name='AcceptOfferGateway'>
-    <seqflow conditionType='Expression' to='ParallelSplitGateway'>
+  <exclusive-gateway name='IsAccepted'>
+    <seqflow conditionType='Expression' to='Split'>
       <condition lang='MVEL'>isOfferAccepted == true</condition>
     </seqflow>
-    <seqflow conditionType='Default' to='ReceiveReqTask' />
+    <seqflow conditionType='Default' to='ReceiveReq' />
   </exclusive-gateway>
-  <task name='CreditCardTask' taskType='None'>
+  <!-- parallel-gateway name='Split'>
+    <seqflow to='CreditCard' />
+    <seqflow to='Booking' />
+  </parallel-gateway-->
+  <task name='CreditCard' taskType='None'>
+    <!-- seqflow to='SyncJoin' /-->
     <input-set>
       <property>
         <name>CreditCard</name>
@@ -96,7 +111,8 @@
       </property>
     </input-set>
   </task>
-  <task name='BookingTask' taskType='None'>
+  <task name='Booking' taskType='None'>
+    <!-- seqflow to='SyncJoin' /-->
     <input-set>
       <property>
         <name>Name</name>
@@ -115,9 +131,14 @@
       </property>
     </input-set>
   </task>
-  <task name='SendConfirmTask' taskType='Send'>
+  <!-- parallel-gateway name='SyncJoin'>
+    <seqflow to='SendConfirm' />
+  </parallel-gateway-->
+  <task name='SendConfirm' taskType='Send'>
+    <!-- seqflow to='End' /-->
     <msgref nameRef='ConfirmMsg' />
   </task>
+  <!--  end name='End' /-->
   <message name='ReqDataMsg'>
     <property correlation='true'>
       <name>Name</name>
@@ -136,7 +157,7 @@
     </property>
   </message>
   <message name='InvalidDataMsg'>
-    <to>jboss.bpm:test=testProcessMarshaller</to>
+    <to>jboss.bpm:client=AirticketTest</to>
     <property correlation='true'>
       <name>Name</name>
     </property>
@@ -154,7 +175,7 @@
     </property>
   </message>
   <message name='NotAvailableMsg'>
-    <to>jboss.bpm:test=testProcessMarshaller</to>
+    <to>jboss.bpm:client=AirticketTest</to>
     <property correlation='true'>
       <name>Name</name>
     </property>
@@ -172,7 +193,7 @@
     </property>
   </message>
   <message name='OfferMsg'>
-    <to>jboss.bpm:test=testProcessMarshaller</to>
+    <to>jboss.bpm:client=AirticketTest</to>
     <property correlation='true'>
       <name>Name</name>
     </property>
@@ -204,7 +225,7 @@
     </property>
   </message>
   <message name='ConfirmMsg'>
-    <to>jboss.bpm:test=testProcessMarshaller</to>
+    <to>jboss.bpm:client=AirticketTest</to>
     <property correlation='true'>
       <name>Name</name>
     </property>

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn	2008-08-02 23:46:18 UTC (rev 1809)
@@ -2,23 +2,23 @@
 <bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_iYxIQFhrEd2aHsyOaYt_3g" iD="_iYwhMFhrEd2aHsyOaYt_3g">
   <pools xmi:type="bpmn:Pool" xmi:id="_dhOfoVhtEd2aHsyOaYt_3g" iD="_dhOfoFhtEd2aHsyOaYt_3g" name="Pool">
     <vertices xmi:type="bpmn:Activity" xmi:id="_huULIVhtEd2aHsyOaYt_3g" iD="_huULIFhtEd2aHsyOaYt_3g" outgoingEdges="_iyzG8VhtEd2aHsyOaYt_3g" activityType="EventStartEmpty"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_rsTeQVhtEd2aHsyOaYt_3g" incomingEdges="_efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g _iyzG8VhtEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_rsQa8VhtEd2aHsyOaYt_3g" iD="_rsQa8FhtEd2aHsyOaYt_3g" outgoingEdges="_zUIyUFhtEd2aHsyOaYt_3g _ApdYMVhvEd2aHsyOaYt_3g" incomingEdges="_rsTeQVhtEd2aHsyOaYt_3g" name="  Validate" activityType="GatewayDataBasedExclusive"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_zUDSwVhtEd2aHsyOaYt_3g" iD="_zUDSwFhtEd2aHsyOaYt_3g" outgoingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" incomingEdges="_zUIyUFhtEd2aHsyOaYt_3g" name="CheckAvail" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_9Q1sAFhtEd2aHsyOaYt_3g" iD="_9Q1E8FhtEd2aHsyOaYt_3g" outgoingEdges="_BdGREVhuEd2aHsyOaYt_3g _fHP64VhwEd2aHsyOaYt_3g" incomingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" name="Available" activityType="GatewayDataBasedExclusive"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_lMlo0VhtEd2aHsyOaYt_3g" iD="_lMlo0FhtEd2aHsyOaYt_3g" outgoingEdges="_7grf0WDaEd2jINLjV_7TQw" incomingEdges="_efVRMVhuEd2aHsyOaYt_3g _r-90MVhwEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g _iyzG8VhtEd2aHsyOaYt_3g" name="ReceiveReq" activityType="Task"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_rsQa8VhtEd2aHsyOaYt_3g" iD="_rsQa8FhtEd2aHsyOaYt_3g" outgoingEdges="_zUIyUFhtEd2aHsyOaYt_3g _ApdYMVhvEd2aHsyOaYt_3g" incomingEdges="_8u-e8WDaEd2jINLjV_7TQw" name="IsValid" activityType="GatewayDataBasedExclusive"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_zUDSwVhtEd2aHsyOaYt_3g" iD="_zUDSwFhtEd2aHsyOaYt_3g" outgoingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" incomingEdges="_zUIyUFhtEd2aHsyOaYt_3g" name="CheckAvailable" activityType="Task"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_9Q1sAFhtEd2aHsyOaYt_3g" iD="_9Q1E8FhtEd2aHsyOaYt_3g" outgoingEdges="_BdGREVhuEd2aHsyOaYt_3g _fHP64VhwEd2aHsyOaYt_3g" incomingEdges="_9Q4IQVhtEd2aHsyOaYt_3g" name="IsAvailable" activityType="GatewayDataBasedExclusive"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_BdDNwVhuEd2aHsyOaYt_3g" iD="_BdDNwFhuEd2aHsyOaYt_3g" outgoingEdges="_tT3_YVh1Ed2aHsyOaYt_3g" incomingEdges="_BdGREVhuEd2aHsyOaYt_3g" name="SendOffer" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_D-IqcVhuEd2aHsyOaYt_3g" iD="_D-IqcFhuEd2aHsyOaYt_3g" outgoingEdges="_lVOK8VhuEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g" incomingEdges="_waDtMVh1Ed2aHsyOaYt_3g" name="Accepted" activityType="GatewayDataBasedExclusive"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_T7iiUVhuEd2aHsyOaYt_3g" iD="_T7iiUFhuEd2aHsyOaYt_3g" outgoingEdges="_efVRMVhuEd2aHsyOaYt_3g" incomingEdges="_ApdYMVhvEd2aHsyOaYt_3g" name="    SendInvalid" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_lVLHoVhuEd2aHsyOaYt_3g" iD="_lVLHoFhuEd2aHsyOaYt_3g" outgoingEdges="_VtHYMVhvEd2aHsyOaYt_3g _Ypm-gVhvEd2aHsyOaYt_3g" incomingEdges="_lVOK8VhuEd2aHsyOaYt_3g" activityType="GatewayParallel"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_D-IqcVhuEd2aHsyOaYt_3g" iD="_D-IqcFhuEd2aHsyOaYt_3g" outgoingEdges="_lVOK8VhuEd2aHsyOaYt_3g _1UWrsVhvEd2aHsyOaYt_3g" incomingEdges="_waDtMVh1Ed2aHsyOaYt_3g" name="IsAccepted" activityType="GatewayDataBasedExclusive"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_T7iiUVhuEd2aHsyOaYt_3g" iD="_T7iiUFhuEd2aHsyOaYt_3g" outgoingEdges="_efVRMVhuEd2aHsyOaYt_3g" incomingEdges="_ApdYMVhvEd2aHsyOaYt_3g" name="SendInvalid" activityType="Task"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_lVLHoVhuEd2aHsyOaYt_3g" iD="_lVLHoFhuEd2aHsyOaYt_3g" outgoingEdges="_VtHYMVhvEd2aHsyOaYt_3g _Ypm-gVhvEd2aHsyOaYt_3g" incomingEdges="_lVOK8VhuEd2aHsyOaYt_3g" name="Split" activityType="GatewayParallel"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_VtDt0VhvEd2aHsyOaYt_3g" iD="_VtDt0FhvEd2aHsyOaYt_3g" outgoingEdges="_Fj6DgVhwEd2aHsyOaYt_3g" incomingEdges="_VtHYMVhvEd2aHsyOaYt_3g" name="CreditCard" activityType="Task"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_Ypj7MVhvEd2aHsyOaYt_3g" iD="_Ypj7MFhvEd2aHsyOaYt_3g" outgoingEdges="_GJUdsVhwEd2aHsyOaYt_3g" incomingEdges="_Ypm-gVhvEd2aHsyOaYt_3g" name="Booking" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_Fj1LAVhwEd2aHsyOaYt_3g" iD="_Fj1LAFhwEd2aHsyOaYt_3g" outgoingEdges="_LXfLsVhwEd2aHsyOaYt_3g" incomingEdges="_Fj6DgVhwEd2aHsyOaYt_3g _GJUdsVhwEd2aHsyOaYt_3g" activityType="GatewayParallel"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_Fj1LAVhwEd2aHsyOaYt_3g" iD="_Fj1LAFhwEd2aHsyOaYt_3g" outgoingEdges="_LXfLsVhwEd2aHsyOaYt_3g" incomingEdges="_Fj6DgVhwEd2aHsyOaYt_3g _GJUdsVhwEd2aHsyOaYt_3g" name="Join" activityType="GatewayParallel"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_LXbhUVhwEd2aHsyOaYt_3g" iD="_LXbhUFhwEd2aHsyOaYt_3g" outgoingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" incomingEdges="_LXfLsVhwEd2aHsyOaYt_3g" name="SendConfirm" activityType="Task"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_QQMAAVhwEd2aHsyOaYt_3g" iD="_QQMAAFhwEd2aHsyOaYt_3g" incomingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" activityType="EventEndEmpty"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_fHKbUVhwEd2aHsyOaYt_3g" iD="_fHKbUFhwEd2aHsyOaYt_3g" outgoingEdges="_r-90MVhwEd2aHsyOaYt_3g" incomingEdges="_fHP64VhwEd2aHsyOaYt_3g" name="    SendNotAvail" activityType="Task"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_QQMAAVhwEd2aHsyOaYt_3g" iD="_QQMAAFhwEd2aHsyOaYt_3g" incomingEdges="_QQQ4gVhwEd2aHsyOaYt_3g" name="End" activityType="EventEndEmpty"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_fHKbUVhwEd2aHsyOaYt_3g" iD="_fHKbUFhwEd2aHsyOaYt_3g" outgoingEdges="_r-90MVhwEd2aHsyOaYt_3g" incomingEdges="_fHP64VhwEd2aHsyOaYt_3g" name="SendNotAvailable" activityType="Task"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_tTzG4Fh1Ed2aHsyOaYt_3g" iD="_tTyf0Fh1Ed2aHsyOaYt_3g" outgoingEdges="_waDtMVh1Ed2aHsyOaYt_3g" incomingEdges="_tT3_YVh1Ed2aHsyOaYt_3g" name="ReceiveOrder" activityType="Task"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_4Ph4IWDaEd2jINLjV_7TQw" iD="_4Ph4IGDaEd2jINLjV_7TQw" outgoingEdges="_8u-e8WDaEd2jINLjV_7TQw" incomingEdges="_7grf0WDaEd2jINLjV_7TQw" name="Validate"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_iyzG8VhtEd2aHsyOaYt_3g" iD="_iyzG8FhtEd2aHsyOaYt_3g" source="_huULIVhtEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
-    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_rsTeQVhtEd2aHsyOaYt_3g" iD="_rsTeQFhtEd2aHsyOaYt_3g" source="_lMlo0VhtEd2aHsyOaYt_3g" target="_rsQa8VhtEd2aHsyOaYt_3g"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_zUIyUFhtEd2aHsyOaYt_3g" iD="_zUILQFhtEd2aHsyOaYt_3g" source="_rsQa8VhtEd2aHsyOaYt_3g" target="_zUDSwVhtEd2aHsyOaYt_3g"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_9Q4IQVhtEd2aHsyOaYt_3g" iD="_9Q4IQFhtEd2aHsyOaYt_3g" source="_zUDSwVhtEd2aHsyOaYt_3g" target="_9Q1sAFhtEd2aHsyOaYt_3g"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_BdGREVhuEd2aHsyOaYt_3g" iD="_BdGREFhuEd2aHsyOaYt_3g" source="_9Q1sAFhtEd2aHsyOaYt_3g" target="_BdDNwVhuEd2aHsyOaYt_3g"/>
@@ -36,5 +36,7 @@
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_r-90MVhwEd2aHsyOaYt_3g" iD="_r-90MFhwEd2aHsyOaYt_3g" source="_fHKbUVhwEd2aHsyOaYt_3g" target="_lMlo0VhtEd2aHsyOaYt_3g"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_tT3_YVh1Ed2aHsyOaYt_3g" iD="_tT3_YFh1Ed2aHsyOaYt_3g" source="_BdDNwVhuEd2aHsyOaYt_3g" target="_tTzG4Fh1Ed2aHsyOaYt_3g"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_waDtMVh1Ed2aHsyOaYt_3g" iD="_waDtMFh1Ed2aHsyOaYt_3g" source="_tTzG4Fh1Ed2aHsyOaYt_3g" target="_D-IqcVhuEd2aHsyOaYt_3g"/>
+    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_7grf0WDaEd2jINLjV_7TQw" iD="_7grf0GDaEd2jINLjV_7TQw" source="_lMlo0VhtEd2aHsyOaYt_3g" target="_4Ph4IWDaEd2jINLjV_7TQw"/>
+    <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_8u-e8WDaEd2jINLjV_7TQw" iD="_8u-e8GDaEd2jINLjV_7TQw" source="_4Ph4IWDaEd2jINLjV_7TQw" target="_rsQa8VhtEd2aHsyOaYt_3g"/>
   </pools>
 </bpmn:BpmnDiagram>

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.bpmn_diagram	2008-08-02 23:46:18 UTC (rev 1809)
@@ -13,7 +13,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_huUyM1htEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_huUyNFhtEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_huULIVhtEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" x="24" y="48"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_huUyNVhtEd2aHsyOaYt_3g" x="24" y="36"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_lMmP4FhtEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_lMm28FhtEd2aHsyOaYt_3g" type="4001"/>
@@ -22,7 +22,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_lMmP41htEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_lMmP5FhtEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_lMlo0VhtEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="96" y="84"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMmP5VhtEd2aHsyOaYt_3g" x="96" y="60"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_rsRCAFhtEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_rsRpEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -31,7 +31,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_rsRCA1htEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_rsRCBFhtEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_rsQa8VhtEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="252" y="72"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsRCBVhtEd2aHsyOaYt_3g" x="384" y="60"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_zUEg4FhtEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_zUEg5lhtEd2aHsyOaYt_3g" type="4001"/>
@@ -40,7 +40,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_zUEg41htEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_zUEg5FhtEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_zUDSwVhtEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="324"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zUEg5VhtEd2aHsyOaYt_3g" x="456"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_9Q1sAVhtEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_9Q2TEFhtEd2aHsyOaYt_3g" type="4001"/>
@@ -49,7 +49,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_9Q1sBFhtEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_9Q1sBVhtEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_9Q1sAFhtEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="468" y="72"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1sBlhtEd2aHsyOaYt_3g" x="600" y="72"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_BdD00FhuEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_BdD01lhuEd2aHsyOaYt_3g" type="4001"/>
@@ -58,7 +58,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_BdD001huEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_BdD01FhuEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_BdDNwVhuEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="540"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdD01VhuEd2aHsyOaYt_3g" x="672"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_D-J4kFhuEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_D-KfoFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -67,7 +67,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_D-J4k1huEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_D-J4lFhuEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_D-IqcVhuEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="708" y="132"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-J4lVhuEd2aHsyOaYt_3g" x="840" y="132"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_T7jwcFhuEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_T7kXgFhuEd2aHsyOaYt_3g" type="4001"/>
@@ -76,7 +76,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_T7jwc1huEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_T7jwdFhuEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_T7iiUVhuEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="324" y="120"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7jwdVhuEd2aHsyOaYt_3g" x="456" y="120"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_lVLHolhuEd2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_lVLuslhuEd2aHsyOaYt_3g" type="4001"/>
@@ -139,7 +139,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_fHLpc1hwEd2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_fHLpdFhwEd2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_fHKbUVhwEd2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="540" y="120"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fHLpdVhwEd2aHsyOaYt_3g" x="672" y="120"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_tTzt8Fh1Ed2aHsyOaYt_3g" type="2001">
         <children xmi:type="notation:Node" xmi:id="_tT0VAFh1Ed2aHsyOaYt_3g" type="4001"/>
@@ -148,8 +148,17 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_tTzt81h1Ed2aHsyOaYt_3g"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_tTzt9Fh1Ed2aHsyOaYt_3g" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="airticket.bpmn#_tTzG4Fh1Ed2aHsyOaYt_3g"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="696"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tTzt9Vh1Ed2aHsyOaYt_3g" x="828"/>
       </children>
+      <children xmi:type="notation:Node" xmi:id="_4PmwoGDaEd2jINLjV_7TQw" type="2001">
+        <children xmi:type="notation:Node" xmi:id="_4PrpIGDaEd2jINLjV_7TQw" type="4001"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_4PmwoWDaEd2jINLjV_7TQw" fontName="Arial"/>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_4PmwomDaEd2jINLjV_7TQw"/>
+        <styles xmi:type="notation:FillStyle" xmi:id="_4Pmwo2DaEd2jINLjV_7TQw"/>
+        <styles xmi:type="notation:LineStyle" xmi:id="_4PmwpGDaEd2jINLjV_7TQw" lineColor="0"/>
+        <element xmi:type="bpmn:Activity" href="airticket.bpmn#_4Ph4IWDaEd2jINLjV_7TQw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4PmwpWDaEd2jINLjV_7TQw" x="240" y="60"/>
+      </children>
       <styles xmi:type="notation:DrawerStyle" xmi:id="_dhSKAVhtEd2aHsyOaYt_3g"/>
       <styles xmi:type="notation:SortingStyle" xmi:id="_dhSKAlhtEd2aHsyOaYt_3g"/>
       <styles xmi:type="notation:FilteringStyle" xmi:id="_dhSKA1htEd2aHsyOaYt_3g"/>
@@ -159,7 +168,7 @@
     <styles xmi:type="notation:FillStyle" xmi:id="_dhRi8VhtEd2aHsyOaYt_3g" fillColor="16771304"/>
     <styles xmi:type="notation:LineStyle" xmi:id="_dhRi8lhtEd2aHsyOaYt_3g" lineColor="11119017"/>
     <element xmi:type="bpmn:Pool" href="airticket.bpmn#_dhOfoVhtEd2aHsyOaYt_3g"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dhRi81htEd2aHsyOaYt_3g" x="16" y="24" width="1253" height="565"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dhRi81htEd2aHsyOaYt_3g" x="16" y="24" width="1017" height="565"/>
   </children>
   <styles xmi:type="notation:PageStyle" xmi:id="_iZDcIVhrEd2aHsyOaYt_3g"/>
   <styles xmi:type="notation:GuideStyle" xmi:id="_iZDcIlhrEd2aHsyOaYt_3g"/>
@@ -177,18 +186,6 @@
     <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_iyzG8VhtEd2aHsyOaYt_3g"/>
     <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iy0VE1htEd2aHsyOaYt_3g" points="[0, 0, -30, -133]$[15, 0, -15, -133]$[15, 133, -15, 0]$[30, 133, 0, 0]"/>
   </edges>
-  <edges xmi:type="notation:Edge" xmi:id="_rsUFUFhtEd2aHsyOaYt_3g" type="3001" source="_lMmP4FhtEd2aHsyOaYt_3g" target="_rsRCAFhtEd2aHsyOaYt_3g">
-    <children xmi:type="notation:Node" xmi:id="_rsUsYFhtEd2aHsyOaYt_3g" type="4012">
-      <styles xmi:type="notation:FillStyle" xmi:id="_rsUsYVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
-      <styles xmi:type="notation:LineStyle" xmi:id="_rsUsYlhtEd2aHsyOaYt_3g" lineColor="16776959"/>
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_rsUsY1htEd2aHsyOaYt_3g" y="-10"/>
-    </children>
-    <styles xmi:type="notation:RoutingStyle" xmi:id="_rsUFUVhtEd2aHsyOaYt_3g" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
-    <styles xmi:type="notation:FontStyle" xmi:id="_rsUFUlhtEd2aHsyOaYt_3g" fontName="Arial"/>
-    <styles xmi:type="notation:LineStyle" xmi:id="_rsUFU1htEd2aHsyOaYt_3g" lineColor="0"/>
-    <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_rsTeQVhtEd2aHsyOaYt_3g"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rsUFVFhtEd2aHsyOaYt_3g" points="[-53, -16, 254, 73]$[-305, -89, 2, 0]"/>
-  </edges>
   <edges xmi:type="notation:Edge" xmi:id="_zUJZYFhtEd2aHsyOaYt_3g" type="3001" source="_rsRCAFhtEd2aHsyOaYt_3g" target="_zUEg4FhtEd2aHsyOaYt_3g">
     <children xmi:type="notation:Node" xmi:id="_zUKAcFhtEd2aHsyOaYt_3g" type="4012">
       <styles xmi:type="notation:FillStyle" xmi:id="_zUKAcVhtEd2aHsyOaYt_3g" fillColor="16776959"/>
@@ -393,4 +390,28 @@
     <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_waDtMVh1Ed2aHsyOaYt_3g"/>
     <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_waE7VFh1Ed2aHsyOaYt_3g" points="[-8, 29, 8, -100]$[-40, 128, -24, -1]"/>
   </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_7gt8EGDaEd2jINLjV_7TQw" type="3001" source="_lMmP4FhtEd2aHsyOaYt_3g" target="_4PmwoGDaEd2jINLjV_7TQw">
+    <children xmi:type="notation:Node" xmi:id="_7gvxQGDaEd2jINLjV_7TQw" type="4012">
+      <styles xmi:type="notation:FillStyle" xmi:id="_7gvxQWDaEd2jINLjV_7TQw" fillColor="16776959"/>
+      <styles xmi:type="notation:LineStyle" xmi:id="_7gvxQmDaEd2jINLjV_7TQw" lineColor="16776959"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_7gvxQ2DaEd2jINLjV_7TQw" y="-10"/>
+    </children>
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_7gt8EWDaEd2jINLjV_7TQw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_7gt8EmDaEd2jINLjV_7TQw" fontName="Arial"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="_7gt8E2DaEd2jINLjV_7TQw" lineColor="0"/>
+    <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_7grf0WDaEd2jINLjV_7TQw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7gt8FGDaEd2jINLjV_7TQw" points="[54, -3, -102, -3]$[103, -11, -53, -11]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_8vAUIGDaEd2jINLjV_7TQw" type="3001" source="_4PmwoGDaEd2jINLjV_7TQw" target="_rsRCAFhtEd2aHsyOaYt_3g">
+    <children xmi:type="notation:Node" xmi:id="_8vAUJWDaEd2jINLjV_7TQw" type="4012">
+      <styles xmi:type="notation:FillStyle" xmi:id="_8vA7MGDaEd2jINLjV_7TQw" fillColor="16776959"/>
+      <styles xmi:type="notation:LineStyle" xmi:id="_8vA7MWDaEd2jINLjV_7TQw" lineColor="16776959"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_8vA7MmDaEd2jINLjV_7TQw" y="-10"/>
+    </children>
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_8vAUIWDaEd2jINLjV_7TQw" routing="Rectilinear" smoothness="Normal" closestDistance="true"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_8vAUImDaEd2jINLjV_7TQw" fontName="Arial"/>
+    <styles xmi:type="notation:LineStyle" xmi:id="_8vAUI2DaEd2jINLjV_7TQw" lineColor="0"/>
+    <element xmi:type="bpmn:SequenceEdge" href="airticket.bpmn#_8u-e8WDaEd2jINLjV_7TQw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8vAUJGDaEd2jINLjV_7TQw" points="[54, -13, -50, 2]$[96, -33, -8, -18]"/>
+  </edges>
 </notation:Diagram>

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket.png
===================================================================
(Binary files differ)

Deleted: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/describtion.txt	2008-08-02 23:46:18 UTC (rev 1809)
@@ -1,19 +0,0 @@
-# $Id$
-#
-# A description/notes for the Airticket sample 
-
-* FrontGateServlet receives a request
-* New Session starts the process
-* HomePage Task sends request form
-* ReceiveReq Task requires RequestData
-* FrontGateServlet sends RequestData to ReceiveReq Task
-* Validate ExclusiveGateway branches based on BPMN props
-* CheckAvail Task contacts airline for seat availability
-* Available ExclusiveGateway branches based on BPMN props 
-* ReceiveOrder Task requires OrderData
-* Accept ExclusiveGateway branches based on BPMN props
-* Both CreditCard and Booking Task require OrderData
-* Process fails if OrderData requirement not sattisfied
-* Join waits for both Tasks to finish
-* SendConfirm Task sends confirmation
-* Process ends 

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java	2008-08-02 17:00:12 UTC (rev 1808)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java	2008-08-02 23:46:18 UTC (rev 1809)
@@ -92,20 +92,4 @@
       assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("end event") > 0);
     }
   }
-
-  public void testNodeNameUniqueness() throws Exception
-  {
-    try
-    {
-      // Create a Process through the ProcessBuilder
-      ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-      builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
-      addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
-      fail("InvalidProcessException expected");
-    }
-    catch (InvalidProcessException ex)
-    {
-      // expected;
-    }
-  }
 }




More information about the jbpm-commits mailing list