[jbpm-commits] JBoss JBPM SVN: r1795 - in jbossbpm/spec/trunk/modules: dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jul 31 13:04:15 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-31 13:04:15 -0400 (Thu, 31 Jul 2008)
New Revision: 1795

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/model/JAXBSupportingElement.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBTask.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml
Log:
Marshall handler support

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 16:15:38 UTC (rev 1794)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessMarshaller.java	2008-07-31 17:04:15 UTC (rev 1795)
@@ -33,9 +33,12 @@
 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.JAXBEvent;
 import org.jboss.bpm.dialect.api10.model.JAXBExclusiveGateway;
+import org.jboss.bpm.dialect.api10.model.JAXBExecutionHandler;
 import org.jboss.bpm.dialect.api10.model.JAXBExpression;
 import org.jboss.bpm.dialect.api10.model.JAXBFlow;
+import org.jboss.bpm.dialect.api10.model.JAXBFlowHandler;
 import org.jboss.bpm.dialect.api10.model.JAXBFlowObject;
 import org.jboss.bpm.dialect.api10.model.JAXBGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
@@ -46,6 +49,7 @@
 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.JAXBSignalHandler;
 import org.jboss.bpm.dialect.api10.model.JAXBStartEvent;
 import org.jboss.bpm.dialect.api10.model.JAXBTask;
 import org.jboss.bpm.dialect.api10.model.ObjectFactory;
@@ -72,6 +76,10 @@
 import org.jboss.bpm.model.StartEvent;
 import org.jboss.bpm.model.Task;
 import org.jboss.bpm.model.SequenceFlow.ConditionType;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.HandlerSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 
 /**
  * A JAXB marshaller for a Process
@@ -123,24 +131,33 @@
 
   private JAXBFlowObject adaptEvent(JAXBProcess jaxbProc, Event event)
   {
+    JAXBEvent jaxb;
     if (event instanceof StartEvent)
     {
       StartEvent start = (StartEvent)event;
-      JAXBStartEvent jaxb = new JAXBStartEvent();
-      jaxb.setOutFlow(getJAXBFlow(start.getOutFlow()));
-      return jaxb;
+      JAXBStartEvent jaxbStart = new JAXBStartEvent();
+      jaxbStart.setOutFlow(getJAXBFlow(start.getOutFlow()));
+      jaxb = jaxbStart;
     }
     else if (event instanceof EndEvent)
     {
       EndEvent end = (EndEvent)event;
-      JAXBEndEvent jaxb = new JAXBEndEvent();
-      jaxb.setName(end.getName());
-      return jaxb;
+      JAXBEndEvent jaxbEnd = new JAXBEndEvent();
+      jaxbEnd.setName(end.getName());
+      jaxb = jaxbEnd;
     }
     else
     {
       throw new NotImplementedException(event.toString());
     }
+    if (event instanceof HandlerSupport)
+    {
+      HandlerSupport hs = (HandlerSupport)event;
+      jaxb.setExecutionHandler(getJAXBExecutionHandler(event, hs.getExecutionHandler()));
+      jaxb.setFlowHandler(getJAXBFlowHandler(event, hs.getFlowHandler()));
+      jaxb.setSignalHandler(getJAXBSignalHandler(event, hs.getSignalHandler()));
+    }
+    return jaxb;
   }
 
   private JAXBFlowObject adaptTask(JAXBProcess jaxbProc, Task task)
@@ -149,6 +166,13 @@
     jaxb.setTaskType(task.getTaskType());
     jaxb.setName(task.getName());
     jaxb.setOutFlow(getJAXBFlow(task.getOutFlow()));
+    if (task instanceof HandlerSupport)
+    {
+      HandlerSupport hs = (HandlerSupport)task;
+      jaxb.setExecutionHandler(getJAXBExecutionHandler(task, hs.getExecutionHandler()));
+      jaxb.setFlowHandler(getJAXBFlowHandler(task, hs.getFlowHandler()));
+      jaxb.setSignalHandler(getJAXBSignalHandler(task, hs.getSignalHandler()));
+    }
     for (InputSet inSet : task.getInputSets())
     {
       JAXBInputSet jaxbSet = new JAXBInputSet();
@@ -182,30 +206,6 @@
     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;
@@ -230,6 +230,13 @@
       throw new NotImplementedException(gateway.toString());
     }
     jaxb.setName(gateway.getName());
+    if (gateway instanceof HandlerSupport)
+    {
+      HandlerSupport hs = (HandlerSupport)gateway;
+      jaxb.setExecutionHandler(getJAXBExecutionHandler(gateway, hs.getExecutionHandler()));
+      jaxb.setFlowHandler(getJAXBFlowHandler(gateway, hs.getFlowHandler()));
+      jaxb.setSignalHandler(getJAXBSignalHandler(gateway, hs.getSignalHandler()));
+    }
     for (Gate gate : gateway.getGates())
     {
       SequenceFlow flow = gate.getOutgoingSequenceFlow();
@@ -238,6 +245,30 @@
     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 String getParticipant(Participant par)
   {
     String parName = null;
@@ -295,4 +326,48 @@
     jaxb.setBody(expr.getExpressionBody());
     return jaxb;
   }
+
+  private JAXBExecutionHandler getJAXBExecutionHandler(FlowObject fo, ExecutionHandler handler)
+  {
+    JAXBExecutionHandler jaxb = null;
+    if (handler != null)
+    {
+      if (fo.getClass().getPackage() != handler.getClass().getPackage())
+      {
+        jaxb = new JAXBExecutionHandler();
+        jaxb.setClassName(handler.getClass().getName());
+      }
+    }
+    return jaxb;
+  }
+
+  private JAXBFlowHandler getJAXBFlowHandler(FlowObject fo, FlowHandler handler)
+  {
+    JAXBFlowHandler jaxb = null;
+    if (handler != null)
+    {
+      if (fo.getClass().getPackage() != handler.getClass().getPackage())
+      {
+        jaxb = new JAXBFlowHandler();
+        jaxb.setClassName(handler.getClass().getName());
+      }
+    }
+    return jaxb;
+  }
+
+  private JAXBSignalHandler getJAXBSignalHandler(FlowObject fo, SignalHandler handler)
+  {
+    JAXBSignalHandler jaxb = null;
+    if (handler != null)
+    {
+      if (fo.getClass().getPackage() != handler.getClass().getPackage())
+      {
+        jaxb = new JAXBSignalHandler();
+        jaxb.setClassName(handler.getClass().getName());
+      }
+    }
+    return jaxb;
+  }
 }
+
+

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSupportingElement.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSupportingElement.java	2008-07-31 16:15:38 UTC (rev 1794)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBSupportingElement.java	2008-07-31 17:04:15 UTC (rev 1795)
@@ -31,6 +31,6 @@
  * @since 08-Jul-2008
  */
 @XmlType(name = "SupportingElement")
-public class JAXBSupportingElement
+public class JAXBSupportingElement extends JAXBBPMNElement
 {
 }
\ 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 16:15:38 UTC (rev 1794)
+++ 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)
@@ -44,7 +44,8 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at XmlType(name = "Task")
+ at XmlType(name = "Task", propOrder = { "outFlow", "implementation", "executionHandler", "flowHandler", "signalHandler",
+    "messageRef", "inputSets", "outputSets" })
 public class JAXBTask extends JAXBActivity
 {
   private TaskType taskType;
@@ -52,7 +53,7 @@
   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;

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 16:15:38 UTC (rev 1794)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/resources/samples/airticket/airticket-api10.xml	2008-07-31 17:04:15 UTC (rev 1795)
@@ -1,13 +1,14 @@
-<ns2:process name="Airticket" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+<ns2:process name='Airticket' xmlns:ns2='urn:bpm.jboss:pdl-0.1'>
   <start>
-    <sequence to="ReceiveReqTask" />
+    <sequence to='ReceiveReqTask' />
   </start>
-  <task taskType="Receive" name="ReceiveReqTask">
-    <sequence to="ValidateTask" />
-    <message ref="ReqDataMsg" />
+  <task name='ReceiveReqTask' taskType='Receive'>
+    <sequence to='ValidateTask' />
+    <message ref='ReqDataMsg' />
   </task>
-  <task taskType="None" name="ValidateTask">
-    <sequence to="ValidateGateway" />
+  <task name='ValidateTask' taskType='None'>
+    <sequence to='ValidateGateway' />
+    <execution-handler class='org.jboss.bpm.samples.airticket.ValidationHandler' />
     <input-set>
       <property>
         <name>Name</name>
@@ -31,14 +32,15 @@
       </property>
     </output-set>
   </task>
-  <exclusive-gateway name="ValidateGateway">
-    <sequence conditionType="Expression" to="CheckAvailabilityTask">
-      <condition lang="MVEL">isReqDataValid == true</condition>
+  <exclusive-gateway name='ValidateGateway'>
+    <sequence conditionType='Expression' to='CheckAvailabilityTask'>
+      <condition lang='MVEL'>isReqDataValid == true</condition>
     </sequence>
-    <sequence conditionType="Default" to="SendInvalidTask" />
+    <sequence conditionType='Default' to='SendInvalidTask' />
   </exclusive-gateway>
-  <task taskType="None" name="CheckAvailabilityTask">
-    <sequence to="AvailabilityGateway" />
+  <task name='CheckAvailabilityTask' taskType='None'>
+    <sequence to='AvailabilityGateway' />
+    <execution-handler class='org.jboss.bpm.samples.airticket.AvailabilityHandler' />
     <input-set>
       <property>
         <name>From</name>
@@ -62,46 +64,46 @@
       </property>
     </output-set>
   </task>
-  <task taskType="Receive" name="SendInvalidTask">
-    <sequence to="ReceiveReqTask" />
-    <message ref="InvalidDataMsg">
+  <task name='SendInvalidTask' taskType='Receive'>
+    <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>
+  <exclusive-gateway name='AvailabilityGateway'>
+    <sequence conditionType='Expression' to='SendOfferTask'>
+      <condition lang='MVEL'>isAvailable == true</condition>
     </sequence>
-    <sequence conditionType="Default" to="SendNotAvailableTask" />
+    <sequence conditionType='Default' to='SendNotAvailableTask' />
   </exclusive-gateway>
-  <task taskType="Receive" name="SendOfferTask">
-    <sequence to="ReceiveOrderTask" />
-    <message ref="OfferMsg">
+  <task name='SendOfferTask' taskType='Receive'>
+    <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">
+  <task name='SendNotAvailableTask' taskType='Receive'>
+    <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 name='ReceiveOrderTask' taskType='Receive'>
+    <sequence to='AcceptOfferGateway' />
+    <message ref='AcceptOfferMsg' />
   </task>
-  <exclusive-gateway name="AcceptOfferGateway">
-    <sequence conditionType="Expression" to="ParallelSplitGateway">
-      <condition lang="MVEL">isOfferAccepted == true</condition>
+  <exclusive-gateway name='AcceptOfferGateway'>
+    <sequence conditionType='Expression' to='ParallelSplitGateway'>
+      <condition lang='MVEL'>isOfferAccepted == true</condition>
     </sequence>
-    <sequence conditionType="Default" to="ReceiveReqTask" />
+    <sequence conditionType='Default' to='ReceiveReqTask' />
   </exclusive-gateway>
-  <parallel-gateway name="ParallelSplitGateway">
-    <sequence to="CreditCardTask" />
-    <sequence to="BookingTask" />
+  <parallel-gateway name='ParallelSplitGateway'>
+    <sequence to='CreditCardTask' />
+    <sequence to='BookingTask' />
   </parallel-gateway>
-  <task taskType="None" name="CreditCardTask">
-    <sequence to="SynchronizedJoinGateway" />
+  <task name='CreditCardTask' taskType='None'>
+    <sequence to='SynchronizedJoinGateway' />
     <input-set>
       <property>
         <name>CreditCard</name>
@@ -114,8 +116,8 @@
       </property>
     </input-set>
   </task>
-  <task taskType="None" name="BookingTask">
-    <sequence to="SynchronizedJoinGateway" />
+  <task name='BookingTask' taskType='None'>
+    <sequence to='SynchronizedJoinGateway' />
     <input-set>
       <property>
         <name>Name</name>
@@ -134,115 +136,115 @@
       </property>
     </input-set>
   </task>
-  <parallel-gateway name="SynchronizedJoinGateway">
-    <sequence to="SendConfirmTask" />
+  <parallel-gateway name='SynchronizedJoinGateway'>
+    <sequence to='SendConfirmTask' />
   </parallel-gateway>
-  <task taskType="Receive" name="SendConfirmTask">
-    <sequence to="End" />
-    <message ref="ConfirmMsg">
+  <task name='SendConfirmTask' taskType='Receive'>
+    <sequence to='End' />
+    <message ref='ConfirmMsg'>
       <to>jboss.bpm:test=testProcessMarshaller</to>
     </message>
   </task>
-  <end name="End" />
-  <message name="ReqDataMsg">
-    <property correlation="true">
+  <end name='End' />
+  <message name='ReqDataMsg'>
+    <property correlation='true'>
       <name>Name</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>From</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>To</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Date</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Seats</name>
     </property>
   </message>
-  <message name="InvalidDataMsg">
-    <property correlation="true">
+  <message name='InvalidDataMsg'>
+    <property correlation='true'>
       <name>Name</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>From</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>To</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Date</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Seats</name>
     </property>
   </message>
-  <message name="OfferMsg">
-    <property correlation="true">
+  <message name='OfferMsg'>
+    <property correlation='true'>
       <name>Name</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>From</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>To</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Date</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Seats</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Price</name>
     </property>
   </message>
-  <message name="NotAvailableMsg">
-    <property correlation="true">
+  <message name='NotAvailableMsg'>
+    <property correlation='true'>
       <name>Name</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>From</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>To</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Date</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Seats</name>
     </property>
   </message>
-  <message name="AcceptOfferMsg">
-    <property correlation="true">
+  <message name='AcceptOfferMsg'>
+    <property correlation='true'>
       <name>CreditCard</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Expire</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>isOfferAccepted</name>
     </property>
   </message>
-  <message name="ConfirmMsg">
-    <property correlation="true">
+  <message name='ConfirmMsg'>
+    <property correlation='true'>
       <name>Name</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>From</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>To</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Date</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Seats</name>
     </property>
-    <property correlation="true">
+    <property correlation='true'>
       <name>Price</name>
     </property>
   </message>




More information about the jbpm-commits mailing list