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

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Aug 2 11:47:06 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-08-02 11:47:06 -0400 (Sat, 02 Aug 2008)
New Revision: 1804

Added:
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml
Removed:
   jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
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/ProcessManager.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
   jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
   jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java
   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/ProcessDefinitionAdapter.java
   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/ProcessUnmarshaller.java
   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/WorkflowProcessAdapter.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
   jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
   jbossbpm/spec/trunk/modules/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/AvailabilityHandler.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.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/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
   jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
   jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
Log:
Add support for include

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/DialectHandler.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,13 +44,15 @@
   
   /**
    * Create a {@link Process} from a descriptor.
+   * @param isInclude TODO
    */
-  Process createProcess(String pXML);
+  Process createProcess(String pXML, boolean isInclude);
 
   /**
    * Create a {@link Process} from a descriptor URL.
+   * @param isInclude TODO
    */
-  Process createProcess(URL pURL) throws IOException;
+  Process createProcess(URL pURL, boolean isInclude) throws IOException;
 
   /**
    * Marshall the process to the given writer

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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -96,7 +96,7 @@
       throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
 
     String nsURI = getNamespaceURI(new ByteArrayInputStream(pXML.getBytes()));
-    Process proc = getDialectHandler(nsURI).createProcess(pXML);
+    Process proc = getDialectHandler(nsURI).createProcess(pXML, false);
     registerProcess(proc);
     return proc;
   }
@@ -110,7 +110,7 @@
       throw new EngineShutdownException("Cannot create new Process while engine is shutting down");
 
     String nsURI = getNamespaceURI(pURL.openStream());
-    Process proc = getDialectHandler(nsURI).createProcess(pURL);
+    Process proc = getDialectHandler(nsURI).createProcess(pURL, false);
     registerProcess(proc);
     return proc;
   }

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Activity.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -32,7 +32,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface Activity extends FlowObject, NameSupport
+public interface Activity extends FlowObject, NameSupport, PropertySupport
 {
   /**
    * The ActivityType MUST be of type Task or Sub-Process.
@@ -64,14 +64,6 @@
   List<String> getPerformers();
   
   /**
-   * Modeler-defined Properties MAY be added to an activity. These Properties are
-   * “local” to the activity. These Properties are only for use within the processing of
-   * the activity. The fully delineated name of these properties is “<process name>.<activity name>.<property name>” 
-   * (e.g., “Add Customer.Review Credit.Status”).
-   */
-  List<Property> getProperties();
-
-  /**
    * The InputSets attribute defines the data requirements for input to the Activity.
    * Zero or more InputSets MAY be defined. Each Input set is sufficient to allow the
    * Activity to be performed (if it has first been instantiated by the appropriate signal

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Message.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -21,7 +21,6 @@
  */
 package org.jboss.bpm.model;
 
-import java.util.List;
 
 
 //$Id$
@@ -33,7 +32,7 @@
  * @author thomas.diesler at jboss.com
  * @since 21-Jul-2008
  */
-public interface Message extends SupportingElement
+public interface Message extends SupportingElement, PropertySupport
 {
   /**
    * Name is an attribute that is text description of the Message.
@@ -41,21 +40,6 @@
   String getName();
 
   /**
-   * Multiple Properties MAY entered for the Message. 
-   */
-  List<Property> getProperties();
-  
-  /**
-   * Get a Property with a given name. 
-   */
-  Property getProperty(String name);
-  
-  /**
-   * Get the list of property names
-   */
-  List<String> getPropertyNames();
-  
-  /**
    * This defines the source of the Message.
    */
   Participant getFromRef();

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -35,7 +35,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface Process extends SupportingElement, NameSupport
+public interface Process extends SupportingElement, NameSupport, PropertySupport
 {
   /**
    * Defines the type of a {@link Process}
@@ -82,15 +82,6 @@
   List<String> getAssignments();
 
   /**
-   * Modeler-defined Properties MAY be added to a Process. These Properties are “local” to the Process. All Tasks,
-   * Sub-Process objects, and Sub-Processes that are embedded SHALL have access to these Properties. The fully
-   * delineated name of these properties are “<process name>.<property name>” (e.g., “Add Customer.Customer Name”). If a
-   * process is embedded within another Process, then the fully delineated name SHALL also be preceded by the Parent
-   * Process name for as many Parents there are until the top level Process.
-   */
-  List<Property> getProperties();
-
-  /**
    * The InputSets attribute defines the data requirements for input to the Process. Zero or more InputSets MAY be
    * defined. Each Input set is sufficient to allow the Process to be performed (if it has first been instantiated by
    * the appropriate signal arriving from an incoming Sequence Flow)

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -43,11 +43,17 @@
   ProcessBuilder addProcess(String name);
 
   /**
+   * Merge with another {@link Process} 
+   */
+  ProcessBuilder mergeProcess(Process proc);
+  
+  /**
    * Get the {@link Process}. 
    * <p/> 
    * This is the final call to the ProcessBuilder after all elements have been added.
+   * @param initProcess If true the builder initializes the process 
    */
-  Process getProcess();
+  Process getProcess(boolean initProcess);
 
   /**
    * Add a {@link SequenceFlow} with a given name

Modified: jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java
===================================================================
--- jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/api/src/main/java/org/jboss/bpm/model/PropertySupport.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -40,6 +40,11 @@
   Property getProperty(String name);
 
   /**
+   * Get a Property value with a given name. 
+   */
+  String getPropertyValue(String name);
+  
+  /**
    * Multiple Properties MAY entered for the Message.
    */
   List<Property> getProperties();

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -50,26 +50,30 @@
     return NAMESPACE_URI;
   }
 
-  public Process createProcess(String pXML)
+  public Process createProcess(String pXML, boolean isInclude)
   {
     try
     {
       ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
-      Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML));
+      Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML), isInclude);
       return proc;
     }
     catch (JAXBException ex)
     {
       throw new InvalidProcessException("Cannot unmarschall: " + pXML, ex);
     }
+    catch (IOException ex)
+    {
+      throw new InvalidProcessException("Cannot unmarschall: " + pXML, ex);
+    }
   }
 
-  public Process createProcess(URL pURL) throws IOException
+  public Process createProcess(URL pURL, boolean isInclude) throws IOException
   {
     try
     {
       ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
-      Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()));
+      Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()), isInclude);
       return proc;
     }
     catch (JAXBException ex)

Modified: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/ProcessUnmarshaller.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -23,7 +23,10 @@
 
 // $Id$
 
+import java.io.IOException;
 import java.io.Reader;
+import java.net.MalformedURLException;
+import java.net.URL;
 
 import javax.management.ObjectName;
 import javax.xml.bind.JAXBContext;
@@ -32,7 +35,9 @@
 
 import org.jboss.bpm.InvalidProcessException;
 import org.jboss.bpm.NotImplementedException;
+import org.jboss.bpm.client.DialectHandler;
 import org.jboss.bpm.client.ObjectNameFactory;
+import org.jboss.bpm.client.ProcessManager;
 import org.jboss.bpm.dialect.api10.model.JAXBComplexGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBEndEvent;
 import org.jboss.bpm.dialect.api10.model.JAXBEvent;
@@ -42,6 +47,7 @@
 import org.jboss.bpm.dialect.api10.model.JAXBFlowObject;
 import org.jboss.bpm.dialect.api10.model.JAXBGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBHandler;
+import org.jboss.bpm.dialect.api10.model.JAXBInclude;
 import org.jboss.bpm.dialect.api10.model.JAXBInclusiveGateway;
 import org.jboss.bpm.dialect.api10.model.JAXBInputSet;
 import org.jboss.bpm.dialect.api10.model.JAXBMessage;
@@ -73,27 +79,32 @@
  */
 public class ProcessUnmarshaller
 {
-  public Process unmarshallProcess(Reader xml) throws JAXBException
+  public Process unmarshallProcess(Reader xml, boolean isInclude) throws JAXBException, IOException
   {
     JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
     Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
     unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory", new ObjectFactory());
     JAXBProcess jaxbProc = (JAXBProcess)unmarshaller.unmarshal(xml);
-    Process proc = adaptProcess(jaxbProc);
+    Process proc = adaptProcess(jaxbProc, isInclude);
     return proc;
   }
 
-  private Process adaptProcess(JAXBProcess jaxbProc)
+  private Process adaptProcess(JAXBProcess jaxbProc, boolean isInclude) throws IOException
   {
     ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     procBuilder.addProcess(jaxbProc.getName());
     
+    // Process Includes
+    processIncludes(procBuilder, jaxbProc);
+    
+    // Process Messages
     for(JAXBMessage jaxb : jaxbProc.getMessages())
     {
       MessageBuilder msgBuilder = procBuilder.addMessage(jaxb.getName());
       adaptJAXBMessage(msgBuilder, jaxb);
     }
     
+    // Process FlowObjects
     for (JAXBFlowObject jaxb : jaxbProc.getFlowObjects())
     {
       if (jaxb instanceof JAXBEvent)
@@ -113,17 +124,46 @@
         throw new NotImplementedException(jaxb.toString());
       }
     }
-    Process proc = procBuilder.getProcess();
+    
+    Process proc = procBuilder.getProcess(!isInclude);
     return proc;
   }
 
+  private void processIncludes(ProcessBuilder procBuilder, JAXBProcess jaxbProc) throws IOException
+  {
+    for(JAXBInclude incl : jaxbProc.getIncludes())
+    {
+      String nsURI = incl.getNamespace();
+      String location = incl.getLocation();
+      
+      URL procURL; 
+      try
+      {
+        procURL = new URL(location);
+      }
+      catch (MalformedURLException ex)
+      {
+        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+        procURL = ctxLoader.getResource(location);
+      }
+      if (procURL == null)
+        throw new InvalidProcessException("Cannot find process include: " + location);
+      
+      ProcessManager pm = ProcessManager.locateProcessManager();
+      DialectHandler dh = pm.getDialectHandler(nsURI);
+      Process procInclude = dh.createProcess(procURL, true);
+      procBuilder.mergeProcess(procInclude);
+    }
+  }
+
   private void adaptJAXBMessage(MessageBuilder msgBuilder, JAXBMessage jaxbMsg)
   {
     msgBuilder.addFromRef(getObjectName(jaxbMsg.getFromRef()));
     msgBuilder.addToRef(getObjectName(jaxbMsg.getToRef()));
     for (JAXBProperty jaxbProp : jaxbMsg.getProperties())
     {
-      msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), jaxbProp.isCorrelation());
+      boolean isCorrelation = jaxbProp.isCorrelation() != null ? jaxbProp.isCorrelation() : false;
+      msgBuilder.addProperty(jaxbProp.getName(), jaxbProp.getValue(), isCorrelation);
     }
   }
 
@@ -181,11 +221,7 @@
     {
       JAXBMessageRef jaxbMsgRef = (JAXBMessageRef)jaxbSE;
       String msgName = jaxbMsgRef.getNameRef();
-      JAXBMessage jaxbMsg = jaxbProc.getMessageByName(msgName);
-      if (jaxbMsg == null)
-        throw new InvalidProcessException("Cannot find message with name: " + msgName);
-      MessageBuilder msgBuilder = taskBuilder.addMessage(msgName);
-      adaptJAXBMessage(msgBuilder, jaxbMsg);
+      taskBuilder.addMessageRef(msgName);
     }
     procBuilder.addExecutionHandler(loadHandler(jaxb.getExecutionHandler()));
     procBuilder.addFlowHandler(loadHandler(jaxb.getFlowHandler()));

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,62 @@
+/*
+ * 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;
+
+/**
+ * An include that can be used as part of the process 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Include")
+public class JAXBInclude
+{
+  private String namespace;
+  private String location;
+
+  public String getNamespace()
+  {
+    return namespace;
+  }
+
+  @XmlAttribute(required = true)
+  public void setNamespace(String namespace)
+  {
+    this.namespace = namespace;
+  }
+
+  public String getLocation()
+  {
+    return location;
+  }
+
+  @XmlAttribute(required = true)
+  public void setLocation(String location)
+  {
+    this.location = location;
+  }
+}
\ No newline at end of file


Property changes on: jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBInclude.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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/model/JAXBProcess.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,6 +44,7 @@
 {
   private String name;
   private List<JAXBMessage> messages = new ArrayList<JAXBMessage>();
+  private List<JAXBInclude> includes = new ArrayList<JAXBInclude>();
 
   @XmlElements( { @XmlElement(name = "start", type = JAXBStartEvent.class),
       @XmlElement(name = "event", type = JAXBIntermediateEvent.class),
@@ -61,7 +62,7 @@
     return name;
   }
 
-  @XmlAttribute(required = true)
+  @XmlAttribute
   public void setName(String name)
   {
     this.name = name;
@@ -83,6 +84,17 @@
     this.messages = messages;
   }
 
+  public List<JAXBInclude> getIncludes()
+  {
+    return includes;
+  }
+
+  @XmlElement(name = "include")
+  public void setIncludes(List<JAXBInclude> includes)
+  {
+    this.includes = includes;
+  }
+
   public JAXBMessage getMessageByName(String msgName)
   {
     for (JAXBMessage msg : messages)

Deleted: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -1,103 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.dialect.api10;
-
-// $Id$
-
-import java.io.StringWriter;
-
-import org.jboss.bpm.client.DialectHandler;
-import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.ProcessBuilder;
-import org.jboss.bpm.model.ProcessBuilderFactory;
-import org.jboss.bpm.model.ReceiveTask;
-import org.jboss.bpm.model.TaskBuilder;
-import org.jboss.bpm.model.Task.TaskType;
-import org.jboss.bpm.test.DefaultEngineTestCase;
-
-/**
- * Test process messages
- * 
- * @author thomas.diesler at jboss.com
- * @since 03-Jul-2008
- */
-public class ProcessMessageTest extends DefaultEngineTestCase
-{
-  public void testProcessMessage() throws Exception
-  {
-    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-    procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
-    procBuilder.addMessage("FooMsg");
-    Process expProc = procBuilder.getProcess();
-    
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-    
-    StringWriter strwr = new StringWriter();
-    dh.marshallProcess(expProc, strwr);
-    
-    Process wasProc = dh.createProcess(strwr.toString());
-    assertNotNull(wasProc.getMessageByName("FooMsg"));
-  }
-  
-  public void testReceiveTaskWithMessage() throws Exception
-  {
-    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-    procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
-    TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
-    taskBuilder.addMessage("FooMsg");
-    procBuilder.addSequenceFlow("End").addEndEvent("End");
-    Process expProc = procBuilder.getProcess();
-    
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-    
-    StringWriter strwr = new StringWriter();
-    dh.marshallProcess(expProc, strwr);
-    
-    Process wasProc = dh.createProcess(strwr.toString());
-    ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
-    assertEquals("FooMsg", recTask.getMessageRef().getName());
-  }
-  
-  public void testReceiveTaskWithMessageRef() throws Exception
-  {
-    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-    procBuilder.addProcess(getName()).addMessage("FooMsg");
-    procBuilder.addStartEvent().addSequenceFlow("A");
-    TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
-    taskBuilder.addMessageRef("FooMsg");
-    procBuilder.addSequenceFlow("End").addEndEvent("End");
-    Process expProc = procBuilder.getProcess();
-    
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
-    
-    StringWriter strwr = new StringWriter();
-    dh.marshallProcess(expProc, strwr);
-    
-    Process wasProc = dh.createProcess(strwr.toString());
-    ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
-    assertEquals("FooMsg", recTask.getMessageRef().getName());
-  }
-}

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/include/ProcessIncludeTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,50 @@
+/*
+ * 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.include;
+
+// $Id$
+
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessIncludeTest extends DefaultEngineTestCase
+{
+  public void testInclude() throws Exception
+  {
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    Process proc = pm.createProcess(getResourceURL("include/proc-api10.xml"));
+
+    ReceiveTask recTask = (ReceiveTask)proc.getFlowObjectByName("A");
+    Message msg = recTask.getMessageRef();
+    assertEquals("FooMsg", msg.getName());
+    assertEquals("bar", msg.getPropertyValue("foo"));
+  }
+}


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

Copied: jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java (from rev 1802, jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/ProcessMessageTest.java)
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/java/org/jboss/bpm/dialect/api10/message/ProcessMessageTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,114 @@
+/*
+ * 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.message;
+
+// $Id$
+
+import java.io.StringWriter;
+
+import org.jboss.bpm.client.DialectHandler;
+import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.dialect.api10.DialectHandlerImpl;
+import org.jboss.bpm.model.Message;
+import org.jboss.bpm.model.MessageBuilder;
+import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessBuilder;
+import org.jboss.bpm.model.ProcessBuilderFactory;
+import org.jboss.bpm.model.ReceiveTask;
+import org.jboss.bpm.model.TaskBuilder;
+import org.jboss.bpm.model.Task.TaskType;
+import org.jboss.bpm.test.DefaultEngineTestCase;
+
+/**
+ * Test process messages
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class ProcessMessageTest extends DefaultEngineTestCase
+{
+  public void testProcessMessage() throws Exception
+  {
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+    procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("End").addEndEvent("End");
+    MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
+    msgBuilder.addProperty("foo", "bar");
+    Process expProc = procBuilder.getProcess(true);
+    
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    
+    StringWriter strwr = new StringWriter();
+    dh.marshallProcess(expProc, strwr);
+    
+    Process wasProc = dh.createProcess(strwr.toString(), false);
+    Message msg = wasProc.getMessageByName("FooMsg");
+    assertEquals("bar", msg.getPropertyValue("foo"));
+  }
+  
+  public void testReceiveTaskWithMessage() throws Exception
+  {
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+    procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+    TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+    MessageBuilder msgBuilder = taskBuilder.addMessage("FooMsg");
+    msgBuilder.addProperty("foo", "bar");
+    procBuilder.addSequenceFlow("End").addEndEvent("End");
+    Process expProc = procBuilder.getProcess(true);
+    
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    
+    StringWriter strwr = new StringWriter();
+    dh.marshallProcess(expProc, strwr);
+    
+    Process wasProc = dh.createProcess(strwr.toString(), false);
+    ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+    Message msg = recTask.getMessageRef();
+    assertEquals("FooMsg", msg.getName());
+    assertEquals("bar", msg.getPropertyValue("foo"));
+  }
+  
+  public void testReceiveTaskWithMessageRef() throws Exception
+  {
+    ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
+    procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("A");
+    MessageBuilder msgBuilder = procBuilder.addMessage("FooMsg");
+    msgBuilder.addProperty("foo", "bar");
+    TaskBuilder taskBuilder = procBuilder.addTask("A", TaskType.Receive);
+    taskBuilder.addMessageRef("FooMsg");
+    procBuilder.addSequenceFlow("End").addEndEvent("End");
+    Process expProc = procBuilder.getProcess(true);
+    
+    ProcessManager pm = ProcessManager.locateProcessManager();
+    DialectHandler dh = pm.getDialectHandler(DialectHandlerImpl.NAMESPACE_URI);
+    
+    StringWriter strwr = new StringWriter();
+    dh.marshallProcess(expProc, strwr);
+    
+    Process wasProc = dh.createProcess(strwr.toString(), false);
+    ReceiveTask recTask = (ReceiveTask)wasProc.getFlowObjectByName("A");
+    Message msg = recTask.getMessageRef();
+    assertEquals("FooMsg", msg.getName());
+    assertEquals("bar", msg.getPropertyValue("foo"));
+  }
+}

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-api10.xml	2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,11 @@
+<ns2:process name="testReceiveTaskWithMessageRef" xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+  <include namespace="urn:bpm.jboss:pdl-0.1" location="include/proc-include-api10.xml"/>
+  <start>
+    <seqflow to="A" />
+  </start>
+  <task taskType="Receive" name="A">
+    <seqflow to="End" />
+    <msgref nameRef="FooMsg" />
+  </task>
+  <end name="End" />
+</ns2:process>
\ No newline at end of file


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

Added: jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml	                        (rev 0)
+++ jbossbpm/spec/trunk/modules/dialects/api10/src/test/resources/include/proc-include-api10.xml	2008-08-02 15:47:06 UTC (rev 1804)
@@ -0,0 +1,8 @@
+<ns2:process xmlns:ns2="urn:bpm.jboss:pdl-0.1">
+  <message name="FooMsg">
+    <property>
+      <name>foo</name>
+      <value>bar</value>
+    </property>
+  </message>
+</ns2:process>
\ No newline at end of file


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

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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -52,7 +52,7 @@
     return NAMESPACE_URI;
   }
 
-  public Process createProcess(String pXML)
+  public Process createProcess(String pXML, boolean isInclude)
   {
     try
     {
@@ -67,7 +67,7 @@
     }
   }
 
-  public Process createProcess(URL pURL) throws IOException
+  public Process createProcess(URL pURL, boolean isInclude) throws IOException
   {
     try
     {

Modified: jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/ProcessDefinitionAdapter.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -78,7 +78,7 @@
       }
     }
 
-    Process proc = builder.getProcess();
+    Process proc = builder.getProcess(true);
     return proc;
   }
 

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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -50,7 +50,7 @@
     return NAMESPACE_URI;
   }
 
-  public Process createProcess(String pXML)
+  public Process createProcess(String pXML, boolean isInclude)
   {
     try
     {
@@ -64,7 +64,7 @@
     }
   }
 
-  public Process createProcess(URL pURL) throws IOException
+  public Process createProcess(URL pURL, boolean isInclude) throws IOException
   {
     try
     {

Modified: jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/ProcessUnmarshaller.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -133,7 +133,7 @@
       adaptActivity(builder, stpActivity);
     }
 
-    return builder.getProcess();
+    return builder.getProcess(true);
   }
 
   private ProcessBuilder adaptDiagram(BpmnDiagram bpmnDiagram)

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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -52,7 +52,7 @@
     return NAMESPACE_URI;
   }
 
-  public Process createProcess(String pXML)
+  public Process createProcess(String pXML, boolean isInclude)
   {
     try
     {
@@ -67,7 +67,7 @@
     }
   }
 
-  public Process createProcess(URL pURL) throws IOException
+  public Process createProcess(URL pURL, boolean isInclude) throws IOException
   {
     try
     {

Modified: jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java
===================================================================
--- jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/WorkflowProcessAdapter.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -70,7 +70,7 @@
       }
     }
 
-    Process proc = builder.getProcess();
+    Process proc = builder.getProcess(true);
     return proc;
   }
 }

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -137,6 +137,12 @@
     return null;
   }
 
+  public String getPropertyValue(String name)
+  {
+    Property prop = getProperty(name);
+    return prop != null ? prop.getValue().getExpressionBody() : null;
+  }
+
   public List<Property> getProperties()
   {
     return Collections.unmodifiableList(props);

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -95,6 +95,17 @@
     // noting to do
   }
   
+  public void merge(FlowObjectImpl foIncl)
+  {
+    // Merge Handlers
+    if (executionHandler == null)
+      executionHandler = foIncl.getExecutionHandler();
+    if (flowHandler == null)
+      flowHandler = foIncl.getFlowHandler();
+    if (signalHandler == null)
+      signalHandler = foIncl.getSignalHandler();
+  }
+  
   @Override
   protected void initialize(Process proc)
   {

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/InputSetImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -64,6 +64,12 @@
     return null;
   }
 
+  public String getPropertyValue(String name)
+  {
+    Property prop = getProperty(name);
+    return prop != null ? prop.getValue().getExpressionBody() : null;
+  }
+
   public List<Property> getProperties()
   {
     return Collections.unmodifiableList(props);

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/MessageImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -102,6 +102,12 @@
     return null;
   }
 
+  public String getPropertyValue(String name)
+  {
+    Property prop = getProperty(name);
+    return prop != null ? prop.getValue().getExpressionBody() : null;
+  }
+  
   public List<Property> getProperties()
   {
     return Collections.unmodifiableList(props);

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/OutputSetImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -64,6 +64,12 @@
     return null;
   }
 
+  public String getPropertyValue(String name)
+  {
+    Property prop = getProperty(name);
+    return prop != null ? prop.getValue().getExpressionBody() : null;
+  }
+
   public List<Property> getProperties()
   {
     return Collections.unmodifiableList(props);

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -63,12 +63,20 @@
     return this;
   }
 
-  public Process getProcess()
+  public ProcessBuilder mergeProcess(Process procInclude)
   {
+    proc.merge(procInclude);
+    return this;
+  }
+
+  public Process getProcess(boolean initProcess)
+  {
     if (proc == null)
       throw new IllegalStateException("No process has been added");
     
-    proc.initialize();
+    if (initProcess)
+      proc.initialize();
+    
     return proc;
   }
 

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -47,6 +47,7 @@
 import org.jboss.bpm.model.Property;
 import org.jboss.bpm.model.StartEvent;
 import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.MutablePropertySupport;
 
 /**
  * A Process is any Activity performed within a company or organization.
@@ -55,7 +56,7 @@
  * @since 08-Jul-2008
  */
 @SuppressWarnings("serial")
-public class ProcessImpl extends SupportingElementImpl implements Process
+public class ProcessImpl extends SupportingElementImpl implements Process, MutablePropertySupport
 {
   // The required process name
   private String name;
@@ -63,6 +64,8 @@
   private List<FlowObject> flowObjects = new ArrayList<FlowObject>();
   // The list of associated messages
   private List<Message> messages = new ArrayList<Message>();
+  // The process properties
+  private List<Property> props = new ArrayList<Property>();
   // the status of the process
   private Status status = Status.None;
   // The possible exception that caused the process to abort
@@ -103,11 +106,42 @@
     throw new NotImplementedException();
   }
 
+  public Property getProperty(String name)
+  {
+    for (Property prop : props)
+    {
+      if (prop.getName().equals(name))
+        return prop;
+    }
+    return null;
+  }
+
+  public String getPropertyValue(String name)
+  {
+    Property prop = getProperty(name);
+    return prop != null ? prop.getValue().getExpressionBody() : null;
+  }
+
   public List<Property> getProperties()
   {
-    throw new NotImplementedException();
+    return Collections.unmodifiableList(props);
   }
 
+  public List<String> getPropertyNames()
+  {
+    List<String> names = new ArrayList<String>();
+    for (Property prop : props)
+    {
+      names.add(prop.getName());
+    }
+    return names;
+  }
+
+  public void addProperty(Property prop)
+  {
+    props.add(prop);
+  }
+
   public void addFlowObject(FlowObject flowObject)
   {
     flowObjects.add(flowObject);
@@ -219,7 +253,7 @@
     if (name == null)
       throw new IllegalArgumentException("Cannot find flow object with name: null");
 
-    FlowObject nfo = null;
+    FlowObject flowObject = null;
     for (FlowObject aux : flowObjects)
     {
       if (aux instanceof NameSupport)
@@ -227,12 +261,12 @@
         NameSupport auxnfo = (NameSupport)aux;
         if (name.equals(auxnfo.getName()))
         {
-          nfo = aux;
+          flowObject = aux;
           break;
         }
       }
     }
-    return nfo;
+    return flowObject;
   }
 
   public Status getStatus()
@@ -301,9 +335,32 @@
     return null;
   }
   
+  public void merge(Process procIncl)
+  {
+    for(Message msg : procIncl.getMessages())
+    {
+      addMessage(msg);
+    }
+    for(FlowObject foIncl : procIncl.getFlowObjects())
+    {
+      if (foIncl instanceof NameSupport)
+      {
+        String foName = ((NameSupport)foIncl).getName();
+        FlowObjectImpl fo = (FlowObjectImpl)getFlowObjectByName(foName);
+        if (fo != null)
+        {
+          fo.merge((FlowObjectImpl)foIncl);
+        }
+        else
+        {
+          addFlowObject(foIncl);
+        }
+      }
+    }
+  }
+  
   public String toString()
   {
     return "Process[" + getName() + "]";
   }
-
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java
===================================================================
--- jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/model/internal/ReceiveTaskImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -32,7 +32,6 @@
 import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.ProcessTimeoutException;
 import org.jboss.bpm.client.MessageListener;
-import org.jboss.bpm.model.Expression;
 import org.jboss.bpm.model.Message;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.Property;
@@ -146,8 +145,8 @@
     for (Property prop : messageRef.getProperties())
     {
       String key = prop.getName();
-      Expression value = msg.getProperty(key).getValue();
-      exContext.addAttachment(key, value.getExpressionBody());
+      String value = msg.getPropertyValue(key);
+      exContext.addAttachment(key, value);
     }
 
     // Call default execute

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -213,7 +213,7 @@
     addProperty("Price", null, true);
     
     // Get the process
-    Process proc = procBuilder.getProcess();
+    Process proc = procBuilder.getProcess(true);
     return proc;
   }
 }
\ No newline at end of file

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AvailabilityHandler.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -42,7 +42,7 @@
   public void execute(Token token, InputSet inputSet, OutputSet outputSet)
   {
     PropertyBuilder builder = PropertyBuilderFactory.newInstance().newPropertyBuilder();
-    Integer seats = Integer.valueOf(inputSet.getProperty("Seats").getValue().getExpressionBody());
+    Integer seats = Integer.valueOf(inputSet.getPropertyValue("Seats"));
     outputSet.addProperty(builder.newProperty("isAvailable", new Boolean(seats < 10).toString()));
     outputSet.addProperty(builder.newProperty("Price", new Integer(seats * 111).toString()));
   }

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/ValidationHandler.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -41,11 +41,11 @@
 {
   public void execute(Token token, InputSet inputSet, OutputSet outputSet)
   {
-    String name = inputSet.getProperty("Name").getValue().getExpressionBody();
-    String from = inputSet.getProperty("From").getValue().getExpressionBody();
-    String to = inputSet.getProperty("To").getValue().getExpressionBody();
-    String date = inputSet.getProperty("Date").getValue().getExpressionBody();
-    String seats = inputSet.getProperty("Seats").getValue().getExpressionBody();
+    String name = inputSet.getPropertyValue("Name");
+    String from = inputSet.getPropertyValue("From");
+    String to = inputSet.getPropertyValue("To");
+    String date = inputSet.getPropertyValue("Date");
+    String seats = inputSet.getPropertyValue("Seats");
     
     boolean isValid = name != null && name.length() > 0;
     isValid &= from != null && from.length() > 0;

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-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -106,43 +106,43 @@
       if (msgName.equals("OfferMsg"))
       {
         OfferMessage gwtMsg = new OfferMessage();
-        gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
-        gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
-        gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
-        gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
-        gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
-        gwtMsg.price = bpmMsg.getProperty("Price").getValue().getExpressionBody();
+        gwtMsg.name = bpmMsg.getPropertyValue("Name");
+        gwtMsg.from = bpmMsg.getPropertyValue("From");
+        gwtMsg.to = bpmMsg.getPropertyValue("To");
+        gwtMsg.date = bpmMsg.getPropertyValue("Date");
+        gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+        gwtMsg.price = bpmMsg.getPropertyValue("Price");
         returnMsg = gwtMsg;
       }
       else if (msgName.equals("InvalidDataMsg"))
       {
         InvalidDataMessage gwtMsg = new InvalidDataMessage();
-        gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
-        gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
-        gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
-        gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
-        gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
+        gwtMsg.name = bpmMsg.getPropertyValue("Name");
+        gwtMsg.from = bpmMsg.getPropertyValue("From");
+        gwtMsg.to = bpmMsg.getPropertyValue("To");
+        gwtMsg.date = bpmMsg.getPropertyValue("Date");
+        gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
         returnMsg = gwtMsg;
       }
       else if (msgName.equals("NotAvailableMsg"))
       {
         NotAvailableMessage gwtMsg = new NotAvailableMessage();
-        gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
-        gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
-        gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
-        gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
-        gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
+        gwtMsg.name = bpmMsg.getPropertyValue("Name");
+        gwtMsg.from = bpmMsg.getPropertyValue("From");
+        gwtMsg.to = bpmMsg.getPropertyValue("To");
+        gwtMsg.date = bpmMsg.getPropertyValue("Date");
+        gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
         returnMsg = gwtMsg;
       }
       else if (msgName.equals("ConfirmMsg"))
       {
         ConfirmMessage gwtMsg = new ConfirmMessage();
-        gwtMsg.name = bpmMsg.getProperty("Name").getValue().getExpressionBody();
-        gwtMsg.from = bpmMsg.getProperty("From").getValue().getExpressionBody();
-        gwtMsg.to = bpmMsg.getProperty("To").getValue().getExpressionBody();
-        gwtMsg.date = bpmMsg.getProperty("Date").getValue().getExpressionBody();
-        gwtMsg.seats = bpmMsg.getProperty("Seats").getValue().getExpressionBody();
-        gwtMsg.price = bpmMsg.getProperty("Price").getValue().getExpressionBody();
+        gwtMsg.name = bpmMsg.getPropertyValue("Name");
+        gwtMsg.from = bpmMsg.getPropertyValue("From");
+        gwtMsg.to = bpmMsg.getPropertyValue("To");
+        gwtMsg.date = bpmMsg.getPropertyValue("Date");
+        gwtMsg.seats = bpmMsg.getPropertyValue("Seats");
+        gwtMsg.price = bpmMsg.getPropertyValue("Price");
         returnMsg = gwtMsg;
       }
       else

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-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -92,7 +92,7 @@
 
     Message confirmMessage = msgListener.getConfirmMessage();
     assertNotNull("Expected confirm message", confirmMessage);
-    String price = confirmMessage.getProperty("Price").getValue().getExpressionBody();
+    String price = confirmMessage.getPropertyValue("Price");
     assertEquals("222", price);
   }
 
@@ -111,7 +111,7 @@
 
     Message confirmMessage = msgListener.getConfirmMessage();
     assertNotNull("Expected confirm message", confirmMessage);
-    String price = confirmMessage.getProperty("Price").getValue().getExpressionBody();
+    String price = confirmMessage.getPropertyValue("Price");
     assertEquals("222", price);
   }
 

Modified: jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/ProcessMarshallerTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -79,7 +79,7 @@
     DialectHandler dialect = pm.getDialectHandler("urn:bpm.jboss:pdl-0.1");
     
     URL expURL = getResourceURL("samples/airticket/airticket-api10.xml");
-    Process proc = dialect.createProcess(expURL);
+    Process proc = dialect.createProcess(expURL, false);
     
     StringWriter strwr = new StringWriter();
     dialect.marshallProcess(proc, strwr);

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessIntegrityTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -48,7 +48,7 @@
     // Create a Process through the ProcessBuilder
     ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").
-    addSequenceFlow("end").addEndEvent("end").getProcess();
+    addSequenceFlow("end").addEndEvent("end").getProcess(true);
     assertEquals("AnonymousProcess#0", proc.getName());
 
     StartEvent start = proc.getStartEvent();
@@ -68,7 +68,7 @@
     {
       // Create a Process through the ProcessBuilder
       ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
-      builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+      builder.addProcess(null).addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
       fail("InvalidProcessException expected");
     }
     catch (InvalidProcessException ex)
@@ -84,7 +84,7 @@
       // Create a Process through the ProcessBuilder
       ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
       builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
-      addTask("end").getProcess();
+      addTask("end").getProcess(true);
       fail("InvalidProcessException expected");
     }
     catch (InvalidProcessException ex)
@@ -100,7 +100,7 @@
       // Create a Process through the ProcessBuilder
       ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
       builder.addProcess(null).addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").
-      addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+      addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
       fail("InvalidProcessException expected");
     }
     catch (InvalidProcessException ex)

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/process/ProcessStartTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -66,7 +66,7 @@
   {
     ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
-    addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+    addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
     return proc;
   }
 }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/processmanager/ProcessRegistryTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -76,7 +76,7 @@
   {
     ProcessBuilder builder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = builder.addProcess(getName()).addStartEvent().addSequenceFlow("taskA").
-    addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+    addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess(true);
     return proc;
   }
 }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/cts/task/TaskMessageTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -44,7 +44,7 @@
     procBuilder.addTask("A", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
     try
     {
-      procBuilder.getProcess();
+      procBuilder.getProcess(true);
       fail("A Message for the MessageRef attribute MUST be entered");
     }
     catch (InvalidProcessException ex)
@@ -60,7 +60,7 @@
     procBuilder.addTask("A", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
     try
     {
-      procBuilder.getProcess();
+      procBuilder.getProcess(true);
       fail("A Message for the MessageRef attribute MUST be entered");
     }
     catch (InvalidProcessException ex)

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/parallelsplit/ParallelSplitTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
     // Create a Process through the ProcessBuilder
     ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("gateway").addGateway("gateway", GatewayType.Parallel).
-    addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess();
+    addSequenceFlow("endA").addSequenceFlow("endB").addEndEvent("endA").addEndEvent("endB").getProcess(true);
     
     runProcess(proc);
   }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/sequence/BasicSequenceTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
     // Create a Process through the ProcessBuilder
     ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
-    addSequenceFlow("end").addEndEvent("end").getProcess();
+    addSequenceFlow("end").addEndEvent("end").getProcess(true);
 
     runProcess(proc);
   }

Modified: jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java
===================================================================
--- jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java	2008-08-02 13:11:12 UTC (rev 1803)
+++ jbossbpm/spec/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/BasicTaskTest.java	2008-08-02 15:47:06 UTC (rev 1804)
@@ -73,7 +73,7 @@
     // Create a Process through the ProcessBuilder
     ProcessBuilder procBuilder = ProcessBuilderFactory.newInstance().newProcessBuilder();
     Process proc = procBuilder.addProcess(getName()).addStartEvent().addSequenceFlow("stateA").addTask("stateA").
-    addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess();
+    addExecutionHandler(TaskA.class).addSequenceFlow("end").addEndEvent("end").getProcess(true);
 
     runProcess(proc);
   }




More information about the jbpm-commits mailing list