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

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jul 31 19:27:17 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-31 19:27:17 -0400 (Thu, 31 Jul 2008)
New Revision: 1796

Modified:
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
   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/TaskBuilder.java
   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/model/JAXBGateway.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBIntermediateEvent.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBStartEvent.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSubProcess.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowImpl.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/MessageImpl.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/ReceiveTaskImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml
   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/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/engine/basic-engine-api10.xml
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml
Log:
Support marshall/unmarshall roundtrip

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/MessageManager.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -94,7 +94,7 @@
   {
     ProcessManager pm = getProcessEngine().getProcessManager();
     Process proc = pm.getProcessByID(procID);
-    FlowObject target = proc.findFlowObject(targetName);
+    FlowObject target = proc.getFlowObjectByName(targetName);
     if (target == null)
       throw new IllegalArgumentException("Cannot find message target: " + targetName);
     if (target instanceof MessageListener == false)

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -27,7 +27,6 @@
 
 import javax.management.ObjectName;
 
-
 import org.jboss.bpm.runtime.Attachments;
 
 /**
@@ -140,12 +139,23 @@
 
   /**
    * Find a flow object by name
-   * 
    * @return null if not found
    */
-  FlowObject findFlowObject(String name);
+  FlowObject getFlowObjectByName(String name);
 
   /**
+   * Get the list of associated {@link Message} objects.
+   * @return An empty list if there are none
+   */
+  List<Message> getMessages();
+
+  /**
+   * Get an associated {@link Message} by name.
+   * @return null if not found
+   */
+  Message getMessageByName(String msgName);
+  
+  /**
    * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. 
    * The Process will be in a running state until all Tokens are consumed.
    * <p/>

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -43,16 +43,13 @@
   ProcessBuilder addProcess(String name);
 
   /**
-   * Get the {@link Process}. <p/> This is the final call to the ProcessBuilder after all elements have been added.
+   * Get the {@link Process}. 
+   * <p/> 
+   * This is the final call to the ProcessBuilder after all elements have been added.
    */
   Process getProcess();
 
   /**
-   * Add a {@link SubProcess} with a given name
-   */
-  ProcessBuilder addSubProcess(String name);
-
-  /**
    * Add a {@link SequenceFlow} with a given name
    */
   ProcessBuilder addSequenceFlow(String targetName);
@@ -70,7 +67,7 @@
   /**
    * Add an {@link IntermediateEvent} with a given name
    */
-  ProcessBuilder addItermediateEvent(String name);
+  ProcessBuilder addEvent(String name);
 
   /**
    * Add an {@link EndEvent} with a given name
@@ -93,6 +90,11 @@
   GatewayBuilder addGateway(String name, GatewayType type);
 
   /**
+   * Add a @{link Message} with a given name.
+   */
+  MessageBuilder addMessage(String name);
+  
+  /**
    * Add an {@link ExecutionHandler} with a given Class
    */
   ProcessBuilder addExecutionHandler(Class<?> clazz);

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -37,7 +37,5 @@
 
   TaskBuilder addMessageRef(String messageName, ObjectName targetID);
 
-  TaskBuilder addMessageProperty(String propName, String propValue, boolean isCorrelation);
-  
   TaskBuilder addExecutionHandler(Class<?> clazz);
 }
\ No newline at end of file

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -25,174 +25,230 @@
 
 import java.io.Reader;
 
+import javax.management.ObjectName;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 
-import org.jboss.bpm.InvalidProcessException;
 import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.client.ObjectNameFactory;
 import org.jboss.bpm.dialect.api10.model.JAXBComplexGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBEndEvent;
+import org.jboss.bpm.dialect.api10.model.JAXBEvent;
 import org.jboss.bpm.dialect.api10.model.JAXBExclusiveGateway;
+import org.jboss.bpm.dialect.api10.model.JAXBExpression;
 import org.jboss.bpm.dialect.api10.model.JAXBFlow;
 import org.jboss.bpm.dialect.api10.model.JAXBFlowObject;
+import org.jboss.bpm.dialect.api10.model.JAXBGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBHandler;
 import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
-import org.jboss.bpm.dialect.api10.model.JAXBIntermediateEvent;
+import org.jboss.bpm.dialect.api10.model.JAXBInputSet;
+import org.jboss.bpm.dialect.api10.model.JAXBMessage;
+import org.jboss.bpm.dialect.api10.model.JAXBOutputSet;
 import org.jboss.bpm.dialect.api10.model.JAXBParallelGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBProcess;
+import org.jboss.bpm.dialect.api10.model.JAXBProperty;
+import org.jboss.bpm.dialect.api10.model.JAXBSequenceFlow;
 import org.jboss.bpm.dialect.api10.model.JAXBStartEvent;
-import org.jboss.bpm.dialect.api10.model.JAXBSubProcess;
 import org.jboss.bpm.dialect.api10.model.JAXBTask;
 import org.jboss.bpm.dialect.api10.model.ObjectFactory;
+import org.jboss.bpm.model.GatewayBuilder;
+import org.jboss.bpm.model.MessageBuilder;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.ProcessBuilder;
 import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.TaskBuilder;
 import org.jboss.bpm.model.Gateway.GatewayType;
-import org.jboss.bpm.model.Task.TaskType;
+import org.jboss.bpm.model.SequenceFlow.ConditionType;
+import org.jboss.bpm.runtime.Handler;
 
-
 /**
- * A JAXB unmarshaller for a Process 
+ * A JAXB unmarshaller for a Process
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class ProcessUnmarshaller 
+public class ProcessUnmarshaller
 {
-  public Process unmarshallProcess(Reader xml) throws JAXBException 
+  public Process unmarshallProcess(Reader xml) throws JAXBException
   {
     JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
     Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-    unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory",new ObjectFactory());
+    unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory", new ObjectFactory());
     JAXBProcess jaxbProc = (JAXBProcess)unmarshaller.unmarshal(xml);
     Process proc = adaptProcess(jaxbProc);
     return proc;
   }
-  
+
   private Process adaptProcess(JAXBProcess jaxbProc)
   {
-    ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-    builder.addProcess(jaxbProc.getName());
-    
-    for (JAXBFlowObject jaxbFlowObject : jaxbProc.getFlowObjects())
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+    procBuilder.addProcess(jaxbProc.getName());
+    for (JAXBFlowObject jaxb : jaxbProc.getFlowObjects())
     {
-      if (jaxbFlowObject instanceof JAXBStartEvent)
+      if (jaxb instanceof JAXBEvent)
       {
-        adaptStartEvent(builder, (JAXBStartEvent)jaxbFlowObject);
+        adaptJAXBEvent(procBuilder, (JAXBEvent)jaxb);
       }
-      else if (jaxbFlowObject instanceof JAXBIntermediateEvent)
+      else if (jaxb instanceof JAXBTask)
       {
-        adaptIntermediateEvent(builder, (JAXBIntermediateEvent)jaxbFlowObject);
+        adaptTask(procBuilder, (JAXBTask)jaxb);
       }
-      else if (jaxbFlowObject instanceof JAXBEndEvent)
+      else if (jaxb instanceof JAXBGateway)
       {
-        adaptEndEvent(builder, (JAXBEndEvent)jaxbFlowObject);
+        adaptJAXBGateway(procBuilder, (JAXBGateway)jaxb);
       }
-      else if (jaxbFlowObject instanceof JAXBSubProcess)
+      else
       {
-        adaptSubProcess(builder, (JAXBSubProcess)jaxbFlowObject);
+        throw new NotImplementedException(jaxb.toString());
       }
-      else if (jaxbFlowObject instanceof JAXBTask)
+    }
+    for(JAXBMessage jaxb : jaxbProc.getMessages())
+    {
+      MessageBuilder msgBuilder = procBuilder.addMessage(jaxb.getName());
+      for (JAXBProperty jaxbProp : jaxb.getProperties())
       {
-        adaptTask(builder, (JAXBTask)jaxbFlowObject);
+        msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), jaxbProp.isCorrelation());
       }
-      else if (jaxbFlowObject instanceof JAXBExclusiveGateway)
-      {
-        adaptExclusiveGateway(builder, (JAXBExclusiveGateway)jaxbFlowObject);
-      }
-      else if (jaxbFlowObject instanceof JAXBInclusiveGateway)
-      {
-        adaptInclusiveGateway(builder, (JAXBInclusiveGateway)jaxbFlowObject);
-      }
-      else if (jaxbFlowObject instanceof JAXBComplexGateway)
-      {
-        adaptComplexGateway(builder, (JAXBComplexGateway)jaxbFlowObject);
-      }
-      else if (jaxbFlowObject instanceof JAXBParallelGateway)
-      {
-        adaptParallelGateway(builder, (JAXBParallelGateway)jaxbFlowObject);
-      }
-      else
-      {
-        throw new InvalidProcessException("Unsupported type: " + jaxbFlowObject);
-      }
     }
-
-    Process proc = builder.getProcess();
+    Process proc = procBuilder.getProcess();
     return proc;
   }
 
-  private void adaptExclusiveGateway(ProcessBuilder builder, JAXBExclusiveGateway jaxb)
+  private void adaptJAXBEvent(ProcessBuilder procBuilder, JAXBEvent jaxb)
   {
-    builder.addGateway(jaxb.getName(), GatewayType.Exclusive);
-    for(JAXBFlow flow : jaxb.getOutFlows())
-      builder.addSequenceFlow(flow.getTargetName());
+    if (jaxb instanceof JAXBStartEvent)
+    {
+      procBuilder.addStartEvent();
+      JAXBStartEvent jaxbStart = (JAXBStartEvent)jaxb;
+      addOutFlow(procBuilder, jaxbStart.getOutFlow());
+    }
+    else if (jaxb instanceof JAXBEndEvent)
+    {
+      JAXBEndEvent jaxbEnd = (JAXBEndEvent)jaxb;
+      procBuilder.addEndEvent(jaxbEnd.getName());
+    }
+    else
+    {
+      throw new NotImplementedException(jaxb.toString());
+    }
+    procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
+    procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));
+    procBuilder.addSignalHandler(loadHandler(jaxb.getSignalHandler()));
   }
 
-  private void adaptInclusiveGateway(ProcessBuilder builder, JAXBInclusiveGateway jaxb)
+  private void adaptTask(ProcessBuilder procBuilder, JAXBTask jaxb)
   {
-    builder.addGateway(jaxb.getName(), GatewayType.Inclusive);
-    for(JAXBFlow flow : jaxb.getOutFlows())
-      builder.addSequenceFlow(flow.getTargetName());
+    TaskBuilder taskBuilder = procBuilder.addTask(jaxb.getName(), jaxb.getTaskType());
+    addOutFlow(taskBuilder, jaxb.getOutFlow());
+    for (JAXBInputSet jaxbSet : jaxb.getInputSets())
+    {
+      taskBuilder.addInputSet();
+      for (JAXBProperty jaxbProp : jaxbSet.getProperties())
+        taskBuilder.addPropertyInput(jaxbProp.getName(), jaxbProp.getValue());
+    }
+    for (JAXBOutputSet jaxbSet : jaxb.getOutputSets())
+    {
+      taskBuilder.addOutputSet();
+      for (JAXBProperty jaxbProp : jaxbSet.getProperties())
+        taskBuilder.addPropertyOutput(jaxbProp.getName(), jaxbProp.getValue());
+    }
+    JAXBMessage jaxbMessage = jaxb.getMessageRef();
+    if (jaxbMessage != null)
+    {
+      String toStr = jaxbMessage.getToRef();
+      ObjectName toRef = (toStr != null ? ObjectNameFactory.create(toStr) : null);
+      taskBuilder.addMessageRef(jaxbMessage.getRef(), toRef);
+    }
+    procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
+    procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));
+    procBuilder.addSignalHandler(loadHandler(jaxb.getSignalHandler()));
   }
 
-  private void adaptComplexGateway(ProcessBuilder builder, JAXBComplexGateway jaxb)
+  private void adaptJAXBGateway(ProcessBuilder procBuilder, JAXBGateway jaxb)
   {
-    builder.addGateway(jaxb.getName(), GatewayType.Complex);
-    for(JAXBFlow flow : jaxb.getOutFlows())
-      builder.addSequenceFlow(flow.getTargetName());
+    GatewayBuilder gwBuilder;
+    if (jaxb instanceof JAXBExclusiveGateway)
+    {
+      gwBuilder = procBuilder.addGateway(jaxb.getName(), GatewayType.Exclusive);
+    }
+    else if (jaxb instanceof JAXBInclusiveGateway)
+    {
+      gwBuilder = procBuilder.addGateway(jaxb.getName(), GatewayType.Inclusive);
+    }
+    else if (jaxb instanceof JAXBComplexGateway)
+    {
+      gwBuilder = procBuilder.addGateway(jaxb.getName(), GatewayType.Complex);
+    }
+    else if (jaxb instanceof JAXBParallelGateway)
+    {
+      gwBuilder = procBuilder.addGateway(jaxb.getName(), GatewayType.Parallel);
+    }
+    else
+    {
+      throw new NotImplementedException(jaxb.toString());
+    }
+    for (JAXBFlow jaxbFlow : jaxb.getOutFlows())
+    {
+      if (jaxbFlow instanceof JAXBSequenceFlow)
+      {
+        JAXBSequenceFlow jaxbSeq = (JAXBSequenceFlow)jaxbFlow;
+        if (jaxbSeq.getConditionType() == ConditionType.Expression)
+        {
+          JAXBExpression jaxbExpr = jaxbSeq.getCondition();
+          gwBuilder.addConditionalGate(jaxbFlow.getTargetName(), jaxbExpr.getLang(), jaxbExpr.getBody());
+        }
+        else if (jaxbSeq.getConditionType() == ConditionType.Default)
+        {
+          gwBuilder.addDefaultGate(jaxbFlow.getTargetName());
+        }
+        else
+        {
+          gwBuilder.addGate(jaxbFlow.getTargetName());
+        }
+      }
+      else
+      {
+        throw new NotImplementedException(jaxbFlow.toString());
+      }
+    }
+    procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
+    procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));
+    procBuilder.addSignalHandler(loadHandler(jaxb.getSignalHandler()));
   }
 
-  private void adaptParallelGateway(ProcessBuilder builder, JAXBParallelGateway jaxb)
+  private void addOutFlow(ProcessBuilder procBuilder, JAXBFlow jaxbFlow)
   {
-    builder.addGateway(jaxb.getName(), GatewayType.Parallel);
-    for(JAXBFlow flow : jaxb.getOutFlows())
-      builder.addSequenceFlow(flow.getTargetName());
+    if (jaxbFlow != null)
+    {
+      if (jaxbFlow instanceof JAXBSequenceFlow)
+      {
+        procBuilder.addSequenceFlow(jaxbFlow.getTargetName());
+      }
+      else
+      {
+        throw new NotImplementedException(jaxbFlow.toString());
+      }
+    }
   }
 
-  private void adaptTask(ProcessBuilder builder, JAXBTask jaxb)
+  @SuppressWarnings("unchecked")
+  private Class<Handler> loadHandler(JAXBHandler jaxbHandler)
   {
-    String targetName = jaxb.getOutFlow().getTargetName();
-    builder.addTask(jaxb.getName(), TaskType.None).addSequenceFlow(targetName);
-    
-    JAXBHandler jaxbHandler = jaxb.getExecutionHandler();
+    Class<Handler> handlerClass = null;
     if (jaxbHandler != null)
-      builder.addExecutionHandler(loadHandler(jaxbHandler.getClassName()));
-  }
-
-  private void adaptStartEvent(ProcessBuilder builder, JAXBStartEvent jaxb)
-  {
-    String targetName = jaxb.getOutFlow().getTargetName();
-    builder.addStartEvent().addSequenceFlow(targetName);
-  }
-
-  private void adaptIntermediateEvent(ProcessBuilder builder, JAXBIntermediateEvent jaxb)
-  {
-    String targetName = jaxb.getOutFlow().getTargetName();
-    builder.addItermediateEvent(jaxb.getName()).addSequenceFlow(targetName);
-  }
-
-  private void adaptEndEvent(ProcessBuilder builder, JAXBEndEvent jaxb)
-  {
-    builder.addEndEvent(jaxb.getName());
-  }
-
-  private void adaptSubProcess(ProcessBuilder builder, JAXBSubProcess jaxb)
-  {
-    throw new NotImplementedException();
-  }
-
-  private Class<?> loadHandler(String className)
-  {
-    try
     {
-      ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
-      return ctxLoader.loadClass(className);
+      String className = jaxbHandler.getClassName();
+      try
+      {
+        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+        handlerClass = (Class<Handler>)ctxLoader.loadClass(className);
+      }
+      catch (ClassNotFoundException e)
+      {
+        throw new IllegalStateException("Cannot load handler class: " + className);
+      }
     }
-    catch (ClassNotFoundException e)
-    {
-      throw new IllegalStateException("Cannot load handler class: " + className);
-    }
+    return handlerClass;
   }
 }

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBGateway.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBGateway.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBGateway.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -47,8 +47,8 @@
   private JAXBSignalHandler signalHandler;
   
   @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
+    @XmlElement(name = "seqflow", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "msgflow", type = JAXBMessageFlow.class) 
     })
   private List<JAXBFlow> outFlows = new ArrayList<JAXBFlow>();
   

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBIntermediateEvent.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBIntermediateEvent.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBIntermediateEvent.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -46,8 +46,8 @@
   private String name;
   
   @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
+    @XmlElement(name = "seqflow", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "msgflow", type = JAXBMessageFlow.class) 
     })
   private JAXBFlow outFlow;
   

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBStartEvent.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBStartEvent.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBStartEvent.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -39,8 +39,8 @@
 public class JAXBStartEvent extends JAXBEvent
 {
   @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+    @XmlElement(name = "seqflow", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "msgflow", type = JAXBMessageFlow.class) })
   private JAXBFlow outFlow;
 
   public JAXBFlow getOutFlow()

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSubProcess.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSubProcess.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSubProcess.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -42,8 +42,8 @@
   private JAXBSignalHandler signalHandler;
 
   @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+    @XmlElement(name = "seqflow", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "msgflow", type = JAXBMessageFlow.class) })
   private JAXBFlow outFlow;
 
   public JAXBFlow getOutFlow()

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -58,8 +58,9 @@
   private JAXBFlowHandler flowHandler;
   private JAXBSignalHandler signalHandler;
 
-  @XmlElements( { @XmlElement(name = "sequence", type = JAXBSequenceFlow.class),
-      @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+  @XmlElements( { 
+    @XmlElement(name = "seqflow", type = JAXBSequenceFlow.class),
+    @XmlElement(name = "msgflow", type = JAXBMessageFlow.class) })
   private JAXBFlow outFlow;
 
   public JAXBFlow getOutFlow()

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -43,6 +43,9 @@
 
   public FlowImpl(String targetName)
   {
+    if (targetName == null)
+      throw new IllegalArgumentException("Target name cannot be null");
+    
     this.targetName = targetName;
   }
 

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -171,7 +171,7 @@
     if (flow != null)
     {
       String name = flow.getTargetName();
-      FlowObject target = proc.findFlowObject(name);
+      FlowObject target = proc.getFlowObjectByName(name);
       if (target == null)
         throw new InvalidProcessException("Cannot find target for out flow: " + name);
 

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -54,15 +54,17 @@
 
   public MessageImpl(String name, ObjectName targetID)
   {
-    this.name = name;
-    this.targetID = targetID;
+    this(name, targetID, null);
   }
 
-  public MessageImpl(FlowObject sourceFO, String name, ObjectName targetID)
+  public MessageImpl(String name, ObjectName targetID, FlowObject sourceFO)
   {
-    this.sourceFO = sourceFO;
+    if (name == null)
+      throw new IllegalArgumentException("Message name cannot be null");
+    
     this.name = name;
     this.targetID = targetID;
+    this.sourceFO = sourceFO;
   }
 
   public String getName()

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -26,6 +26,7 @@
 import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.model.Gateway;
 import org.jboss.bpm.model.GatewayBuilder;
+import org.jboss.bpm.model.MessageBuilder;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.ProcessBuilder;
 import org.jboss.bpm.model.TaskBuilder;
@@ -71,13 +72,6 @@
     return proc;
   }
 
-  public ProcessBuilder addSubProcess(String name)
-  {
-    flowObject = new SubProcessImpl(name);
-    addFlowObject();
-    return this;
-  }
-
   public ProcessBuilder addSequenceFlow(String targetName)
   {
     if (flowObject instanceof SingleOutFlowSetterSupport)
@@ -128,7 +122,7 @@
     return this;
   }
 
-  public ProcessBuilder addItermediateEvent(String name)
+  public ProcessBuilder addEvent(String name)
   {
     flowObject = new IntermediateEventImpl(name);
     addFlowObject();
@@ -149,7 +143,7 @@
   
   public TaskBuilder addTask(String name, TaskType type)
   {
-    if (type == TaskType.None)
+    if (type == TaskType.None || type == null)
     {
       flowObject = new NoneTaskImpl(name);
     }
@@ -191,6 +185,13 @@
     return new GatewayBuilderImpl(proc, flowObject);
   }
   
+  public MessageBuilder addMessage(String name)
+  {
+    MessageBuilder msgBuilder = new MessageBuilderImpl().newMessage(name, null);
+    proc.addMessage(msgBuilder.getMessage());
+    return msgBuilder;
+  }
+  
   public ProcessBuilder addExecutionHandler(Class<?> clazz)
   {
     return addHandler(clazz);
@@ -206,28 +207,35 @@
     return addHandler(clazz);
   }
 
-  private ProcessBuilder addHandler(Class<?> clazz)
+  private ProcessBuilder addHandler(Class<?> handlerClass)
   {
     if (flowObject instanceof HandlerSetterSupport == false)
       throw new IllegalStateException("Current flow object does not support handlers: " + flowObject);
 
-    HandlerSetterSupport hs = (HandlerSetterSupport)flowObject;
-    try
+    if (handlerClass != null)
     {
-      Object handler = clazz.newInstance();
-      if (handler instanceof ExecutionHandler)
-        hs.setExecutionHandler((ExecutionHandler)handler);
-      else if (handler instanceof FlowHandler)
-        hs.setFlowHandler((FlowHandler)handler);
-      else if (handler instanceof SignalHandler)
-        hs.setSignalHandler((SignalHandler)handler);
-      else
-        throw new IllegalArgumentException("Given class is not a supported handler");
+      HandlerSetterSupport hs = (HandlerSetterSupport)flowObject;
+      try
+      {
+        Object handler = handlerClass.newInstance();
+        if (handler instanceof ExecutionHandler)
+          hs.setExecutionHandler((ExecutionHandler)handler);
+        else if (handler instanceof FlowHandler)
+          hs.setFlowHandler((FlowHandler)handler);
+        else if (handler instanceof SignalHandler)
+          hs.setSignalHandler((SignalHandler)handler);
+        else
+          throw new IllegalArgumentException("Given class is not a supported handler");
+      }
+      catch (RuntimeException rte)
+      {
+        throw rte;
+      }
+      catch (Exception ex)
+      {
+        throw new IllegalArgumentException("Cannot instanciate handler", ex);
+      }
     }
-    catch (Exception ex)
-    {
-      throw new IllegalArgumentException("Cannot instanciate handler", ex);
-    }
     return this;
   }
   

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -40,6 +40,7 @@
 import org.jboss.bpm.model.EndEvent;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.Message;
 import org.jboss.bpm.model.NameSupport;
 import org.jboss.bpm.model.OutputSet;
 import org.jboss.bpm.model.Process;
@@ -60,6 +61,8 @@
   private String name;
   // The list of associated flow objects
   private List<FlowObject> flowObjects = new ArrayList<FlowObject>();
+  // The list of associated messages
+  private List<Message> messages = new ArrayList<Message>();
   // the status of the process
   private Status status = Status.None;
   // The possible exception that caused the process to abort
@@ -211,7 +214,7 @@
     pm.waitForEnd(getID(), timeout);
   }
 
-  public FlowObject findFlowObject(String name)
+  public FlowObject getFlowObjectByName(String name)
   {
     if (name == null)
       throw new IllegalArgumentException("Cannot find flow object with name: null");
@@ -275,8 +278,32 @@
     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 String toString()
   {
     return "Process[" + getName() + "]";
   }
+
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -161,5 +161,13 @@
 
     if (messageRef == null)
       throw new InvalidProcessException("A Message for the MessageRef attribute MUST be entered");
+    
+    String msgName = messageRef.getName();
+    Message procMessage = proc.getMessageByName(msgName);
+    if (procMessage == null)
+      throw new InvalidProcessException("Cannot find referenced message: " + msgName);
+    
+    for (Property prop : procMessage.getProperties())
+      ((MessageImpl)messageRef).addProperty(prop);
   }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/SendTaskImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -63,7 +63,7 @@
   @Override
   public TaskType getTaskType()
   {
-    return TaskType.Receive;
+    return TaskType.Send;
   }
 
   public Implementation getImplementation()
@@ -133,5 +133,13 @@
 
     if (messageRef == null)
       throw new InvalidProcessException("A Message for the MessageRef attribute MUST be entered");
+    
+    String msgName = messageRef.getName();
+    Message procMessage = proc.getMessageByName(msgName);
+    if (procMessage == null)
+      throw new InvalidProcessException("Cannot find referenced message: " + msgName);
+    
+    for (Property prop : procMessage.getProperties())
+      ((MessageImpl)messageRef).addProperty(prop);
   }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -49,13 +49,13 @@
     return addMessageRef(messageName, null);
   }
 
-  public TaskBuilder addMessageRef(String messageName, ObjectName targetID)
+  public TaskBuilder addMessageRef(String msgRef, ObjectName targetID)
   {
-    message = new MessageImpl(messageName, targetID);
+    message = new MessageImpl(msgRef, targetID);
     if (flowObject instanceof ReceiveTaskImpl)
     {
       if (targetID != null)
-        throw new IllegalArgumentException("Message targetID must be null for ReceiveTask");
+        throw new IllegalArgumentException("Message targetID must be null for ReceiveTask: " + flowObject);
 
       ReceiveTaskImpl receiveTask = (ReceiveTaskImpl)flowObject;
       receiveTask.setMessageRef(message);
@@ -63,7 +63,7 @@
     else if (flowObject instanceof SendTaskImpl)
     {
       if (targetID == null)
-        throw new IllegalArgumentException("Message targetID cannot be null for SendTask");
+        throw new IllegalArgumentException("Message targetID cannot be null for SendTask: " + flowObject);
 
       SendTaskImpl sendTask = (SendTaskImpl)flowObject;
       sendTask.setMessageRef(message);

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -37,12 +37,6 @@
       <artifactId>bpm-dialect-stp</artifactId>
       <scope>runtime</scope>
     </dependency>
-    <dependency>
-      <groupId>org.jboss.ws</groupId>
-      <artifactId>jbossws-common</artifactId>
-      <version>1.0.6-SNAPSHOT</version>
-      <scope>runtime</scope>
-    </dependency>
   </dependencies>
   
   <!-- Build -->

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -59,11 +59,6 @@
     // Build the ReceiveReqTask
     TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
     taskBuilder.addMessageRef("ReqDataMsg").
-    addMessageProperty("Name", null, true).
-    addMessageProperty("From", null, true).
-    addMessageProperty("To", null, true).
-    addMessageProperty("Date", null, true).
-    addMessageProperty("Seats", null, true).
     addSequenceFlow("ValidateTask");
 
     // Build the ValidateTask
@@ -100,11 +95,6 @@
     // Build the SendInvalidTask
     taskBuilder = procBuilder.addTask("SendInvalidTask", TaskType.Send);
     taskBuilder.addMessageRef("InvalidDataMsg", listenerID).
-    addMessageProperty("Name", null, true).
-    addMessageProperty("From", null, true).
-    addMessageProperty("To", null, true).
-    addMessageProperty("Date", null, true).
-    addMessageProperty("Seats", null, true).
     addSequenceFlow("ReceiveReqTask");
 
     // Build the AvailabilityGateway
@@ -115,30 +105,16 @@
     // Build the SendOfferTask
     taskBuilder = procBuilder.addTask("SendOfferTask", TaskType.Send);
     taskBuilder.addMessageRef("OfferMsg", listenerID).
-    addMessageProperty("Name", null, true).
-    addMessageProperty("From", null, true).
-    addMessageProperty("To", null, true).
-    addMessageProperty("Date", null, true).
-    addMessageProperty("Seats", null, true).
-    addMessageProperty("Price", null, true).
     addSequenceFlow("ReceiveOrderTask");
 
     // Build the SendNotAvailableTask
     taskBuilder = procBuilder.addTask("SendNotAvailableTask", TaskType.Send);
     taskBuilder.addMessageRef("NotAvailableMsg", listenerID).
-    addMessageProperty("Name", null, true).
-    addMessageProperty("From", null, true).
-    addMessageProperty("To", null, true).
-    addMessageProperty("Date", null, true).
-    addMessageProperty("Seats", null, true).
     addSequenceFlow("ReceiveReqTask");
 
     // Build the ReceiveReqTask
     taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
     taskBuilder.addMessageRef("AcceptOfferMsg").
-    addMessageProperty("CreditCard", null, true).
-    addMessageProperty("Expire", null, true).
-    addMessageProperty("isOfferAccepted", null, true).
     addSequenceFlow("AcceptOfferGateway");
     
     // Build the AcceptOfferGateway
@@ -176,16 +152,60 @@
     // Build the SendConfirmTask
     taskBuilder = procBuilder.addTask("SendConfirmTask", TaskType.Send);
     taskBuilder.addMessageRef("ConfirmMsg", listenerID).
-    addMessageProperty("Name", null, true).
-    addMessageProperty("From", null, true).
-    addMessageProperty("To", null, true).
-    addMessageProperty("Date", null, true).
-    addMessageProperty("Seats", null, true).
-    addMessageProperty("Price", null, true).
     addSequenceFlow("End");
     
+    // Add ReqDataMsg 
+    procBuilder.addMessage("ReqDataMsg").
+    addProperty("Name", null, true).
+    addProperty("From", null, true).
+    addProperty("To", null, true).
+    addProperty("Date", null, true).
+    addProperty("Seats", null, true);
+    
+    // Add InvalidDataMsg 
+    procBuilder.addMessage("InvalidDataMsg").
+    addProperty("Name", null, true).
+    addProperty("From", null, true).
+    addProperty("To", null, true).
+    addProperty("Date", null, true).
+    addProperty("Seats", null, true);
+    
+    // Add NotAvailableMsg 
+    procBuilder.addMessage("NotAvailableMsg").
+    addProperty("Name", null, true).
+    addProperty("From", null, true).
+    addProperty("To", null, true).
+    addProperty("Date", null, true).
+    addProperty("Seats", null, true);
+    
+    // Add OfferMsg 
+    procBuilder.addMessage("OfferMsg").
+    addProperty("Name", null, true).
+    addProperty("From", null, true).
+    addProperty("To", null, true).
+    addProperty("Date", null, true).
+    addProperty("Seats", null, true).
+    addProperty("Price", null, true);
+    
+    // Add AcceptOfferMsg 
+    procBuilder.addMessage("AcceptOfferMsg").
+    addProperty("CreditCard", null, true).
+    addProperty("Expire", null, true).
+    addProperty("isOfferAccepted", null, true);
+    
+    // Add ConfirmMsg 
+    procBuilder.addMessage("ConfirmMsg").
+    addProperty("Name", null, true).
+    addProperty("From", null, true).
+    addProperty("To", null, true).
+    addProperty("Date", null, true).
+    addProperty("Seats", null, true).
+    addProperty("Price", null, true);
+    
     // Add the EndEvent
-    Process proc = procBuilder.addEndEvent("End").getProcess();
+    procBuilder.addEndEvent("End");
+    
+    Process proc = procBuilder.getProcess();
     return proc;
   }
 }
\ 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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -31,8 +31,8 @@
 import org.jboss.bpm.client.ProcessManager;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.test.DefaultEngineTestCase;
-import org.jboss.wsf.common.DOMUtils;
-import org.jboss.wsf.common.DOMWriter;
+import org.jboss.util.xml.DOMUtils;
+import org.jboss.util.xml.DOMWriter;
 import org.w3c.dom.Element;
 
 /**
@@ -56,18 +56,37 @@
     String procXML = strwr.toString();
     
     Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
-    strwr = new StringWriter();
-    new DOMWriter(strwr).setIgnoreWhitespace(true).print(wasEl);
-    String wasStr = strwr.toString();
+    String wasStr = DOMWriter.printNode(wasEl, true);
     
     URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
     Element expEl = DOMUtils.parse(expURL.openStream());
-    strwr = new StringWriter();
-    new DOMWriter(strwr).setIgnoreWhitespace(true).print(expEl);
-    String expStr = strwr.toString();
+    String expStr = DOMWriter.printNode(expEl, true);
 
     //System.out.println(expStr);
     //System.out.println(wasStr);
     assertEquals(expStr, wasStr);
   }
+  
+  public void testProcessUnMarshaller() throws Exception
+  {
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+    
+    URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
+    Process proc = dialect.createProcess(expURL);
+    
+    StringWriter strwr = new StringWriter();
+    dialect.marshallProcess(proc, strwr);
+    String procXML = strwr.toString();
+    
+    Element wasEl = DOMUtils.parse(new ByteArrayInputStream(procXML.getBytes()));
+    String wasStr = DOMWriter.printNode(wasEl, true);
+    
+    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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -1,13 +1,13 @@
 <ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
   <start>
-    <sequence to='ReceiveReqTask' />
+    <seqflow to='ReceiveReqTask' />
   </start>
   <task name='ReceiveReqTask' taskType='Receive'>
-    <sequence to='ValidateTask' />
+    <seqflow to='ValidateTask' />
     <message ref='ReqDataMsg' />
   </task>
   <task name='ValidateTask' taskType='None'>
-    <sequence to='ValidateGateway' />
+    <seqflow to='ValidateGateway' />
     <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
     <input-set>
       <property>
@@ -33,13 +33,13 @@
     </output-set>
   </task>
   <exclusive-gateway name='ValidateGateway'>
-    <sequence conditionType='Expression' to='CheckAvailabilityTask'>
+    <seqflow conditionType='Expression' to='CheckAvailabilityTask'>
       <condition lang='MVEL'>isReqDataValid == true</condition>
-    </sequence>
-    <sequence conditionType='Default' to='SendInvalidTask' />
+    </seqflow>
+    <seqflow conditionType='Default' to='SendInvalidTask' />
   </exclusive-gateway>
   <task name='CheckAvailabilityTask' taskType='None'>
-    <sequence to='AvailabilityGateway' />
+    <seqflow to='AvailabilityGateway' />
     <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
     <input-set>
       <property>
@@ -64,46 +64,46 @@
       </property>
     </output-set>
   </task>
-  <task name='SendInvalidTask' taskType='Receive'>
-    <sequence to='ReceiveReqTask' />
+  <task name='SendInvalidTask' taskType='Send'>
+    <seqflow to='ReceiveReqTask' />
     <message ref='InvalidDataMsg'>
       <to>jboss.bpm:test=testProcessMarshaller</to>
     </message>
   </task>
   <exclusive-gateway name='AvailabilityGateway'>
-    <sequence conditionType='Expression' to='SendOfferTask'>
+    <seqflow conditionType='Expression' to='SendOfferTask'>
       <condition lang='MVEL'>isAvailable == true</condition>
-    </sequence>
-    <sequence conditionType='Default' to='SendNotAvailableTask' />
+    </seqflow>
+    <seqflow conditionType='Default' to='SendNotAvailableTask' />
   </exclusive-gateway>
-  <task name='SendOfferTask' taskType='Receive'>
-    <sequence to='ReceiveOrderTask' />
+  <task name='SendOfferTask' taskType='Send'>
+    <seqflow to='ReceiveOrderTask' />
     <message ref='OfferMsg'>
       <to>jboss.bpm:test=testProcessMarshaller</to>
     </message>
   </task>
-  <task name='SendNotAvailableTask' taskType='Receive'>
-    <sequence to='ReceiveReqTask' />
+  <task name='SendNotAvailableTask' taskType='Send'>
+    <seqflow to='ReceiveReqTask' />
     <message ref='NotAvailableMsg'>
       <to>jboss.bpm:test=testProcessMarshaller</to>
     </message>
   </task>
   <task name='ReceiveOrderTask' taskType='Receive'>
-    <sequence to='AcceptOfferGateway' />
+    <seqflow to='AcceptOfferGateway' />
     <message ref='AcceptOfferMsg' />
   </task>
   <exclusive-gateway name='AcceptOfferGateway'>
-    <sequence conditionType='Expression' to='ParallelSplitGateway'>
+    <seqflow conditionType='Expression' to='ParallelSplitGateway'>
       <condition lang='MVEL'>isOfferAccepted == true</condition>
-    </sequence>
-    <sequence conditionType='Default' to='ReceiveReqTask' />
+    </seqflow>
+    <seqflow conditionType='Default' to='ReceiveReqTask' />
   </exclusive-gateway>
   <parallel-gateway name='ParallelSplitGateway'>
-    <sequence to='CreditCardTask' />
-    <sequence to='BookingTask' />
+    <seqflow to='CreditCardTask' />
+    <seqflow to='BookingTask' />
   </parallel-gateway>
   <task name='CreditCardTask' taskType='None'>
-    <sequence to='SynchronizedJoinGateway' />
+    <seqflow to='SynchronizedJoinGateway' />
     <input-set>
       <property>
         <name>CreditCard</name>
@@ -117,7 +117,7 @@
     </input-set>
   </task>
   <task name='BookingTask' taskType='None'>
-    <sequence to='SynchronizedJoinGateway' />
+    <seqflow to='SynchronizedJoinGateway' />
     <input-set>
       <property>
         <name>Name</name>
@@ -137,10 +137,10 @@
     </input-set>
   </task>
   <parallel-gateway name='SynchronizedJoinGateway'>
-    <sequence to='SendConfirmTask' />
+    <seqflow to='SendConfirmTask' />
   </parallel-gateway>
-  <task name='SendConfirmTask' taskType='Receive'>
-    <sequence to='End' />
+  <task name='SendConfirmTask' taskType='Send'>
+    <seqflow to='End' />
     <message ref='ConfirmMsg'>
       <to>jboss.bpm:test=testProcessMarshaller</to>
     </message>

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-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java	2008-07-31 23:27:17 UTC (rev 1796)
@@ -54,7 +54,7 @@
     StartEvent start = proc.getStartEvent();
     assertNotNull("Start expected", start);
 
-    FlowObject nfo = proc.findFlowObject("taskA");
+    FlowObject nfo = proc.getFlowObjectByName("taskA");
     assertNotNull("FlowObject expected", nfo);
     assertTrue("Task expected", nfo instanceof Task);
 

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/engine/basic-engine-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/engine/basic-engine-api10.xml	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/engine/basic-engine-api10.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -1,9 +1,9 @@
 <ns2:process name="basic-engine" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
   <start>
-    <sequence to="stateA" />
+    <seqflow to="stateA" />
   </start>
   <task name="stateA">
-    <sequence to="end" />
+    <seqflow to="end" />
   </task>
   <end name="end" />
 </ns2:process>
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/parallelsplit/parallel-split-api10.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -1,10 +1,10 @@
 <ns2:process name="testParallelSplit" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
   <start>
-    <sequence to="gateway" />
+    <seqflow to="gateway" />
   </start>
   <parallel-gateway name="gateway">
-    <sequence to="endA" />
-    <sequence to="endB" />
+    <seqflow to="endA" />
+    <seqflow to="endB" />
   </parallel-gateway>
   <end name="endA" />
   <end name="endB" />

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/sequence/basic-sequence-api10.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -1,9 +1,9 @@
 <ns2:process name="testBasicSequence" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
   <start>
-    <sequence to="stateA" />
+    <seqflow to="stateA" />
   </start>
   <task name="stateA">
-    <sequence to="end" />
+    <seqflow to="end" />
   </task>
   <end name="end" />
 </ns2:process>
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml	2008-07-31 17:04:15 UTC (rev 1795)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/samples/task/basic-task-api10.xml	2008-07-31 23:27:17 UTC (rev 1796)
@@ -1,9 +1,9 @@
 <ns2:process name="testBasicTask" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
   <start>
-    <sequence to="stateA" />
+    <seqflow to="stateA" />
   </start>
   <task name="stateA">
-    <sequence to="end" />
+    <seqflow to="end" />
     <execution-handler class="org.jboss.bpm.samples.task.TaskA" />
   </task>
   <end name="end" />




More information about the jbpm-commits mailing list