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

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jul 31 12:15:39 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-31 12:15:38 -0400 (Thu, 31 Jul 2008)
New Revision: 1794

Added:
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBExpression.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInputSet.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBOutputSet.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProperty.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
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/ProcessEngineLocator.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.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/ProcessMarshaller.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBFlow.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSequenceFlow.java
   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/ObjectFactory.java
   jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath
   jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
   jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
   jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath
   jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.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/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
   jbossbpm/spec/trunk/modules/testsuite/pom.xml
   jbossbpm/spec/trunk/pom.xml
Log:
Add ProcessMarshaller

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-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -21,13 +21,14 @@
  */
 package org.jboss.bpm.client;
 
+//$Id$
+
 import java.io.IOException;
+import java.io.Writer;
 import java.net.URL;
 
 import org.jboss.bpm.model.Process;
 
-// $Id$
-
 /**
  * The DialectHandler converts a supported dialect to the internal Process model.
  * 
@@ -46,4 +47,8 @@
    */
   Process createProcess(URL pURL) throws IOException;
 
+  /**
+   * Marshall the process to the given writer
+   */
+  void marshallProcess(Process proc, Writer out) throws IOException;
 }

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessEngineLocator.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -40,7 +40,6 @@
  */
 public abstract class ProcessEngineLocator
 {
-
   // Hide the constructor
   private ProcessEngineLocator()
   {
@@ -54,8 +53,8 @@
   @SuppressWarnings("deprecation")
   public static ProcessEngine locateProcessEngine()
   {
-    Kernel kernel = KernelLocator.getKernel();
     KernelRegistryEntry entry = null;
+    Kernel kernel = KernelLocator.getKernel();
     if (kernel == null)
     {
       deployEngineConfiguration();
@@ -81,7 +80,6 @@
 
   private static void deployEngineConfiguration()
   {
-
     String config = ProcessEngine.JBPM_ENGINE_CONFIG;
     URL url = Thread.currentThread().getContextClassLoader().getResource(config);
     if (url == null)

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -259,8 +259,10 @@
     return nsURI;
   }
 
-  // Get the handler for the current dialect
-  private DialectHandler getDialectHandler(String nsURI)
+  /** 
+   * Get the handler for the dialect with the given namespace URI 
+   */
+  public DialectHandler getDialectHandler(String nsURI)
   {
     String dialectId = dialectRegistry.getDialect(nsURI);
     if (dialectId == null)

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 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/TaskBuilder.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -21,13 +21,10 @@
  */
 package org.jboss.bpm.model;
 
-import javax.management.ObjectName;
-
-import org.jboss.bpm.runtime.ExecutionHandler;
-
-
 //$Id$
 
+import javax.management.ObjectName;
+
 /**
  * The TaskBuilder can be used to build a {@link Task} dynamically.
  * 
@@ -36,12 +33,11 @@
  */
 public interface TaskBuilder extends ActivityBuilder
 {
+  TaskBuilder addMessageRef(String messageName);
+
   TaskBuilder addMessageRef(String messageName, ObjectName targetID);
 
   TaskBuilder addMessageProperty(String propName, String propValue, boolean isCorrelation);
   
-  /**
-   * Add an {@link ExecutionHandler} with a given Class
-   */
   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/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -26,6 +26,7 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.io.Writer;
 import java.net.URL;
 
 import javax.xml.bind.JAXBException;
@@ -42,7 +43,6 @@
  */
 public class DialectHandlerImpl implements DialectHandler
 {
-  
   public Process createProcess(String pXML)
   {
     try
@@ -70,4 +70,16 @@
       throw new InvalidProcessException("Cannot unmarschall: " + pURL, ex);
     }
   }
+
+  public void marshallProcess(Process proc, Writer out) throws IOException
+  {
+    try
+    {
+      new ProcessMarshaller().marshallProcess(proc, out);
+    }
+    catch (JAXBException ex)
+    {
+      throw new IOException("Cannot marschall: " + proc, ex);
+    }
+  }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -30,10 +30,49 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 
+import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.dialect.api10.model.JAXBComplexGateway;
+import org.jboss.bpm.dialect.api10.model.JAXBEndEvent;
+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.JAXBInclusiveGateway;
+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.JAXBTask;
 import org.jboss.bpm.dialect.api10.model.ObjectFactory;
+import org.jboss.bpm.model.ComplexGateway;
+import org.jboss.bpm.model.EndEvent;
+import org.jboss.bpm.model.Event;
+import org.jboss.bpm.model.ExclusiveGateway;
+import org.jboss.bpm.model.Expression;
+import org.jboss.bpm.model.Flow;
+import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.Gate;
+import org.jboss.bpm.model.Gateway;
+import org.jboss.bpm.model.InclusiveGateway;
+import org.jboss.bpm.model.InputSet;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.OutputSet;
+import org.jboss.bpm.model.ParallelGateway;
+import org.jboss.bpm.model.Participant;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.Property;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.model.SendTask;
+import org.jboss.bpm.model.SequenceFlow;
+import org.jboss.bpm.model.StartEvent;
+import org.jboss.bpm.model.Task;
+import org.jboss.bpm.model.SequenceFlow.ConditionType;
 
-
 /**
  * A JAXB marshaller for a Process
  * 
@@ -42,21 +81,218 @@
  */
 public class ProcessMarshaller
 {
-  public void marshallProcess(JAXBProcess proc, Writer out) throws JAXBException, IOException
+  public void marshallProcess(Process proc, Writer out) throws JAXBException, IOException
   {
+    JAXBProcess jaxbProc = adaptProcess(proc);
     JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
     Marshaller marshaller = jaxbContext.createMarshaller();
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
     marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
 
-    marshaller.marshal(proc, out);
+    marshaller.marshal(jaxbProc, out);
+  }
 
-    // Add xmlns:xsi to the top level element and remove it from all others
-    // StringWriter strwr = new StringWriter();
-    // marshaller.marshal(proc, strwr);
-    // String str = strwr.toString();
-    // String xsi = " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
-    // str = new StringBuilder(str.replace(xsi, "")).insert(str.indexOf(">"), xsi).toString();
-    // out.write(str);
+  private JAXBProcess adaptProcess(Process proc)
+  {
+    JAXBProcess jaxbProc = new JAXBProcess();
+    jaxbProc.setName(proc.getName());
+
+    for (FlowObject fo : proc.getFlowObjects())
+    {
+      JAXBFlowObject jaxb;
+      if (fo instanceof Event)
+      {
+        jaxb = adaptEvent(jaxbProc, (Event)fo);
+      }
+      else if (fo instanceof Task)
+      {
+        jaxb = adaptTask(jaxbProc, (Task)fo);
+      }
+      else if (fo instanceof Gateway)
+      {
+        jaxb = adaptGateway(jaxbProc, (Gateway)fo);
+      }
+      else
+      {
+        throw new NotImplementedException(fo.toString());
+      }
+      jaxbProc.getFlowObjects().add(jaxb);
+    }
+    return jaxbProc;
   }
+
+  private JAXBFlowObject adaptEvent(JAXBProcess jaxbProc, Event event)
+  {
+    if (event instanceof StartEvent)
+    {
+      StartEvent start = (StartEvent)event;
+      JAXBStartEvent jaxb = new JAXBStartEvent();
+      jaxb.setOutFlow(getJAXBFlow(start.getOutFlow()));
+      return jaxb;
+    }
+    else if (event instanceof EndEvent)
+    {
+      EndEvent end = (EndEvent)event;
+      JAXBEndEvent jaxb = new JAXBEndEvent();
+      jaxb.setName(end.getName());
+      return jaxb;
+    }
+    else
+    {
+      throw new NotImplementedException(event.toString());
+    }
+  }
+
+  private JAXBFlowObject adaptTask(JAXBProcess jaxbProc, Task task)
+  {
+    JAXBTask jaxb = new JAXBTask();
+    jaxb.setTaskType(task.getTaskType());
+    jaxb.setName(task.getName());
+    jaxb.setOutFlow(getJAXBFlow(task.getOutFlow()));
+    for (InputSet inSet : task.getInputSets())
+    {
+      JAXBInputSet jaxbSet = new JAXBInputSet();
+      for (Property prop : inSet.getProperties())
+      {
+        JAXBProperty jaxbProp = getJaxbProperty(prop);
+        jaxbSet.getProperties().add(jaxbProp);
+      }
+      jaxb.getInputSets().add(jaxbSet);
+    }
+    for (OutputSet outSet : task.getOutputSets())
+    {
+      JAXBOutputSet jaxbSet = new JAXBOutputSet();
+      for (Property prop : outSet.getProperties())
+      {
+        JAXBProperty jaxbProp = getJaxbProperty(prop);
+        jaxbSet.getProperties().add(jaxbProp);
+      }
+      jaxb.getOutputSets().add(jaxbSet);
+    }
+    if (task instanceof ReceiveTask)
+    {
+      ReceiveTask recTask = (ReceiveTask)task;
+      adaptMessageRef(jaxbProc, jaxb, recTask.getMessageRef());
+    }
+    else if (task instanceof SendTask)
+    {
+      SendTask sendTask = (SendTask)task;
+      adaptMessageRef(jaxbProc, jaxb, sendTask.getMessageRef());
+    }
+    return jaxb;
+  }
+
+  private void adaptMessageRef(JAXBProcess jaxbProc, JAXBTask jaxb, Message msgRef)
+  {
+    if (msgRef != null)
+    {
+      String msgName = msgRef.getName();
+      if (jaxbProc.getMessageByName(msgName) == null)
+      {
+        JAXBMessage jaxbMsg = new JAXBMessage();
+        jaxbMsg.setName(msgName);
+        for (Property prop : msgRef.getProperties())
+        {
+          JAXBProperty jaxbProp = getJaxbProperty(prop);
+          jaxbMsg.getProperties().add(jaxbProp);
+        }
+        jaxbProc.getMessages().add(jaxbMsg);
+      }
+      JAXBMessage jaxbMsg = new JAXBMessage();
+      jaxbMsg.setRef(msgName);
+      jaxbMsg.setFromRef(getParticipant(msgRef.getFromRef()));
+      jaxbMsg.setToRef(getParticipant(msgRef.getToRef()));
+      jaxb.setMessageRef(jaxbMsg);
+    }
+  }
+
+  private JAXBFlowObject adaptGateway(JAXBProcess jaxbProc, Gateway gateway)
+  {
+    JAXBGateway jaxb;
+    if (gateway instanceof ExclusiveGateway)
+    {
+      jaxb = new JAXBExclusiveGateway();
+    }
+    else if (gateway instanceof InclusiveGateway)
+    {
+      jaxb = new JAXBInclusiveGateway();
+    }
+    else if (gateway instanceof ParallelGateway)
+    {
+      jaxb = new JAXBParallelGateway();
+    }
+    else if (gateway instanceof ComplexGateway)
+    {
+      jaxb = new JAXBComplexGateway();
+    }
+    else
+    {
+      throw new NotImplementedException(gateway.toString());
+    }
+    jaxb.setName(gateway.getName());
+    for (Gate gate : gateway.getGates())
+    {
+      SequenceFlow flow = gate.getOutgoingSequenceFlow();
+      jaxb.getOutFlows().add(getJAXBFlow(flow));
+    }
+    return jaxb;
+  }
+
+  private String getParticipant(Participant par)
+  {
+    String parName = null;
+    if (par != null)
+    {
+      if (par.getEntityRef() != null)
+        parName = par.getEntityRef().getName();
+      else if (par.getRoleRef() != null)
+        parName = par.getRoleRef().getName();
+    }
+    return parName;
+  }
+
+  private JAXBFlow getJAXBFlow(Flow flow)
+  {
+    JAXBFlow jaxb;
+    if (flow instanceof SequenceFlow)
+    {
+      SequenceFlow seqFlow = (SequenceFlow)flow;
+      JAXBSequenceFlow jaxbSeq = new JAXBSequenceFlow();
+      if (seqFlow.getConditionType() == ConditionType.Expression)
+      {
+        jaxbSeq.setConditionType(seqFlow.getConditionType());
+        jaxbSeq.setCondition(getJAXBExpression(seqFlow.getConditionExpression()));
+      }
+      else if (seqFlow.getConditionType() == ConditionType.Default)
+      {
+        jaxbSeq.setConditionType(seqFlow.getConditionType());
+      }
+      jaxb = jaxbSeq;
+    }
+    else
+    {
+      throw new NotImplementedException(flow.toString());
+    }
+    jaxb.setName(flow.getName());
+    jaxb.setTargetName(flow.getTargetName());
+    return jaxb;
+  }
+
+  private JAXBProperty getJaxbProperty(Property prop)
+  {
+    JAXBProperty jaxbProp = new JAXBProperty();
+    jaxbProp.setName(prop.getName());
+    jaxbProp.setValue(prop.getValue().getExpressionBody());
+    if (prop.isCorrelation())
+      jaxbProp.setCorrelation(prop.isCorrelation());
+    return jaxbProp;
+  }
+
+  private JAXBExpression getJAXBExpression(Expression expr)
+  {
+    JAXBExpression jaxb = new JAXBExpression();
+    jaxb.setLang(expr.getExpressionLanguage());
+    jaxb.setBody(expr.getExpressionBody());
+    return jaxb;
+  }
 }

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBExpression.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBExpression.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBExpression.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,67 @@
+/*
+ * 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.dialect.api10.model;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+import org.jboss.bpm.model.Expression.ExpressionLanguage;
+
+/**
+ * An Expression, which is used in the definition of attributes for @{link StartEvent},
+ * 
+ * @{link IntermediateEvent}, @{link Activity}, @{link ComplexGateway}, and @{link SequenceFlow}
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Expression")
+public class JAXBExpression
+{
+  private ExpressionLanguage lang;
+  private String body;
+
+  public ExpressionLanguage getLang()
+  {
+    return lang;
+  }
+
+  @XmlAttribute(required = true)
+  public void setLang(ExpressionLanguage lang)
+  {
+    this.lang = lang;
+  }
+
+  public String getBody()
+  {
+    return body;
+  }
+
+  @XmlValue
+  public void setBody(String body)
+  {
+    this.body = body;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBExpression.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBFlow.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBFlow.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBFlow.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -29,8 +29,9 @@
 /**
  * A Flow is a graphical line connecting two objects in a BPD.
  * 
- * There are two types of Flow: Sequence Flow and Message Flow, each with their own line style. Flow is also used in a generic sense (and lowercase) to describe how
- * Tokens will traverse Sequence Flow from the Start Event to an End Event.
+ * There are two types of Flow: Sequence Flow and Message Flow, each with their own line style. Flow is also used in a
+ * generic sense (and lowercase) to describe how Tokens will traverse Sequence Flow from the Start Event to an End
+ * Event.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -57,9 +58,6 @@
     return targetName;
   }
 
-  /**
-   * Set the target name Note, this MUST NOT leak into the public API.
-   */
   @XmlAttribute(name = "to", required = true)
   public void setTargetName(String targetName)
   {

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInputSet.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInputSet.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInputSet.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,48 @@
+/*
+ * 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.dialect.api10.model;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * An InputSet, which is used in the definition of common attributes for Activities and for attributes of a Process
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "InputSet")
+public class JAXBInputSet extends JAXBSupportingElement
+{
+  private List<JAXBProperty> properties = new ArrayList<JAXBProperty>();
+
+  @XmlElement(name = "property")
+  public List<JAXBProperty> getProperties()
+  {
+    return properties;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInputSet.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,99 @@
+/*
+ * 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.dialect.api10.model;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Message, which is used in the definition of attributes for a @{link StartEvent},
+ * 
+ * @{EndEvent , @{IntermediateEvent}, @{Task}, and @{MessageFlow}
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Message", propOrder = {"fromRef", "toRef", "properties"})
+public class JAXBMessage extends JAXBSupportingElement
+{
+  private String ref;
+  private String name;
+  private String fromRef;
+  private String toRef;
+  private List<JAXBProperty> properties = new ArrayList<JAXBProperty>();
+
+  public String getRef()
+  {
+    return ref;
+  }
+
+  @XmlAttribute
+  public void setRef(String ref)
+  {
+    this.ref = ref;
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+
+  @XmlAttribute
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+
+  public String getFromRef()
+  {
+    return fromRef;
+  }
+
+  @XmlElement(name = "from")
+  public void setFromRef(String fromRef)
+  {
+    this.fromRef = fromRef;
+  }
+
+  public String getToRef()
+  {
+    return toRef;
+  }
+
+  @XmlElement(name = "to")
+  public void setToRef(String toRef)
+  {
+    this.toRef = toRef;
+  }
+
+  @XmlElement(name = "property")
+  public List<JAXBProperty> getProperties()
+  {
+    return properties;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBMessage.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBOutputSet.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBOutputSet.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBOutputSet.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,48 @@
+/*
+ * 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.dialect.api10.model;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * An InputSet, which is used in the definition of common attributes for Activities and for attributes of a Process
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "OutputSet")
+public class JAXBOutputSet extends JAXBSupportingElement
+{
+  private List<JAXBProperty> properties = new ArrayList<JAXBProperty>();
+
+  @XmlElement(name = "property")
+  public List<JAXBProperty> getProperties()
+  {
+    return properties;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBOutputSet.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -43,19 +43,19 @@
 public class JAXBProcess extends JAXBSupportingElement
 {
   private String name;
-  @XmlElements( { 
-    @XmlElement(name = "start", type = JAXBStartEvent.class), 
-    @XmlElement(name = "event", type = JAXBIntermediateEvent.class), 
-    @XmlElement(name = "task", type = JAXBTask.class),
-    @XmlElement(name = "exclusive-gateway", type = JAXBExclusiveGateway.class),
-    @XmlElement(name = "inclusive-gateway", type = JAXBInclusiveGateway.class),
-    @XmlElement(name = "complex-gateway", type = JAXBComplexGateway.class),
-    @XmlElement(name = "parallel-gateway", type = JAXBParallelGateway.class),
-    @XmlElement(name = "sub-process", type = JAXBSubProcess.class), 
-    @XmlElement(name = "end", type = JAXBEndEvent.class) 
-    })
+  private List<JAXBMessage> messages = new ArrayList<JAXBMessage>();
+
+  @XmlElements( { @XmlElement(name = "start", type = JAXBStartEvent.class),
+      @XmlElement(name = "event", type = JAXBIntermediateEvent.class),
+      @XmlElement(name = "task", type = JAXBTask.class),
+      @XmlElement(name = "exclusive-gateway", type = JAXBExclusiveGateway.class),
+      @XmlElement(name = "inclusive-gateway", type = JAXBInclusiveGateway.class),
+      @XmlElement(name = "complex-gateway", type = JAXBComplexGateway.class),
+      @XmlElement(name = "parallel-gateway", type = JAXBParallelGateway.class),
+      @XmlElement(name = "sub-process", type = JAXBSubProcess.class),
+      @XmlElement(name = "end", type = JAXBEndEvent.class) })
   private List<JAXBFlowObject> flowObjects = new ArrayList<JAXBFlowObject>();
-  
+
   public String getName()
   {
     return name;
@@ -66,12 +66,30 @@
   {
     this.name = name;
   }
-  
-  /**
-   * Get the list of flow objects
-   */
+
   public List<JAXBFlowObject> getFlowObjects()
   {
     return flowObjects;
   }
+
+  public List<JAXBMessage> getMessages()
+  {
+    return messages;
+  }
+
+  @XmlElement(name = "message")
+  public void setMessages(List<JAXBMessage> messages)
+  {
+    this.messages = messages;
+  }
+
+  public JAXBMessage getMessageByName(String msgName)
+  {
+    for (JAXBMessage msg : messages)
+    {
+      if (msg.getName().equals(msgName))
+        return msg;
+    }
+    return null;
+  }
 }
\ No newline at end of file

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProperty.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProperty.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProperty.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,75 @@
+/*
+ * 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.dialect.api10.model;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Property, which is used in the definition of attributes for a Process and common activity attributes
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Property", propOrder = {"name", "value"})
+public class JAXBProperty extends JAXBSupportingElement
+{
+  private String name;
+  private String value;
+  private Boolean isCorrelation;
+
+  public String getName()
+  {
+    return name;
+  }
+
+  @XmlElement
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+
+  public String getValue()
+  {
+    return value;
+  }
+
+  @XmlElement
+  public void setValue(String value)
+  {
+    this.value = value;
+  }
+
+  public Boolean isCorrelation()
+  {
+    return isCorrelation;
+  }
+
+  @XmlAttribute
+  public void setCorrelation(Boolean isCorrelation)
+  {
+    this.isCorrelation = isCorrelation;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProperty.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSequenceFlow.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSequenceFlow.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSequenceFlow.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -23,8 +23,11 @@
 
 //$Id$
 
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.bpm.model.SequenceFlow.ConditionType;
 
 /**
  * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
@@ -36,4 +39,28 @@
 @XmlType(name="SequenceFlow")
 public class JAXBSequenceFlow extends JAXBFlow
 {
+  private JAXBExpression condition;
+  private ConditionType conditionType;
+
+  public JAXBExpression getCondition()
+  {
+    return condition;
+  }
+
+  @XmlElement
+  public void setCondition(JAXBExpression condition)
+  {
+    this.condition = condition;
+  }
+  
+  public ConditionType getConditionType()
+  {
+    return conditionType;
+  }
+
+  @XmlAttribute
+  public void setConditionType(ConditionType conditionType)
+  {
+    this.conditionType = conditionType;
+  }
 }
\ No newline at end of file

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 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -21,19 +21,25 @@
  */
 package org.jboss.bpm.dialect.api10.model;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.bpm.model.Task.Implementation;
+import org.jboss.bpm.model.Task.TaskType;
+
 //$Id$
 
 /**
  * A Task is an Atomic Activity that is included within a Process.
  * 
- * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally, an end-user and/or an application are used to
- * perform the Task when it is executed.
+ * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally,
+ * an end-user and/or an application are used to perform the Task when it is executed.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -41,21 +47,20 @@
 @XmlType(name = "Task")
 public class JAXBTask extends JAXBActivity
 {
+  private TaskType taskType;
+  private JAXBMessage messageRef;
+  private Implementation implementation;
+  private List<JAXBInputSet> inputSets = new ArrayList<JAXBInputSet>();
+  private List<JAXBOutputSet> outputSets = new ArrayList<JAXBOutputSet>();
+  
   private JAXBExecutionHandler executionHandler;
   private JAXBFlowHandler flowHandler;
   private JAXBSignalHandler signalHandler;
-  
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+
+  @XmlElements( { @XmlElement(name = "sequence", type = JAXBSequenceFlow.class),
+      @XmlElement(name = "message", type = JAXBMessageFlow.class) })
   private JAXBFlow outFlow;
-  
-  enum TaskType { Service, Receive, Send, User, Script, Manual, Reference, None}
-  private TaskType taskType;
-  
-  // WebService, Java, Other, Unspecified
-  private String implementation;
-  
+
   public JAXBFlow getOutFlow()
   {
     return outFlow;
@@ -78,61 +83,76 @@
     this.taskType = taskType;
   }
 
-  public String getImplementation()
+  public Implementation getImplementation()
   {
     return implementation;
   }
 
-  public void setImplementation(String implementation)
+  public void setImplementation(Implementation implementation)
   {
     this.implementation = implementation;
   }
 
-  /**
-   * Get the ExecutionHandler for this Event
-   */
+  public JAXBMessage getMessageRef()
+  {
+    return messageRef;
+  }
+
+  @XmlElement(name = "message")
+  public void setMessageRef(JAXBMessage messageRef)
+  {
+    this.messageRef = messageRef;
+  }
+
+  public List<JAXBInputSet> getInputSets()
+  {
+    return inputSets;
+  }
+
+  @XmlElement(name = "input-set")
+  public void setInputSets(List<JAXBInputSet> inputSets)
+  {
+    this.inputSets = inputSets;
+  }
+
+  public List<JAXBOutputSet> getOutputSets()
+  {
+    return outputSets;
+  }
+
+  @XmlElement(name = "output-set")
+  public void setOutputSets(List<JAXBOutputSet> outputSets)
+  {
+    this.outputSets = outputSets;
+  }
+
   public JAXBExecutionHandler getExecutionHandler()
   {
     return executionHandler;
   }
 
-  /**
-   * Set the ExecutionHandler for this Event
-   */
   @XmlElement(name = "execution-handler", required = false)
   public void setExecutionHandler(JAXBExecutionHandler executionHandler)
   {
     this.executionHandler = executionHandler;
   }
 
-  /**
-   * Get the FlowHandler for this Event
-   */
   public JAXBFlowHandler getFlowHandler()
   {
     return flowHandler;
   }
 
-  /**
-   * Set the FlowHandler for this Event
-   */
   @XmlElement(name = "flow-handler", required = false)
   public void setFlowHandler(JAXBFlowHandler flowHandler)
   {
     this.flowHandler = flowHandler;
   }
 
-  /**
-   * Get the SignalHandler for this Event
-   */
   public JAXBSignalHandler getSignalHandler()
   {
     return signalHandler;
   }
 
-  /**
-   * Set the SignalHandler for this Event
-   */
   @XmlElement(name = "signal-handler", required = false)
   public void setSignalHandler(JAXBSignalHandler signalHandler)
   {

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/ObjectFactory.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/ObjectFactory.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/ObjectFactory.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -21,109 +21,66 @@
 @XmlRegistry
 public class ObjectFactory
 {
-  /**
-   * Create an instance of {@link ExclusiveGatewayImpl }
-   * 
-   */
   public JAXBExclusiveGateway createExclusiveGateway()
   {
     return new JAXBExclusiveGateway();
   }
 
-  /**
-   * Create an instance of {@link TaskImpl }
-   * 
-   */
   public JAXBTask createTask()
   {
     return new JAXBTask();
   }
 
-  /**
-   * Create an instance of {@link ProcessImpl }
-   * 
-   */
   public JAXBProcess createProcess()
   {
     return new JAXBProcess();
   }
 
-  /**
-   * Create an instance of {@link ParallelGatewayImpl }
-   * 
-   */
   public JAXBParallelGateway createParallelGateway()
   {
     return new JAXBParallelGateway();
   }
 
-  /**
-   * Create an instance of {@link MessageFlowImpl }
-   * 
-   */
+  public JAXBMessage createMessage()
+  {
+    return new JAXBMessage();
+  }
+
   public JAXBMessageFlow createMessageFlow()
   {
     return new JAXBMessageFlow();
   }
 
-  /**
-   * Create an instance of {@link EndEventImpl }
-   * 
-   */
   public JAXBEndEvent createEndEvent()
   {
     return new JAXBEndEvent();
   }
 
-  /**
-   * Create an instance of {@link SubProcessImpl }
-   * 
-   */
   public JAXBSubProcess createSubProcess()
   {
     return new JAXBSubProcess();
   }
 
-  /**
-   * Create an instance of {@link SequenceFlowImpl }
-   * 
-   */
-  public JAXBSequenceFlow createSequenceFlow()
+  public JAXBFlow createSequenceFlow()
   {
     return new JAXBSequenceFlow();
   }
 
-  /**
-   * Create an instance of {@link ComplexGatewayImpl }
-   * 
-   */
   public JAXBComplexGateway createComplexGateway()
   {
     return new JAXBComplexGateway();
   }
 
-  /**
-   * Create an instance of {@link InclusiveGatewayImpl }
-   * 
-   */
   public JAXBInclusiveGateway createInclusiveGateway()
   {
     return new JAXBInclusiveGateway();
   }
 
-  /**
-   * Create an instance of {@link IntermediateEventImpl }
-   * 
-   */
   public JAXBIntermediateEvent createItermediateEvent()
   {
     return new JAXBIntermediateEvent();
   }
 
-  /**
-   * Create an instance of {@link StartEventImpl }
-   * 
-   */
   public JAXBStartEvent createStartEvent()
   {
     return new JAXBStartEvent();

Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/.classpath	2008-07-31 16:15:38 UTC (rev 1794)
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -26,11 +26,13 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.io.Writer;
 import java.net.URL;
 
 import javax.xml.bind.JAXBException;
 
 import org.jboss.bpm.InvalidProcessException;
+import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.client.DialectHandler;
 import org.jboss.bpm.dialect.jpdl32.model.JPDL32ProcessDefinition;
 import org.jboss.bpm.model.Process;
@@ -73,4 +75,9 @@
       throw new InvalidProcessException("Cannot unmarschall: " + pURL, ex);
     }
   }
+
+  public void marshallProcess(Process proc, Writer out) throws IOException
+  {
+    throw new NotImplementedException();
+  }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -25,11 +25,13 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.Writer;
 import java.net.URL;
 
 import javax.xml.bind.JAXBException;
 
 import org.jboss.bpm.InvalidProcessException;
+import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.client.DialectHandler;
 import org.jboss.bpm.model.Process;
 
@@ -69,4 +71,9 @@
       throw new InvalidProcessException("Cannot unmarschall: " + pURL, ex);
     }
   }
+
+  public void marshallProcess(Process proc, Writer out) throws IOException
+  {
+    throw new NotImplementedException();
+  }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/.classpath	2008-07-31 16:15:38 UTC (rev 1794)
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -26,11 +26,13 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.io.Writer;
 import java.net.URL;
 
 import javax.xml.bind.JAXBException;
 
 import org.jboss.bpm.InvalidProcessException;
+import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.client.DialectHandler;
 import org.jboss.bpm.dialect.xpdl21.model.XPDLWorkflowProcess;
 import org.jboss.bpm.model.Process;
@@ -73,4 +75,9 @@
       throw new InvalidProcessException("Cannot unmarschall: " + pURL, ex);
     }
   }
+
+  public void marshallProcess(Process proc, Writer out) throws IOException
+  {
+    throw new NotImplementedException();
+  }
 }
\ 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 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/TaskBuilderImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -44,6 +44,11 @@
     super(proc, flowObject);
   }
 
+  public TaskBuilder addMessageRef(String messageName)
+  {
+    return addMessageRef(messageName, null);
+  }
+
   public TaskBuilder addMessageRef(String messageName, ObjectName targetID)
   {
     message = new MessageImpl(messageName, targetID);

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/pom.xml	2008-07-31 16:15:38 UTC (rev 1794)
@@ -27,6 +27,22 @@
   
   <!-- Dependencies -->
   <dependencies>
+    <dependency>
+      <groupId>org.jboss.bpm</groupId>
+      <artifactId>bpm-dialect-api10</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.bpm</groupId>
+      <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 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -25,7 +25,6 @@
 
 import javax.management.ObjectName;
 
-import org.jboss.bpm.client.MessageListener;
 import org.jboss.bpm.model.GatewayBuilder;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.ProcessBuilder;
@@ -45,9 +44,9 @@
 {
   private ObjectName listenerID;
   
-  public AirticketProcessBuilder(MessageListener msgListener)
+  public AirticketProcessBuilder(ObjectName listenerID)
   {
-    this.listenerID = msgListener.getMessageListenerID();
+    this.listenerID = listenerID;
   }
 
   public Process buildProcess()
@@ -59,7 +58,7 @@
 
     // Build the ReceiveReqTask
     TaskBuilder taskBuilder = procBuilder.addTask("ReceiveReqTask", TaskType.Receive);
-    taskBuilder.addMessageRef("ReqDataMsg", null).
+    taskBuilder.addMessageRef("ReqDataMsg").
     addMessageProperty("Name", null, true).
     addMessageProperty("From", null, true).
     addMessageProperty("To", null, true).
@@ -136,7 +135,7 @@
 
     // Build the ReceiveReqTask
     taskBuilder = procBuilder.addTask("ReceiveOrderTask", TaskType.Receive);
-    taskBuilder.addMessageRef("AcceptOfferMsg", null).
+    taskBuilder.addMessageRef("AcceptOfferMsg").
     addMessageProperty("CreditCard", null, true).
     addMessageProperty("Expire", null, true).
     addMessageProperty("isOfferAccepted", null, true).

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -49,15 +49,15 @@
       System.out.println("Create new Session");
       httpSession = getThreadLocalRequest().getSession();
 
+      // Create/Start a new process
+      AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(listenerID);
+      Process proc = procBuilder.buildProcess();
+      procID = proc.startProcess();
+      
       List<Message> messageQueue = new ArrayList<Message>();
       AirticketMessageListener msgListener = new AirticketMessageListener(messageQueue);
       mm.addMessageListener(msgListener);
       
-      // Create/Start a new process
-      AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(msgListener);
-      Process proc = procBuilder.buildProcess();
-      procID = proc.startProcess();
-      
       sm.addSignalListener(proc.getName(), new AirticketSignalListener());
       
       httpSession.setAttribute("procID", procID);

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/resources/jbpm-beans.xml	2008-07-31 16:15:38 UTC (rev 1794)
@@ -26,30 +26,20 @@
     <property name="dialectRegistry"><inject bean="jBPMDialectRegistry"/></property>
     <property name="dialectHandlers">
       <map keyClass="java.lang.String" valueClass="org.jboss.bpm.client.DialectHandler">
-        <!-- 
         <entry><key>api10</key><value><inject bean="jBPMDialectHandlerAPI10"/></value></entry>
-        <entry><key>jpdl32</key><value><inject bean="jBPMDialectHandlerJPDL32"/></value></entry>
         <entry><key>stp</key><value><inject bean="jBPMDialectHandlerSTP"/></value></entry>
-        <entry><key>xpdl21</key><value><inject bean="jBPMDialectHandlerXPDL21"/></value></entry>
-        -->
       </map>
     </property>
   </bean>
-  <!-- 
   <bean name="jBPMDialectHandlerAPI10" class="org.jboss.bpm.dialect.api10.DialectHandlerImpl"/>
-  <bean name="jBPMDialectHandlerJPDL32" class="org.jboss.bpm.dialect.jpdl32.DialectHandlerImpl"/>
   <bean name="jBPMDialectHandlerSTP" class="org.jboss.bpm.dialect.stp.DialectHandlerImpl"/>
-  <bean name="jBPMDialectHandlerXPDL21" class="org.jboss.bpm.dialect.xpdl21.DialectHandlerImpl"/>
-  -->
 
   <!-- The DialectRegistry -->
   <bean name="jBPMDialectRegistry" class="org.jboss.bpm.client.DialectRegistry">
     <property name="registry">
       <map keyClass="java.lang.String" valueClass="java.lang.String">
         <entry><key>urn:bpm.jboss:pdl-0.1</key><value>api10</value></entry>
-        <entry><key>urn:jbpm.org:jpdl-3.2</key><value>jpdl32</value></entry>
         <entry><key>http://stp.eclipse.org/bpmn</key><value>stp</value></entry>
-        <entry><key>http://www.wfmc.org/2008/XPDL2.1</key><value>xpdl21</value></entry>
       </map>
     </property>
   </bean>

Modified: 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-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -83,7 +83,7 @@
     AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
     mm.addMessageListener(msgListener);
 
-    AirticketProcessBuilder builder = new AirticketProcessBuilder(msgListener);
+    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
     Process proc = builder.buildProcess();
     proc.startProcess();
 
@@ -102,7 +102,7 @@
     AirticketMessageListener msgListener = new AirticketMessageListener(getMessageListenerID());
     mm.addMessageListener(msgListener);
 
-    AirticketProcessBuilder builder = new AirticketProcessBuilder(msgListener);
+    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
     Process proc = builder.buildProcess();
     proc.startProcess();
 

Added: 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	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,73 @@
+/*
+ * 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.wsf.common.DOMUtils;
+import org.jboss.wsf.common.DOMWriter;
+import org.w3c.dom.Element;
+
+/**
+ * Test the Airticket process marshaller
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessMarshallerTest extends DefaultEngineTestCase
+{
+  public void testProcessMarshaller() throws Exception
+  {
+    AirticketProcessBuilder builder = new AirticketProcessBuilder(getMessageListenerID());
+    Process proc = builder.buildProcess();
+    
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
+    
+    StringWriter strwr = new StringWriter();
+    dialect.marshallProcess(proc, strwr);
+    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();
+    
+    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();
+
+    //System.out.println(expStr);
+    //System.out.println(wasStr);
+    assertEquals(expStr, wasStr);
+  }
+}
\ No newline at end of file


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

Added: 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	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml	2008-07-31 16:15:38 UTC (rev 1794)
@@ -0,0 +1,249 @@
+<ns2:process name="Airticket" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+  <start>
+    <sequence to="ReceiveReqTask" />
+  </start>
+  <task taskType="Receive" name="ReceiveReqTask">
+    <sequence to="ValidateTask" />
+    <message ref="ReqDataMsg" />
+  </task>
+  <task taskType="None" name="ValidateTask">
+    <sequence to="ValidateGateway" />
+    <input-set>
+      <property>
+        <name>Name</name>
+      </property>
+      <property>
+        <name>From</name>
+      </property>
+      <property>
+        <name>To</name>
+      </property>
+      <property>
+        <name>Date</name>
+      </property>
+      <property>
+        <name>Seats</name>
+      </property>
+    </input-set>
+    <output-set>
+      <property>
+        <name>isReqDataValid</name>
+      </property>
+    </output-set>
+  </task>
+  <exclusive-gateway name="ValidateGateway">
+    <sequence conditionType="Expression" to="CheckAvailabilityTask">
+      <condition lang="MVEL">isReqDataValid == true</condition>
+    </sequence>
+    <sequence conditionType="Default" to="SendInvalidTask" />
+  </exclusive-gateway>
+  <task taskType="None" name="CheckAvailabilityTask">
+    <sequence to="AvailabilityGateway" />
+    <input-set>
+      <property>
+        <name>From</name>
+      </property>
+      <property>
+        <name>To</name>
+      </property>
+      <property>
+        <name>Date</name>
+      </property>
+      <property>
+        <name>Seats</name>
+      </property>
+    </input-set>
+    <output-set>
+      <property>
+        <name>isAvailable</name>
+      </property>
+      <property>
+        <name>Price</name>
+      </property>
+    </output-set>
+  </task>
+  <task taskType="Receive" name="SendInvalidTask">
+    <sequence to="ReceiveReqTask" />
+    <message ref="InvalidDataMsg">
+      <to>jboss.bpm:test=testProcessMarshaller</to>
+    </message>
+  </task>
+  <exclusive-gateway name="AvailabilityGateway">
+    <sequence conditionType="Expression" to="SendOfferTask">
+      <condition lang="MVEL">isAvailable == true</condition>
+    </sequence>
+    <sequence conditionType="Default" to="SendNotAvailableTask" />
+  </exclusive-gateway>
+  <task taskType="Receive" name="SendOfferTask">
+    <sequence to="ReceiveOrderTask" />
+    <message ref="OfferMsg">
+      <to>jboss.bpm:test=testProcessMarshaller</to>
+    </message>
+  </task>
+  <task taskType="Receive" name="SendNotAvailableTask">
+    <sequence to="ReceiveReqTask" />
+    <message ref="NotAvailableMsg">
+      <to>jboss.bpm:test=testProcessMarshaller</to>
+    </message>
+  </task>
+  <task taskType="Receive" name="ReceiveOrderTask">
+    <sequence to="AcceptOfferGateway" />
+    <message ref="AcceptOfferMsg" />
+  </task>
+  <exclusive-gateway name="AcceptOfferGateway">
+    <sequence conditionType="Expression" to="ParallelSplitGateway">
+      <condition lang="MVEL">isOfferAccepted == true</condition>
+    </sequence>
+    <sequence conditionType="Default" to="ReceiveReqTask" />
+  </exclusive-gateway>
+  <parallel-gateway name="ParallelSplitGateway">
+    <sequence to="CreditCardTask" />
+    <sequence to="BookingTask" />
+  </parallel-gateway>
+  <task taskType="None" name="CreditCardTask">
+    <sequence to="SynchronizedJoinGateway" />
+    <input-set>
+      <property>
+        <name>CreditCard</name>
+      </property>
+      <property>
+        <name>Expire</name>
+      </property>
+      <property>
+        <name>Price</name>
+      </property>
+    </input-set>
+  </task>
+  <task taskType="None" name="BookingTask">
+    <sequence to="SynchronizedJoinGateway" />
+    <input-set>
+      <property>
+        <name>Name</name>
+      </property>
+      <property>
+        <name>From</name>
+      </property>
+      <property>
+        <name>To</name>
+      </property>
+      <property>
+        <name>Date</name>
+      </property>
+      <property>
+        <name>Seats</name>
+      </property>
+    </input-set>
+  </task>
+  <parallel-gateway name="SynchronizedJoinGateway">
+    <sequence to="SendConfirmTask" />
+  </parallel-gateway>
+  <task taskType="Receive" name="SendConfirmTask">
+    <sequence to="End" />
+    <message ref="ConfirmMsg">
+      <to>jboss.bpm:test=testProcessMarshaller</to>
+    </message>
+  </task>
+  <end name="End" />
+  <message name="ReqDataMsg">
+    <property correlation="true">
+      <name>Name</name>
+    </property>
+    <property correlation="true">
+      <name>From</name>
+    </property>
+    <property correlation="true">
+      <name>To</name>
+    </property>
+    <property correlation="true">
+      <name>Date</name>
+    </property>
+    <property correlation="true">
+      <name>Seats</name>
+    </property>
+  </message>
+  <message name="InvalidDataMsg">
+    <property correlation="true">
+      <name>Name</name>
+    </property>
+    <property correlation="true">
+      <name>From</name>
+    </property>
+    <property correlation="true">
+      <name>To</name>
+    </property>
+    <property correlation="true">
+      <name>Date</name>
+    </property>
+    <property correlation="true">
+      <name>Seats</name>
+    </property>
+  </message>
+  <message name="OfferMsg">
+    <property correlation="true">
+      <name>Name</name>
+    </property>
+    <property correlation="true">
+      <name>From</name>
+    </property>
+    <property correlation="true">
+      <name>To</name>
+    </property>
+    <property correlation="true">
+      <name>Date</name>
+    </property>
+    <property correlation="true">
+      <name>Seats</name>
+    </property>
+    <property correlation="true">
+      <name>Price</name>
+    </property>
+  </message>
+  <message name="NotAvailableMsg">
+    <property correlation="true">
+      <name>Name</name>
+    </property>
+    <property correlation="true">
+      <name>From</name>
+    </property>
+    <property correlation="true">
+      <name>To</name>
+    </property>
+    <property correlation="true">
+      <name>Date</name>
+    </property>
+    <property correlation="true">
+      <name>Seats</name>
+    </property>
+  </message>
+  <message name="AcceptOfferMsg">
+    <property correlation="true">
+      <name>CreditCard</name>
+    </property>
+    <property correlation="true">
+      <name>Expire</name>
+    </property>
+    <property correlation="true">
+      <name>isOfferAccepted</name>
+    </property>
+  </message>
+  <message name="ConfirmMsg">
+    <property correlation="true">
+      <name>Name</name>
+    </property>
+    <property correlation="true">
+      <name>From</name>
+    </property>
+    <property correlation="true">
+      <name>To</name>
+    </property>
+    <property correlation="true">
+      <name>Date</name>
+    </property>
+    <property correlation="true">
+      <name>Seats</name>
+    </property>
+    <property correlation="true">
+      <name>Price</name>
+    </property>
+  </message>
+</ns2:process>
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: jbossbpm/spec/trunk/modules/testsuite/pom.xml
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/pom.xml	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/modules/testsuite/pom.xml	2008-07-31 16:15:38 UTC (rev 1794)
@@ -53,25 +53,21 @@
     <dependency>
       <groupId>org.jboss.bpm</groupId>
       <artifactId>bpm-dialect-api10</artifactId>
-      <version>${version}</version>
       <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.jboss.bpm</groupId>
-      <artifactId>bpm-dialect-jpdl32</artifactId>
-      <version>${version}</version>
+      <artifactId>bpm-dialect-stp</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.jboss.bpm</groupId>
-      <artifactId>bpm-dialect-stp</artifactId>
-      <version>${version}</version>
+      <artifactId>bpm-dialect-jpdl32</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.jboss.bpm</groupId>
       <artifactId>bpm-dialect-xpdl21</artifactId>
-      <version>${version}</version>
       <scope>runtime</scope>
     </dependency>
   </dependencies>

Modified: jbossbpm/spec/trunk/pom.xml
===================================================================
--- jbossbpm/spec/trunk/pom.xml	2008-07-31 13:22:39 UTC (rev 1793)
+++ jbossbpm/spec/trunk/pom.xml	2008-07-31 16:15:38 UTC (rev 1794)
@@ -50,6 +50,7 @@
   <!-- DependencyManagement -->
   <dependencyManagement>
     <dependencies>
+      <!-- JBossBPM Dependencies -->
       <dependency>
         <groupId>org.jboss.bpm</groupId>
         <artifactId>bpm-api</artifactId>
@@ -60,7 +61,28 @@
         <artifactId>bpm-ri</artifactId>
         <version>${version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.jboss.bpm</groupId>
+        <artifactId>bpm-dialect-api10</artifactId>
+        <version>${version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.bpm</groupId>
+        <artifactId>bpm-dialect-stp</artifactId>
+        <version>${version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.bpm</groupId>
+        <artifactId>bpm-dialect-jpdl32</artifactId>
+        <version>${version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.bpm</groupId>
+        <artifactId>bpm-dialect-xpdl21</artifactId>
+        <version>${version}</version>
+      </dependency>
       
+      <!-- Thirdparty Dependencies -->
       <dependency>
         <groupId>com.google.gwt</groupId>
         <artifactId>gwt-servlet</artifactId>
@@ -143,16 +165,8 @@
   <!-- DistributionManagement -->
   <distributionManagement>
     <!--
-      Add this to your ~/.m2/settings.xml 
-      
-      <servers> 
-        <server> 
-          <id>jbpm.dyndns.org</id> 
-          <username>yourname</username>
-          <privateKey>/home/yourname/.ssh/id_rsa</privateKey> 
-          <passphrase>yourpass</passphrase> 
-        </server> 
-      </servers>
+      Add this to your ~/.m2/settings.xml <servers> <server> <id>jbpm.dyndns.org</id> <username>yourname</username>
+      <privateKey>/home/yourname/.ssh/id_rsa</privateKey> <passphrase>yourpass</passphrase> </server> </servers>
     -->
     <site>
       <id>jbpm.dyndns.org</id>




More information about the jbpm-commits mailing list