[jbpm-commits] JBoss JBPM SVN: r1882 - in jbossbpm/spec/trunk/modules: ri/src/main/java/org/jboss/bpm/model/internal and 4 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Aug 13 11:07:58 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-08-13 11:07:57 -0400 (Wed, 13 Aug 2008)
New Revision: 1882

Modified:
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
   jbossbpm/spec/trunk/modules/samples/airticket/client/src/main/java/org/jboss/bpm/samples/airticket/client/Application.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelMergeTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn
   jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram
Log:
ParallelGateway ok

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -116,7 +116,9 @@
     }
 
     // Throw timeout exception if it took too long
-    throw new ProcessTimeoutException("Process timeout for: " + procID);
+    ProcessTimeoutException rte = new ProcessTimeoutException("Process timeout after " + timeout + "ms for: " + procID);
+    log.error(rte);
+    throw rte;
   }
 
   private Process getProcessStrict(ObjectName procID)

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/client/internal/RunnableToken.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -102,6 +102,7 @@
           }
           catch(RuntimeException rte)
           {
+            log.error("Process error", rte);
             target.reset();
             throw rte;
           }

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -23,8 +23,6 @@
 
 //$Id$
 
-import org.jboss.bpm.NotImplementedException;
-import org.jboss.bpm.model.Gate;
 import org.jboss.bpm.model.InclusiveGateway;
 
 
@@ -50,11 +48,6 @@
     return GatewayType.Inclusive;
   }
 
-  public Gate getDefaultGate()
-  {
-    throw new NotImplementedException();
-  }
-
   public String toString()
   {
     return "InclusiveGateway[" + getName() + "]";

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -31,8 +31,6 @@
 import org.jboss.bpm.model.ConnectingObject;
 import org.jboss.bpm.model.Gate;
 import org.jboss.bpm.model.Gateway;
-import org.jboss.bpm.model.GraphicalElement;
-import org.jboss.bpm.model.NameSupport;
 import org.jboss.bpm.model.ParallelGateway;
 import org.jboss.bpm.model.SequenceFlow;
 import org.jboss.bpm.runtime.FlowHandler;
@@ -72,20 +70,15 @@
     super.execute(token);
     
     // Multiple incomingFlows must be synchronized
-    if (getInFlows().size() > 1)
+    if (outstandingFlows == null)
     {
-      if (outstandingFlows == null)
-      {
-        outstandingFlows = new HashSet<ConnectingObject>(inFlows);
-        mergeTokens = new HashSet<Token>();
-      }
-
-      ConnectingObject flow = token.getFlow();
-      outstandingFlows.remove(flow);
-
-      if (outstandingFlows.size() > 0)
-        mergeTokens.add(token);
+      outstandingFlows = new HashSet<ConnectingObject>(inFlows);
+      mergeTokens = new HashSet<Token>();
     }
+
+    ConnectingObject flow = token.getFlow();
+    outstandingFlows.remove(flow);
+    mergeTokens.add(token);
   }
 
   public FlowHandler getFlowHandler()
@@ -112,22 +105,13 @@
             if (outstandingFlows.size() == 0)
             {
               // Merge the tokens together and submit the merged tokens
-              outToken = mergeTokens(token);
+              outToken = getMergedTokens();
             }
 
             // There are outstanding flows
             else if (outstandingFlows.size() > 0)
             {
-              Set<String> sourceNames = new HashSet<String>();
-              for (ConnectingObject flow : outstandingFlows)
-              {
-                GraphicalElement sourceRef = flow.getSourceRef();
-                if (sourceRef instanceof NameSupport)
-                  sourceNames.add(((NameSupport)sourceRef).getName());
-                else
-                  sourceNames.add(sourceRef.getID().getCanonicalName());
-              }
-              log.debug("Waiting for [" + sourceNames + "] in gateway: " + gateway);
+              log.debug("Waiting for " + outstandingFlows + " in gateway: " + gateway);
             }
           }
           
@@ -166,12 +150,14 @@
     mergeTokens = null;
   }
   
-  private Token mergeTokens(Token token)
+  private Token getMergedTokens()
   {
     TokenImpl mergedToken = new TokenImpl(null);
     for (Token auxToken : mergeTokens)
+    {
+      log.debug("mergeToken: " + auxToken);
       mergedToken.mergeToken(auxToken);
-
+    }
     return mergedToken;
   }
 

Modified: jbossbpm/spec/trunk/modules/samples/airticket/client/src/main/java/org/jboss/bpm/samples/airticket/client/Application.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/client/src/main/java/org/jboss/bpm/samples/airticket/client/Application.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/samples/airticket/client/src/main/java/org/jboss/bpm/samples/airticket/client/Application.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -217,16 +217,14 @@
         OrderMessage gwtMsg = new OrderMessage();
         gwtMsg.creditCard = textCreditCard.getText();
         gwtMsg.expire = textExpire.getText();
+        gwtMsg.acceptOffer = checkAccept.isChecked();
+        sendGwtMessage(gwtMsg);
         
         // Note, that this shows how process logic leaks into 
         // the client code, which is not correct.
         // Instead, the process should send a message when request data is required.
-        if (gwtMsg.acceptOffer = checkAccept.isChecked())
+        if (checkAccept.isChecked() == false)
         {
-          sendGwtMessage(gwtMsg);
-        }
-        else
-        {
           setVisiblePanel(getRequestPanel());
           labelMessage.setText(null);
         }

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-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -37,47 +37,40 @@
 
   public void sendMessage(GwtMessage gwtMsg)
   {
+    ProcessManager pm = ProcessManager.locateProcessManager();
     MessageManager mm = MessageManager.locateMessageManager();
     SignalManager sm = SignalManager.locateSignalManager();
 
     System.out.println(gwtMsg);
 
-    ObjectName procID;
     HttpSession httpSession = getThreadLocalRequest().getSession(false);
     if (httpSession == null)
     {
       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);
       
-      sm.addSignalListener(proc.getName(), new AirticketSignalListener());
+      sm.addSignalListener(AirticketProcessBuilder.PROCESS_NAME, new AirticketSignalListener());
       
-      httpSession.setAttribute("procID", procID);
       httpSession.setAttribute("messageQueue", messageQueue);
     }
-    else
+    
+    // Create/Start a new process
+    ObjectName procID = (ObjectName)httpSession.getAttribute("procID");
+    if (procID == null || pm.getProcessByID(procID) == null)
     {
-      procID = (ObjectName)httpSession.getAttribute("procID");
+      System.out.println("Create new Process");
+      AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(listenerID);
+      Process proc = procBuilder.buildProcess();
+      procID = proc.startProcess();
+      httpSession.setAttribute("procID", procID);
     }
-
+    
     if (gwtMsg instanceof RequestMessage)
     {
-      // Start a new process
-      if (httpSession.isNew() == false)
-      {
-        ProcessManager pm = ProcessManager.locateProcessManager();
-        pm.startProcess(procID, null);
-        httpSession.setAttribute("procID", procID);
-      }
-
       Message msg = getRequestMessage((RequestMessage)gwtMsg);
       mm.sendMessage(procID, AirticketProcessBuilder.TASK_RECEIVE_REQUEST, msg);
     }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelMergeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelMergeTest.java	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/gateway/parallel/ParallelMergeTest.java	2008-08-13 15:07:57 UTC (rev 1882)
@@ -23,20 +23,181 @@
 
 // $Id$
 
+import org.jboss.bpm.client.SignalListener;
+import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.EventBuilder;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.Signal;
+import org.jboss.bpm.model.Gateway.GatewayType;
+import org.jboss.bpm.model.Signal.SignalType;
+import org.jboss.bpm.runtime.ExecutionContext;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.Token;
 import org.jboss.bpm.test.DefaultEngineTestCase;
 
 /**
- * Parallel gateway that that has multiple incoming sequence flows. 
- * Each token arriving from an incoming sequence flow is stored in the gateway until a token has arrived from each incoming sequence flow. 
- * The tokens are merged together and leave the gateway as a one. 
+ * Parallel gateway that that has multiple incoming sequence flows. Each token arriving from an incoming sequence flow
+ * is stored in the gateway until a token has arrived from each incoming sequence flow. The tokens are merged together
+ * and leave the gateway as a one.
  * 
  * @author thomas.diesler at jboss.com
  * @since 06-Aug-2008
  */
 public class ParallelMergeTest extends DefaultEngineTestCase
 {
-  public void testGateA() throws Exception
+  public void testParallelMerge() throws Exception
   {
-    System.out.println("FIXME: ParallelMergeTest");
+    Process proc = getProcess();
+    proc.startProcess();
+
+    // Add a signal listener that sends the other start trigger signal
+    SignalManager signalManager = SignalManager.locateSignalManager();
+    Signal startTrigger = new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "B");
+    signalManager.addSignalListener(getName(), new MergeListener(getName(), startTrigger));
+
+    // Send start trigger signal
+    signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "A"));
+
+    // Wait for the process to end
+    proc.waitForEnd();
+
+    // Verify the result
+    assertEquals("TaskA:TaskB", TaskC.taskValue);
   }
+
+  public void testMergeTimeout() throws Exception
+  {
+    Process proc = getProcess();
+    proc.startProcess();
+
+    // Send start trigger signal
+    SignalManager signalManager = SignalManager.locateSignalManager();
+    signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "A"));
+
+    // Wait for the process to end
+    try
+    {
+      proc.waitForEnd(1000);
+      fail("timeout expected");
+    }
+    catch (RuntimeException rte)
+    {
+      // expected
+    }
+  }
+
+  public void testInvalidToken() throws Exception
+  {
+    Process proc = getProcess();
+    proc.startProcess();
+
+    // Add a signal listener that sends the other start trigger signal
+    SignalManager signalManager = SignalManager.locateSignalManager();
+    Signal startTrigger = new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "A");
+    signalManager.addSignalListener(getName(), new MergeListener(getName(), startTrigger));
+
+    // Send start trigger signal
+    signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "A"));
+
+    try
+    {
+      proc.waitForEnd();
+      fail("Expected: Unexpected token from: SequenceFlow[TaskA->Merge]");
+    }
+    catch (RuntimeException rte)
+    {
+      // expected
+    }
+
+    // Restart the process
+    proc.startProcess();
+    
+    // Add a signal listener that sends the other start trigger signal
+    startTrigger = new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "B");
+    signalManager.addSignalListener(getName(), new MergeListener(getName(), startTrigger));
+
+    // Send start trigger signal
+    signalManager.throwSignal(proc.getName(), new Signal(getName(), SignalType.SYSTEM_START_TRIGGER, "A"));
+
+    // Wait for the process to end
+    proc.waitForEnd();
+
+    // Verify the result
+    assertEquals("TaskA:TaskB", TaskC.taskValue);
+  }
+
+  private Process getProcess()
+  {
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+    EventBuilder eventBuilder = procBuilder.addProcess(getName()).addStartEvent("StartA");
+    eventBuilder.addSignalTrigger(SignalType.SYSTEM_START_TRIGGER, "A").addSequenceFlow("TaskA");
+    procBuilder.addTask("TaskA").addExecutionHandler(TaskA.class).addSequenceFlow("Merge");
+    eventBuilder = procBuilder.addStartEvent("StartB");
+    eventBuilder.addSignalTrigger(SignalType.SYSTEM_START_TRIGGER, "B").addSequenceFlow("TaskB");
+    procBuilder.addTask("TaskB").addExecutionHandler(TaskB.class).addSequenceFlow("Merge");
+    procBuilder.addGateway("Merge", GatewayType.Parallel).addSequenceFlow("TaskC");
+    procBuilder.addTask("TaskC").addExecutionHandler(TaskC.class).addSequenceFlow("End");
+    procBuilder.addEndEvent("End");
+    Process proc = procBuilder.getProcess();
+    return proc;
+  }
+
+  public static class MergeListener implements SignalListener
+  {
+    private String fromRef;
+    private Signal nextSignal;
+
+    public MergeListener(String fromRef, Signal nextSignal)
+    {
+      this.fromRef = fromRef;
+      this.nextSignal = nextSignal;
+    }
+
+    public void catchSignal(Signal signal)
+    {
+      if (signal.getType() == SignalType.SYSTEM_GATEWAY_ENTER)
+      {
+        if (nextSignal != null)
+        {
+          SignalManager signalManager = SignalManager.locateSignalManager();
+          signalManager.throwSignal(fromRef, nextSignal);
+          nextSignal = null;
+        }
+      }
+    }
+  }
+
+  @SuppressWarnings("serial")
+  public static class TaskA implements ExecutionHandler
+  {
+    public void execute(Token token)
+    {
+      ExecutionContext exContext = token.getExecutionContext();
+      exContext.addAttachment("taskA", "TaskA");
+    }
+  }
+
+  @SuppressWarnings("serial")
+  public static class TaskB implements ExecutionHandler
+  {
+    public void execute(Token token)
+    {
+      ExecutionContext exContext = token.getExecutionContext();
+      exContext.addAttachment("taskB", "TaskB");
+    }
+  }
+
+  @SuppressWarnings("serial")
+  public static class TaskC implements ExecutionHandler
+  {
+    public static Object taskValue;
+
+    public void execute(Token token)
+    {
+      ExecutionContext exContext = token.getExecutionContext();
+      taskValue = exContext.getAttachment("taskA") + ":" + exContext.getAttachment("taskB");
+    }
+  }
 }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn	2008-08-13 15:07:57 UTC (rev 1882)
@@ -2,8 +2,8 @@
 <bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpmn="http://stp.eclipse.org/bpmn" xmi:id="_AXFyUWOSEd2mS_8SFTXMeQ" iD="_AXFyUGOSEd2mS_8SFTXMeQ">
   <pools xmi:type="bpmn:Pool" xmi:id="_AXHAcWOSEd2mS_8SFTXMeQ" iD="_AXHAcGOSEd2mS_8SFTXMeQ" name="Pool">
     <vertices xmi:type="bpmn:Activity" xmi:id="_EPuQwWOSEd2mS_8SFTXMeQ" iD="_EPuQwGOSEd2mS_8SFTXMeQ" outgoingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" incomingEdges="_ImmxcWOSEd2mS_8SFTXMeQ _JC-kYWOSEd2mS_8SFTXMeQ" activityType="GatewayParallel"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_FY9wwWOSEd2mS_8SFTXMeQ" iD="_FY9wwGOSEd2mS_8SFTXMeQ" outgoingEdges="_ImmxcWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
-    <vertices xmi:type="bpmn:Activity" xmi:id="_FobwIWOSEd2mS_8SFTXMeQ" iD="_FobwIGOSEd2mS_8SFTXMeQ" outgoingEdges="_JC-kYWOSEd2mS_8SFTXMeQ" activityType="EventStartSignal"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_FY9wwWOSEd2mS_8SFTXMeQ" iD="_FY9wwGOSEd2mS_8SFTXMeQ" outgoingEdges="_ImmxcWOSEd2mS_8SFTXMeQ" name="StartA" activityType="EventStartSignal"/>
+    <vertices xmi:type="bpmn:Activity" xmi:id="_FobwIWOSEd2mS_8SFTXMeQ" iD="_FobwIGOSEd2mS_8SFTXMeQ" outgoingEdges="_JC-kYWOSEd2mS_8SFTXMeQ" name="StartB" activityType="EventStartSignal"/>
     <vertices xmi:type="bpmn:Activity" xmi:id="_LFtRIWOSEd2mS_8SFTXMeQ" iD="_LFtRIGOSEd2mS_8SFTXMeQ" incomingEdges="_LxpxIWOSEd2mS_8SFTXMeQ" activityType="EventEndEmpty"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_ImmxcWOSEd2mS_8SFTXMeQ" iD="_ImmxcGOSEd2mS_8SFTXMeQ" source="_FY9wwWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>
     <sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_JC-kYWOSEd2mS_8SFTXMeQ" iD="_JC-kYGOSEd2mS_8SFTXMeQ" source="_FobwIWOSEd2mS_8SFTXMeQ" target="_EPuQwWOSEd2mS_8SFTXMeQ"/>

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram	2008-08-13 13:59:52 UTC (rev 1881)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/resources/cts/gateway/parallel/parallel-merge.bpmn_diagram	2008-08-13 15:07:57 UTC (rev 1882)
@@ -19,7 +19,7 @@
         <styles xmi:type="notation:FillStyle" xmi:id="_FY--42OSEd2mS_8SFTXMeQ"/>
         <styles xmi:type="notation:LineStyle" xmi:id="_FY--5GOSEd2mS_8SFTXMeQ" lineColor="0"/>
         <element xmi:type="bpmn:Activity" href="parallel-merge.bpmn#_FY9wwWOSEd2mS_8SFTXMeQ"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FY--5WOSEd2mS_8SFTXMeQ" x="43" y="23"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FY--5WOSEd2mS_8SFTXMeQ" x="36" y="24" width="50"/>
       </children>
       <children xmi:type="notation:Node" xmi:id="_Foc-QGOSEd2mS_8SFTXMeQ" type="2001">
         <children xmi:type="notation:Node" xmi:id="_FodlUGOSEd2mS_8SFTXMeQ" type="4001"/>
@@ -48,7 +48,7 @@
     <styles xmi:type="notation:FillStyle" xmi:id="_AXIOk2OSEd2mS_8SFTXMeQ" fillColor="16771304"/>
     <styles xmi:type="notation:LineStyle" xmi:id="_AXIOlGOSEd2mS_8SFTXMeQ" lineColor="11119017"/>
     <element xmi:type="bpmn:Pool" href="parallel-merge.bpmn#_AXHAcWOSEd2mS_8SFTXMeQ"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AXI1pWOSEd2mS_8SFTXMeQ" x="16" y="16" width="345" height="200"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AXI1pWOSEd2mS_8SFTXMeQ" x="16" y="16" width="424" height="213"/>
   </children>
   <styles xmi:type="notation:PageStyle" xmi:id="_AXGZYWOSEd2mS_8SFTXMeQ"/>
   <styles xmi:type="notation:GuideStyle" xmi:id="_AXGZYmOSEd2mS_8SFTXMeQ"/>




More information about the jbpm-commits mailing list