Only in jpdl-3.2.3.GA: bamconsole
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/.classpath jpdl-3.2.2-SOA-4.2.0.CP03/bpel/.classpath
--- jpdl-3.2.3.GA/bpel/.classpath	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/.classpath	2009-02-06 09:17:29.000000000 +0100
@@ -3,8 +3,10 @@
 	<classpathentry kind="src" output="console/target/classes" path="console/src/main/java"/>
 	<classpathentry kind="src" path="library/src/main/java"/>
 	<classpathentry kind="src" output="library/target/test.classes" path="library/src/test/java"/>
+	<classpathentry kind="src" output="examples/common/target/classes" path="examples/common/src/main/java"/>
 	<classpathentry kind="src" output="tools/target/classes" path="tools/src/main/java"/>
 	<classpathentry kind="src" output="tools/target/test.classes" path="tools/src/test/java"/>
+	<classpathentry kind="src" output="enterprise/target/classes" path="enterprise/src/main/java"/>
 	<classpathentry exported="true" kind="lib" path="library/src/main/config"/>
 	<classpathentry exported="true" kind="lib" path="library/src/test/config"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
@@ -14,8 +16,6 @@
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/beanshell/1.3.0/lib/bsh.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/cglib/2.1.3/lib/cglib.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-collections/3.1/lib/commons-collections.jar"/>
-	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-fileupload/1.1.1/lib/commons-fileupload.jar"/>
-	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-httpclient/3.0.1/lib/commons-httpclient.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-lang/2.1/lib/commons-lang.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-logging/1.0.4/lib/commons-logging.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/dom4j/1.6/lib/dom4j.jar"/>
@@ -23,10 +23,9 @@
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/hsqldb/1.8.0.2/lib/hsqldb.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/jaxen/1.1-brew/lib/jaxen.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/sun-jaxrpc/1.1/lib/jaxrpc-api.jar"/>
-	<classpathentry exported="true" kind="var" path="JBPM_REPO/jbossas/core-libs/4.0.5.GA/lib/jboss-j2ee.jar"/>
-	<classpathentry exported="true" kind="var" path="JBPM_REPO/jbossws14/1.0.3.SP1/lib/jboss-saaj.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/jbpm/jpdl/3.2.3/lib/jbpm-jpdl.jar"/>
-	<classpathentry exported="true" kind="var" path="JBPM_REPO/sun-servlet/2.4/lib/jsp-api.jar"/>
+	<classpathentry exported="true" kind="var" path="JBPM_REPO/jbossas/core-libs/4.0.4.GA/lib/jboss-j2ee.jar"/>
+	<classpathentry exported="true" kind="var" path="JBPM_REPO/jbossas/core-libs/4.0.4.GA/lib/jboss-saaj.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbpm/jpdl/3.2.2/lib/jbpm-jpdl.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/junit/3.8.1/lib/junit.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/apache-log4j/1.2.14/lib/log4j.jar"/>
 	<classpathentry exported="true" kind="var" path="JBPM_REPO/sun-servlet/2.4/lib/servlet-api.jar"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/console/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/build.xml
--- jpdl-3.2.3.GA/bpel/console/build.xml	2009-02-06 09:12:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,39 +1,41 @@
 <project name="jbpm.bpel.console" basedir="." default="install.war">
 
+  <!-- project specific properties -->
   <property name="jbpm.root" value="../.." />
 
+  <!-- properties files -->
   <property file="${user.home}/jbpm/build.properties" />
   <property file="${jbpm.root}/build/profiles/${profile}.profile.properties" />
   <property file="${jbpm.root}/build/build.properties" />
 
+  <!-- import base project build file -->
   <import file="${jbpm.root}/build/base.project.build.xml" />
 
+  <!-- project specific targets -->
   <target name="compile.dependencies" depends="define.libs.classpath">
-    <ant antfile="${jbpm.root}/bpel/tools/build.xml" target="install.jar" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.jar" inheritall="no" />
     <path id="compile.classpath">
       <path refid="libs.classpath" />
-      <pathelement location="${lib.commons.fileupload.local}" />
-      <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
+      <pathelement location="${lib.jbpm.bpel.jar.local}" />
     </path>
   </target>
 
   <target name="compile.test.dependencies" depends="define.libs.classpath">
     <path id="compile.test.classpath">
       <path refid="libs.classpath" />
-      <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${lib.jbpm.bpel.console.local}" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
+      <pathelement location="${lib.jbpm.bpel.jar.local}" />
+      <pathelement location="${lib.jbpm.bpel.war.local}" />
     </path>
   </target>
 
   <target name="test.dependencies" depends="define.libs.classpath">
     <path id="test.classpath">
       <path refid="libs.classpath" />
-      <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${lib.jbpm.bpel.console.local}" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
+      <pathelement location="${lib.jbpm.bpel.jar.local}" />
+      <pathelement location="${lib.jbpm.bpel.war.local}" />
       <pathelement location="target/test.classes" />
       <pathelement location="src/test/config" />
     </path>
@@ -47,10 +49,6 @@
       <attribute name="Implementation-URL" value="http://www.jboss.org/products/jbpm" />
       <attribute name="Implementation-Vendor" value="JBoss Inc." />
       <attribute name="Implementation-Vendor-Id" value="http://www.jboss.org/" />
-      <attribute name="Class-Path" value="lib/${lib.commons.lang.name} lib/${lib.jaxen.name}
-lib/${lib.jbpm.jpdl.jar.file} lib/${lib.jbpm.identity.jar.file} 
-lib/${lib.jbpm.bpel.jar.file} lib/${lib.jbpm.bpel.config.file} 
-lib/${lib.jbpm.bpel.container.name}" />
     </manifest>
   </target>
 
@@ -63,25 +61,17 @@
   <target name="package.war"
           depends="compile, create.manifest"
           description="creates the jbpm bpel console, a web application">
-    <war destfile="${lib.jbpm.bpel.console.target}"
+    <war destfile="${lib.jbpm.bpel.war.target}"
          webxml="src/main/resources/web/web.xml"
          manifest="target/META-INF/MANIFEST.MF">
       <classes dir="target/classes" />
-      <lib file="${lib.commons.fileupload.local}" />
-      <lib file="${lib.jakarta.io.local}" />
-      <lib dir="${jwsdp.home}/jaxrpc/lib">
-        <include name="jaxrpc-impl.jar" />
-        <include name="jaxrpc-spi.jar" />
-      </lib>
-      <lib file="${lib.jbpm.bpel.tools.jar.local}" />
-      <fileset dir="src/main/resources" excludes="web/**" />
-      <webinf dir="src/main/resources/web" excludes="web.xml" />
     </war>
   </target>
 
   <target name="install.war" depends="package.war">
     <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
-    <copy file="${lib.jbpm.bpel.console.target}" todir="${local.repository}/${lib.jbpm.bpel.dir}" />
+    <copy file="${lib.jbpm.bpel.war.target}"
+          todir="${local.repository}/${lib.jbpm.bpel.dir}" />
   </target>
 
 </project>
Only in jpdl-3.2.3.GA/bpel/console/src/main/java/org/jbpm/bpel/web: AdministrationServlet.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/src/main/java/org/jbpm/bpel/web: DBSchemaServlet.java
Only in jpdl-3.2.3.GA/bpel/console/src/main/java/org/jbpm/bpel/web: DeploymentServlet.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/src/main/java/org/jbpm/bpel/web: ProcessDeployServlet.java
Only in jpdl-3.2.3.GA/bpel/console/src/main/java/org/jbpm/bpel/web: RegistrationServlet.java
Only in jpdl-3.2.3.GA/bpel/console/src/main/java/org/jbpm/bpel/web: WebConstants.java
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: css
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: database.jsp
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: header.jspf
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: images
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: index.jsp
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: partners.jsp
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: processes.jsp
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: process.jsp
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources: trailer.jspf
Only in jpdl-3.2.3.GA/bpel/console/src/main/resources/web: jboss-web.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/console/src/main/resources/web/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/src/main/resources/web/web.xml
--- jpdl-3.2.3.GA/bpel/console/src/main/resources/web/web.xml	2009-02-06 09:12:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/console/src/main/resources/web/web.xml	2009-02-06 09:17:20.000000000 +0100
@@ -3,92 +3,24 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
+  <!-- Process Definition Deployer -->
   <servlet>
-    <description>Process Deployment</description>
-    <servlet-name>deploymentServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.web.DeploymentServlet</servlet-class>
+    <servlet-name>processDeployServlet</servlet-name>
+    <servlet-class>org.jbpm.bpel.web.ProcessDeployServlet</servlet-class>
   </servlet>
   <servlet-mapping>
-    <servlet-name>deploymentServlet</servlet-name>
-    <url-pattern>/deployment</url-pattern>
+    <servlet-name>processDeployServlet</servlet-name>
+    <url-pattern>/deploy</url-pattern>
   </servlet-mapping>
 
+  <!-- Database Schema Manager -->
   <servlet>
-    <description>Database Administration</description>
-    <servlet-name>administrationServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.web.AdministrationServlet</servlet-class>
+    <servlet-name>dbSchemaServlet</servlet-name>
+    <servlet-class>org.jbpm.bpel.web.DBSchemaServlet</servlet-class>
   </servlet>
   <servlet-mapping>
-    <servlet-name>administrationServlet</servlet-name>
-    <url-pattern>/administration</url-pattern>
+    <servlet-name>dbSchemaServlet</servlet-name>
+    <url-pattern>/dbschema</url-pattern>
   </servlet-mapping>
 
-  <servlet>
-    <description>Partner Service Registration</description>
-    <servlet-name>registrationServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.web.RegistrationServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>registrationServlet</servlet-name>
-    <url-pattern>/registration</url-pattern>
-  </servlet-mapping>
-
-  <resource-ref>
-    <description>
-      Logical name of the data source that provides connections to the persistence service.
-      Must match the hibernate.connection.datasource property in the Hibernate 
-      configuration file.
-    </description>
-    <res-ref-name>jdbc/JbpmDataSource</res-ref-name>
-    <res-type>javax.sql.DataSource</res-type>
-    <res-auth>Container</res-auth>
-  </resource-ref>
-
-  <ejb-local-ref>
-    <description>
-      Link to the local entity bean that implements the scheduler service. Required for
-      processes that contain timers.
-    </description>
-    <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name>
-    <ejb-ref-type>Entity</ejb-ref-type>
-    <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home>
-    <local>org.jbpm.ejb.LocalTimerEntity</local>
-    <ejb-link>TimerEntityBean</ejb-link>
-  </ejb-local-ref>
-
-  <resource-ref>
-    <description>
-      Logical name of the factory that provides JMS connections to the message and
-      integration services. Required for jPDL processes that contain asynchronous 
-      continuations and for BPEL processes that receive messages.
-    </description>
-    <res-ref-name>jms/JbpmConnectionFactory</res-ref-name>
-    <res-type>javax.jms.ConnectionFactory</res-type>
-    <res-auth>Container</res-auth>
-  </resource-ref>
-
-  <message-destination-ref>
-    <description>
-      The message service sends job messages to the queue referenced here. To ensure 
-      this is the same queue from which the JobListenerBean receives messages, the 
-      message-destination-link element points to a common logical destination, JobQueue.
-    </description>
-    <message-destination-ref-name>jms/JobQueue</message-destination-ref-name>
-    <message-destination-type>javax.jms.Queue</message-destination-type>
-    <message-destination-usage>Produces</message-destination-usage>
-    <message-destination-link>JobQueue</message-destination-link>
-  </message-destination-ref>
-
-  <message-destination-ref>
-    <message-destination-ref-name>jms/JbpmRequestQueue</message-destination-ref-name>
-    <message-destination-type>javax.jms.Queue</message-destination-type>
-    <message-destination-usage>ConsumesProduces</message-destination-usage>
-  </message-destination-ref>
-
-  <message-destination-ref>
-    <message-destination-ref-name>jms/JbpmResponseQueue</message-destination-ref-name>
-    <message-destination-type>javax.jms.Queue</message-destination-type>
-    <message-destination-usage>ConsumesProduces</message-destination-usage>
-  </message-destination-ref>
-
 </web-app>
\ No newline at end of file
Only in jpdl-3.2.3.GA/bpel: container
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/dist/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/build.xml
--- jpdl-3.2.3.GA/bpel/dist/build.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,187 +1,153 @@
 <project name="jbpm.bpel.dist" basedir="." default="package">
 
   <!-- project specific properties -->
+  <property name="artifact.name" value="jbpm-bpel.zip" />
+  <property name="module.name" value="bpel" />
   <property name="jbpm.root" value="../.." />
+  <property file="../version.properties" />
 
   <!-- properties files -->
   <property file="${user.home}/jbpm/build.properties" />
   <property file="${jbpm.root}/build/profiles/${profile}.profile.properties" />
   <property file="${jbpm.root}/build/build.properties" />
 
-  <!-- base project build file -->
+  <!-- import base project build file -->
   <import file="${jbpm.root}/build/base.project.build.xml" />
 
-  <property name="licenses.dir" value="licenses" />
+  <target name="package" depends="clean">
 
-  <property name="license.cpl.name" value="cpl-1.0.txt" />
-  <property name="license.cpl.path" value="${licenses.dir}/${license.cpl.name}" />
-  <property name="license.cpl.local" value="${local.repository}/${license.cpl.path}" />
-  <property name="license.cpl.remote" value="${remote.repository}/${license.cpl.path}" />
-
-  <property name="license.eula.name" value="jbossorg-eula.txt" />
-  <property name="license.eula.path" value="${licenses.dir}/${license.eula.name}" />
-  <property name="license.eula.local" value="${local.repository}/${license.eula.path}" />
-  <property name="license.eula.remote" value="${remote.repository}/${license.eula.path}" />
-
-  <target name="get.licenses" unless="licenses.uptodate">
-    <get dest="${license.cpl.local}" src="${license.cpl.remote}" usetimestamp="yes" />
-    <get dest="${license.eula.local}" src="${license.eula.remote}" usetimestamp="yes" />
-  </target>
-
-  <target name="check.licenses" description="gets the license documents">
-    <condition property="licenses.uptodate">
-      <and>
-        <available file="${license.cpl.local}" />
-        <available file="${license.eula.local}" />
-      </and>
-    </condition>
-    <antcall target="get.licenses" />
-  </target>
-
-  <target name="package" depends="check.licenses, clean">
-
-    <!-- build binaries -->
-    <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" target="create.config" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/console/build.xml" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/container/build.xml" inheritall="no" />
-
-    <!-- package sources -->
-    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.src" inheritall="no" />
+    <!-- wipe out binaries -->
+    <ant antfile="${jbpm.root}/jpdl/jar/build.xml"
+         target="clean"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/identity/build.xml"
+         target="clean"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/jboss/jmx/build.xml"
+         target="clean"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/bpel/library/build.xml"
+         target="clean"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/bpel/console/build.xml"
+         target="clean"
+         inheritall="false" />
+
+    <!-- rebuild binaries -->
+    <antcall target="jpdl.jar" />
+    <antcall target="identity.jar" />
+    <ant antfile="${jbpm.root}/jboss/jmx/build.xml"
+         target="package.jar"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/bpel/library/build.xml"
+         target="package.jar"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/bpel/console/build.xml"
+         target="package"
+         inheritall="false" />
 
     <!-- generate documentation -->
-    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.javadoc" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/userguide/build.xml" inheritall="no" />
-
-    <!-- BUILDING THE RUNTIME IN target/runtime -->
+    <ant antfile="${jbpm.root}/bpel/library/build.xml"
+         target="package.javadoc"
+         inheritall="false" />
+    <ant antfile="${jbpm.root}/bpel/userguide/build.xml"
+         target="package"
+         inheritall="false" />
+
+    <!-- clean -->
+    <ant antfile="${jbpm.root}/bpel/examples/build.xml"
+         target="clean"
+         inheritall="false" />
+    <delete dir="target/jbpm-bpel" />
 
-    <delete dir="target/runtime" />
+    <!-- BUILDING THE RUNTIME IN target/jbpm-bpel -->
 
-    <!-- deployables -->
-    <copy todir="target/runtime/deploy">
-      <fileset file="${lib.jbpm.bpel.console.local}" />
-      <fileset file="${lib.jbpm.bpel.enterprise.local}" />
-    </copy>
-    <copy todir="target/runtime/deploy/META-INF">
-      <fileset file="${jbpm.root}/bpel/enterprise/src/main/resources/ear/application.xml" />
-    </copy>
-
-    <!-- product libraries -->
-    <copy todir="target/runtime/lib">
-      <fileset file="${lib.jbpm.jpdl.jar.local}" />
-      <fileset file="${lib.jbpm.identity.jar.local}" />
-      <fileset file="${lib.jbpm.bpel.jar.local}" />
-      <fileset file="${lib.jbpm.bpel.tools.jar.local}" />
-      <fileset file="${lib.jbpm.bpel.jboss403.jar.local}" />
-      <fileset file="${lib.jbpm.bpel.jboss405.jar.local}" />
-      <fileset file="${lib.jbpm.bpel.jboss420.jar.local}" />
-    </copy>
-
-    <!-- thirdparty libraries -->
-    <copy todir="target/runtime/lib">
-      <fileset file="${lib.ant.local}" />
-      <fileset file="${lib.antlr.local}" />
-      <fileset file="${lib.asm.local}" />
-      <fileset file="${lib.bsh.local}" />
-      <fileset file="${lib.cglib.local}" />
-      <fileset file="${lib.commons.codec.local}" />
-      <fileset file="${lib.commons.collections.local}" />
-      <fileset file="${lib.commons.fileupload.local}" />
-      <fileset file="${lib.commons.httpclient.local}" />
-      <fileset file="${lib.commons.lang.local}" />
-      <fileset file="${lib.commons.logging.local}" />
-      <fileset file="${lib.dom4j.local}" />
-      <fileset file="${lib.hibernate.local}" />
-      <fileset file="${lib.hsqldb.local}" />
-      <fileset file="${lib.jaxen.local}" />
-      <fileset file="${lib.jaxrpc.api.local}" />
-      <fileset file="${lib.jboss.j2ee.local}" />
-      <fileset file="${lib.jboss.saaj.local}" />
-      <fileset file="${lib.servlet-jsp.local}" />
-      <fileset file="${lib.junit.local}" />
-      <fileset file="${lib.log4j.local}" />
-      <fileset file="${lib.servlet.local}" />
-      <fileset file="${lib.wsdl4j.local}" />
-      <fileset file="${lib.xercesimpl.local}" />
-      <fileset file="${lib.xml.apis.local}" />
-    </copy>
-
-    <!-- configuration files -->
-    <copy todir="target/runtime/config">
-      <fileset dir="${jbpm.root}/bpel/enterprise/target/config" excludes="META-INF/**" />
-    </copy>
-    <copy todir="target/runtime/config">
-      <fileset dir="../examples/common/src/main/config" />
-    </copy>
-
-    <!-- examples -->
-    <copy todir="target/runtime/examples">
-      <fileset dir="../examples" />
-    </copy>
-    <delete dir="target/runtime/examples/common/src" />
-    <macrodef name="dev2dist">
-      <attribute name="buildfile" />
-      <sequential>
-        <replace file="@{buildfile}">
-          <replacetoken><![CDATA[Development section (begin) -->]]></replacetoken>
-          <replacevalue><![CDATA[Development section (begin) ===]]></replacevalue>
-        </replace>
-        <replace file="@{buildfile}">
-          <replacetoken><![CDATA[<!-- Development section (end)]]></replacetoken>
-          <replacevalue><![CDATA[==== Development section (end)]]></replacevalue>
-        </replace>
-        <replace file="@{buildfile}">
-          <replacetoken><![CDATA[Distribution section (begin) ===]]></replacetoken>
-          <replacevalue><![CDATA[Distribution section (begin) -->]]></replacevalue>
-        </replace>
-        <replace file="@{buildfile}">
-          <replacetoken><![CDATA[==== Distribution section (end)]]></replacetoken>
-          <replacevalue><![CDATA[<!-- Distribution section (end)]]></replacevalue>
-        </replace>
-      </sequential>
-    </macrodef>
-    <dev2dist buildfile="target/runtime/examples/build.xml" />
-    <dev2dist buildfile="target/runtime/examples/common/mapping-build.xml" />
-    <dev2dist buildfile="target/runtime/examples/common/bpel-build.xml" />
-
-    <!-- sources -->
-    <mkdir dir="target/runtime/src" />
-    <unzip dest="target/runtime/src" src="${lib.jbpm.bpel.src.local}" />
-
-    <!-- user guide -->
-    <mkdir dir="target/runtime/doc/userguide" />
-    <unzip dest="target/runtime/doc/userguide" src="${lib.jbpm.bpel.userguide.local}" />
-
-    <!-- api documentation -->
-    <mkdir dir="target/runtime/doc/api" />
-    <unzip dest="target/runtime/doc/api" src="${lib.jbpm.bpel.javadoc.local}" />
-    
-    <!-- xml schemas -->
-    <copy todir="target/runtime/doc/schema" flatten="yes">
-    	<fileset dir="target/runtime/src" includes="**/*.xsd" />
-    </copy>
-    
-    <!-- images and style sheets -->
-    <copy todir="target/runtime/doc/userguide/html">
-      <fileset dir="${jbpm.root}/bpel/console/src/main/resources">
-        <include name="css/**" />
-        <include name="images/**" />
+    <mkdir dir="target/jbpm-bpel" />
+    <copy todir="target/jbpm-bpel">
+      <fileset dir="src/main/resources/runtime" />
+    </copy>
+    <copy file="${local.repository}/licenses/cpl-1.0.txt"
+          tofile="target/jbpm-bpel/license.txt" />
+    <copy todir="target/jbpm-bpel" file="../library/target/jbpm-bpel.jar" />
+    <copy todir="target/jbpm-bpel" file="../../jpdl/jar/target/jbpm-jpdl.jar" />
+    <copy todir="target/jbpm-bpel"
+          file="../../identity/target/jbpm-identity.jar" />
+    <copy todir="target/jbpm-bpel" file="../../jboss/jmx/target/jbpm-jmx.jar" />
+
+    <!-- adding the examples -->
+    <copy todir="target/jbpm-bpel">
+      <fileset dir=".." includes="examples/**" />
+    </copy>
+
+    <!-- adding the sources -->
+    <mkdir dir="target/jbpm-bpel/src" />
+    <copy todir="target/jbpm-bpel/src">
+      <fileset dir="../library/src/main/java" />
+    </copy>
+
+    <!-- adding the configuration files -->
+    <mkdir dir="target/jbpm-bpel/config" />
+    <copy todir="target/jbpm-bpel/config">
+      <fileset dir="../library/src/main/config" />
+    </copy>
+
+    <!-- adding the userguide -->
+    <mkdir dir="target/jbpm-bpel/doc/userguide" />
+    <copy todir="target/jbpm-bpel/doc/userguide">
+      <fileset dir="../userguide/target/userguide/en" />
+    </copy>
+
+    <!-- adding the api documentation -->
+    <mkdir dir="target/jbpm-bpel/doc/api" />
+    <copy todir="target/jbpm-bpel/doc/api">
+      <fileset dir="../library/target/site/apidocs" />
+    </copy>
+
+    <!-- adding the third party libs -->
+    <mkdir dir="target/jbpm-bpel/lib" />
+    <copy todir="target/jbpm-bpel/lib">
+      <fileset dir="${local.repository}">
+        <include name="${lib.ant.path}" />
+        <include name="${lib.antlr.path}" />
+        <include name="${lib.asm.path}" />
+        <include name="${lib.bsh.path}" />
+        <include name="${lib.cglib.path}" />
+        <include name="${lib.commons.collections.path}" />
+        <include name="${lib.commons.lang.path}" />
+        <include name="${lib.commons.logging.path}" />
+        <include name="${lib.dom4j.path}" />
+        <include name="${lib.ehcache.path}" />
+        <include name="${lib.hibernate.path}" />
+        <include name="${lib.hsqldb.path}" />
+        <include name="${lib.jaxen.path}" />
+        <include name="${lib.jboss.j2ee.path}" />
+        <include name="${lib.jboss.jaxrpc.path}" />
+        <include name="${lib.jboss.saaj.path}" />
+        <include name="${lib.junit.path}" />
+        <include name="${lib.log4j.path}" />
+        <include name="${lib.servlet.path}" />
+        <include name="${lib.wsdl4j.path}" />
       </fileset>
     </copy>
 
-    <!-- license agreement -->
-    <copy tofile="target/runtime/license.txt" file="${license.cpl.local}" />
-    <copy tofile="target/runtime/jboss.eula.txt" file="${license.eula.local}" />
-
-    <!-- distribution resources -->
-    <copy todir="target/runtime">
-      <fileset dir="src/main/resources/runtime" />
+    <!-- adding the deployables -->
+    <copy todir="target/jbpm-bpel/deploy">
+      <fileset dir="${jbpm.root}/bpel/console/target">
+        <include name="jbpm-bpel.war" />
+      </fileset>
+      <fileset dir="${jbpm.root}/bpel/service/src/main">
+        <include name="resources/**" />
+      </fileset>
     </copy>
 
+    <!-- adding jboss eula -->
+    <copy tofile="target/jbpm-bpel/jboss-eula.txt"
+          file="${local.repository}/licenses/JBossORG-EULA.txt" />
+
     <!-- ZIPPING THE RUNTIME -->
 
-    <zip destfile="target/jbpm-bpel-${lib.jbpm.bpel.version}.zip">
-      <zipfileset dir="target/runtime" prefix="jbpm-bpel-${lib.jbpm.bpel.version}" />
+    <zip destfile="target/jbpm-bpel.zip">
+      <zipfileset dir="target/jbpm-bpel" prefix="jbpm-bpel-${module.version}" />
     </zip>
 
   </target>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/change.log.html jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/change.log.html
--- jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/change.log.html	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/change.log.html	2009-02-06 09:17:20.000000000 +0100
@@ -1,145 +1,95 @@
 <html>
 
 <head>
-<title>JBoss jBPM BPEL - Change Log</title>
-<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/common.css" />
-<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/screen.css" />
+<title>Change Log - JBoss jBPM BPEL</title>
+<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/jbpm.css" />
 </head>
 
 <!-- HEADER -->
 <body>
-<div class="brand_DOTCOM" id="container">
-
-<div id="TopLogo"><a href="http://www.jboss.com"><img
-  src="doc/userguide/html/images/jboss_logo.gif" alt="JBoss, a division of Red Hat"
-  width="249" height="78" border="0" /></a></div>
-
-<div id="TopMenu">
-<table cellpadding="0" cellspacing="0">
-  <tr>
-    <td><a href="http://jbpm.org">jbpm.org</a></td>
-    <td><a href="http://jboss.org">jboss.org</a></td>
-    <td><a href="http://jboss.com">jboss.com</a></td>
-    <td><a href="http://redhat.com">redhat.com</a></td>
+<table border="0" cellpadding="0" cellspacing="0">
+  <tr>
+    <!-- next line must be put one (1!) line to overcome an IE-layouting bug -->
+    <td><a href="http://www.jboss.com/"><img
+      src="doc/userguide/html/images/logo_red.gif"
+      alt="JBoss, a division of Red Hat" border="0" /></a></td>
+    <td width="100%" valign="top">
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr>
+        <td width="100%" height="22" bgcolor="#eb1a24" align="center"
+          nowrap="nowrap"></td>
   </tr>
-</table>
-</div>
-
-<table cellpadding="0" cellspacing="0" id="BodyTable">
   <tr>
-    <td colspan="2" class="topheader" />
+        <td width="100%" align="right" valign="middle" nowrap="nowrap">
+        <a class="ref" href="http://jbpm.org">jbpm.org</a> &nbsp;&nbsp;
+        <a class="ref" href="http://jboss.org">jboss.org</a> &nbsp;&nbsp;
+        <a class="ref" href="http://jboss.com">jboss.com</a> &nbsp;&nbsp;
+        <a class="ref" href="http://redhat.com">redhat.com</a> &nbsp;&nbsp;
+        </td>
   </tr>
   <tr>
-    <td class="leftside">
+        <td width="100%" valign="top" nowrap="nowrap">
+        <hr style="margin:0px; padding;0px;" size="1" width="100%" />
+        <h2 style="padding:0px; margin:0px; border:0px;">JBoss jBPM BPEL</h2>
+        </td>
+      </tr>
+    </table>
+    </td>
+  </tr>
+  <tr>
+    <td width="100%" height="100%" colspan="2" valign="top">
+    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr>
+        <td valign="top">
     <div id="LeftMenu">
     <ul>
-      <li><a href="http://jboss.org/wiki/Wiki.jsp?page=JbpmWiki">Wiki</a></li>
-      <li><a href="http://jboss.org/index.html?module=bb&op=viewforum&f=217">Forum</a></li>
-      <li><a href="http://labs.jboss.com/jbossjbpm/blog">Blog</a></li>
+          <li><a href="http://jbpm.org/wiki">Wiki</a></li>
+          <li><a href="http://jbpm.org/forums">Forums</a></li>
+          <li><a href="http://jboss.org/jbossBlog/blog/aguizar/">Blog</a></li>
       <li><a href="http://www.jboss.com/services/index">Support</a></li>
-      <li><a href="http://labs.jboss.com/jbossjbpm/downloads">Download</a></li>
+          <li><a href="http://jbpm.org/downloads">Download</a></li>
     </ul>
-    </div>
+        <img style="margin-top:1px;"
+          src="doc/userguide/html/images/side_nav_red_btm.gif"
+          alt="green side" /></div>
     </td>
-    <td class="bodycell">
+        <td height="100%" width="100%" valign="top">
+
     <!-- CONTENT -->
-    <h1>Change Log - Version 1.1.GA</h1>
+        <h2>Change Log - JBoss jBPM BPEL - Version 1.1.Beta3</h2>
 
     <h2>Bug</h2>
     <ul>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-200'>BPEL-200</a>] - Redeployment of a changed PAR (with modified .bpel) requires App Server Restart</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-230'>BPEL-230</a>] - store element properties in a VARCHAR column instead of LONGVARCHAR for oracle compatibility</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-231'>BPEL-231</a>] - integration service opens request listeners even if tx marked for rollback</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-232'>BPEL-232</a>] - Missing &quot;description&quot; property in BpelDefinition mapping</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-242'>BPEL-242</a>] - &lt;scope&gt; not allowed to enclose a start activity</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-250'>BPEL-250</a>] - NPE when deploying a process using jbpm-bpel.jar from BPEL-230</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-256'>BPEL-256</a>] - First activity of a flow has to have a defined target even if the containing flow element has a target</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-258'>BPEL-258</a>] - non-start activities within initial flow are never entered</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-260'>BPEL-260</a>] - Flow activity might not reactivate parent token in race condition</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-264'>BPEL-264</a>] - NPE when dead-path elimination reaches a flow with local links</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-265'>BPEL-265</a>] - structured activities tell they are initial even if they are the targets of links</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-267'>BPEL-267</a>] - NPE extracting content from soap envelope containing default namespace declarations</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-271'>BPEL-271</a>] - NPE when a start IMA references a nonglobal variable</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-278'>BPEL-278</a>] - role referenced in &lt;from&gt; is not verified to exist in the partner link</li>
-
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-219'>BPEL-219</a>] - explain bpel application descriptor in chapter devoted to atm process</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-221'>BPEL-221</a>] - QNameType persists namespace property in LOCALNAME_ column</li>
     </ul>
+                
     <h2>Feature Request</h2>
     <ul>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-59'>BPEL-59</a>] - get original BPEL document after deployment</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-204'>BPEL-204</a>] - Add org.jbpm.webapp.servlet.UploadServlet as part of the bpel distribution. </li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-245'>BPEL-245</a>] - make xpath function library extensible</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-259'>BPEL-259</a>] - upgrade to hibernate 3.2.4.SP1</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-269'>BPEL-269</a>] - enhance assignment logging capabilities</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-272'>BPEL-272</a>] - allow xpath expression/query to create more than one occurrence of an element</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-279'>BPEL-279</a>] - variable variant is not supported in predicate</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-282'>BPEL-282</a>] - Engine runs process instances in serie instead of in parallel</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-286'>BPEL-286</a>] - SOAP Communication Exceptions should be catchable inside the process</li>
-
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-223'>BPEL-223</a>] - Convert IntegrationServlet to a servlet context listener</li>
     </ul>
+                            
     <h2>Task</h2>
     <ul>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-86'>BPEL-86</a>] - Release jBPM BPEL 1.1</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-190'>BPEL-190</a>] - webservice descriptors generation tool</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-216'>BPEL-216</a>] - Fully automated process deployment</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-217'>BPEL-217</a>] - convert bpel-definition.xml into master wsdl document</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-218'>BPEL-218</a>] - introduce a central service catalog</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-229'>BPEL-229</a>] - move to a portable deployment model</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-233'>BPEL-233</a>] - Simplify activity XML readers</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-234'>BPEL-234</a>] - Convert Invoker, Receiver, Replier and Alarm into Actions</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-235'>BPEL-235</a>] - Revise NodeCollection view of CompositeActivity subclasses</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-236'>BPEL-236</a>] - Convert QNameType from UserType to CompositeUserType</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-237'>BPEL-237</a>] - Remove unnecessary persistent extensions of WSDL4J classes</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-238'>BPEL-238</a>] - Upgrade to jPDL 3.2.GA</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-239'>BPEL-239</a>] - detect and deal with jpdl deployments</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-240'>BPEL-240</a>] - upgrade bpel 1.1 compensate to bpel 2 compensate/compensateScope</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-241'>BPEL-241</a>] - provide a compensation example</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-243'>BPEL-243</a>] - throw selectionFailure when copying from an element with xsi:nil=true</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-249'>BPEL-249</a>] - create ws stack integration subprojects</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-251'>BPEL-251</a>] - cover document-style bindings in service generation tool</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-253'>BPEL-253</a>] - Skip service/artifact generation tools if sources have not changed</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-254'>BPEL-254</a>] - Fix namespace URIs and schema locations of definition and application descriptor schemas</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-255'>BPEL-255</a>] - Update the namespace URI of variable property elements</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-257'>BPEL-257</a>] - rename correlation patterns</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-261'>BPEL-261</a>] - use varbinary instead of varchar as data type to store dom elements</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-262'>BPEL-262</a>] - redeliver messages whose handling fails due to stale state exceptions</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-263'>BPEL-263</a>] - incorporate enterprise support features from jpdl</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-266'>BPEL-266</a>] - incorporate targetNamespace in process definition versioning</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-270'>BPEL-270</a>] - Add support for extensionAssignOperation</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-273'>BPEL-273</a>] - provide a declarative way to install new evaluator factories in the sublanguage framework</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-274'>BPEL-274</a>] - wsdl service generator: eliminate reliance on transitive imports</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-275'>BPEL-275</a>] - web module deployment tool</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-276'>BPEL-276</a>] - generate bpel application descriptor along with wsdl service description</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-280'>BPEL-280</a>] - redeploy web modules upon server restart</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-281'>BPEL-281</a>] - ant tasks for process deployment</li>
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-283'>BPEL-283</a>] - process deployment from web console</li>
-
-    <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-284'>BPEL-284</a>] - document new deployment model</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-212'>BPEL-212</a>] - Modularize package org.jbpm.bpel.def</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-214'>BPEL-214</a>] - provide a fault handling example</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-215'>BPEL-215</a>] - Add JBoss EULA</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-220'>BPEL-220</a>] - Write distribution script</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-222'>BPEL-222</a>] - soap fault message production fails under jbossws 1.0.3 and above</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-224'>BPEL-224</a>] - Associate the integration control with the process definition instead of the context class loader</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-225'>BPEL-225</a>] - API documentation for packages and core classes</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-226'>BPEL-226</a>] - upgrade to jBPM jPDL 3.2.Beta1</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-227'>BPEL-227</a>] - update user guide to match new distribution package structure</li>
+        <li>[<a href='http://jira.jboss.com/jira/browse/BPEL-228'>BPEL-228</a>] - move endpoint references to a separate package</li>
     </ul>
 
     <!-- FOOTER -->
     </td>
   </tr>
 </table>
-
-<div id="footer">
-<div class="leftcurve"></div>
-<div><a href="http://www.jbpm.org"><img
-  src="doc/userguide/html/images/jbpm_logo.png" alt="JBoss jBPM" width="125"
-  height="41" border="0" /></a><br/></div>
-</div>
-
-</div>
-
+    </td>
+  </tr>
+</table>
 </body>
 
 </html>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/config/build.properties jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/config/build.properties
--- jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/config/build.properties	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/config/build.properties	2009-02-06 09:17:20.000000000 +0100
@@ -1,22 +1,49 @@
+# It's not good practice to update these properties in this file. Overwrite the 
+# properties below, use file ${user.home}/jbpm/build.properties to 
+# customize values (e.g. c:/documents and settings/aguizar/jbpm/build.properties)
+#########################################################################
+
 # INSTALLED SOFTWARE PROPERTIES
 
-# property software.installation.dir is used to define jboss.home and jwsdp.home 
+# property software.installation.dir is used to define jbpm.bpel.home, jboss.home
+# and jwsdp.home 
 software.installation.dir=c:/dev
 
-# jboss.home is used for deployment targets 
-# this property is based on jboss.version to keep them in sync
-jboss.version=4.2.2.GA
+# jbpm.bpel.home is used to define jbpm.bpel.config.dir and local.repository
+jbpm.bpel.version=1.1.Beta3
+jbpm.bpel.home=${software.installation.dir}/jbpm-bpel-${jbpm.bpel.version}
+jbpm.bpel.config.dir=${jbpm.bpel.home}/config
+
+# jboss.home is used for deployment targets. the libraries and binaries dependencies 
+# are resolved in the repo with the lib.jboss.version property specified below. that 
+# property is also based on jboss.version to keep them in sync
+jboss.version=4.0.4.GA
 jboss.home=${software.installation.dir}/jboss-${jboss.version}
 jboss.server=default
 
 # jwsdp.home is used for generating web service artifacts
-# wscompile is an alternative to wstools included in jboss as 4.0.4 and later
-jwsdp.home=${software.installation.dir}/jwsdp-1.6
+jwsdp.version=1.6
+jwsdp.home=${software.installation.dir}/jwsdp-${jwsdp.version}
+
+# REPOSITORY LOCATION PROPERTIES
+local.repository=${jbpm.bpel.home}/lib
+remote.repository=http://repository.jboss.com
 
 # The remainder section of this configuration file should 
 # typically not be customized.
 #########################################################################
 
+# CVS PROPERTIES
+
+jboss.cvs.root=:pserver:anonymous:@anoncvs.forge.jboss.com:/cvsroot/jboss
+jbpm.cvs.root=:pserver:anonymous:@anoncvs.forge.jboss.com:/cvsroot/jbpm
+local.repository.cvs.root=${user.home}/jbpm
+
+# PRODUCED jBPM ARTIFACT
+
+artifact.id=jbpm-${module.name}
+artifact.name=${artifact.id}.jar
+
 # TARGET CUSTOMIZATION PROPERTIES
 
 javac.source=1.4
@@ -24,57 +51,201 @@
 javac.debug=true
 javac.deprecation=false
 
-# REPOSITORY LOCATION
-
-lib.dir=${jbpm.bpel.home}/lib
-
-# JPDL FILE LOCATIONS
-
-lib.jbpm.jpdl.version=3.2.2
-lib.jbpm.jpdl.jar.local=${lib.dir}/jbpm-jpdl.jar
-lib.jbpm.identity.jar.local=${lib.dir}/jbpm-identity.jar
-
-# BPEL FILE LOCATIONS
-
-lib.jbpm.bpel.version=1.1.GA
-lib.jbpm.bpel.jar.local=${lib.dir}/jbpm-bpel.jar
-lib.jbpm.bpel.config.local=${lib.dir}/jbpm-bpel-config.jar
-lib.jbpm.bpel.tools.jar.local=${lib.dir}/jbpm-bpel-tools.jar
-
-lib.jbpm.bpel.jboss403.jar.local=${lib.dir}/jbpm-bpel-jboss403.jar
-lib.jbpm.bpel.jboss405.jar.local=${lib.dir}/jbpm-bpel-jboss405.jar
-lib.jbpm.bpel.jboss420.jar.local=${lib.dir}/jbpm-bpel-jboss420.jar
-
-lib.jbpm.bpel.console.file=jbpm-bpel.war
-lib.jbpm.bpel.enterprise.file=jbpm-bpel-enterprise.jar
-
-lib.jbpm.bpel.application.name=jbpm-bpel.ear
-lib.jbpm.bpel.container.name=jbpm-bpel-container.jar
-
-# EXTERNAL DEPENDENCIES
-
-lib.ant.local=${lib.dir}/ant-1.6.5.jar
-lib.antlr.local=${lib.dir}/antlr-2.7.6.jar
-lib.asm.local=${lib.dir}/asm.jar
-lib.bsh.local=${lib.dir}/bsh.jar
-lib.cglib.local=${lib.dir}/cglib.jar
-lib.commons.codec.local=${lib.dir}/commons-codec.jar
-lib.commons.collections.local=${lib.dir}/commons-collections.jar
-lib.commons.fileupload.local=${lib.dir}/commons-fileupload.jar
-lib.commons.httpclient.local=${lib.dir}/commons-httpclient.jar
-lib.commons.lang.local=${lib.dir}/commons-lang.jar
-lib.commons.logging.local=${lib.dir}/commons-logging.jar
-lib.dom4j.local=${lib.dir}/dom4j.jar
-lib.hibernate.local=${lib.dir}/hibernate3.jar
-lib.hsqldb.local=${lib.dir}/hsqldb.jar
-lib.jaxen.local=${lib.dir}/jaxen.jar
-lib.jaxrpc.api.local=${lib.dir}/jaxrpc-api.jar
-lib.jboss.j2ee.local=${lib.dir}/jboss-j2ee.jar
-lib.jboss.saaj.local=${lib.dir}/jboss-saaj.jar
-lib.junit.local=${lib.dir}/junit.jar
-lib.log4j.local=${lib.dir}/log4j.jar
-lib.servlet.local=${lib.dir}/servlet-api.jar
-lib.servlet-jsp.local=${lib.dir}/jsp-api.jar
-lib.wsdl4j.local=${lib.dir}/wsdl4j.jar
-lib.xercesimpl.local=${lib.dir}/xercesImpl.jar
-lib.xml.apis.local=${lib.dir}/xml-apis.jar
\ No newline at end of file
+compile.classpath=compile.classpath
+compile.test.classpath=test.classpath
+test.classpath=test.classpath
+jbpm.task.classpath=jbpm.task.classpath
+
+javadoc.sourcepath=src/main/java
+javadoc.destdir=target/site/apidocs
+
+# JBPM ARTIFACT REFERENCES
+
+# Use the next commented format if you want to use a specific version from the local repo 
+# lib.jbpm.identity.jar.dir=jbpm/identity/${lib.jbpm.identity.version}/lib
+lib.jbpm.identity.jar.dir=${jbpm.bpel.home}
+lib.jbpm.identity.jar.file=jbpm-identity.jar
+lib.jbpm.identity.jar=${lib.jbpm.identity.jar.dir}/${lib.jbpm.identity.jar.file}
+
+# Use the next commented format if you want to use a specific version from the local repo 
+# lib.jbpm.jmx.jar.dir=jbpm/jboss/${lib.jbpm.jboss.version}/lib
+lib.jbpm.jmx.jar.dir=${jbpm.bpel.home}
+lib.jbpm.jmx.jar.file=jbpm-jmx.jar
+lib.jbpm.jmx.jar=${lib.jbpm.jmx.jar.dir}/${lib.jbpm.jmx.jar.file}
+
+# Use the next commented format if you want to use a specific version from the local repo 
+# lib.jbpm.jpdl.jar.dir=jbpm/jpdl/${lib.jbpm.jpdl.version}/lib
+lib.jbpm.jpdl.jar.dir=${jbpm.bpel.home}
+lib.jbpm.jpdl.jar.file=jbpm-jpdl.jar
+lib.jbpm.jpdl.jar=${lib.jbpm.jpdl.jar.dir}/${lib.jbpm.jpdl.jar.file}
+
+# Use the next commented format if you want to use a specific version from the local repo
+# lib.jbpm.bpel.jar.dir=jbpm/bpel/${lib.jbpm.bpel.version}/lib
+lib.jbpm.bpel.jar.dir=${jbpm.bpel.home}
+lib.jbpm.bpel.jar.file=jbpm-bpel.jar
+lib.jbpm.bpel.jar=${lib.jbpm.bpel.jar.dir}/${lib.jbpm.bpel.jar.file}
+
+# Use the next commented format if you want to use a specific version from the local repo
+# lib.jbpm.bpel.war.dir=jbpm/bpel/${lib.jbpm.bpel.version}/lib
+lib.jbpm.bpel.war.dir=${jbpm.bpel.home}/deploy
+lib.jbpm.bpel.war.file=jbpm-bpel.war
+lib.jbpm.bpel.war=${lib.jbpm.bpel.war.dir}/${lib.jbpm.bpel.war.file}
+
+# EXTERNAL DEPENDENCIES (1/4): VERSIONS
+
+lib.ant.version=1.6.5
+lib.antlr.version=2.7.6.ga
+lib.asm.version=1.5.3
+lib.bsh.version=1.3.0
+lib.cglib.version=2.1.3
+lib.commons.collections.version=3.1
+lib.commons.lang.version=2.1
+lib.commons.logging.version=1.0.4
+lib.dom4j.version=1.6
+lib.ehcache.version=1.2.2
+lib.hibernate.version=3.2.0.GA
+lib.hsqldb.version=1.8.0.2
+lib.jaxen.version=1.1-beta-10
+lib.jboss.version=${jboss.version}
+lib.junit.version=3.8.1
+lib.log4j.version=1.2.8
+lib.servlet.version=2.4
+lib.wsdl4j.version=1.5.2
+
+# EXTERNAL DEPENDENCIES (2/4): REPOSITORY LOCATION PROPERTIES
+
+lib.ant.license=apache-2.0
+lib.ant.name=ant-${lib.ant.version}.jar
+lib.ant.dir=maven2/ant/ant/${lib.ant.version}
+lib.ant.path=${lib.ant.dir}/${lib.ant.name}
+lib.ant.local=${local.repository}/${lib.ant.path}
+lib.ant.remote=${remote.repository}/${lib.ant.path}
+
+lib.antlr.license=antlr
+lib.antlr.name=antlr-2.7.6.jar
+lib.antlr.dir=antlr/${lib.antlr.version}/lib
+lib.antlr.path=${lib.antlr.dir}/${lib.antlr.name}
+lib.antlr.local=${local.repository}/${lib.antlr.path}
+lib.antlr.remote=${remote.repository}/${lib.antlr.path}
+
+lib.asm.license=bsd
+lib.asm.name=asm.jar
+lib.asm.dir=asm/${lib.asm.version}/lib
+lib.asm.path=${lib.asm.dir}/${lib.asm.name}
+lib.asm.local=${local.repository}/${lib.asm.path}
+lib.asm.remote=${remote.repository}/${lib.asm.path}
+
+lib.bsh.license=lgpl
+lib.bsh.name=bsh.jar
+lib.bsh.dir=beanshell/${lib.bsh.version}/lib
+lib.bsh.path=${lib.bsh.dir}/${lib.bsh.name}
+lib.bsh.local=${local.repository}/${lib.bsh.path}
+lib.bsh.remote=${remote.repository}/${lib.bsh.path}
+
+lib.cglib.license=apache-2.0
+lib.cglib.name=cglib.jar
+lib.cglib.dir=cglib/${lib.cglib.version}/lib
+lib.cglib.path=${lib.cglib.dir}/${lib.cglib.name}
+lib.cglib.local=${local.repository}/${lib.cglib.path}
+lib.cglib.remote=${remote.repository}/${lib.cglib.path}
+
+lib.commons.collections.license=apache-2.0
+lib.commons.collections.name=commons-collections.jar
+lib.commons.collections.dir=apache-collections/${lib.commons.collections.version}/lib
+lib.commons.collections.path=${lib.commons.collections.dir}/${lib.commons.collections.name}
+lib.commons.collections.local=${local.repository}/${lib.commons.collections.path}
+lib.commons.collections.remote=${remote.repository}/${lib.commons.collections.path}
+
+lib.commons.lang.license=apache-2.0
+lib.commons.lang.name=commons-lang.jar
+lib.commons.lang.dir=apache-lang/${lib.commons.lang.version}/lib
+lib.commons.lang.path=${lib.commons.lang.dir}/${lib.commons.lang.name}
+lib.commons.lang.local=${local.repository}/${lib.commons.lang.path}
+lib.commons.lang.remote=${remote.repository}/${lib.commons.lang.path}
+
+lib.commons.logging.license=apache-2.0
+lib.commons.logging.name=commons-logging.jar
+lib.commons.logging.dir=apache-logging/${lib.commons.logging.version}/lib
+lib.commons.logging.path=${lib.commons.logging.dir}/${lib.commons.logging.name}
+lib.commons.logging.local=${local.repository}/${lib.commons.logging.path}
+lib.commons.logging.remote=${remote.repository}/${lib.commons.logging.path}
+
+lib.dom4j.license=dom4j
+lib.dom4j.name=dom4j.jar
+lib.dom4j.dir=dom4j/${lib.dom4j.version}/lib
+lib.dom4j.path=${lib.dom4j.dir}/${lib.dom4j.name}
+lib.dom4j.local=${local.repository}/${lib.dom4j.path}
+lib.dom4j.remote=${remote.repository}/${lib.dom4j.path}
+
+lib.ehcache.license=ehcache
+lib.ehcache.name=ehcache.jar
+lib.ehcache.dir=ehcache/${lib.ehcache.version}/lib
+lib.ehcache.path=${lib.ehcache.dir}/${lib.ehcache.name}
+lib.ehcache.local=${local.repository}/${lib.ehcache.path}
+lib.ehcache.remote=${remote.repository}/${lib.ehcache.path}
+
+lib.hibernate.license=lgpl
+lib.hibernate.name=hibernate3.jar
+lib.hibernate.dir=hibernate/${lib.hibernate.version}/lib
+lib.hibernate.path=${lib.hibernate.dir}/${lib.hibernate.name}
+lib.hibernate.local=${local.repository}/${lib.hibernate.path}
+lib.hibernate.remote=${remote.repository}/${lib.hibernate.path}
+
+lib.hsqldb.license=hsqldb
+lib.hsqldb.name=hsqldb.jar
+lib.hsqldb.dir=hsqldb/${lib.hsqldb.version}/lib
+lib.hsqldb.path=${lib.hsqldb.dir}/${lib.hsqldb.name}
+lib.hsqldb.local=${local.repository}/${lib.hsqldb.path}
+lib.hsqldb.remote=${remote.repository}/${lib.hsqldb.path}
+
+lib.jaxen.license=jaxen
+lib.jaxen.name=jaxen.jar
+lib.jaxen.dir=jaxen/${lib.jaxen.version}/lib
+lib.jaxen.path=${lib.jaxen.dir}/${lib.jaxen.name}
+lib.jaxen.local=${local.repository}/${lib.jaxen.path}
+lib.jaxen.remote=${remote.repository}/${lib.jaxen.path}
+
+lib.jboss.license=lgpl
+lib.jboss.dir=jbossas/core-libs/${lib.jboss.version}/lib
+lib.jboss.j2ee.name=jboss-j2ee.jar
+lib.jboss.j2ee.path=${lib.jboss.dir}/${lib.jboss.j2ee.name}
+lib.jboss.j2ee.local=${local.repository}/${lib.jboss.j2ee.path}
+lib.jboss.j2ee.remote=${remote.repository}/${lib.jboss.j2ee.path}
+
+lib.jboss.jaxrpc.name=jboss-jaxrpc.jar
+lib.jboss.jaxrpc.path=${lib.jboss.dir}/${lib.jboss.jaxrpc.name}
+lib.jboss.jaxrpc.local=${local.repository}/${lib.jboss.jaxrpc.path}
+lib.jboss.jaxrpc.remote=${remote.repository}/${lib.jboss.jaxrpc.path}
+
+lib.jboss.saaj.name=jboss-saaj.jar
+lib.jboss.saaj.path=${lib.jboss.dir}/${lib.jboss.saaj.name}
+lib.jboss.saaj.local=${local.repository}/${lib.jboss.saaj.path}
+lib.jboss.saaj.remote=${remote.repository}/${lib.jboss.saaj.path}
+
+lib.junit.license=cpl-1.0
+lib.junit.name=junit.jar
+lib.junit.dir=junit/${lib.junit.version}/lib
+lib.junit.path=${lib.junit.dir}/${lib.junit.name}
+lib.junit.local=${local.repository}/${lib.junit.path}
+lib.junit.remote=${remote.repository}/${lib.junit.path}
+
+lib.log4j.license=apache-2.0
+lib.log4j.name=log4j.jar
+lib.log4j.dir=apache-log4j/${lib.log4j.version}/lib
+lib.log4j.path=${lib.log4j.dir}/${lib.log4j.name}
+lib.log4j.local=${local.repository}/${lib.log4j.path}
+lib.log4j.remote=${remote.repository}/${lib.log4j.path}
+
+lib.servlet.license=apache-2.0
+lib.servlet.name=servlet-api.jar
+lib.servlet.dir=sun-servlet/${lib.servlet.version}/lib
+lib.servlet.path=${lib.servlet.dir}/${lib.servlet.name}
+lib.servlet.local=${local.repository}/${lib.servlet.path}
+lib.servlet.remote=${remote.repository}/${lib.servlet.path}
+
+lib.wsdl4j.license=cpl-1.0
+lib.wsdl4j.name=wsdl4j.jar
+lib.wsdl4j.dir=ibm-wsdl4j/${lib.wsdl4j.version}/lib
+lib.wsdl4j.path=${lib.wsdl4j.dir}/${lib.wsdl4j.name}
+lib.wsdl4j.local=${local.repository}/${lib.wsdl4j.path}
+lib.wsdl4j.remote=${remote.repository}/${lib.wsdl4j.path}
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/deploy/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/deploy/build.xml
--- jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/deploy/build.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/deploy/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,99 +1,79 @@
-<project name="jbpm.bpel.deploy" default="main">
+<project name="jbpm.bpel.deploy" default="build.sar">
 
-  <property name="jbpm.bpel.home" value=".." />
+  <!-- project specific properties -->
+  <property name="jbpm.root" value="../../../../../../.." />
 
+  <!-- property files -->
+  <property file="${user.home}/jbpm/build.properties" />
   <property file="../config/build.properties" />
 
-  <basename property="lib.jbpm.bpel.config.file" file="${lib.jbpm.bpel.config.local}" />
-
-  <target name="create.config">
-    <jar destfile="${lib.jbpm.bpel.config.file}">
-      <fileset dir="../config">
-        <include name="jbpm.cfg.xml" />
-        <include name="jbpm.hibernate.cfg.xml" />
-      </fileset>
-      <manifest>
-        <attribute name="Implementation-Title" value="jBPM BPEL" />
-        <attribute name="Implementation-Version" value="${lib.jbpm.bpel.version} (date:${now})" />
-        <attribute name="Implementation-URL" value="http://www.jboss.org/products/jbpm" />
-        <attribute name="Implementation-Vendor" value="JBoss Inc." />
-        <attribute name="Implementation-Vendor-Id" value="http://www.jboss.org/" />
-      </manifest>
+  <target name="build.sar" depends="customize.config"
+    description="builds jbpm bpel service archive">
+    <jar destfile="jbpm-bpel.sar">
+      <fileset dir="config" />
+      <fileset dir="${lib.jbpm.bpel.jar.dir}"
+               includes="${lib.jbpm.bpel.jar.file}" />
+      <fileset dir="${lib.jbpm.jpdl.jar.dir}"
+               includes="${lib.jbpm.jpdl.jar.file}" />
+      <fileset dir="${lib.jbpm.identity.jar.dir}"
+               includes="${lib.jbpm.identity.jar.file}" />
+      <fileset dir="${lib.jbpm.jmx.jar.dir}"
+               includes="${lib.jbpm.jmx.jar.file}" />
+      <fileset dir="${lib.jbpm.bpel.war.dir}"
+               includes="${lib.jbpm.bpel.war.file}" />
+      <fileset dir="${local.repository}/${lib.commons.lang.dir}"
+               includes="${lib.commons.lang.name}" />
+      <fileset dir="${local.repository}/${lib.ehcache.dir}"
+               includes="${lib.ehcache.name}" />
+      <fileset dir="${local.repository}/${lib.jaxen.dir}"
+               includes="${lib.jaxen.name}" />
     </jar>
   </target>
 
-  <target name="determine.container">
-    <condition property="lib.jbpm.bpel.container.jar.local"
-               value="${lib.jbpm.bpel.jboss403.jar.local}">
-      <or>
-        <equals arg1="${jboss.version}" arg2="4.0.2" />
-        <equals arg1="${jboss.version}" arg2="4.0.3" />
-        <equals arg1="${jboss.version}" arg2="4.0.3SP1" />
-        <equals arg1="${jboss.version}" arg2="4.0.3.SP1" />
-      </or>
-    </condition>
-    <condition property="lib.jbpm.bpel.container.jar.local"
-               value="${lib.jbpm.bpel.jboss405.jar.local}">
-      <or>
-        <equals arg1="${jboss.version}" arg2="4.0.5.GA" />
-      </or>
-    </condition>
-    <condition property="lib.jbpm.bpel.container.jar.local"
-               value="${lib.jbpm.bpel.jboss420.jar.local}">
-      <or>
-        <equals arg1="${jboss.version}" arg2="4.2.0.GA" />
-        <equals arg1="${jboss.version}" arg2="4.2.1.GA" />
-        <equals arg1="${jboss.version}" arg2="4.2.2.GA" />
-      </or>
-    </condition>
-    <fail unless="lib.jbpm.bpel.container.jar.local"
-          message="Unsupported JBoss AS version: ${jboss.version}" />
-    <!-- must overwrite, otherwise switching between server versions goes unnoticed -->
-    <copy tofile="${lib.jbpm.bpel.container.name}"
-          file="${lib.jbpm.bpel.container.jar.local}"
-          overwrite="yes" />
+  <target name="deploy.sar" depends="build.sar" 
+    description="deploys jbpm bpel service to server">
+    <copy file="jbpm-bpel.sar" todir="${jboss.home}/server/${jboss.server}/deploy" />
   </target>
 
-  <target name="package.ear"
-          description="build jbpm bpel enterprise app"
-          depends="create.config, determine.container">
-    <manifest file="META-INF/MANIFEST.MF">
-      <attribute name="Implementation-Version" value="${lib.jbpm.bpel.version} (date:${now})" />
-      <attribute name="Implementation-URL" value="http://www.jboss.org/products/jbpm" />
-      <attribute name="Implementation-Vendor" value="JBoss Inc." />
-      <attribute name="Implementation-Vendor-Id" value="http://www.jboss.org/" />
-    </manifest>
-    <ear destfile="${lib.jbpm.bpel.application.name}"
-         appxml="META-INF/application.xml"
-         manifest="META-INF/MANIFEST.MF">
-      <!-- modules -->
-      <fileset file="${lib.jbpm.bpel.console.file}" />
-      <fileset file="${lib.jbpm.bpel.enterprise.file}" />
-      <!-- libraries -->
-      <zipfileset file="${lib.jbpm.jpdl.jar.local}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.identity.jar.local}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.bpel.jar.local}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.bpel.container.name}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.bpel.config.file}" prefix="lib" />
-      <!-- dependencies -->
-      <zipfileset file="${lib.commons.lang.local}" prefix="lib" />
-      <zipfileset file="${lib.jaxen.local}" prefix="lib" />
-    </ear>
+  <target name="undeploy.sar" description="undeploys jbpm bpel service from server">
+    <delete file="${jboss.home}/server/${jboss.server}/deploy/jbpm-bpel.sar" />
   </target>
 
-  <target name="deploy.ear"
-          description="deploy jbpm bpel enterprise app to server"
-          depends="package.ear">
-    <copy todir="${jboss.home}/server/${jboss.server}/deploy"
-          file="${lib.jbpm.bpel.application.name}" />
-  </target>
+  <target name="customize.config">
 
-  <target name="undeploy.ear"
-          description="undeploy jbpm bpel enterprise app from server"
-          depends="package.ear">
-    <delete file="${jboss.home}/server/${jboss.server}/deploy/${lib.jbpm.bpel.application.name}" />
-  </target>
+    <mkdir dir="config"/>
 
-  <target name="main" description="main target" depends="deploy.ear" />
+    <copy todir="config">
+      <fileset dir="${jbpm.bpel.config.dir}" />
+    </copy>
+
+    <!-- use data source instead of jdbc connection -->
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[<!-- JDBC connection properties (begin) -->]]></replacetoken>
+      <replacevalue><![CDATA[<!-- JDBC connection properties (begin) ===]]></replacevalue>
+    </replace>
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[<!-- JDBC connection properties (end) -->]]></replacetoken>
+      <replacevalue><![CDATA[==== JDBC connection properties (end) -->]]></replacevalue>
+    </replace>
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[<!-- DataSource properties (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[<!-- DataSource properties (begin) -->]]></replacevalue>
+    </replace>
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[==== DataSource properties (end) -->]]></replacetoken>
+      <replacevalue><![CDATA[<!-- DataSource properties (end) -->]]></replacevalue>
+    </replace>
+
+    <!-- include identity mappings -->
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[identity mappings (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[identity mappings (begin) -->]]></replacevalue>
+    </replace>
+    <replace file="config/hibernate.cfg.xml">
+      <replacetoken><![CDATA[==== identity mappings (end)]]></replacetoken>
+      <replacevalue><![CDATA[<!-- identity mappings (end)]]></replacevalue>
+    </replace>
+  </target>
 
 </project>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime: doc
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/release.notes.html jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/release.notes.html
--- jpdl-3.2.3.GA/bpel/dist/src/main/resources/runtime/release.notes.html	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/dist/src/main/resources/runtime/release.notes.html	2009-02-06 09:17:20.000000000 +0100
@@ -1,104 +1,111 @@
 <html>
 
 <head>
-<title>JBoss jBPM BPEL - Release Notes</title>
-<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/common.css" />
-<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/screen.css" />
+<title>Release Notes - JBoss jBPM BPEL</title>
+<link rel="stylesheet" type="text/css" href="doc/userguide/html/css/jbpm.css" />
 </head>
 
 <!-- HEADER -->
 <body>
-<div class="brand_DOTCOM" id="container">
-
-<div id="TopLogo"><a href="http://www.jboss.com"><img
-  src="doc/userguide/html/images/jboss_logo.gif" alt="JBoss, a division of Red Hat"
-  width="249" height="78" border="0" /></a></div>
-
-<div id="TopMenu">
-<table cellpadding="0" cellspacing="0">
-  <tr>
-    <td><a href="http://jbpm.org">jbpm.org</a></td>
-    <td><a href="http://jboss.org">jboss.org</a></td>
-    <td><a href="http://jboss.com">jboss.com</a></td>
-    <td><a href="http://redhat.com">redhat.com</a></td>
+<table border="0" cellpadding="0" cellspacing="0">
+  <tr>
+    <!-- next line must be put one (1!) line to overcome an IE-layouting bug -->
+    <td><a href="http://www.jboss.com/"><img
+      src="doc/userguide/html/images/logo_red.gif"
+      alt="JBoss, a division of Red Hat" border="0" /></a></td>
+    <td width="100%" valign="top">
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr>
+        <td width="100%" height="22" bgcolor="#eb1a24" align="center"
+          nowrap="nowrap"></td>
+      </tr>
+      <tr>
+        <td width="100%" align="right" valign="middle" nowrap="nowrap">
+        <a class="ref" href="http://jbpm.org">jbpm.org</a> &nbsp;&nbsp;
+        <a class="ref" href="http://jboss.org">jboss.org</a> &nbsp;&nbsp;
+        <a class="ref" href="http://jboss.com">jboss.com</a> &nbsp;&nbsp;
+        <a class="ref" href="http://redhat.com">redhat.com</a> &nbsp;&nbsp;
+        </td>
   </tr>
-</table>
-</div>
-
-<table cellpadding="0" cellspacing="0" id="BodyTable">
   <tr>
-    <td colspan="2" class="topheader" />
+        <td width="100%" valign="top" nowrap="nowrap">
+        <hr style="margin:0px; padding;0px;" size="1" width="100%" />
+        <h2 style="padding:0px; margin:0px; border:0px;">JBoss jBPM BPEL</h2>
+        </td>
+      </tr>
+    </table>
+    </td>
   </tr>
   <tr>
-    <td class="leftside">
+    <td width="100%" height="100%" colspan="2" valign="top">
+    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr>
+        <td valign="top">
     <div id="LeftMenu">
     <ul>
-      <li><a href="http://jboss.org/wiki/Wiki.jsp?page=JbpmWiki">Wiki</a></li>
-      <li><a href="http://jboss.org/index.html?module=bb&op=viewforum&f=217">Forum</a></li>
-      <li><a href="http://labs.jboss.com/jbossjbpm/blog">Blog</a></li>
+          <li><a href="http://jbpm.org/wiki">Wiki</a></li>
+          <li><a href="http://jbpm.org/forums">Forums</a></li>
+          <li><a href="http://jboss.org/jbossBlog/blog/aguizar/">Blog</a></li>
       <li><a href="http://www.jboss.com/services/index">Support</a></li>
-      <li><a href="http://labs.jboss.com/jbossjbpm/downloads">Download</a></li>
+          <li><a href="http://jbpm.org/downloads">Download</a></li>
     </ul>
-    </div>
+        <img style="margin-top:1px;"
+          src="doc/userguide/html/images/side_nav_red_btm.gif"
+          alt="green side" /></div>
     </td>
-    <td class="bodycell">
+        <td height="100%" width="100%" valign="top">
+
     <!-- CONTENT -->
-    <h1>Release Notes - Version 1.1.GA</h1>
+        <h2>Release Notes - JBoss jBPM BPEL - Version 1.1.Beta3</h2>
 
     <h2>License</h2>
-    <p>This software is distributed under the terms of the <a href="license.txt">CPL 1.0
-    license</a>.</p>
+        <p>This software is distributed under the terms of the <a
+        href="license.txt">CPL 1.0 license</a>.</p>
 
     <h2>What is BPEL?</h2>
-    <p>BPEL provides service orchestration - the ability to combine web services into a
-    process execution flow.</p>
+        <p>BPEL provides service orchestration - the ability to combine web
+        services into a process execution flow.</p>
 
     <h2>The BPEL Runtime</h2>
-    <p>The BPEL Runtime is all you need to get started with BPEL: binaries, third party
-    libraries, examples, documentation and sources.</p>
+        <p>The BPEL Runtime is all you need to get started with BPEL: binaries, 
+        third party libraries, examples, documentation and sources.</p>
 
     <h2>BPEL Runtime directories</h2>
-    <table cellspacing="5" class="deftable">
+        <table cellspacing="5" class="deftable" width="75%">
       <tr>
-        <td class="term">config</td>
-        <td class="def">The product configuration files are found here. For ease of
-        testing and development, the Hibernate configuration points to the default
-        HSQL data source in JBoss AS.</td>
+            <td class="termFirst" width="15%">config</td>
+            <td class="defFirst">Contains the configuration files. Note
+            that for easy testing and development, the provided hibernate
+            configuration points to the in-memory jbpm database.</td>
       </tr>
       <tr>
-        <td class="term">doc</td>
-        <td class="def">Contains the <a href="doc/userguide/html/index.html"> user
-        guide</a> and the <a href="doc/api/index.html">API specification</a>.</td>
+            <td class="term" width="15%">doc</td>
+            <td class="def">Contains the <a href="doc/userguide/html/index.html">
+              user guide</a> and the <a href="doc/api/index.html">API 
+              specification</a>.</td>
       </tr>
       <tr>
-        <td class="term">examples</td>
-        <td class="def">Each example is a separate project that you can compile and run
-        with ant or eclipse.</td>
+            <td class="term" width="15%">examples</td>
+            <td class="def">Each example is a separate project that you can
+            compile and run with ant or eclipse.</td>
       </tr>
       <tr>
-        <td class="term">lib</td>
-        <td class="def">Provides open source, third-party libraries so you do not have
-        to download them separately.</td>
+            <td class="term" width="15%">lib</td>
+            <td class="def">Supplies thirdparty libraries and their licenses
+            so you do not have to download them separately.</td>
       </tr>
       <tr>
-        <td class="term">src</td>
-        <td class="def">The complete Java source code, useful for debugging.</td>
+            <td class="term" width="15%">src</td>
+            <td class="def">Java source files.</td>
+          </tr>
+        </table>
+
+        <!-- FOOTER --></td>
       </tr>
     </table>
-    <!-- FOOTER -->
     </td>
   </tr>
 </table>
-
-<div id="footer">
-<div class="leftcurve"></div>
-<div><a href="http://www.jbpm.org"><img
-  src="doc/userguide/html/images/jbpm_logo.png" alt="JBoss jBPM" width="125"
-  height="41" border="0" /></a><br/></div>
-</div>
-
-</div>
-
 </body>
 
 </html>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/enterprise/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/enterprise/build.xml
--- jpdl-3.2.3.GA/bpel/enterprise/build.xml	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/enterprise/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,4 +1,4 @@
-<project name="jbpm.bpel.enterprise" default="install.ear">
+<project name="jbpm.bpel.enterprise" default="install.ejb">
 
   <!-- project specific properties -->
   <property name="jbpm.root" value="../.." />
@@ -13,7 +13,7 @@
 
   <!-- project specific targets -->
   <target name="compile.dependencies" depends="define.libs.classpath">
-    <ant antfile="${jbpm.root}/bpel/library/build.xml" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.jar" inheritall="no" />
     <path id="compile.classpath">
       <path refid="libs.classpath" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
@@ -21,14 +21,10 @@
     </path>
   </target>
 
-  <!-- do not include resources as if the ejb module were a library -->
-  <!-- let target package.ejb decide what resources to include and where to place them -->
-  <target name="include.resources" />
-
   <target name="create.manifest">
     <mkdir dir="target/META-INF" />
     <manifest file="target/META-INF/MANIFEST.MF">
-      <attribute name="Implementation-Title" value="jBPM BPEL Enterprise Application" />
+      <attribute name="Implementation-Title" value="jBPM BPEL Enterprise Beans" />
       <attribute name="Implementation-Version" value="${lib.jbpm.bpel.version} (date:${now})" />
       <attribute name="Implementation-URL" value="http://www.jboss.org/products/jbpm" />
       <attribute name="Implementation-Vendor" value="JBoss Inc." />
@@ -36,135 +32,36 @@
     </manifest>
   </target>
 
-  <target name="package.ejb" depends="enterprise">
-    <!-- extract the jpdl enterprise jar -->
-    <mkdir dir="target" />
-    <unjar dest="target" src="${lib.jbpm.enterprise.local}">
-      <patternset>
-        <include name="jbpm-enterprise.jar" />
-      </patternset>
-    </unjar>
-    <mkdir dir="target/META-INF" />
-    <jar destfile="target/jbpm-enterprise.jar" update="yes">
-	    <manifest>
-		    <attribute name="Class-Path" value="lib/${lib.commons.lang.name} lib/${lib.jaxen.name}
-lib/${lib.jbpm.jpdl.jar.file} lib/${lib.jbpm.identity.jar.file} 
-lib/${lib.jbpm.bpel.jar.file} lib/${lib.jbpm.bpel.config.file} 
-lib/${lib.jbpm.bpel.container.name}" />
-	    </manifest>
+  <!-- do not include resources as if the ejb module were a library -->
+  <!-- let target package.ejb decide what resources to include and where to place them -->
+  <target name="include.resources" />
+
+  <target name="package.ejb"
+          depends="compile, create.manifest"
+          description="creates the jbpm bpel enterprise beans module">
+    <!-- get the jpdl enterprise classes -->
+    <mkdir dir="target/${lib.jbpm.enterprise.file}" />
+    <unjar dest="target/${lib.jbpm.enterprise.file}" src="${lib.jbpm.enterprise.local}" />
+    <mkdir dir="target/jbpm-enterprise.jar" />
+    <unjar dest="target/jbpm-enterprise.jar"
+           src="target/${lib.jbpm.enterprise.file}/jbpm-enterprise.jar" />
+
+    <jar destfile="${lib.jbpm.bpel.enterprise.target}" manifest="target/META-INF/MANIFEST.MF">
+      <!-- jpdl enterprise classes -->
+      <fileset dir="target/jbpm-enterprise.jar"
+               includes="org/jbpm/**"
+               excludes="org/jbpm/scheduler/**" />
+      <!-- bpel enterprise classes -->
+      <fileset dir="target/classes" />
+      <!-- deployment descriptors -->
+      <zipfileset dir="src/main/resources/ejb" prefix="META-INF" />
     </jar>
   </target>
 
-  <target name="install.ear"
-          depends="package.ear"
-          description="install enterprise app to local repository">
+  <target name="install.ejb" depends="package.ejb">
     <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
     <copy todir="${local.repository}/${lib.jbpm.bpel.dir}"
           file="${lib.jbpm.bpel.enterprise.target}" />
   </target>
 
-  <target name="create.config">
-    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.config" inheritall="no" />
-
-    <mkdir dir="target/config" />
-    <unjar dest="target/config" src="${lib.jbpm.bpel.config.local}" />
-
-    <!-- use data source instead of jdbc connection -->
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[JDBC connection properties (begin) -->]]></replacetoken>
-      <replacevalue><![CDATA[JDBC connection properties (begin) ===]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[<!-- JDBC connection properties (end)]]></replacetoken>
-      <replacevalue><![CDATA[==== JDBC connection properties (end)]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[DataSource properties (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[DataSource properties (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[==== DataSource properties (end)]]></replacetoken>
-      <replacevalue><![CDATA[<!-- DataSource properties (end)]]></replacevalue>
-    </replace>
-
-    <!-- include identity mappings -->
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[identity mappings (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[identity mappings (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[==== identity mappings (end)]]></replacetoken>
-      <replacevalue><![CDATA[<!-- identity mappings (end)]]></replacevalue>
-    </replace>
-
-    <!-- use mysql instead of hsql
-    <replace file="target/config/jbpm.hibernate.cfg.xml">
-      <replacetoken><![CDATA[org.hibernate.dialect.HSQLDialect]]></replacetoken>
-      <replacevalue><![CDATA[org.hibernate.dialect.MySQLInnoDBDialect]]></replacevalue>
-    </replace>
-    -->
-
-    <!-- use enterprise instead of standard services -->
-    <replace file="target/config/jbpm.cfg.xml">
-      <replacetoken><![CDATA[Standard services (begin) -->]]></replacetoken>
-      <replacevalue><![CDATA[Standard services (begin) ===]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.cfg.xml">
-      <replacetoken><![CDATA[<!-- Standard services (end)]]></replacetoken>
-      <replacevalue><![CDATA[==== Standard services (end)]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.cfg.xml">
-      <replacetoken><![CDATA[Enterprise services (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[Enterprise services (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/config/jbpm.cfg.xml">
-      <replacetoken><![CDATA[==== Enterprise services (end)]]></replacetoken>
-      <replacevalue><![CDATA[<!-- Enterprise services (end)]]></replacevalue>
-    </replace>
-
-    <jar destfile="target/${lib.jbpm.bpel.config.file}"
-         manifest="target/config/META-INF/MANIFEST.MF">
-      <fileset dir="target/config" excludes="META-INF/**" />
-    </jar>
-  </target>
-
-  <target name="package.ear"
-          description="build enterprise application"
-          depends="package.ejb, create.config, create.manifest">
-    <!-- build binaries -->
-    <ant antfile="${jbpm.root}/bpel/console/build.xml" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/container/build.xml" inheritall="no" />
-    <copy tofile="target/${lib.jbpm.bpel.container.name}" 
-          file="${local.repository}/${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.container.jar.file}" />
-    <!-- build ear -->
-    <ear destfile="${lib.jbpm.bpel.enterprise.target}"
-         manifest="target/META-INF/MANIFEST.MF"
-         appxml="src/main/resources/ear/application.xml">
-      <!-- modules -->
-      <fileset file="${lib.jbpm.bpel.console.local}" />
-      <fileset file="target/jbpm-enterprise.jar" />
-      <!-- libraries -->
-      <zipfileset file="${lib.jbpm.jpdl.jar.local}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.identity.jar.local}" prefix="lib" />
-      <zipfileset file="${lib.jbpm.bpel.jar.local}" prefix="lib" />
-      <zipfileset file="target/${lib.jbpm.bpel.container.name}" prefix="lib" />
-      <zipfileset file="target/${lib.jbpm.bpel.config.file}" prefix="lib" />
-      <!-- dependencies -->
-      <zipfileset file="${lib.commons.lang.local}" prefix="lib" />
-      <zipfileset file="${lib.jaxen.local}" prefix="lib" />
-    </ear>
-  </target>
-
-  <target name="deploy.ear"
-          depends="install.ear"
-          description="deploy enterprise application to server">
-    <copy todir="${jboss.home}/server/${jboss.server}/deploy"
-          file="${lib.jbpm.bpel.enterprise.local}" />
-  </target>
-
-  <target name="undeploy.ear"
-          description="undeploy enterprise application from server">
-    <delete file="${jboss.home}/server/${jboss.server}/deploy/${lib.jbpm.bpel.application.name}" />
-  </target>
-
 </project>
\ No newline at end of file
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/enterprise/src/main: java
Only in jpdl-3.2.3.GA/bpel/enterprise/src/main/resources: ear
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/build.xml
--- jpdl-3.2.3.GA/bpel/examples/account/build.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/build.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="account" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/accounts.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/accounts.xml
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/accounts.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/accounts.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,6 +1,6 @@
 <accounts>
-  <account holder="alex" />
-  <account holder="fady" />
-  <account holder="koen" />
-  <account holder="tom" />
+  <account holder="manager" />
+  <account holder="shipper" />
+  <account holder="admin" />
+  <account holder="user" />
 </accounts>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/AccountSystem_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/AccountSystem_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/AccountSystem_Impl.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/java/org/jbpm/bpel/tutorial/account/AccountSystem_Impl.java	2009-02-06 09:17:28.000000000 +0100
@@ -28,7 +28,7 @@
 /**
  * Account system endpoint implementation bean.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class AccountSystem_Impl implements AccountSystem {
   
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/webservices.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/webservices.xml
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/webservices.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/webservices.xml	2009-02-06 09:17:28.000000000 +0100
@@ -15,7 +15,7 @@
       <!-- logical name for the port (unique within the module) -->
       <port-component-name>AccountSystemPort</port-component-name>
       <!-- WSDL port element (in WSDL implementation file) -->
-      <wsdl-port xmlns:portNS="http://jbpm.org/examples/account">portNS:AccountSystemPort</wsdl-port>
+      <wsdl-port xmlns:portNS="urn:samples:account">portNS:AccountSystemPort</wsdl-port>
       <!-- service endpoint interface class -->
       <service-endpoint-interface>org.jbpm.bpel.tutorial.account.AccountSystem</service-endpoint-interface>
       <!-- associated servlet (in web.xml) -->
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/wsdl/account-impl.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/wsdl/account-impl.wsdl
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/wsdl/account-impl.wsdl	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/wsdl/account-impl.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,41 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/account"
-  xmlns:tns="http://jbpm.org/examples/account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:account" xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/account" location="account.wsdl" />
+  <import namespace="urn:samples:account" location="account.wsdl" />
 
   <binding name="AccountSystemBinding" type="tns:AccountSystem">
 
     <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
 
     <operation name="checkAccess">
-      <soap:operation soapAction="http://jbpm.org/examples/account#verifyAccess" />
+      <soap:operation soapAction="urn:samples:account:action:verifyAccess" />
       <input>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </input>
       <output>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </output>
     </operation>
 
     <operation name="queryBalance">
-      <soap:operation soapAction="http://jbpm.org/examples/account#queryBalance" />
+      <soap:operation soapAction="urn:samples:account:action:queryBalance" />
       <input>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </input>
       <output>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </output>
     </operation>
 
     <operation name="updateBalance">
-      <soap:operation soapAction="http://jbpm.org/examples/account#updateBalance" />
+      <soap:operation soapAction="urn:samples:account:action:updateBalance" />
       <input>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </input>
       <output>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/account" />
+        <soap:body use="literal" namespace="urn:samples:account" />
       </output>
     </operation>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/wsdl/account.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/wsdl/account.wsdl
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/web/wsdl/account.wsdl	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/web/wsdl/account.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,17 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/account"
-  xmlns:tns="http://jbpm.org/examples/account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:account" xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="urn:samples:account" xmlns:typ="urn:samples:account"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/
+      http://schemas.xmlsoap.org/wsdl/">
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/account"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema">
 
       <complexType name="AccountOperation">
-        <annotation>
-          <documentation>account data transfer type</documentation>
-        </annotation>
         <sequence>
           <element name="customerName" type="xsd:string" />
           <element name="amount" type="xsd:double" />
@@ -23,42 +21,34 @@
   </types>
 
   <message name="customerMessage">
-    <documentation>customer name wrapper</documentation>
     <part name="customerName" type="xsd:string" />
   </message>
 
   <message name="accessMessage">
-    <documentation>access check response</documentation>
     <part name="granted" type="xsd:boolean" />
   </message>
 
   <message name="balanceMessage">
-    <documentation>account balance wrapper</documentation>
     <part name="balance" type="xsd:double" />
   </message>
 
   <message name="accountOperation">
-    <documentation>account operation request</documentation>
-    <part name="body" type="tns:AccountOperation" />
+    <part name="body" type="typ:AccountOperation" />
   </message>
 
   <portType name="AccountSystem">
-    <documentation>published account functions</documentation>
 
     <operation name="checkAccess">
-      <documentation>tell whether a customer has an active account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:accessMessage" />
     </operation>
 
     <operation name="queryBalance">
-      <documentation>retrieve the balance of an account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:balanceMessage" />
     </operation>
 
     <operation name="updateBalance">
-      <documentation>increase/decrease the balance of an account</documentation>
       <input message="tns:accountOperation" />
       <output message="tns:balanceMessage" />
     </operation>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/wstools.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/wstools.xml
--- jpdl-3.2.3.GA/bpel/examples/account/src/main/resources/wstools.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/account/src/main/resources/wstools.xml	2009-02-06 09:17:28.000000000 +0100
@@ -2,7 +2,7 @@
 <configuration xmlns="http://www.jboss.org/jbossws-tools">
   <global>
     <package-namespace package="org.jbpm.bpel.tutorial.account"
-      namespace="http://jbpm.org/examples/account" />
+      namespace="urn:samples:account" />
   </global>
   <wsdl-java file="wsdl/account-impl.wsdl">
     <mapping file="account-mapping.xml" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/build.xml
--- jpdl-3.2.3.GA/bpel/examples/atm/build.xml	2009-02-06 09:12:49.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/build.xml	2009-02-06 09:17:27.000000000 +0100
@@ -2,35 +2,23 @@
 <project name="atm" default="main">
 
   <import file="../common/bpel-build.xml" />
-  <import file="../common/test-build.xml" />
-
-  <!-- ============================ -->
-  <!-- === PARTNER REGISTRATION === -->
-  <!-- ============================ -->
-
-  <target name="register.partners"
-          depends="define.register.task"
-          description="register partner services">
-    <registerpartner baselocation="http://localhost:8080/ticket/ticketIssuer?wsdl" />
-    <registerpartner baselocation="http://localhost:8080/account/accountSystem?wsdl" />
-  </target>
 
   <!-- ============================= -->
   <!-- === INTERACTIVE EXECUTION === -->
   <!-- ============================= -->
 
-  <target name="launch.terminal"
-          depends="package.client, compile.test"
+  <target name="launch-terminal"
+          depends="compile-test"
           description="launches the interactive terminal">
-    <java classname="org.jbpm.bpel.tutorial.atm.terminal.AtmTerminal"
-          dir="${output.dir}"
-          fork="yes">
+    <antcall target="deploy-client" />
+    <java classname="org.jbpm.bpel.tutorial.atm.terminal.AtmTerminal" fork="yes">
       <classpath>
         <path refid="test.path" />
-        <pathelement location="${test.classes.dir}" />
+        <pathelement path="${output.test.classes.dir}" />
       </classpath>
       <jvmarg value="-Djava.endorsed.dirs=${jboss.home}/lib/endorsed" />
     </java>
+    <antcall target="undeploy-client" />
   </target>
 
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/atm.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/atm.bpel
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/atm.bpel	2009-02-06 09:12:43.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/atm.bpel	2009-02-06 09:17:27.000000000 +0100
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process name="AtmFrontEnd" targetNamespace="http://jbpm.org/examples/atm"
-  xmlns:tns="http://jbpm.org/examples/atm" xmlns:atm="http://jbpm.org/examples/atm"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:acc="http://jbpm.org/examples/account"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<process name="AtmFrontEnd" targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
+  xmlns:atm="urn:samples:atm" xmlns:typ="urn:samples:atm" xmlns:tic="urn:samples:ticket"
+  xmlns:acc="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
 
@@ -20,7 +19,7 @@
     <variable name="ticketMsg" messageType="tic:ticketMessage" />
     <!-- ATM connection flag -->
     <variable name="connected" type="xsd:boolean" />
-    <!-- customer access flag -->
+    <!-- customer session flag -->
     <variable name="logged" type="xsd:boolean" />
   </variables>
 
@@ -29,9 +28,9 @@
     <correlationSet name="atmInteraction" properties="tns:ticketId" />
   </correlationSets>
 
-  <sequence name="MainSeq">
+  <sequence name="mainSequence">
 
-    <scope name="TicketCreationUnit">
+    <scope name="ticketCreationUnit">
 
       <variables>
         <!-- ATM connection request -->
@@ -40,22 +39,22 @@
         <variable name="ticketReq" messageType="tic:ticketRequest" />
       </variables>
 
-      <sequence name="TicketCreationSeq">
+      <sequence name="ticketCreationSequence">
 
         <!-- receive a connection request -->
-        <receive name="AcceptConnection" partnerLink="atm" portType="atm:FrontEnd"
-          operation="connect" variable="connectReq" createInstance="yes" />
+        <receive name="connectIn" operation="connect" partnerLink="atm" portType="atm:FrontEnd"
+          variable="connectReq" createInstance="yes" />
 
         <!-- generate a ticket number -->
-        <invoke name="CreateTicket" partnerLink="ticket" portType="tic:TicketIssuer"
-          operation="createTicket" inputVariable="ticketReq" outputVariable="ticketMsg">
+        <invoke name="createTicket" operation="createTicket" partnerLink="ticket"
+          portType="tic:TicketIssuer" inputVariable="ticketReq" outputVariable="ticketMsg">
           <correlations>
             <correlation set="atmInteraction" pattern="in" initiate="yes" />
           </correlations>
         </invoke>
 
         <!-- send the ticket number back to the ATM -->
-        <reply name="SendTicketNumber" operation="connect" partnerLink="atm" portType="atm:FrontEnd"
+        <reply name="connectOut" operation="connect" partnerLink="atm" portType="atm:FrontEnd"
           variable="ticketMsg">
           <correlations>
             <correlation set="atmInteraction" />
@@ -67,7 +66,7 @@
     </scope>
 
     <!-- initialize the status flags -->
-    <assign name="InitializeStatus">
+    <assign name="initializeStatus">
       <copy>
         <from expression="true()" />
         <to variable="connected" />
@@ -79,7 +78,7 @@
     </assign>
 
     <!-- handle the ATM connection -->
-    <scope name="ConnectionUnit">
+    <scope name="connectionUnit">
 
       <variables>
         <!-- customer log on request -->
@@ -99,10 +98,10 @@
           </correlations>
 
           <!-- report the connection status -->
-          <sequence name="StatusSeq">
+          <sequence name="statusSequence">
 
             <!-- set a status string depending on the flag values -->
-            <switch name="StatusDecision">
+            <switch name="statusSwitch">
 
               <case condition="bpel:getVariableData('logged')">
 
@@ -140,7 +139,7 @@
             </switch>
 
             <!-- send the status back to the ATM -->
-            <reply name="SendStatus" operation="status" partnerLink="atm" portType="atm:FrontEnd"
+            <reply name="statusOut" operation="status" partnerLink="atm" portType="atm:FrontEnd"
               variable="statusRsp" />
 
           </sequence>
@@ -150,10 +149,10 @@
       </eventHandlers>
 
       <!-- process ATM requests, one at a time -->
-      <while name="ConnectionLoop" condition="bpel:getVariableData('connected')">
+      <while name="connectionLoop" condition="bpel:getVariableData('connected')">
 
         <!-- listen for either disconnect or log on request -->
-        <pick name="ConnectionMenu">
+        <pick name="connectionMenu">
 
           <onMessage operation="disconnect" partnerLink="atm" portType="atm:FrontEnd"
             variable="ticketMsg">
@@ -162,8 +161,8 @@
               <correlation set="atmInteraction" />
             </correlations>
 
-            <!-- turn off connected flag -->
-            <assign name="SetDisconnected">
+            <!-- turn off connected flag for breaking the connection loop -->
+            <assign name="setDisconnected">
               <copy>
                 <from expression="false()" />
                 <to variable="connected" />
@@ -179,15 +178,15 @@
               <correlation set="atmInteraction" />
             </correlations>
 
-            <!-- handle account access -->
-            <scope name="AccountUnit">
+            <!-- handle the customer session -->
+            <scope name="customerUnit">
 
               <variables>
                 <!-- customer name wrapper -->
                 <variable name="customerMsg" messageType="acc:customerMessage" />
                 <!-- access check response -->
                 <variable name="accessMsg" messageType="acc:accessMessage" />
-                <!-- customer access acknowledgement -->
+                <!-- customer log on response -->
                 <variable name="logOnRsp" messageType="atm:logOnResponse" />
                 <!-- account balance wrapper -->
                 <variable name="balanceMsg" messageType="acc:balanceMessage" />
@@ -195,11 +194,11 @@
                 <variable name="balanceChange" messageType="atm:balanceChange" />
                 <!-- account system operation request -->
                 <variable name="accountOperation" messageType="acc:accountOperation" />
-                <!-- customer access fault -->
+                <!-- customer log on fault -->
                 <variable name="unauthorizedAccess" messageType="atm:unauthorizedAccess" />
                 <!-- withdraw fault -->
                 <variable name="insufficientFunds" messageType="atm:insufficientFunds" />
-                <!-- resulting balance after withdrawal -->
+                <!-- resulting balance after withdraw -->
                 <variable name="newBalance" type="xsd:double" />
               </variables>
 
@@ -208,10 +207,10 @@
                 <correlationSet name="customerInteraction" properties="tns:customerId" />
               </correlationSets>
 
-              <sequence name="AccountSeq">
+              <sequence name="customerSequence">
 
                 <!-- populate access check request -->
-                <assign name="PrepareAccessCheck">
+                <assign name="fillAccessCheck">
                   <copy>
                     <from variable="logOnReq" part="customerName" />
                     <to variable="customerMsg" part="customerName" />
@@ -219,7 +218,7 @@
                 </assign>
 
                 <!-- check account access privilege -->
-                <invoke name="CheckAccess" operation="checkAccess" partnerLink="account"
+                <invoke name="checkAccess" operation="checkAccess" partnerLink="account"
                   portType="acc:AccountSystem" inputVariable="customerMsg"
                   outputVariable="accessMsg">
                   <correlations>
@@ -227,16 +226,16 @@
                   </correlations>
                 </invoke>
 
-                <!-- decide outcome of customer access request -->
-                <switch name="AccessDecision">
+                <!-- decide outcome of customer session request -->
+                <switch name="accessDecision">
 
                   <case condition="bpel:getVariableData('accessMsg', 'granted')">
 
-                    <!-- grant customer access -->
-                    <sequence name="AccessGrantedSeq">
+                    <!-- accept customer session -->
+                    <sequence name="accessGrantedSequence">
 
-                      <!-- turn on logged flag -->
-                      <assign name="SetLoggedOn">
+                      <!-- turn on logged flag for starting session loop  -->
+                      <assign name="setLoggedOn">
                         <copy>
                           <from expression="true()" />
                           <to variable="logged" />
@@ -244,8 +243,8 @@
                       </assign>
 
                       <!-- send acknowledgement back to ATM -->
-                      <reply name="GrantAccess" operation="logOn" partnerLink="atm"
-                        portType="atm:FrontEnd" variable="logOnRsp" />
+                      <reply operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
+                        variable="logOnRsp" />
 
                     </sequence>
 
@@ -253,20 +252,20 @@
 
                   <otherwise>
 
-                    <!-- deny customer access -->
-                    <sequence name="AccessDeniedSeq">
+                    <!-- reject customer session -->
+                    <sequence name="accessDeniedSequence">
 
-                      <!-- populate access fault -->
-                      <assign name="PrepareAccessDenial">
+                      <!-- populate the log on fault -->
+                      <assign name="fillAccessDenial">
                         <copy>
                           <from variable="logOnReq" part="customerName" />
                           <to variable="unauthorizedAccess" part="detail"
-                            query="/atm:unauthorizedAccess/customerName" />
+                            query="/typ:unauthorizedAccess/customerName" />
                         </copy>
                       </assign>
 
-                      <!-- send fault back to ATM -->
-                      <reply name="DenyAccess" operation="logOn" partnerLink="atm"
+                      <!-- send fault back to the ATM -->
+                      <reply name="logOnOut" operation="logOn" partnerLink="atm"
                         portType="atm:FrontEnd" variable="unauthorizedAccess"
                         faultName="atm:unauthorizedAccess" />
 
@@ -276,10 +275,10 @@
 
                 </switch>
 
-                <!-- accept account requests, one at a time -->
-                <while name="AccountLoop" condition="bpel:getVariableData('logged')">
+                <!-- process customer requests, one at a time -->
+                <while name="customerLoop" condition="bpel:getVariableData('logged')">
 
-                  <pick name="AccountMenu">
+                  <pick name="customerMenu">
 
                     <onMessage operation="logOff" partnerLink="atm" portType="atm:FrontEnd"
                       variable="customerMsg">
@@ -288,8 +287,8 @@
                         <correlation set="customerInteraction" />
                       </correlations>
 
-                      <!-- turn off logged flag -->
-                      <assign name="SetLoggedOff">
+                      <!-- turn off logged flag for breaking the customer loop -->
+                      <assign name="setLoggedOff">
                         <copy>
                           <from expression="false()" />
                           <to variable="logged" />
@@ -305,10 +304,10 @@
                         <correlation set="customerInteraction" />
                       </correlations>
 
-                      <sequence name="BalanceSeq">
+                      <sequence name="balanceSequence">
 
                         <!-- get current account balance -->
-                        <invoke name="QueryBalance" operation="queryBalance" partnerLink="account"
+                        <invoke operation="queryBalance" partnerLink="account"
                           portType="acc:AccountSystem" inputVariable="customerMsg"
                           outputVariable="balanceMsg">
                           <correlations>
@@ -316,8 +315,8 @@
                           </correlations>
                         </invoke>
 
-                        <!-- return balance to ATM -->
-                        <reply name="TellBalance" operation="getBalance" partnerLink="atm"
+                        <!-- hand the balance back to the ATM -->
+                        <reply name="getBalanceOut" operation="getBalance" partnerLink="atm"
                           portType="atm:FrontEnd" variable="balanceMsg" />
 
                       </sequence>
@@ -331,10 +330,10 @@
                         <correlation set="customerInteraction" />
                       </correlations>
 
-                      <sequence name="DepositSeq">
+                      <sequence name="depositSequence">
 
                         <!-- populate balance update request -->
-                        <assign name="PrepareDeposit">
+                        <assign name="fillDepositUpdate">
                           <copy>
                             <from variable="balanceChange" part="customerName" />
                             <to variable="accountOperation" part="body" query="/body/customerName" />
@@ -346,7 +345,7 @@
                         </assign>
 
                         <!-- post positive balance update -->
-                        <invoke name="UpdateBalance" operation="updateBalance" partnerLink="account"
+                        <invoke name="updateBalance" operation="updateBalance" partnerLink="account"
                           portType="acc:AccountSystem" inputVariable="accountOperation"
                           outputVariable="balanceMsg">
                           <correlations>
@@ -355,7 +354,7 @@
                         </invoke>
 
                         <!-- make new balance available to ATM -->
-                        <reply name="TellNewBalance" operation="deposit" partnerLink="atm"
+                        <reply name="depositOut" operation="deposit" partnerLink="atm"
                           portType="atm:FrontEnd" variable="balanceMsg" />
 
                       </sequence>
@@ -369,10 +368,10 @@
                         <correlation set="customerInteraction" />
                       </correlations>
 
-                      <sequence name="WithdrawSeq">
+                      <sequence name="withdrawSequence">
 
                         <!-- populate balance query request -->
-                        <assign name="PrepareBalanceQuery">
+                        <assign name="fillWithdrawQuery">
                           <copy>
                             <from variable="balanceChange" part="customerName" />
                             <to variable="customerMsg" part="customerName" />
@@ -380,7 +379,7 @@
                         </assign>
 
                         <!-- get current account balance -->
-                        <invoke name="QueryBalance" operation="queryBalance" partnerLink="account"
+                        <invoke name="queryBalance" operation="queryBalance" partnerLink="account"
                           portType="acc:AccountSystem" inputVariable="customerMsg"
                           outputVariable="balanceMsg">
                           <correlations>
@@ -388,8 +387,8 @@
                           </correlations>
                         </invoke>
 
-                        <!-- evaluate amount that would remain in account -->
-                        <assign name="EvaluateNewBalance">
+                        <!-- compute amount that would remain in the account -->
+                        <assign name="decreaseBalance">
                           <copy>
                             <from
                               expression="bpel:getVariableData('balanceMsg', 'balance') -
@@ -399,15 +398,15 @@
                         </assign>
 
                         <!-- decide outcome of withdraw request -->
-                        <switch name="BalanceDecision">
+                        <switch name="balanceDecision">
 
                           <case condition="bpel:getVariableData('newBalance') &gt;= 0.0">
 
-                            <!-- accept withdrawal -->
-                            <sequence name="PositiveBalanceSeq">
+                            <!-- accept withdrawing -->
+                            <sequence name="positiveBalanceSequence">
 
                               <!-- populate balance update request -->
-                              <assign name="PrepareWithdraw">
+                              <assign name="fillWithdrawUpdate">
                                 <copy>
                                   <from variable="balanceChange" part="customerName" />
                                   <to variable="accountOperation" part="body"
@@ -421,7 +420,7 @@
                               </assign>
 
                               <!-- post negative balance update -->
-                              <invoke name="UpdateBalance" operation="updateBalance"
+                              <invoke name="updateBalance" operation="updateBalance"
                                 partnerLink="account" portType="acc:AccountSystem"
                                 inputVariable="accountOperation" outputVariable="balanceMsg">
                                 <correlations>
@@ -430,7 +429,7 @@
                               </invoke>
 
                               <!-- return new balance to ATM -->
-                              <reply name="TellNewBalance" operation="withdraw" partnerLink="atm"
+                              <reply name="withdrawOut" operation="withdraw" partnerLink="atm"
                                 portType="atm:FrontEnd" variable="balanceMsg" />
 
                             </sequence>
@@ -439,25 +438,25 @@
 
                           <otherwise>
 
-                            <!-- reject withdrawal -->
-                            <sequence name="NegativeBalanceSeq">
+                            <!-- reject withdrawing -->
+                            <sequence name="negativeBalanceSequence">
 
                               <!-- populate withdraw fault -->
-                              <assign name="PrepareRejection">
+                              <assign name="fillNoFunds">
                                 <copy>
                                   <from variable="balanceChange" part="customerName" />
                                   <to variable="insufficientFunds" part="detail"
-                                    query="/atm:insufficientFunds/customerName" />
+                                    query="/typ:insufficientFunds/customerName" />
                                 </copy>
                                 <copy>
                                   <from variable="balanceMsg" part="balance" />
                                   <to variable="insufficientFunds" part="detail"
-                                    query="/atm:insufficientFunds/amount" />
+                                    query="/typ:insufficientFunds/amount" />
                                 </copy>
                               </assign>
 
                               <!-- return fault to ATM -->
-                              <reply name="RejectWithdraw" operation="withdraw" partnerLink="atm"
+                              <reply name="withdrawFlt" operation="withdraw" partnerLink="atm"
                                 portType="atm:FrontEnd" variable="insufficientFunds"
                                 faultName="atm:insufficientFunds" />
 
@@ -473,8 +472,8 @@
 
                     <onAlarm for="'PT2M'">
 
-                      <!-- turn off logged flag after a period of inactivity -->
-                      <assign name="SetLoggedOff">
+                      <!-- log off after 2 minutes of inactivity -->
+                      <assign name="setLoggedOff">
                         <copy>
                           <from expression="false()" />
                           <to variable="logged" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/atm.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/atm.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/atm.wsdl	2009-02-06 09:12:43.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/atm.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,14 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/atm" xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:atm="http://jbpm.org/examples/atm" xmlns:tic="http://jbpm.org/examples/ticket"
-  xmlns:acc="http://jbpm.org/examples/account"
-  xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
+  xmlns:atm="urn:samples:atm" xmlns:tic="urn:samples:ticket" xmlns:acc="urn:samples:account"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/atm" location="interface/frontend.wsdl" />
-  <import namespace="http://jbpm.org/examples/ticket" location="interface/ticket.wsdl" />
-  <import namespace="http://jbpm.org/examples/account" location="interface/account.wsdl" />
+  <import namespace="urn:samples:atm" location="interface/frontend.wsdl" />
+  <import namespace="urn:samples:ticket" location="interface/ticket.wsdl" />
+  <import namespace="urn:samples:account" location="interface/account.wsdl" />
 
   <!-- customer name property -->
   <bpel:property name="customerId" type="xsd:string" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/account.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/account.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/account.wsdl	2009-02-06 09:12:43.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/account.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,17 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/account"
-  xmlns:tns="http://jbpm.org/examples/account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<definitions targetNamespace="urn:samples:account" xmlns:tns="urn:samples:account"
+  xmlns:typ="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/account"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema">
 
+      <!-- account data transfer type -->
       <complexType name="AccountOperation">
-        <annotation>
-          <documentation>account data transfer type</documentation>
-        </annotation>
         <sequence>
           <element name="customerName" type="xsd:string" />
           <element name="amount" type="xsd:double" />
@@ -22,43 +19,43 @@
 
   </types>
 
+  <!-- customer name wrapper -->
   <message name="customerMessage">
-    <documentation>customer name wrapper</documentation>
     <part name="customerName" type="xsd:string" />
   </message>
 
+  <!-- access check response -->
   <message name="accessMessage">
-    <documentation>access check response</documentation>
     <part name="granted" type="xsd:boolean" />
   </message>
 
+  <!-- account balance wrapper -->
   <message name="balanceMessage">
-    <documentation>account balance wrapper</documentation>
     <part name="balance" type="xsd:double" />
   </message>
 
+  <!-- account operation request -->
   <message name="accountOperation">
-    <documentation>account operation request</documentation>
-    <part name="body" type="tns:AccountOperation" />
+    <part name="body" type="typ:AccountOperation" />
   </message>
 
+  <!-- published account functions -->
   <portType name="AccountSystem">
-    <documentation>published account functions</documentation>
 
+    <!-- tell whether a customer has an active account -->
     <operation name="checkAccess">
-      <documentation>tell whether a customer has an active account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:accessMessage" />
     </operation>
 
+    <!-- retrieve the balance of an account -->
     <operation name="queryBalance">
-      <documentation>retrieve the balance of an account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:balanceMessage" />
     </operation>
 
+    <!-- increase/decrease the balance of an account -->
     <operation name="updateBalance">
-      <documentation>increase/decrease the balance of an account</documentation>
       <input message="tns:accountOperation" />
       <output message="tns:balanceMessage" />
     </operation>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/frontend.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/frontend.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/frontend.wsdl	2009-02-06 09:12:43.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/frontend.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/atm" xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:acc="http://jbpm.org/examples/account"
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
+  xmlns:typ="urn:samples:atm" xmlns:tic="urn:samples:ticket" xmlns:acc="urn:samples:account"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
-  <import namespace="http://jbpm.org/examples/account" location="account.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:account" location="account.wsdl" />
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/atm"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:atm" xmlns="http://www.w3.org/2001/XMLSchema">
 
       <complexType name="UnauthorizedAccess">
         <sequence>
@@ -17,7 +16,7 @@
         </sequence>
       </complexType>
 
-      <element name="unauthorizedAccess" type="tns:UnauthorizedAccess" />
+      <element name="unauthorizedAccess" type="typ:UnauthorizedAccess" />
 
       <complexType name="InsufficientFunds">
         <sequence>
@@ -26,7 +25,7 @@
         </sequence>
       </complexType>
 
-      <element name="insufficientFunds" type="tns:InsufficientFunds" />
+      <element name="insufficientFunds" type="typ:InsufficientFunds" />
 
     </schema>
 
@@ -51,59 +50,59 @@
   </message>
 
   <message name="unauthorizedAccess">
-    <part name="detail" element="tns:unauthorizedAccess" />
+    <part name="detail" element="typ:unauthorizedAccess" />
   </message>
 
   <message name="insufficientFunds">
-    <part name="detail" element="tns:insufficientFunds" />
+    <part name="detail" element="typ:insufficientFunds" />
   </message>
 
+  <!-- bank functions available to ATMs -->
   <portType name="FrontEnd">
-    <documentation>bank functions available to ATMs</documentation>
 
+    <!-- initiate bank connection -->
     <operation name="connect">
-      <documentation>initiate bank connection</documentation>
       <input message="tns:connectRequest" />
       <output message="tic:ticketMessage" />
     </operation>
 
+    <!-- terminate bank connection -->
     <operation name="disconnect">
-      <documentation>terminate bank connection</documentation>
       <input message="tic:ticketMessage" />
     </operation>
 
+    <!-- retrieve bank connection status -->
     <operation name="status">
-      <documentation>retrieve bank connection status</documentation>
       <input message="tic:ticketMessage" />
       <output message="tns:statusResponse" />
     </operation>
 
+    <!-- initiate customer session -->
     <operation name="logOn">
-      <documentation>initiate customer access</documentation>
       <input message="tns:logOnRequest" />
       <output message="tns:logOnResponse" />
       <fault name="unauthorizedAccess" message="tns:unauthorizedAccess" />
     </operation>
 
+    <!-- terminate customer session -->
     <operation name="logOff">
-      <documentation>terminate customer access</documentation>
       <input message="acc:customerMessage" />
     </operation>
 
+    <!-- retrieve account balance -->
     <operation name="getBalance">
-      <documentation>retrieve account balance</documentation>
       <input message="acc:customerMessage" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- increase account balance -->
     <operation name="deposit">
-      <documentation>increase account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- decrease account balance -->
     <operation name="withdraw">
-      <documentation>decrease account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
       <fault name="insufficientFunds" message="tns:insufficientFunds" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/ticket.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/ticket.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel/interface/ticket.wsdl	2009-02-06 09:12:43.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel/interface/ticket.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <message name="ticketRequest">
     <documentation>ticket creation request</documentation>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.bpel
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.bpel	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.bpel	2009-02-06 09:17:27.000000000 +0100
@@ -1,544 +1,306 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process name="AtmFrontEnd" targetNamespace="http://jbpm.org/examples/atm"
-  xmlns:acc="http://jbpm.org/examples/account" xmlns:atm="http://jbpm.org/examples/atm"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="atm.wsdl"
-    namespace="http://jbpm.org/examples/atm" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/frontend.wsdl"
-    namespace="http://jbpm.org/examples/atm" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/ticket.wsdl"
-    namespace="http://jbpm.org/examples/ticket" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/account.wsdl"
-    namespace="http://jbpm.org/examples/account" />
-
-  <partnerLinks>
-    <partnerLink myRole="FrontEnd" name="atm" partnerLinkType="atm:Atm-Front">
-      <documentation>relationship with the ATM</documentation>
-    </partnerLink>
-  </partnerLinks>
-
-  <variables>
-    <variable name="connected" type="xsd:boolean">
-      <documentation>ATM connection flag</documentation>
-    </variable>
-    <variable name="logged" type="xsd:boolean">
-      <documentation>customer access flag</documentation>
-    </variable>
-    <variable messageType="tic:ticketMessage" name="ticketMsg">
-      <documentation>ticket number wrapper</documentation>
-    </variable>
-  </variables>
-
-  <correlationSets>
-    <correlationSet name="atmInteraction" properties="atm:ticketId">
-      <documentation>conversation with a connected ATM</documentation>
-    </correlationSet>
-  </correlationSets>
-
-  <sequence name="MainSeq">
-
-    <scope name="TicketCreationUnit">
-
-      <partnerLinks>
-        <partnerLink name="ticket" partnerLinkType="atm:Front-Ticket" partnerRole="TicketIssuer">
-          <documentation>relationship with the ticket issuer</documentation>
-        </partnerLink>
-      </partnerLinks>
-
-      <variables>
-        <variable messageType="tic:ticketRequest" name="ticketReq">
-          <documentation>ATM connection request</documentation>
-        </variable>
-        <variable messageType="atm:connectRequest" name="connectReq">
-          <documentation>ticket creation request</documentation>
-        </variable>
-      </variables>
-
-      <sequence name="TicketCreationSeq">
-
-        <receive createInstance="yes" name="AcceptConnection" operation="connect" partnerLink="atm"
-          portType="atm:FrontEnd" variable="connectReq">
-          <documentation>receive a connection request</documentation>
-        </receive>
-
-        <invoke inputVariable="ticketReq" name="CreateTicket" operation="createTicket"
-          outputVariable="ticketMsg" partnerLink="ticket" portType="tic:TicketIssuer">
-          <documentation>generate a ticket number</documentation>
-          <correlations>
-            <correlation initiate="yes" pattern="in" set="atmInteraction" />
-          </correlations>
-        </invoke>
-
-        <reply name="SendTicketNumber" operation="connect" partnerLink="atm" portType="atm:FrontEnd"
-          variable="ticketMsg">
-          <documentation>send the ticket number back to the ATM</documentation>
-          <correlations>
-            <correlation initiate="no" set="atmInteraction" />
-          </correlations>
-        </reply>
-
-      </sequence>
-
-    </scope>
-
-    <assign name="InitializeStatus" validate="no">
-      <documentation>initialize the status flags</documentation>
-      <copy>
-        <from>true()</from>
-        <to variable="connected" />
-      </copy>
-      <copy>
-        <from>false()</from>
-        <to variable="logged" />
-      </copy>
-    </assign>
-
-    <scope name="ConnectionUnit">
-      <documentation>handle the ATM connection</documentation>
-
-      <variables>
-        <variable messageType="atm:logOnRequest" name="logOnReq">
-          <documentation>customer log on request</documentation>
-        </variable>
-        <variable messageType="atm:statusResponse" name="statusRsp">
-          <documentation>connection status response</documentation>
-        </variable>
-      </variables>
-
-      <eventHandlers>
-        <onEvent messageType="tic:ticketMessage" operation="status" partnerLink="atm"
-          portType="atm:FrontEnd" variable="ticketMsg">
-
-          <correlations>
-            <correlation initiate="no" set="atmInteraction" />
-          </correlations>
-
-          <scope name="StatusUnit">
-
-            <sequence name="StatusSeq">
-
-              <if name="StatusDecision">
-
-                <condition>$logged</condition>
-                <assign name="SetStatusLogged" validate="no">
-                  <copy>
-                    <from>'logged'</from>
-                    <to part="status" variable="statusRsp" />
-                  </copy>
-                </assign>
-
-                <elseif>
-                  <condition>$connected</condition>
-                  <assign name="SetStatusConnected" validate="no">
-                    <copy>
-                      <from>'connected'</from>
-                      <to part="status" variable="statusRsp" />
-                    </copy>
-                  </assign>
-                </elseif>
-
-                <else>
-                  <assign name="Assign" validate="no">
-                    <copy>
-                      <from>'disconnected'</from>
-                      <to part="status" variable="statusRsp" />
-                    </copy>
-                  </assign>
-                </else>
-
-              </if>
-
-              <reply name="SendStatus" operation="status" partnerLink="atm" portType="atm:FrontEnd"
-                variable="statusRsp" />
-
-            </sequence>
-
-          </scope>
-
-        </onEvent>
-
-      </eventHandlers>
-
-      <while name="ConnectionLoop">
-        <documentation>accept ATM requests, one at a time</documentation>
-        <condition>$connected</condition>
-
-        <pick name="ConnectionMenu">
-          <documentation>listen for either disconnect or log on request</documentation>
-
-          <onMessage operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
-            variable="logOnReq">
-
-            <correlations>
-              <correlation initiate="no" set="atmInteraction" />
-            </correlations>
-
-            <scope name="AccountUnit">
-              <documentation>handle account access</documentation>
-
-              <partnerLinks>
-                <partnerLink name="account" partnerLinkType="atm:Front-Account"
-                  partnerRole="AccountSystem">
-                  <documentation>relationship with the account system</documentation>
-                </partnerLink>
-              </partnerLinks>
-
-              <variables>
-                <variable messageType="acc:accessMessage" name="accessMsg">
-                  <documentation>access check response</documentation>
-                </variable>
-                <variable messageType="acc:customerMessage" name="customerMsg">
-                  <documentation>customer name wrapper</documentation>
-                </variable>
-                <variable messageType="atm:logOnResponse" name="logOnRsp">
-                  <documentation>customer access acknowledgment</documentation>
-                </variable>
-                <variable messageType="atm:unauthorizedAccess" name="unauthorizedAccess">
-                  <documentation>customer access fault</documentation>
-                </variable>
-                <variable messageType="acc:balanceMessage" name="balanceMsg">
-                  <documentation>account balance wrapper</documentation>
-                </variable>
-                <variable messageType="atm:balanceChange" name="balanceChange">
-                  <documentation>balance change request</documentation>
-                </variable>
-                <variable messageType="acc:accountOperation" name="accountOperation">
-                  <documentation>account system operation request</documentation>
-                </variable>
-                <variable name="newBalance" type="xsd:double">
-                  <documentation>resulting balance after withdrawal</documentation>
-                </variable>
-                <variable messageType="atm:insufficientFunds" name="insufficientFunds">
-                  <documentation>withdraw fault</documentation>
-                </variable>
-              </variables>
-
-              <correlationSets>
-                <correlationSet name="customerInteraction" properties="atm:customerId">
-                  <documentation>conversation with a logged customer</documentation>
-                </correlationSet>
-              </correlationSets>
-
-              <sequence name="AccountSeq">
-
-                <assign name="PrepareAccessCheck" validate="no">
-                  <documentation>populate access check request</documentation>
-                  <copy>
-                    <from part="customerName" variable="logOnReq" />
-                    <to part="customerName" variable="customerMsg" />
-                  </copy>
-                </assign>
-
-                <invoke inputVariable="customerMsg" name="CheckAccess" operation="checkAccess"
-                  outputVariable="accessMsg" partnerLink="account" portType="acc:AccountSystem">
-                  <documentation>check account access privilege</documentation>
-                  <correlations>
-                    <correlation initiate="yes" pattern="out" set="customerInteraction" />
-                  </correlations>
-                </invoke>
-
-                <if name="AccessDecision">
-                  <documentation>decide outcome of customer access request</documentation>
-                  <condition>$accessMsg.granted</condition>
-
-                  <sequence name="AccessGrantedSeq">
-                    <documentation>grant customer access</documentation>
-
-                    <assign name="SetLoggedOn" validate="no">
-                      <documentation>turn on logged flag</documentation>
-                      <copy>
-                        <from>true()</from>
-                        <to variable="logged" />
-                      </copy>
-                    </assign>
-
-                    <reply name="GrantAccess" operation="logOn" partnerLink="atm"
-                      portType="atm:FrontEnd" variable="logOnRsp">
-                      <documentation>send acknowledgment back to ATM</documentation>
-                    </reply>
-
-                  </sequence>
-
-                  <else>
-
-                    <sequence name="AccessDeniedSeq">
-                      <documentation>deny customer access</documentation>
-
-                      <assign name="PrepareAccessDenial" validate="no">
-                        <documentation>populate access fault</documentation>
-                        <copy>
-                          <from part="customerName" variable="logOnReq" />
-                          <to part="detail" variable="unauthorizedAccess">
-                            <query>customerName</query>
-                          </to>
-                        </copy>
-                      </assign>
-
-                      <reply name="DenyAccess" operation="logOn" partnerLink="atm"
-                        portType="atm:FrontEnd" variable="unauthorizedAccess"
-                        faultName="atm:unauthorizedAccess">
-                        <documentation>send fault back to ATM</documentation>
-                      </reply>
-
-                    </sequence>
-
-                  </else>
-
-                </if>
-
-                <while name="AccountLoop">
-                  <documentation>accept account requests, one at a time</documentation>
-                  <condition>$logged</condition>
-
-                  <pick name="AccountMenu">
-
-                    <onMessage operation="getBalance" partnerLink="atm" portType="atm:FrontEnd"
-                      variable="customerMsg">
-
-                      <correlations>
-                        <correlation initiate="no" set="customerInteraction" />
-                      </correlations>
-
-                      <sequence name="BalanceSeq">
-
-                        <invoke inputVariable="customerMsg" name="QueryBalance"
-                          operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"
-                          portType="acc:AccountSystem">
-                          <documentation>get current account balance</documentation>
-                        </invoke>
-
-                        <reply name="TellBalance" operation="getBalance" partnerLink="atm"
-                          portType="atm:FrontEnd" variable="balanceMsg">
-                          <documentation>return balance to ATM</documentation>
-                        </reply>
-
-                      </sequence>
-
-                    </onMessage>
-
-                    <onMessage operation="deposit" partnerLink="atm" portType="atm:FrontEnd"
-                      variable="balanceChange">
-
-                      <correlations>
-                        <correlation initiate="no" set="customerInteraction" />
-                      </correlations>
-
-                      <sequence name="DepositSeq">
-
-                        <assign name="PrepareDeposit" validate="no">
-                          <documentation>populate balance update request</documentation>
-                          <copy>
-                            <from part="customerName" variable="balanceChange" />
-                            <to part="body" variable="accountOperation">
-                              <query>customerName</query>
-                            </to>
-                          </copy>
-                          <copy>
-                            <from part="amount" variable="balanceChange" />
-                            <to part="body" variable="accountOperation">
-                              <query>amount</query>
-                            </to>
-                          </copy>
-                        </assign>
-
-                        <invoke inputVariable="accountOperation" name="UpdateBalance"
-                          operation="updateBalance" outputVariable="balanceMsg"
-                          partnerLink="account" portType="acc:AccountSystem">
-                          <documentation>post positive balance update</documentation>
-                          <correlations>
-                            <correlation initiate="no" pattern="out" set="customerInteraction" />
-                          </correlations>
-                        </invoke>
-
-                        <reply name="TellNewBalance" operation="deposit" partnerLink="atm"
-                          portType="atm:FrontEnd" variable="balanceMsg">
-                          <documentation>make new balance available to ATM</documentation>
-                        </reply>
-
-                      </sequence>
-
-                    </onMessage>
-
-                    <onMessage operation="withdraw" partnerLink="atm" portType="atm:FrontEnd"
-                      variable="balanceChange">
-
-                      <correlations>
-                        <correlation initiate="no" set="customerInteraction" />
-                      </correlations>
-
-                      <sequence name="WithdrawSeq">
-
-                        <assign name="PrepareBalanceQuery" validate="no">
-                          <documentation>populate balance query request</documentation>
-                          <copy>
-                            <from part="customerName" variable="balanceChange" />
-                            <to part="customerName" variable="customerMsg" />
-                          </copy>
-                        </assign>
-
-                        <invoke inputVariable="customerMsg" name="QueryBalance"
-                          operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"
-                          portType="acc:AccountSystem">
-                          <documentation>get current account balance</documentation>
-                          <correlations>
-                            <correlation initiate="no" pattern="out" set="customerInteraction" />
-                          </correlations>
-                        </invoke>
-
-                        <assign name="EvaluateNewBalance" validate="no">
-                          <documentation>
-                            evaluate amount that would remain in account
-                          </documentation>
-                          <copy>
-                            <from>$balanceMsg.balance - $balanceChange.amount</from>
-                            <to variable="newBalance" />
-                          </copy>
-                        </assign>
-
-                        <if name="BalanceDecision">
-                          <documentation>decide outcome of withdraw request</documentation>
-                          <condition>$newBalance >= 0.0</condition>
-
-                          <sequence name="PositiveBalanceSeq">
-                            <documentation>accept withdrawal</documentation>
-
-                            <assign name="PrepareWithdraw" validate="no">
-                              <documentation>populate balance update request</documentation>
-                              <copy>
-                                <from part="customerName" variable="balanceChange" />
-                                <to part="body" variable="accountOperation">
-                                  <query>customerName</query>
-                                </to>
-                              </copy>
-                              <copy>
-                                <from>-$balanceChange.amount</from>
-                                <to part="body" variable="accountOperation">
-                                  <query>amount</query>
-                                </to>
-                              </copy>
-                            </assign>
-
-                            <invoke inputVariable="accountOperation" name="UpdateBalance"
-                              operation="updateBalance" outputVariable="balanceMsg"
-                              partnerLink="account" portType="acc:AccountSystem">
-                              <documentation>post negative balance update</documentation>
-                              <correlations>
-                                <correlation initiate="no" pattern="out" set="customerInteraction" />
-                              </correlations>
-                            </invoke>
-
-                            <reply name="TellNewBalance" operation="withdraw" partnerLink="atm"
-                              portType="atm:FrontEnd" variable="balanceMsg">
-                              <documentation>return new balance to ATM</documentation>
-                            </reply>
-
-                          </sequence>
-
-                          <else>
-
-                            <sequence name="NegativeBalanceSeq">
-                              <documentation>reject withdrawal</documentation>
-
-                              <assign name="PrepareRejection" validate="no">
-                                <documentation>populate withdraw fault</documentation>
-                                <copy>
-                                  <from part="customerName" variable="balanceChange" />
-                                  <to part="detail" variable="insufficientFunds">
-                                    <query>customerName</query>
-                                  </to>
-                                </copy>
-                                <copy>
-                                  <from part="balance" variable="balanceMsg" />
-                                  <to part="detail" variable="insufficientFunds">
-                                    <query>amount</query>
-                                  </to>
-                                </copy>
-                              </assign>
-
-                              <reply name="RejectWithdraw" operation="withdraw" partnerLink="atm"
-                                portType="atm:FrontEnd" variable="insufficientFunds"
-                                faultName="atm:insufficientFunds">
-                                <documentation>return fault to ATM</documentation>
-                              </reply>
-
-                            </sequence>
-
-                          </else>
-
-                        </if>
-
-                      </sequence>
-
-                    </onMessage>
-
-                    <onMessage operation="logOff" partnerLink="atm" portType="atm:FrontEnd"
-                      variable="customerMsg">
-
-                      <correlations>
-                        <correlation initiate="no" set="customerInteraction" />
-                      </correlations>
-
-                      <assign name="SetLoggedOff" validate="no">
-                        <documentation>turn off logged flag</documentation>
-                        <copy>
-                          <from>false()</from>
-                          <to variable="logged" />
-                        </copy>
-                      </assign>
-
-                    </onMessage>
-
-                    <onAlarm>
-                      <for>'PT2M'</for>
-
-                      <assign name="SetLoggedOff" validate="no">
-                        <documentation>
-                          turn off logged flag after a period of inactivity
-                        </documentation>
-                        <copy>
-                          <from>false()</from>
-                          <to variable="logged" />
-                        </copy>
-                      </assign>
-
-                    </onAlarm>
-
-                  </pick>
-
-                </while>
-
-              </sequence>
-
-            </scope>
-
-          </onMessage>
-
-          <onMessage operation="disconnect" partnerLink="atm" portType="atm:FrontEnd"
-            variable="ticketMsg">
-
-            <correlations>
-              <correlation initiate="no" set="atmInteraction" />
-            </correlations>
-
-            <assign name="SetDisconnected" validate="no">
-              <documentation>turn off connected flag</documentation>
-              <copy>
-                <from>false()</from>
-                <to variable="connected" />
-              </copy>
-            </assign>
-
-          </onMessage>
-
-        </pick>
-
-      </while>
-
-    </scope>
-
-  </sequence>
-
-</process>
+<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:ns="urn:samples:atm" xmlns:ns0="urn:samples:ticket" xmlns:ns1="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema" exitOnStandardFault="yes" name="AtmFrontEnd" targetNamespace="urn:samples:atm">
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="atm.wsdl" namespace="urn:samples:atm"/>
+<bpws:import importType="http://www.w3.org/2001/XMLSchema" location="bundleentry://390/cache/www.w3.org/2001/XMLSchema.xsd" namespace="http://www.w3.org/2001/XMLSchema"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/frontend.wsdl" namespace="urn:samples:atm"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/ticket.wsdl" namespace="urn:samples:ticket"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/account.wsdl" namespace="urn:samples:account"/>
+<bpws:partnerLinks>
+<bpws:partnerLink myRole="FrontEnd" name="atm" partnerLinkType="ns:Atm-Front"/>
+</bpws:partnerLinks>
+<bpws:variables>
+<bpws:variable name="connected" type="xsd:boolean"/>
+<bpws:variable name="logged" type="xsd:boolean"/>
+<bpws:variable messageType="ns0:ticketMessage" name="ticketMsg"/>
+</bpws:variables>
+<bpws:correlationSets>
+<bpws:correlationSet name="atmInteraction" properties="ns:ticketId"/>
+</bpws:correlationSets>
+<bpws:sequence name="HiddenSequence1">
+<bpws:scope name="TicketCreationUnit">
+<bpws:partnerLinks>
+<bpws:partnerLink name="ticket" partnerLinkType="ns:Front-Ticket" partnerRole="TicketIssuer"/>
+</bpws:partnerLinks>
+<bpws:variables>
+<bpws:variable messageType="ns0:ticketRequest" name="ticketReq"/>
+<bpws:variable messageType="ns:connectRequest" name="connectReq"/>
+</bpws:variables>
+<bpws:sequence name="HiddenSequence">
+<bpws:receive createInstance="yes" name="AcceptConnection" operation="connect" partnerLink="atm" portType="ns:FrontEnd" variable="connectReq"/>
+<bpws:invoke inputVariable="ticketReq" name="CreateTicket" operation="createTicket" outputVariable="ticketMsg" partnerLink="ticket" portType="ns0:TicketIssuer">
+<bpws:correlations>
+<bpws:correlation initiate="yes" pattern="in" set="atmInteraction"/>
+</bpws:correlations>
+</bpws:invoke>
+<bpws:reply name="SendTicketNumber" operation="connect" partnerLink="atm" portType="ns:FrontEnd" variable="ticketMsg">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="atmInteraction"/>
+</bpws:correlations>
+</bpws:reply>
+</bpws:sequence>
+</bpws:scope>
+<bpws:assign name="InitializeStatus" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[true()]]></bpws:from>
+<bpws:to variable="connected"/>
+</bpws:copy>
+<bpws:copy>
+<bpws:from><![CDATA[false()]]></bpws:from>
+<bpws:to variable="logged"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:scope name="ConnectionUnit">
+<bpws:variables>
+<bpws:variable messageType="ns:logOnRequest" name="logOnReq"/>
+<bpws:variable messageType="ns:statusResponse" name="statusRsp"/>
+</bpws:variables>
+<bpws:eventHandlers>
+<bpws:onEvent messageType="ns0:ticketMessage" operation="status" partnerLink="atm" portType="ns:FrontEnd" variable="ticketMsg">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="atmInteraction"/>
+</bpws:correlations>
+<bpws:scope name="StatusUnit">
+<bpws:sequence name="HiddenSequence10">
+<bpws:switch name="DetermineStatus">
+<bpws:case>
+<bpws:condition><![CDATA[$logged]]></bpws:condition>
+<bpws:assign name="StatusIsLogged" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA['logged']]></bpws:from>
+<bpws:to part="status" variable="statusRsp"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:case>
+<bpws:case>
+<bpws:condition><![CDATA[$connected]]></bpws:condition>
+<bpws:assign name="StatusIsConnected" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA['connected']]></bpws:from>
+<bpws:to part="status" variable="statusRsp"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:case>
+<bpws:otherwise>
+<bpws:assign name="StatusIsDisconnected" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA['disconnected']]></bpws:from>
+<bpws:to part="status" variable="statusRsp"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:otherwise>
+</bpws:switch>
+<bpws:reply name="SendStatus" operation="status" partnerLink="atm" portType="ns:FrontEnd" variable="statusRsp"/>
+</bpws:sequence>
+</bpws:scope>
+</bpws:onEvent>
+</bpws:eventHandlers>
+<bpws:while name="ConnectionLoop">
+<bpws:condition><![CDATA[$connected]]></bpws:condition>
+<bpws:pick name="ConnectionMenu">
+<bpws:onMessage operation="logOn" partnerLink="atm" portType="ns:FrontEnd" variable="logOnReq">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="atmInteraction"/>
+</bpws:correlations>
+<bpws:scope name="AccountUnit">
+<bpws:partnerLinks>
+<bpws:partnerLink name="account" partnerLinkType="ns:Front-Account" partnerRole="AccountSystem"/>
+</bpws:partnerLinks>
+<bpws:variables>
+<bpws:variable messageType="ns1:accessMessage" name="accessMsg"/>
+<bpws:variable messageType="ns1:customerMessage" name="customerMsg"/>
+<bpws:variable messageType="ns:logOnResponse" name="logOnRsp"/>
+<bpws:variable messageType="ns:unauthorizedAccess" name="unauthorizedAccess"/>
+<bpws:variable messageType="ns1:balanceMessage" name="balanceMsg"/>
+<bpws:variable messageType="ns:balanceChange" name="balanceChange"/>
+<bpws:variable messageType="ns1:accountOperation" name="accountOperation"/>
+<bpws:variable name="newBalance" type="xsd:double"/>
+<bpws:variable messageType="ns:insufficientFunds" name="insufficientFunds"/>
+</bpws:variables>
+<bpws:correlationSets>
+<bpws:correlationSet name="customerInteraction" properties="ns:customerId"/>
+</bpws:correlationSets>
+<bpws:sequence name="HiddenSequence2">
+<bpws:assign name="PrepareAccessCheck" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="logOnReq"/>
+<bpws:to part="customerName" variable="customerMsg"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:invoke inputVariable="customerMsg" name="CheckAccess" operation="checkAccess" outputVariable="accessMsg" partnerLink="account" portType="ns1:AccountSystem">
+<bpws:correlations>
+<bpws:correlation initiate="yes" pattern="out" set="customerInteraction"/>
+</bpws:correlations>
+</bpws:invoke>
+<bpws:switch name="AccessDecision">
+<bpws:case>
+<bpws:condition><![CDATA[$accessMsg.granted]]></bpws:condition>
+<bpws:sequence name="HiddenSequence3">
+<bpws:assign name="SetLogged" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[true()]]></bpws:from>
+<bpws:to variable="logged"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:reply name="NotifyAccessGranted" operation="logOn" partnerLink="atm" portType="ns:FrontEnd" variable="logOnRsp"/>
+</bpws:sequence>
+</bpws:case>
+<bpws:otherwise>
+<bpws:sequence name="HiddenSequence4">
+<bpws:assign name="PrepareAccessDenial" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="logOnReq"/>
+<bpws:to part="detail" variable="unauthorizedAccess">
+<bpws:query><![CDATA[customerName]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+</bpws:assign>
+<bpws:reply faultName="ns:unauthorizedAccess" name="NotifyAccessDenied" operation="logOn" partnerLink="atm" portType="ns:FrontEnd" variable="unauthorizedAccess"/>
+</bpws:sequence>
+</bpws:otherwise>
+</bpws:switch>
+<bpws:while name="AccountLoop">
+<bpws:condition><![CDATA[$logged]]></bpws:condition>
+<bpws:pick name="AccountMenu">
+<bpws:onMessage operation="getBalance" partnerLink="atm" portType="ns:FrontEnd" variable="customerMsg">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="customerInteraction"/>
+</bpws:correlations>
+<bpws:sequence name="HiddenSequence5">
+<bpws:invoke inputVariable="customerMsg" name="QueryBalance" operation="queryBalance" outputVariable="balanceMsg" partnerLink="account" portType="ns1:AccountSystem"/>
+<bpws:reply name="SendBalance" operation="getBalance" partnerLink="atm" portType="ns:FrontEnd" variable="balanceMsg"/>
+</bpws:sequence>
+</bpws:onMessage>
+<bpws:onMessage operation="deposit" partnerLink="atm" portType="ns:FrontEnd" variable="balanceChange">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="customerInteraction"/>
+</bpws:correlations>
+<bpws:sequence name="HiddenSequence6">
+<bpws:assign name="PrepareDeposit" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="balanceChange"/>
+<bpws:to part="body" variable="accountOperation">
+<bpws:query><![CDATA[customerName]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+<bpws:copy>
+<bpws:from part="amount" variable="balanceChange"/>
+<bpws:to part="body" variable="accountOperation">
+<bpws:query><![CDATA[amount]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+</bpws:assign>
+<bpws:invoke inputVariable="accountOperation" name="UpdateBalance" operation="updateBalance" outputVariable="balanceMsg" partnerLink="account" portType="ns1:AccountSystem">
+<bpws:correlations>
+<bpws:correlation initiate="no" pattern="out" set="customerInteraction"/>
+</bpws:correlations>
+</bpws:invoke>
+<bpws:reply name="SendNewBalance" operation="deposit" partnerLink="atm" portType="ns:FrontEnd" variable="balanceMsg"/>
+</bpws:sequence>
+</bpws:onMessage>
+<bpws:onMessage operation="withdraw" partnerLink="atm" portType="ns:FrontEnd" variable="balanceChange">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="customerInteraction"/>
+</bpws:correlations>
+<bpws:sequence name="HiddenSequence7">
+<bpws:assign name="PrepareBalanceQuery" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="balanceChange"/>
+<bpws:to part="customerName" variable="customerMsg"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:invoke inputVariable="customerMsg" name="QueryBalance" operation="queryBalance" outputVariable="balanceMsg" partnerLink="account" portType="ns1:AccountSystem">
+<bpws:correlations>
+<bpws:correlation initiate="no" pattern="out" set="customerInteraction"/>
+</bpws:correlations>
+</bpws:invoke>
+<bpws:assign name="CalculateNewBalance" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[$balanceMsg.balance - $balanceChange.amount]]></bpws:from>
+<bpws:to variable="newBalance"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:switch name="BalanceDecision">
+<bpws:case>
+<bpws:condition><![CDATA[$newBalance >= 0]]></bpws:condition>
+<bpws:sequence name="HiddenSequence8">
+<bpws:assign name="PrepareWithdraw" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="balanceChange"/>
+<bpws:to part="body" variable="accountOperation">
+<bpws:query><![CDATA[customerName]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+<bpws:copy>
+<bpws:from><![CDATA[-$balanceChange.amount]]></bpws:from>
+<bpws:to part="body" variable="accountOperation">
+<bpws:query><![CDATA[amount]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+</bpws:assign>
+<bpws:invoke inputVariable="accountOperation" name="UpdateBalance" operation="updateBalance" outputVariable="balanceMsg" partnerLink="account" portType="ns1:AccountSystem"/>
+<bpws:reply name="SendNewBalance" operation="withdraw" partnerLink="atm" portType="ns:FrontEnd" variable="balanceMsg"/>
+</bpws:sequence>
+</bpws:case>
+<bpws:otherwise>
+<bpws:sequence name="HiddenSequence9">
+<bpws:assign name="PrepareNoFundsFault" validate="no">
+<bpws:copy>
+<bpws:from part="customerName" variable="balanceChange"/>
+<bpws:to part="detail" variable="insufficientFunds">
+<bpws:query><![CDATA[customerName]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+<bpws:copy>
+<bpws:from part="balance" variable="balanceMsg"/>
+<bpws:to part="detail" variable="insufficientFunds">
+<bpws:query><![CDATA[amount]]></bpws:query>
+</bpws:to>
+</bpws:copy>
+</bpws:assign>
+<bpws:reply faultName="ns:insufficientFunds" name="SendWithdrawFault" operation="withdraw" partnerLink="atm" portType="ns:FrontEnd" variable="insufficientFunds"/>
+</bpws:sequence>
+</bpws:otherwise>
+</bpws:switch>
+</bpws:sequence>
+</bpws:onMessage>
+<bpws:onMessage operation="logOff" partnerLink="atm" portType="ns:FrontEnd" variable="customerMsg">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="customerInteraction"/>
+</bpws:correlations>
+<bpws:assign name="SetLoggedOff" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[false()]]></bpws:from>
+<bpws:to variable="logged"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:onMessage>
+<bpws:onAlarm>
+<bpws:for><![CDATA['PT2M']]></bpws:for>
+<bpws:assign name="SetLoggedOff" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[false()]]></bpws:from>
+<bpws:to variable="logged"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:onAlarm>
+</bpws:pick>
+</bpws:while>
+</bpws:sequence>
+</bpws:scope>
+</bpws:onMessage>
+<bpws:onMessage operation="disconnect" partnerLink="atm" portType="ns:FrontEnd" variable="ticketMsg">
+<bpws:correlations>
+<bpws:correlation initiate="no" set="atmInteraction"/>
+</bpws:correlations>
+<bpws:assign name="SetDisconnected" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[false()]]></bpws:from>
+<bpws:to variable="connected"/>
+</bpws:copy>
+</bpws:assign>
+</bpws:onMessage>
+</bpws:pick>
+</bpws:while>
+</bpws:scope>
+</bpws:sequence>
+</bpws:process>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.bpelex jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.bpelex
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.bpelex	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.bpelex	2009-02-06 09:17:27.000000000 +0100
@@ -2,7 +2,7 @@
 <extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
   <extensions>
     <extendedObject href="atm.bpel#/"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1202604617250"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1185492199625"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.0/@activity/@activities.0"/>
@@ -77,6 +77,10 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="OnMessage"/>
+  </extensions>
+  <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@variable"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
@@ -109,84 +113,76 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
-  </extensions>
-  <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.3"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.4"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@cases.0/@activity/@activities.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.5"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@cases.0/@activity/@activities.0/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.6"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@cases.0/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.7"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@cases.0/@activity/@activities.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.8"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.2"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@otherwise/@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@otherwise/@activity/@activities.0/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnEventExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@otherwise/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@otherwise/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@variables/@children.1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.3"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@variables/@children.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
-  </extensions>
-  <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0/@activity/@activities.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.4"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0/@activity/@activities.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.0/@activity/@activities.1"/>
@@ -194,11 +190,11 @@
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="OnMessage"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.5"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.0"/>
@@ -209,23 +205,27 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.0/@copy.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.6"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.0/@copy.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="OnMessage"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.1/@activity/@activities.2"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
@@ -237,6 +237,10 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
+  </extensions>
+  <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
@@ -246,150 +250,158 @@
   </extensions>
   <extensions>
     <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.2/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
-  </extensions>
-  <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.7"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnAlarmExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0/@activity/@copy.0"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity/@activities.0/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@elseIf.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity/@activities.0/@copy.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@cases.0/@activity/@activities.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@elseIf.0/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@otherwise/@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@elseIf.0/@activity/@copy.0"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@otherwise/@activity/@activities.0/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@else/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@otherwise/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@otherwise/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@else/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@variables/@children.8"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnAlarmExtension" displayName="OnAlarm"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="OnMessage"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@activity/@activities.0"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@activity/@activities.0/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.3/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@activity/@activities.1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@else/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@else/@activity/@activities.0"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@else/@activity/@activities.0/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@alarm.0/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.2/@else/@activity/@activities.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@otherwise/@activity/@activities.0/@copy.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnEventExtension" displayName="OnEvent"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@else/@activity"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity/@activities.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.0/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity/@activities.0/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@variables/@children.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity/@activities.0/@copy.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension" displayName="Case"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity/@activities.1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.1/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@activity/@activities.2"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@cases.1/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@otherwise/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@else/@activity/@activities.0"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.0/@otherwise/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@else/@activity/@activities.0/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@variables/@children.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@else/@activity/@activities.0/@copy.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="atm.bpel#//@activity/@activities.2/@activity/@activity/@messages.0/@activity/@activity/@activities.3/@activity/@messages.2/@activity/@activities.3/@else/@activity/@activities.1"/>
+    <extendedObject href="atm.bpel#//@activity/@activities.2/@eventHandlers/@events.0/@activity/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
 </extensionmodel:ExtensionMap>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/atm.wsdl	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/atm.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,62 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/atm"
-  xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:atm="http://jbpm.org/examples/atm"
-  xmlns:acc="http://jbpm.org/examples/account"
-  xmlns:tic="http://jbpm.org/examples/ticket"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
+  xmlns:atm="urn:samples:atm" xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:acc="urn:samples:account"
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" xmlns:tic="urn:samples:ticket">
 
-  <import namespace="http://jbpm.org/examples/atm"
-    location="interface/frontend.wsdl" />
-  <import namespace="http://jbpm.org/examples/account"
-    location="interface/account.wsdl" />
-  <import namespace="http://jbpm.org/examples/ticket"
-    location="interface/ticket.wsdl" />
-
-  <vprop:property name="customerId" type="xsd:string">
-    <vprop:documentation>customer name property</vprop:documentation>
-  </vprop:property>
-
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="tns:logOnRequest" part="customerName">
-  </vprop:propertyAlias>
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="tns:balanceChange" part="customerName" />
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="acc:customerMessage" part="customerName" />
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="acc:accountOperation" part="body">
-    <vprop:query>/body/customerName</vprop:query>
+  <import namespace="urn:samples:atm" location="interface/frontend.wsdl" />
+  <import namespace="urn:samples:account" location="interface/account.wsdl" />
+  <import namespace="urn:samples:ticket" location="interface/ticket.wsdl" />
+
+  <!-- customer name property -->
+  <vprop:property name="customerId" type="xsd:string" />
+
+  <!-- location of costumerId inside messages -->
+  <vprop:propertyAlias propertyName="tns:customerId" messageType="tns:logOnRequest"
+    part="customerName" />
+  <vprop:propertyAlias propertyName="tns:customerId" messageType="tns:balanceChange"
+    part="customerName" />
+  <vprop:propertyAlias propertyName="tns:customerId" messageType="acc:customerMessage"
+    part="customerName" />
+  <vprop:propertyAlias propertyName="tns:customerId" messageType="acc:accountOperation"
+    part="body">
+    <vprop:query queryLanguage="urn:oasis:names:tc:ws2.0:sublang:xpath1.0">
+      /body/customerName
+    </vprop:query>
   </vprop:propertyAlias>
 
-  <vprop:property name="ticketId" type="xsd:int">
-    <vprop:documentation>ticket number property</vprop:documentation>
-  </vprop:property>
-
-  <vprop:propertyAlias propertyName="tns:ticketId"
-    messageType="tic:ticketMessage" part="ticketNo" />
-  <vprop:propertyAlias propertyName="tns:ticketId"
-    messageType="tns:logOnRequest" part="ticketNo" />
+  <!-- ticket number property -->
+  <vprop:property name="ticketId" type="xsd:int" />
+
+  <!-- location of ticketId inside messages -->
+  <vprop:propertyAlias propertyName="tns:ticketId" messageType="tic:ticketMessage" part="ticketNo" />
+  <vprop:propertyAlias propertyName="tns:ticketId" messageType="tns:logOnRequest" part="ticketNo" />
 
+  <!-- relationship between the ATM and the process -->
   <plt:partnerLinkType name="Atm-Front">
-    <plt:documentation>
-      relationship between the ATM and the process
-    </plt:documentation>
     <plt:role name="FrontEnd" portType="tns:FrontEnd" />
   </plt:partnerLinkType>
+
+  <!-- relationship between the process and the ticket issuer -->
   <plt:partnerLinkType name="Front-Ticket">
-    <vprop:documentation>
-      relationship between the process and the ticket issuer
-    </vprop:documentation>
     <plt:role name="TicketIssuer" portType="tic:TicketIssuer" />
   </plt:partnerLinkType>
+
+  <!-- relationship between the process and the account system -->
   <plt:partnerLinkType name="Front-Account">
-    <plt:documentation>
-      relationship between the process and the account system
-    </plt:documentation>
     <plt:role name="AccountSystem" portType="acc:AccountSystem" />
   </plt:partnerLinkType>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/account.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/account.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/account.wsdl	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/account.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,17 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/account"
-  xmlns:tns="http://jbpm.org/examples/account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<definitions targetNamespace="urn:samples:account" xmlns:tns="urn:samples:account"
+  xmlns:typ="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/account"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema">
 
+      <!-- account data transfer type -->
       <complexType name="AccountOperation">
-        <annotation>
-          <documentation>account data transfer type</documentation>
-        </annotation>
         <sequence>
           <element name="customerName" type="xsd:string" />
           <element name="amount" type="xsd:double" />
@@ -22,43 +19,43 @@
 
   </types>
 
+  <!-- customer name wrapper -->
   <message name="customerMessage">
-    <documentation>customer name wrapper</documentation>
     <part name="customerName" type="xsd:string" />
   </message>
 
+  <!-- access check response -->
   <message name="accessMessage">
-    <documentation>access check response</documentation>
     <part name="granted" type="xsd:boolean" />
   </message>
 
+  <!-- account balance wrapper -->
   <message name="balanceMessage">
-    <documentation>account balance wrapper</documentation>
     <part name="balance" type="xsd:double" />
   </message>
 
+  <!-- account operation request -->
   <message name="accountOperation">
-    <documentation>account operation request</documentation>
-    <part name="body" type="tns:AccountOperation" />
+    <part name="body" type="typ:AccountOperation" />
   </message>
 
+  <!-- published account functions -->
   <portType name="AccountSystem">
-    <documentation>published account functions</documentation>
 
+    <!-- tell whether a customer has an active account -->
     <operation name="checkAccess">
-      <documentation>tell whether a customer has an active account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:accessMessage" />
     </operation>
 
+    <!-- retrieve the balance of an account -->
     <operation name="queryBalance">
-      <documentation>retrieve the balance of an account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:balanceMessage" />
     </operation>
 
+    <!-- increase/decrease the balance of an account -->
     <operation name="updateBalance">
-      <documentation>increase/decrease the balance of an account</documentation>
       <input message="tns:accountOperation" />
       <output message="tns:balanceMessage" />
     </operation>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/frontend.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/frontend.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/frontend.wsdl	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/frontend.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/atm" xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:acc="http://jbpm.org/examples/account"
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
+  xmlns:typ="urn:samples:atm" xmlns:tic="urn:samples:ticket" xmlns:acc="urn:samples:account"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
-  <import namespace="http://jbpm.org/examples/account" location="account.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:account" location="account.wsdl" />
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/atm"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:atm" xmlns="http://www.w3.org/2001/XMLSchema">
 
       <complexType name="UnauthorizedAccess">
         <sequence>
@@ -17,7 +16,7 @@
         </sequence>
       </complexType>
 
-      <element name="unauthorizedAccess" type="tns:UnauthorizedAccess" />
+      <element name="unauthorizedAccess" type="typ:UnauthorizedAccess" />
 
       <complexType name="InsufficientFunds">
         <sequence>
@@ -26,7 +25,7 @@
         </sequence>
       </complexType>
 
-      <element name="insufficientFunds" type="tns:InsufficientFunds" />
+      <element name="insufficientFunds" type="typ:InsufficientFunds" />
 
     </schema>
 
@@ -51,59 +50,59 @@
   </message>
 
   <message name="unauthorizedAccess">
-    <part name="detail" element="tns:unauthorizedAccess" />
+    <part name="detail" element="typ:unauthorizedAccess" />
   </message>
 
   <message name="insufficientFunds">
-    <part name="detail" element="tns:insufficientFunds" />
+    <part name="detail" element="typ:insufficientFunds" />
   </message>
 
+  <!-- bank functions available to ATMs -->
   <portType name="FrontEnd">
-    <documentation>bank functions available to ATMs</documentation>
 
+    <!-- initiate bank connection -->
     <operation name="connect">
-      <documentation>initiate bank connection</documentation>
       <input message="tns:connectRequest" />
       <output message="tic:ticketMessage" />
     </operation>
 
+    <!-- terminate bank connection -->
     <operation name="disconnect">
-      <documentation>terminate bank connection</documentation>
       <input message="tic:ticketMessage" />
     </operation>
 
+    <!-- retrieve bank connection status -->
     <operation name="status">
-      <documentation>retrieve bank connection status</documentation>
       <input message="tic:ticketMessage" />
       <output message="tns:statusResponse" />
     </operation>
 
+    <!-- initiate customer session -->
     <operation name="logOn">
-      <documentation>initiate customer access</documentation>
       <input message="tns:logOnRequest" />
       <output message="tns:logOnResponse" />
       <fault name="unauthorizedAccess" message="tns:unauthorizedAccess" />
     </operation>
 
+    <!-- terminate customer session -->
     <operation name="logOff">
-      <documentation>terminate customer access</documentation>
       <input message="acc:customerMessage" />
     </operation>
 
+    <!-- retrieve account balance -->
     <operation name="getBalance">
-      <documentation>retrieve account balance</documentation>
       <input message="acc:customerMessage" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- increase account balance -->
     <operation name="deposit">
-      <documentation>increase account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- decrease account balance -->
     <operation name="withdraw">
-      <documentation>decrease account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
       <fault name="insufficientFunds" message="tns:insufficientFunds" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/ticket.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/ticket.wsdl
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/bpel2/interface/ticket.wsdl	2009-02-06 09:12:44.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/bpel2/interface/ticket.wsdl	2009-02-06 09:17:27.000000000 +0100
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <message name="ticketRequest">
     <documentation>ticket creation request</documentation>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main: java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/resources: web
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/main/resources/wstools.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/resources/wstools.xml
--- jpdl-3.2.3.GA/bpel/examples/atm/src/main/resources/wstools.xml	2009-02-06 09:12:49.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/main/resources/wstools.xml	2009-02-06 09:17:27.000000000 +0100
@@ -2,7 +2,7 @@
 <configuration xmlns="http://www.jboss.org/jbossws-tools">
   <global>
     <package-namespace package="org.jbpm.bpel.tutorial.atm"
-      namespace="http://jbpm.org/examples/atm" />
+      namespace="urn:samples:atm" />
   </global>
   <wsdl-java file="wsdl/atm-service.wsdl">
     <mapping file="atm-mapping.xml" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/AtmFrontEndTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/AtmFrontEndTest.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/AtmFrontEndTest.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/AtmFrontEndTest.java	2009-02-06 09:17:27.000000000 +0100
@@ -15,31 +15,40 @@
 package org.jbpm.bpel.tutorial.atm;
 
 import java.rmi.RemoteException;
+import java.util.Properties;
 
 import javax.naming.InitialContext;
+import javax.naming.NamingException;
 
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
+import org.jboss.test.ws.JBossWSTestSetup;
 
 /**
  * Test for common ATM usage scenarios.
  * @author Juan Cantu
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2007/06/25 09:09:00 $
  */
 public class AtmFrontEndTest extends TestCase {
 
   private FrontEnd frontEnd;
 
+  public static Test suite() {
+    return JBossWSTestSetup.newTestSetup(AtmFrontEndTest.class,
+        "atm-client.jar");
+  }
+
   protected void setUp() throws Exception {
     InitialContext iniCtx = new InitialContext();
     /*
-     * "service/ATM" is the JNDI name of the service interface instance relative to the client
-     * environment context. This name matches the <service-ref-name> in application-client.xml
+     * "service/ATM" is the JNDI name of the service interface instance
+     * relative to the client environment context. This name matches the
+     * <service-ref-name> in application-client.xml
      */
-    AtmFrontEndService frontEndService = (AtmFrontEndService) iniCtx.lookup("java:comp/env/service/ATM");
+    AtmFrontEndService frontEndService = 
+      (AtmFrontEndService) iniCtx.lookup("java:comp/env/service/ATM");
 
     // obtain dynamic proxy for web service port
     frontEnd = frontEndService.getFrontEndPort();
@@ -63,7 +72,7 @@
     int ticketNumber = frontEnd.connect();
 
     // begin customer session
-    final String customerName = "koen";
+    final String customerName = "admin";
     try {
       frontEnd.logOn(ticketNumber, customerName);
     }
@@ -83,7 +92,7 @@
     int ticketNumber = frontEnd.connect();
 
     // begin customer session
-    final String customerName = "nobody";
+    final String customerName = "misterx";
     try {
       frontEnd.logOn(ticketNumber, customerName);
       fail("log on of unauthorized customer should fail");
@@ -101,7 +110,7 @@
     int ticketNumber = frontEnd.connect();
 
     // begin customer session
-    final String customerName = "tom";
+    final String customerName = "manager";
     frontEnd.logOn(ticketNumber, customerName);
 
     // get current balance
@@ -119,12 +128,13 @@
     frontEnd.disconnect(ticketNumber);
   }
 
-  public void testWithdrawUnderBalance() throws RemoteException, UnauthorizedAccess {
+  public void testWithdrawUnderBalance() throws RemoteException,
+      UnauthorizedAccess {
     // connect to bank
     int ticketNumber = frontEnd.connect();
 
     // begin customer session
-    final String customerName = "tom";
+    final String customerName = "manager";
     frontEnd.logOn(ticketNumber, customerName);
 
     // get current balance
@@ -147,12 +157,13 @@
     frontEnd.disconnect(ticketNumber);
   }
 
-  public void testWithdrawOverBalance() throws RemoteException, UnauthorizedAccess {
+  public void testWithdrawOverBalance() throws RemoteException,
+      UnauthorizedAccess {
     // connect to bank
     int ticketNumber = frontEnd.connect();
 
     // begin customer session
-    final String customerName = "fady";
+    final String customerName = "shipper";
     frontEnd.logOn(ticketNumber, customerName);
 
     // get current balance
@@ -175,8 +186,4 @@
     // disconnect from bank
     frontEnd.disconnect(ticketNumber);
   }
-
-  public static Test suite() {
-    return new ModuleDeployTestSetup(AtmFrontEndTest.class, "atm-client.jar");
-  }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmPanel.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmPanel.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmPanel.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmPanel.java	2009-02-06 09:17:27.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class AtmPanel extends JPanel {
 
@@ -36,12 +36,12 @@
   private static final long serialVersionUID = 1L;
 
   public AtmPanel() {
-    // prevent edition of message area
+    // display multiline messages, but prevent user edition
     messageTextArea.setEditable(false);
-    messageTextArea.setColumns(40);
-    // set layout of actions panel
-    actionsPanel.setLayout(new GridLayout(4, 1, 5, 5));
-    // add components to panel
+    // actions
+    GridLayout actionsLayout = new GridLayout(4, 1, 5, 5);
+    actionsPanel.setLayout(actionsLayout);
+    // this
     setLayout(new BorderLayout());
     add(statusLabel, BorderLayout.SOUTH);
     add(messageTextArea, BorderLayout.CENTER);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmTerminal.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmTerminal.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmTerminal.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/AtmTerminal.java	2009-02-06 09:17:27.000000000 +0100
@@ -14,168 +14,45 @@
  */
 package org.jbpm.bpel.tutorial.atm.terminal;
 
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.rmi.RemoteException;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
 import javax.swing.JFrame;
 import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
-import javax.swing.WindowConstants;
-import javax.xml.rpc.ServiceException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.jbpm.bpel.tools.DeploymentException;
-import org.jbpm.bpel.tools.ModuleDeployHelper;
-import org.jbpm.bpel.tutorial.atm.AtmFrontEndService;
-import org.jbpm.bpel.tutorial.atm.FrontEnd;
 
 public class AtmTerminal {
 
+  private static Map context = new HashMap();
+
   public static final String PANEL = "panel";
   public static final String FRONT_END = "frontEnd";
   public static final String TICKET = "ticket";
   public static final String CUSTOMER = "customer";
 
-  private static Map context = new HashMap();
-
-  private static Log log = LogFactory.getLog(AtmTerminal.class);
-
   public static Map getContext() {
     return context;
   }
 
   public static void main(String[] args) {
-    deployClient();
-    FrontEnd atmFrontEnd = createAtmFrontEnd();
-
-    selectNativeLookAndFeel();
-    AtmPanel atmPanel = createAtmPanel(atmFrontEnd);
-
-    JFrame mainFrame = new JFrame("ATM");
-    mainFrame.addWindowListener(AtmFrameListener.INSTANCE);
-    mainFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
-    mainFrame.getContentPane().add(atmPanel);
-    mainFrame.pack();
-    mainFrame.setVisible(true);
-  }
-
-  private static void deployClient() {
-    try {
-      ModuleDeployHelper deployer = new ModuleDeployHelper();
-      deployer.deploy("atm-client.jar");
-    }
-    catch (DeploymentException e) {
-      log.error("could not deploy client module", e);
-    }
-  }
-
-  private static FrontEnd createAtmFrontEnd() {
-    try {
-      InitialContext jndiContext = new InitialContext();
-      AtmFrontEndService service = (AtmFrontEndService) jndiContext.lookup("java:comp/env/service/ATM");
-      jndiContext.close();
-  
-      return service.getFrontEndPort();
-    }
-    catch (NamingException e) {
-      log.error("could not retrieve service instance", e);
-      return null;
-    }
-    catch (ServiceException e) {
-      log.error("could not get port proxy", e);
-      return null;
-    }
-  }
-
-  private static void selectNativeLookAndFeel() {
-    try {
       // set native system look and feel
+    try {
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     }
-    catch (ClassNotFoundException e) {
-      log.debug("system look and feel missing", e);
-    }
-    catch (InstantiationException e) {
-      // should not happen
-      throw new AssertionError(e);
-    }
-    catch (IllegalAccessException e) {
-      // should not happen
-      throw new AssertionError(e);
-    }
-    catch (UnsupportedLookAndFeelException e) {
-      // should not happen
-      throw new AssertionError(e);
-    }
+    catch (Exception e) {
+      System.err.println("could not set native system look and feel: " + e);
   }
-
-  private static AtmPanel createAtmPanel(FrontEnd atmFrontEnd) {
+    // configure atm panel
     AtmPanel atmPanel = new AtmPanel();
-    context.put(PANEL, atmPanel);
-
-    if (atmFrontEnd != null) {
-      context.put(FRONT_END, atmFrontEnd);
-
-      try {
-        int ticketNo = atmFrontEnd.connect();
-        context.put(TICKET, new Integer(ticketNo));
-
-        atmPanel.setMessage("Welcome!\nPlease log on, so we can begin");
-        atmPanel.addAction(new LogOnAction());
-        atmPanel.setStatus(atmFrontEnd.status(ticketNo));
-      }
-      catch (RemoteException e) {
-        atmPanel.setMessage("Communication with the bank failed.\n"
-            + "Please use another terminal.");
-        atmPanel.setStatus("unavailable");
-      }
-    }
-    else {
-      atmPanel.setMessage("Bootstrap procedure failed.\n" + "Please use another terminal");
-      atmPanel.setStatus("unavailable");
-    }
-    return atmPanel;
-  }
-
-  private static class AtmFrameListener extends WindowAdapter {
-
-    static final WindowListener INSTANCE = new AtmFrameListener();
-
-    private AtmFrameListener() {
-    }
-
-    public void windowClosing(WindowEvent event) {
-      FrontEnd atmFrontEnd = (FrontEnd) context.get(FRONT_END);
-      Integer ticketNo = (Integer) context.get(TICKET);
-
-      if (atmFrontEnd != null && ticketNo != null) {
-        try {
-          atmFrontEnd.disconnect(ticketNo.intValue());
-        }
-        catch (RemoteException e) {
-          log.error("remote disconnect failure", e);
-        }
-      }
-
-      undeployClient();
-    }
-  }
-
-  private static void undeployClient() {
-    try {
-      ModuleDeployHelper deployer = new ModuleDeployHelper();
-      deployer.undeploy("atm-client.jar");
-    }
-    catch (DeploymentException e) {
-      log.error("could not undeploy client module", e);
-    }
+    atmPanel.setMessage("This terminal is disconnected.\n"
+        + "Please connect it or use a different one.");
+    atmPanel.setStatus("disconnected");
+    atmPanel.addAction(new ConnectAction());
+    getContext().put(AtmTerminal.PANEL, atmPanel);
+    // display panel in a frame
+    JFrame mainFrame = new JFrame("ATM");
+    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+    mainFrame.getContentPane().add(atmPanel);
+    mainFrame.pack();
+    mainFrame.setVisible(true);
   }
 }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal: ConnectAction.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/DepositAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/DepositAction.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/DepositAction.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/DepositAction.java	2009-02-06 09:17:27.000000000 +0100
@@ -16,29 +16,22 @@
 
 import java.awt.event.ActionEvent;
 import java.rmi.RemoteException;
-import java.text.NumberFormat;
-import java.text.ParseException;
 import java.util.Map;
 
 import javax.swing.AbstractAction;
 import javax.swing.JOptionPane;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.jbpm.bpel.tutorial.atm.FrontEnd;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
-class DepositAction extends AbstractAction {
+public class DepositAction extends AbstractAction {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(DepositAction.class);
-
-  DepositAction() {
+  public DepositAction() {
     putValue(NAME, "Deposit");
   }
 
@@ -47,14 +40,13 @@
     AtmPanel atmPanel = (AtmPanel) context.get(AtmTerminal.PANEL);
 
     // capture amount
-    NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
-    String amountText = JOptionPane.showInputDialog(atmPanel, "Amount", currencyFormat.format(0.0));
+    String amountText = JOptionPane.showInputDialog(atmPanel, "Fed amount:");
     if (amountText == null)
       return;
 
     try {
       // parse amount
-      double amount = currencyFormat.parse(amountText).doubleValue();
+      double amount = Double.parseDouble(amountText);
 
       // deposit funds to account
       FrontEnd atmFrontEnd = (FrontEnd) context.get(AtmTerminal.FRONT_END);
@@ -62,18 +54,20 @@
       double balance = atmFrontEnd.deposit(customerName, amount);
 
       // update atm panel
-      atmPanel.setMessage("Your balance is " + currencyFormat.format(balance));
+      atmPanel.setMessage("Your balance is $" + balance);
     }
-    catch (ParseException e) {
-      log.debug("invalid amount", e);
+    catch (NumberFormatException e) {
       atmPanel.setMessage("Please enter a valid amount.");
+      e.printStackTrace();
     }
     catch (RemoteException e) {
-      log.error("remote operation failure", e);
-      atmPanel.setMessage("Communication with the bank failed.\n" + "Please log on again.");
+      atmPanel.setMessage("The banking session was terminated.\n"
+          + "Please log on again.");
       atmPanel.clearActions();
       atmPanel.addAction(new LogOnAction());
+      atmPanel.addAction(new DisconnectAction());
       atmPanel.setStatus("connected");
+      e.printStackTrace();
     }
   }
 }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal: DisconnectAction.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/GetBalanceAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/GetBalanceAction.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/GetBalanceAction.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/GetBalanceAction.java	2009-02-06 09:17:27.000000000 +0100
@@ -16,26 +16,20 @@
 
 import java.awt.event.ActionEvent;
 import java.rmi.RemoteException;
-import java.text.NumberFormat;
 import java.util.Map;
 
 import javax.swing.AbstractAction;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.jbpm.bpel.tutorial.atm.FrontEnd;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class GetBalanceAction extends AbstractAction {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(GetBalanceAction.class);
-
   public GetBalanceAction() {
     putValue(NAME, "Get Balance");
   }
@@ -51,14 +45,16 @@
       double balance = atmFrontEnd.getBalance(customerName);
 
       // update atm panel
-      atmPanel.setMessage("Your balance is " + NumberFormat.getCurrencyInstance().format(balance));
+      atmPanel.setMessage("Your balance is $" + balance);
     }
     catch (RemoteException e) {
-      log.error("remote operation failure", e);
-      atmPanel.setMessage("Communication with the bank failed.\n" + "Please log on again.");
+      atmPanel.setMessage("The banking session was terminated.\n"
+          + "Please log on again.");
       atmPanel.clearActions();
       atmPanel.addAction(new LogOnAction());
+      atmPanel.addAction(new DisconnectAction());
       atmPanel.setStatus("connected");
+      e.printStackTrace();
     }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOffAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOffAction.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOffAction.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOffAction.java	2009-02-06 09:17:27.000000000 +0100
@@ -20,21 +20,16 @@
 
 import javax.swing.AbstractAction;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.jbpm.bpel.tutorial.atm.FrontEnd;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class LogOffAction extends AbstractAction {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(LogOffAction.class);
-
   public LogOffAction() {
     putValue(NAME, "Log Off");
   }
@@ -50,13 +45,14 @@
       atmFrontEnd.logOff(customerName);
     }
     catch (RemoteException e) {
-      log.error("remote operation failure", e);
+      e.printStackTrace();
     }
 
     // update atm panel
     atmPanel.setMessage("Welcome!\nPlease log on, so we can begin");
     atmPanel.clearActions();
     atmPanel.addAction(new LogOnAction());
+    atmPanel.addAction(new DisconnectAction());
     atmPanel.setStatus("connected");
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOnAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOnAction.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOnAction.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/LogOnAction.java	2009-02-06 09:17:27.000000000 +0100
@@ -21,22 +21,17 @@
 import javax.swing.AbstractAction;
 import javax.swing.JOptionPane;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.jbpm.bpel.tutorial.atm.FrontEnd;
 import org.jbpm.bpel.tutorial.atm.UnauthorizedAccess;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class LogOnAction extends AbstractAction {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(LogOnAction.class);
-
   public LogOnAction() {
     putValue(NAME, "Log On");
   }
@@ -58,7 +53,7 @@
       atmFrontEnd.logOn(ticketNo, customerName);
 
       // update atm panel
-      atmPanel.setMessage("Hi, " + customerName + ".\nWhat do you want to do today?");
+      atmPanel.setMessage("Hi, " + customerName + ". How can I help you today?");
       atmPanel.clearActions();
       atmPanel.addAction(new GetBalanceAction());
       atmPanel.addAction(new DepositAction());
@@ -67,13 +62,14 @@
       atmPanel.setStatus(atmFrontEnd.status(ticketNo));
     }
     catch (UnauthorizedAccess e) {
-      log.debug("unauthorized access", e);
       atmPanel.setMessage("I could not fulfill your request.\n"
-          + "Your access was not authorized.");
+          + "You are not authorized to use this ATM.");
+      e.printStackTrace();
     }
     catch (RemoteException e) {
-      log.error("remote operation failure", e);
-      atmPanel.setMessage("Communication with the bank failed.\n" + "Please try again.");
+      atmPanel.setMessage("The connection with the bank failed.\n"
+          + "Please log on again.");
+      e.printStackTrace();
     }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/WithdrawAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/WithdrawAction.java
--- jpdl-3.2.3.GA/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/WithdrawAction.java	2009-02-06 09:12:42.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/atm/src/test/java/org/jbpm/bpel/tutorial/atm/terminal/WithdrawAction.java	2009-02-06 09:17:27.000000000 +0100
@@ -17,28 +17,22 @@
 import java.awt.event.ActionEvent;
 import java.rmi.RemoteException;
 import java.text.NumberFormat;
-import java.text.ParseException;
 import java.util.Map;
 
 import javax.swing.AbstractAction;
 import javax.swing.JOptionPane;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.jbpm.bpel.tutorial.atm.FrontEnd;
 import org.jbpm.bpel.tutorial.atm.InsufficientFunds;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class WithdrawAction extends AbstractAction {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(WithdrawAction.class);
-
   public WithdrawAction() {
     putValue(NAME, "Withdraw");
   }
@@ -48,14 +42,13 @@
     AtmPanel atmPanel = (AtmPanel) context.get(AtmTerminal.PANEL);
 
     // capture amount
-    NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
-    String amountText = JOptionPane.showInputDialog(atmPanel, "Amount", currencyFormat.format(0.0));
+    String amountText = JOptionPane.showInputDialog(atmPanel, "Desired amount:");
     if (amountText == null)
       return;
 
     try {
       // parse amount
-      double amount = currencyFormat.parse(amountText).doubleValue();
+      double amount = Double.parseDouble(amountText);
 
       // withdraw funds from account
       FrontEnd atmFrontEnd = (FrontEnd) context.get(AtmTerminal.FRONT_END);
@@ -63,24 +56,25 @@
       double balance = atmFrontEnd.withdraw(customerName, amount);
 
       // update atm panel
-      atmPanel.setMessage("Your new balance is " + currencyFormat.format(balance));
+      atmPanel.setMessage("Your new balance is $" + balance);
     }
-    catch (ParseException e) {
-      log.debug("invalid amount", e);
+    catch (NumberFormatException e) {
       atmPanel.setMessage("Please enter a valid amount.");
     }
     catch (InsufficientFunds e) {
-      log.debug("insufficient funds", e);
+      NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
       atmPanel.setMessage("I could not fulfill your request.\n"
-          + "Your current balance is only "
+          + "Your current balance is "
           + currencyFormat.format(e.getAmount()));
     }
     catch (RemoteException e) {
-      log.error("remote operation failure", e);
-      atmPanel.setMessage("Communication with the bank failed.\n" + "Please log on again.");
+      atmPanel.setMessage("The banking session was terminated.\n"
+          + "Please log on again.");
       atmPanel.clearActions();
       atmPanel.addAction(new LogOnAction());
+      atmPanel.addAction(new DisconnectAction());
       atmPanel.setStatus("connected");
+      e.printStackTrace();
     }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/build.xml
--- jpdl-3.2.3.GA/bpel/examples/build.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/build.xml	2009-02-06 09:17:29.000000000 +0100
@@ -5,39 +5,33 @@
   <!-- === PROPERTIES === -->
   <!-- ================== -->
 
-  <!-- Development section (begin) -->
-  <property name="jbpm.root" value="../.." />
+  <!-- project directories -->
+  <property name="output.name" value="target" />
+  <property name="reports.name" value="reports" />
+
+  <property name="common.dir" value="common" />
+  <property name="common.config.dir" value="${common.dir}/src/main/config" />
+  <property name="common.output.dir" value="${common.dir}/${output.name}" />
+  <property name="common.reports.dir" value="${common.output.dir}/${reports.name}" />
 
-  <property name="common.dir" value="${jbpm.root}/bpel/examples/common" />
-  <property name="config.dir" value="${common.dir}/src/main/config" />
+  <!-- project specific properties -->
+  <property name="jbpm.root" value="../.." />
 
+  <!-- property files -->
   <property file="${user.home}/jbpm/build.properties" />
   <property file="${jbpm.root}/build/profiles/${profile}.profile.properties" />
   <property file="${jbpm.root}/build/build.properties" />
-  <!-- Development section (end) -->
-
-  <!-- Distribution section (begin) ===
-  <property name="jbpm.bpel.home" value=".." />
-
-  <property name="common.dir" value="${jbpm.bpel.home}/examples/common" />
-  <property name="config.dir" value="${jbpm.bpel.home}/config" />
+  <property file="../config/build.properties" />
 
-  <property file="${config.dir}/build.properties" />
-  ==== Distribution section (end) -->
-
-  <property name="output.dir" value="target" />
-  <property name="output.test.dir" value="${output.dir}/test" />
-  <property name="test.reports.dir" value="${output.test.dir}/reports" />
-
-  <!-- =================== -->
-  <!-- === DEFINITIONS === -->
-  <!-- =================== -->
+  <!-- ======================= -->
+  <!-- === ANT DEFINITIONS === -->
+  <!-- ======================= -->
 
   <macrodef name="iterate">
     <attribute name="target" />
     <sequential>
       <subant target="@{target}">
-        <fileset dir="." includes="*/build.xml" />
+        <fileset dir="${basedir}" includes="*/build.xml" />
       </subant>
     </sequential>
   </macrodef>
@@ -48,53 +42,70 @@
 
   <target name="clean" description="removes all generated files">
     <iterate target="clean" />
-    <delete dir="${common.dir}/${output.dir}" failonerror="no" />
+    <delete dir="${common.output.dir}" failonerror="no" />
   </target>
 
-  <!-- =============================== -->
-  <!-- === DATABASE ADMINISTRATION === -->
-  <!-- =============================== -->
-
-  <target name="define.dbadmin">
-    <taskdef name="dbadmin" classname="org.jbpm.bpel.tools.ant.AdministrationTask">
-      <classpath>
-        <pathelement location="${config.dir}" />
-        <pathelement location="${lib.commons.codec.local}" />
-        <pathelement location="${lib.commons.httpclient.local}" />
-        <pathelement location="${lib.commons.logging.local}" />
-        <pathelement location="${lib.log4j.local}" />
-        <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
-      </classpath>
+  <!-- ======================= -->
+  <!-- === DATABASE SCHEMA === -->
+  <!-- ======================= -->
+
+  <target name="define-dbschema-task">
+    <taskdef name="dbschema" classname="org.jbpm.bpel.tools.ant.DBSchemaTask">
+      <classpath location="${lib.jbpm.bpel.tools.jar.local}" />
     </taskdef>
   </target>
 
-  <target name="create.schema" depends="define.dbadmin" description="create jbpm database schema">
-    <dbadmin operation="create_schema" />
+  <target name="create-schema" depends="define-dbschema-task" description="create the jbpm tables">
+    <dbschema action="create" />
   </target>
 
-  <target name="drop.schema" depends="define.dbadmin" description="drop jbpm database schema">
-    <dbadmin operation="drop_schema" />
+  <target name="drop-schema" depends="define-dbschema-task" description="drop the jbpm tables">
+    <dbschema action="drop" />
   </target>
 
-  <!-- ============ -->
-  <!-- === MAIN === -->
-  <!-- ============ -->
+  <!-- ===================================== -->
+  <!-- === PROCESS DEFINITION DEPLOYMENT === -->
+  <!-- ===================================== -->
 
-  <target name="main" description="deploy all modules">
-    <iterate target="main" />
+  <target name="deploy-processes" description="deploy all process definitions">
+    <iterate target="deploy-process" />
+  </target>
+
+  <!-- ============================== -->
+  <!-- === WEB SERVICE DEPLOYMENT === -->
+  <!-- ============================== -->
+
+  <target name="deploy-webservices" description="deploy all web services">
+    <iterate target="deploy-webservice" />
+  </target>
+
+  <target name="undeploy-webservices" description="undeploy all web services">
+    <iterate target="undeploy-webservice" />
   </target>
 
   <!-- ====================== -->
   <!-- === TEST EXECUTION === -->
   <!-- ====================== -->
 
-  <target name="test" description="test all modules">
+  <target name="test" description="test all applications">
     <iterate target="test" />
-    <mkdir dir="${common.dir}/${test.reports.dir}/xml" />
-    <junitreport todir="${common.dir}/${test.reports.dir}/xml">
-      <fileset dir="." includes="*/${test.reports.dir}/xml/TEST-*.xml" />
-      <report todir="${common.dir}/${test.reports.dir}" />
+    <antcall target="test-report" />
+  </target>
+
+  <target name="test-report">
+    <mkdir dir="${common.reports.dir}" />
+    <junitreport todir="${common.reports.dir}">
+      <fileset dir="${basedir}" includes="*/${output.name}/test/${reports.name}/xml/TEST-*.xml" />
+      <report format="frames" todir="${common.reports.dir}" />
     </junitreport>
   </target>
 
+  <!-- ============ -->
+  <!-- === MAIN === -->
+  <!-- ============ -->
+
+  <target name="main" description="deploy all process definitions and web services">
+    <iterate target="main" />
+  </target>
+
 </project>
\ No newline at end of file
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common: base-build.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/common/bpel-build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/bpel-build.xml
--- jpdl-3.2.3.GA/bpel/examples/common/bpel-build.xml	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/bpel-build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,119 +1,99 @@
 <?xml version="1.0"?>
 <project name="bpel">
 
+  <!-- =============== -->
+  <!-- === IMPORTS === -->
+  <!-- =============== -->
+
+  <import file="base-build.xml" />
+
   <!-- ================== -->
   <!-- === PROPERTIES === -->
   <!-- ================== -->
 
-  <!-- Development section (begin) -->
-  <property name="jbpm.root" value="../../.." />
-
-  <property name="common.dir" value="${jbpm.root}/bpel/examples/common" />
-  <property name="config.dir" value="${common.dir}/src/main/config" />
-
-  <property file="${user.home}/jbpm/build.properties" />
-  <property file="${jbpm.root}/build/profiles/${profile}.profile.properties" />
-  <property file="${jbpm.root}/build/build.properties" />
-  <!-- Development section (end) -->
-
-  <!-- Distribution section (begin) ===
-  <property name="jbpm.bpel.home" value="../.." />
-
-  <property name="common.dir" value="${jbpm.bpel.home}/examples/common" />
-  <property name="config.dir" value="${jbpm.bpel.home}/config" />
-
-  <property file="${config.dir}/build.properties" />
-  ==== Distribution section (end) -->
+  <!-- project directories -->
+  <property name="bpel.dir" value="${project.dir}/src/main/bpel" />
 
-  <property name="bpel.dir" value="src/main/bpel2" />
-  <property name="output.dir" value="target" />
-
-  <property name="module.name" value="${ant.project.name}" />
-
-  <!-- =================== -->
-  <!-- === DEFINITIONS === -->
-  <!-- =================== -->
-
-  <path id="jbpm.bpel.tools.path">
-    <pathelement location="${config.dir}" />
-    <pathelement location="${lib.commons.codec.local}" />
-    <pathelement location="${lib.commons.httpclient.local}" />
-    <pathelement location="${lib.commons.logging.local}" />
-    <pathelement location="${lib.log4j.local}" />
-    <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
-  </path>
-
-  <!-- =============================== -->
-  <!-- === OFFLINE WSDL GENERATION === -->
-  <!-- =============================== -->
+  <!-- ================== -->
+  <!-- === CLASSPATHS === -->
+  <!-- ================== -->
 
-  <target name="generate.wsdl" depends="package.process" description="generate wsdl description">
-    <taskdef name="wsdlservice" classname="org.jbpm.bpel.tools.ant.WsdlServiceTask">
-      <classpath>
-        <!-- Development section (begin) -->
-        <pathelement location="${jbpm.root}/bpel/library/src/main/config" />
-        <!-- Development section (end) -->
-        <pathelement location="${config.dir}" />
+  <path id="jbpm.bpel.path">
+    <pathelement location="${common.config.dir}" />
         <pathelement location="${lib.commons.collections.local}" />
         <pathelement location="${lib.commons.lang.local}" />
         <pathelement location="${lib.commons.logging.local}" />
         <pathelement location="${lib.dom4j.local}" />
-        <pathelement location="${lib.log4j.local}" />
         <pathelement location="${lib.jaxen.local}" />
+    <pathelement location="${lib.jbpm.bpel.config.local}" />
         <pathelement location="${lib.jbpm.bpel.jar.local}" />
         <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
         <pathelement location="${lib.jbpm.jpdl.jar.local}" />
+    <pathelement location="${lib.log4j.local}" />
         <pathelement location="${lib.wsdl4j.local}" />
-      </classpath>
-    </taskdef>
-    <wsdlservice processarchive="${output.dir}/${module.name}.zip"
-                 wsdldir="${output.dir}/resources/web/wsdl"
-                 generatedescriptor="no" />
-  </target>
+  </path>
 
-  <!-- ========================== -->
-  <!-- === PROCESS DEPLOYMENT === -->
-  <!-- ========================== -->
+  <!-- ===================================== -->
+  <!-- === PROCESS DEFINITION DEPLOYMENT === -->
+  <!-- ===================================== -->
 
-  <target name="package.process">
+  <target name="pack-process">
     <mkdir dir="${output.dir}" />
-    <zip destfile="${output.dir}/${module.name}.zip">
+    <zip destfile="${output.dir}/${module.name}-process.zip">
       <fileset dir="${bpel.dir}" />
     </zip>
   </target>
 
-  <target name="deploy.process" depends="package.process" description="deploy process definition">
+  <target name="deploy-process"
+          depends="pack-process"
+          description="deploy the process definition to jbpm">
     <taskdef name="deployprocess"
-             classname="org.jbpm.bpel.tools.ant.DeploymentTask"
-             classpathref="jbpm.bpel.tools.path" />
-    <deployprocess processarchive="${output.dir}/${module.name}.zip" />
+             classname="org.jbpm.bpel.tools.ant.DeployProcessTask"
+             classpathref="jbpm.bpel.path" />
+    <deployprocess processfile="${output.dir}/${module.name}-process.zip" />
+  </target>
+
+  <!-- =============================== -->
+  <!-- === WSDL SERVICE GENERATION === -->
+  <!-- =============================== -->
+
+  <target name="check-wsdl-service">
+    <uptodate property="service.uptodate"
+              targetfile="${output.web.dir}/wsdl/${module.name}-service.wsdl">
+      <srcfiles dir="${bpel.dir}" includes="**" />
+    </uptodate>
   </target>
 
-  <!-- ============================ -->
-  <!-- === PARTNER REGISTRATION === -->
-  <!-- ============================ -->
-
-  <target name="define.register.task">
-    <taskdef name="registerpartner"
-             classname="org.jbpm.bpel.tools.ant.RegistrationTask"
-             classpathref="jbpm.bpel.tools.path" />
+  <target name="generate-wsdl-service"
+          depends="pack-process, check-wsdl-service"
+          unless="service.uptodate"
+          description="generate wsdl binding and service elements">
+    <taskdef name="wsdlservice"
+             classname="org.jbpm.bpel.tools.ant.GenerateWsdlServiceTask"
+             classpathref="jbpm.bpel.path" />
+    <!-- generate binding and service elements -->
+    <wsdlservice processfile="${output.dir}/${module.name}-process.zip"
+                 outputdir="${output.web.dir}/wsdl"
+                 bindingfilesprefix="${module.name}-binding-"
+                 servicefilename="${module.name}-service.wsdl" />
+    <!-- copy xml schema documents -->
+    <copy todir="${output.web.dir}/wsdl">
+      <fileset dir="${bpel.dir}" includes="**/*.xsd" />
+    </copy>
   </target>
 
-  <!-- override if your process has partner services -->
-  <target name="register.partners" depends="define.register.task" />
+  <target name="generate-artifacts"
+          depends="generate-wsdl-service"
+          description="generate java mapping artifacts">
+    <antcall target="template.generate-artifacts" />
+  </target>
 
   <!-- ============ -->
   <!-- === MAIN === -->
   <!-- ============ -->
 
-  <target name="main" depends="register.partners, deploy.process" description="main target" />
-
-  <!-- =============== -->
-  <!-- === CLEANUP === -->
-  <!-- =============== -->
-
-  <target name="clean" description="remove generated files">
-    <delete dir="${output.dir}" failonerror="no" />
-  </target>
+  <target name="main"
+          depends="deploy-process, deploy-webservice"
+          description="deploy process definition and web service" />
 
 </project>
\ No newline at end of file
Only in jpdl-3.2.3.GA/bpel/examples/common: mapping-build.xml
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/src/main/config: log4j.properties
Only in jpdl-3.2.3.GA/bpel/examples/common/src/main/config: log4j.xml
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/src/main: java
Only in jpdl-3.2.3.GA/bpel/examples/common: test-build.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/common/ws-build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/ws-build.xml
--- jpdl-3.2.3.GA/bpel/examples/common/ws-build.xml	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/common/ws-build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -5,93 +5,12 @@
   <!-- === IMPORTS === -->
   <!-- =============== -->
 
-  <import file="mapping-build.xml" />
-
-  <!-- =================================== -->
-  <!-- === CODE & RESOURCE COMPILATION === -->
-  <!-- =================================== -->
-
-  <!-- override this target if you want to include compile dependencies -->
-  <target name="compile.dependencies">
-    <path id="compile.path">
-      <path refid="jboss.path" />
-    </path>
-  </target>
-
-  <target name="compile" depends="generate.mapping, compile.dependencies">
-    <mkdir dir="${output.classes.dir}" />
-    <javac destdir="${output.classes.dir}"
-           classpathref="compile.path"
-           source="${javac.source}"
-           target="${javac.target}"
-           debug="${javac.debug}"
-           deprecation="${javac.deprecation}">
-      <src path="${java.dir}" />
-      <src path="${output.java.dir}" />
-    </javac>
-    <copy todir="${output.classes.dir}">
-      <fileset dir="${java.dir}" excludes="**/*.java" />
-    </copy>
-  </target>
-
-  <!-- =========================== -->
-  <!-- === WEB MODULE ASSEMBLY === -->
-  <!-- =========================== -->
-
-  <target name="package.webservice" depends="compile">
-    <war warfile="${output.dir}/${module.name}.war" webxml="${web.dir}/web.xml">
-      <classes dir="${output.classes.dir}" />
-      <webinf dir="${web.dir}" excludes="web.xml" />
-      <webinf dir="${output.web.dir}" />
-    </war>
-  </target>
-
-  <!-- ============================== -->
-  <!-- === WEB SERVICE DEPLOYMENT === -->
-  <!-- ============================== -->
-
-  <target name="define.jmx.task">
-    <!--
-    <taskdef name="jmx" classname="org.jboss.ant.JMX" classpathref="jboss.path" />
-    -->
-  </target>
-
-  <target name="deploy.webservice"
-          depends="package.webservice, define.jmx.task"
-          description="deploy web service">
-    <!--
-    <jmx adaptername="jmx/invoker/RMIAdaptor">
-      <invoke target="jboss.system:service=MainDeployer" operation="redeploy">
-        <parameter type="java.net.URL" arg="file:/${basedir}/${output.dir}/${module.name}.war" />
-      </invoke>
-    </jmx>
-    -->
-    <copy todir="${jboss.server.dir}/deploy" file="${output.dir}/${module.name}.war" />
-  </target>
-
-  <target name="undeploy.webservice" depends="define.jmx.task" description="undeploy web service">
-    <!--
-    <jmx adaptername="jmx/invoker/RMIAdaptor">
-      <invoke target="jboss.system:service=MainDeployer" operation="undeploy">
-        <parameter type="java.net.URL" arg="file:/${basedir}/${output.dir}/${module.name}.war" />
-      </invoke>
-    </jmx>
-    -->
-    <delete file="${jboss.server.dir}/deploy/${module.name}.war" />
-  </target>
+  <import file="base-build.xml" />
 
   <!-- ============ -->
   <!-- === MAIN === -->
   <!-- ============ -->
 
-  <target name="main" depends="deploy.webservice" description="main target" />
-
-  <!-- =============== -->
-  <!-- === CLEANUP === -->
-  <!-- =============== -->
-
-  <target name="clean" description="remove generated files">
-    <delete dir="${output.dir}" failonerror="no" />
-  </target>
+  <target name="main" depends="deploy-webservice" description="deploy web service" />
 
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/build.xml
--- jpdl-3.2.3.GA/bpel/examples/hello/build.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,7 +1,4 @@
 <?xml version="1.0"?>
 <project name="hello" default="main">
-
   <import file="../common/bpel-build.xml" />
-  <import file="../common/test-build.xml" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel/hello.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel/hello.bpel
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel/hello.bpel	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel/hello.bpel	2009-02-06 09:17:28.000000000 +0100
@@ -16,23 +16,22 @@
     <variable name="response" messageType="tns:greetingMessage" />
   </variables>
 
-  <sequence name="MainSeq">
+  <sequence>
 
     <!-- receive the name of a person -->
-    <receive name="ReceiveName" operation="sayHello" partnerLink="caller" portType="tns:Greeter"
-      variable="request" createInstance="yes" />
+    <receive operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request"
+      createInstance="yes" />
 
     <!-- compose a greeting phrase -->
-    <assign name="ComposeGreeting">
+    <assign>
       <copy>
         <from expression="concat('Hello, ', bpel:getVariableData('request', 'name'), '!')" />
         <to variable="response" part="greeting" />
       </copy>
     </assign>
 
-    <!-- send greeting back to caller -->
-    <reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter"
-      variable="response" />
+    <!-- reply with the greeting -->
+    <reply operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response" />
   </sequence>
 
 </process>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel/hello.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel/hello.wsdl
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel/hello.wsdl	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel/hello.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -22,6 +22,7 @@
     </operation>
   </portType>
 
+
   <!-- characterizes the relationship between the greeter and its caller -->
   <plt:partnerLinkType name="Greeter-Caller">
     <plt:role name="Greeter">
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.bpel
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.bpel	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.bpel	2009-02-06 09:17:28.000000000 +0100
@@ -1,46 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process name="HelloWorld" targetNamespace="http://jbpm.org/examples/hello"
-  xmlns:tns="http://jbpm.org/examples/hello"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
-
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl"
-    namespace="http://jbpm.org/examples/hello" />
-
-  <partnerLinks>
-    <partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Greeter-Caller">
-      <documentation>establishes the relationship with the caller agent</documentation>
-    </partnerLink>
-  </partnerLinks>
-
-  <variables>
-    <variable messageType="tns:nameMessage" name="request">
-      <documentation>holds the incoming message</documentation>
-    </variable>
-    <variable messageType="tns:greetingMessage" name="response">
-      <documentation>holds the outgoing message</documentation>
-    </variable>
-  </variables>
-
-  <sequence name="MainSeq">
-
-    <receive createInstance="yes" name="ReceiveName" operation="sayHello" 
-      partnerLink="caller" portType="tns:Greeter" variable="request">
-      <documentation>receive the name of a person</documentation>
-    </receive>
-
-    <assign name="ComposeGreeting" validate="no">
-      <documentation>compose a greeting phrase</documentation>
-      <copy>
-        <from>concat('Hello, ', $request.name, '!')</from>
-        <to part="greeting" variable="response" />
-      </copy>
-    </assign>
-
-    <reply name="SendGreeting" operation="sayHello" partnerLink="caller"
-      portType="tns:Greeter" variable="response">
-      <documentation>send greeting back to caller</documentation>
-    </reply>
-
-  </sequence>
-
-</process>
+<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:tns="http://jbpm.org/examples/hello" exitOnStandardFault="yes" name="HelloWorld" suppressJoinFailure="yes" targetNamespace="http://jbpm.org/examples/hello">
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl" namespace="http://jbpm.org/examples/hello"/>
+<bpws:partnerLinks>
+<bpws:partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Greeter-Caller"/>
+</bpws:partnerLinks>
+<bpws:variables>
+<bpws:variable messageType="tns:nameMessage" name="request"/>
+<bpws:variable messageType="tns:greetingMessage" name="response"/>
+</bpws:variables>
+<bpws:sequence name="HiddenSequence">
+<bpws:receive createInstance="yes" name="ReceiveName" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request"/>
+<bpws:assign name="ComposeGreeting" validate="no">
+<bpws:copy>
+<bpws:from><![CDATA[concat('Hello, ', $request.name, '!')]]></bpws:from>
+<bpws:to part="greeting" variable="response"/>
+</bpws:copy>
+</bpws:assign>
+<bpws:reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response"/>
+</bpws:sequence>
+</bpws:process>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.bpelex jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.bpelex
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.bpelex	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.bpelex	2009-02-06 09:17:28.000000000 +0100
@@ -2,7 +2,7 @@
 <extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
   <extensions>
     <extendedObject href="hello.bpel#/"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1195960679078"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1185246790984"/>
   </extensions>
   <extensions>
     <extendedObject href="hello.bpel#//@activity/@activities.0"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.wsdl
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/bpel2/hello.wsdl	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/bpel2/hello.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions targetNamespace="http://jbpm.org/examples/hello"
   xmlns:tns="http://jbpm.org/examples/hello" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
 
   <message name="greetingMessage">
@@ -21,14 +21,13 @@
       <output message="tns:greetingMessage" />
     </operation>
   </portType>
-
   <plt:partnerLinkType name="Greeter-Caller">
     <plt:documentation>
       characterizes the relationship between the greeter and its caller
     </plt:documentation>
     <plt:role name="Greeter" portType="tns:Greeter">
       <plt:documentation>
-        Caller does not provide services to Greeter, hence the "Caller" role is omitted
+        the Caller does not provide services to the Greeter, this is why we omit the "Caller" role
       </plt:documentation>
     </plt:role>
   </plt:partnerLinkType>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main: java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/resources/client/application-client.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/resources/client/application-client.xml
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/resources/client/application-client.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/resources/client/application-client.xml	2009-02-06 09:17:28.000000000 +0100
@@ -5,13 +5,13 @@
 
   <service-ref>
 
-    <!-- JNDI name for Service instance, chosen by the user -->
+    <!-- JNDI name of service interface in client environment context -->
     <service-ref-name>service/Hello</service-ref-name>
-    <!-- fully qualified name of Service interface, generated by the mapping tool -->
+    <!-- service interface -->
     <service-interface>org.jbpm.bpel.tutorial.hello.HelloWorldService</service-interface>
-    <!-- published WSDL document, taken from server -->
+    <!-- published WSDL document -->
     <wsdl-file>META-INF/wsdl/hello-service.wsdl</wsdl-file>
-    <!-- Java mapping document, generated by the mapping tool -->
+    <!-- Java<->XML mapping file -->
     <jaxrpc-mapping-file>META-INF/hello-mapping.xml</jaxrpc-mapping-file>
 
   </service-ref>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/main/resources/client/jboss-client.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/resources/client/jboss-client.xml
--- jpdl-3.2.3.GA/bpel/examples/hello/src/main/resources/client/jboss-client.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/resources/client/jboss-client.xml	2009-02-06 09:17:28.000000000 +0100
@@ -2,6 +2,6 @@
 <!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 4.0//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd">
 <jboss-client>
-  <!-- JNDI name for client environment context, chosen by the user -->
+  <!-- JNDI name of client environment context -->
   <jndi-name>jbpmbpel-client</jndi-name>
 </jboss-client>
\ No newline at end of file
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/main/resources: web
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/hello/src/test/java/org/jbpm/bpel/tutorial/hello/HelloTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/test/java/org/jbpm/bpel/tutorial/hello/HelloTest.java
--- jpdl-3.2.3.GA/bpel/examples/hello/src/test/java/org/jbpm/bpel/tutorial/hello/HelloTest.java	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/hello/src/test/java/org/jbpm/bpel/tutorial/hello/HelloTest.java	2009-02-06 09:17:28.000000000 +0100
@@ -14,28 +14,35 @@
  */
 package org.jbpm.bpel.tutorial.hello;
 
+import java.util.Properties;
 import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Call;
 
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
+import org.jboss.test.ws.JBossWSTestSetup;
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/06 22:06:25 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:47:43 $
  */
 public class HelloTest extends TestCase {
 
   private HelloWorldService helloService;
 
+  public static Test suite() {
+    return JBossWSTestSetup.newTestSetup(HelloTest.class, "hello-client.jar");
+  }
+
   protected void setUp() throws Exception {
     InitialContext iniCtx = new InitialContext();
     /*
-     * "service/Hello" is the JNDI name of the service interface instance relative to the client
-     * environment context. This name matches the <service-ref-name> in application-client.xml
+     * "service/Hello" is the JNDI name of the service interface instance
+     * relative to the client environment context. This name matches the
+     * <service-ref-name> in application-client.xml
      */
     helloService = (HelloWorldService) iniCtx.lookup("java:comp/env/service/Hello");
   }
@@ -52,14 +59,11 @@
   public void testSayHello_dii() throws Exception {
     String portTypeNS = "http://jbpm.org/examples/hello";
     // obtain dynamic invocation instance
-    Call call = helloService.createCall(new QName(portTypeNS, "GreeterPort"), "sayHello");
+    Call call = helloService.createCall(new QName(portTypeNS, "GreeterPort"),
+        "sayHello");
     // invoke operation using request/response interaction mode
     String greeting = (String) call.invoke(new Object[] { "Olive" });
     // check proper greeting
     assertEquals("Hello, Olive!", greeting);
   }
-
-  public static Test suite() {
-    return new ModuleDeployTestSetup(HelloTest.class, "hello-client.jar");
-  }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/invoice/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/build.xml
--- jpdl-3.2.3.GA/bpel/examples/invoice/build.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/build.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="invoice" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/invoice/src/main/java/org/jbpm/bpel/tutorial/invoice/ComputePricePT_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/java/org/jbpm/bpel/tutorial/invoice/ComputePricePT_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/invoice/src/main/java/org/jbpm/bpel/tutorial/invoice/ComputePricePT_Impl.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/java/org/jbpm/bpel/tutorial/invoice/ComputePricePT_Impl.java	2009-02-06 09:17:29.000000000 +0100
@@ -42,7 +42,7 @@
  * Invoice endpoint bean.
  * @author Jeff DeLong
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:27:49 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class ComputePricePT_Impl implements ComputePricePT, ServiceLifecycle {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/invoice/src/main/resources/web/jboss-web.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/resources/web/jboss-web.xml
--- jpdl-3.2.3.GA/bpel/examples/invoice/src/main/resources/web/jboss-web.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/resources/web/jboss-web.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
-<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
+<!DOCTYPE jboss-web PUBLIC
+  "-//JBoss//DTD Web Application 2.4//EN"
   "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
-
 <jboss-web>
 
   <resource-ref>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/invoice/src/main/resources/web/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/resources/web/web.xml
--- jpdl-3.2.3.GA/bpel/examples/invoice/src/main/resources/web/web.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/invoice/src/main/resources/web/web.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,10 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
+      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
   <!-- Invoice Service -->
   <servlet>
     <servlet-name>invoiceServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.tutorial.invoice.ComputePricePT_Impl</servlet-class>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.invoice.ComputePricePT_Impl
+    </servlet-class>
   </servlet>
   <servlet-mapping>
     <servlet-name>invoiceServlet</servlet-name>
@@ -12,7 +17,9 @@
   </servlet-mapping>
 
   <resource-ref>
-    <description>The single factory from which servlets obtain JMS connections.</description>
+    <description>
+      The single factory from which servlets obtain JMS connections.
+    </description>
     <res-ref-name>jms/ConnectionFactory</res-ref-name>
     <res-type>javax.jms.ConnectionFactory</res-type>
     <res-auth>Container</res-auth>
@@ -26,4 +33,5 @@
     <message-destination-usage>Produces</message-destination-usage>
   </message-destination-ref>
 
+
 </web-app>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/loan/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/build.xml
--- jpdl-3.2.3.GA/bpel/examples/loan/build.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -2,41 +2,24 @@
 <project name="loan" default="main">
 
   <import file="../common/bpel-build.xml" />
-  <import file="../common/test-build.xml" />
 
-  <!-- ============================ -->
-  <!-- === PARTNER REGISTRATION === -->
-  <!-- ============================ -->
-
-  <target name="register.partners"
-          depends="define.register.task"
-          description="register partner services">
-    <registerpartner baselocation="http://localhost:8080/task/taskManager?wsdl" />
-  </target>
-
-  <!-- ===================================== -->
-  <!-- === APPLICATION CLIENT DEPLOYMENT === -->
-  <!-- ===================================== -->
-
-  <target name="package.client" depends="test.package.client">
-    <ant antfile="../task/build.xml" target="generate.mapping" inheritall="no" />
-    <!-- update client module with task mapping artifacts -->
-    <jar destfile="${output.dir}/${module.name}-client.jar" update="yes">
-      <metainf file="../task/${output.web.dir}/task-mapping.xml" />
+  <target name="pack-client">
+    <jar destfile="${output.dir}/${module.name}-client.jar">
+      <metainf dir="${client.dir}" />
+      <metainf file="${output.web.dir}/${module.name}-mapping.xml" />
+      <metainf file="../task/target/resources/web/task-mapping.xml" />
+      <zipfileset dir="${jboss.server.dir}/data/wsdl/${module.name}.war" prefix="META-INF/wsdl" />
       <zipfileset dir="${jboss.server.dir}/data/wsdl/task.war" prefix="META-INF/wsdl" />
     </jar>
   </target>
 
-  <!-- ====================== -->
-  <!-- === TEST EXECUTION === -->
-  <!-- ====================== -->
-
-  <target name="compile.test.dependencies">
+  <target name="define-test-classpath" depends="generate-artifacts, compile-common">
+    <ant antfile="../task/build.xml" target="generate-artifacts" inheritall="no" />
     <path id="test.path">
       <path refid="jboss.path" />
-      <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
       <pathelement location="${output.classes.dir}" />
-      <pathelement location="../task/${output.classes.dir}" />
+      <pathelement location="${common.classes.dir}" />
+      <pathelement location="../task/target/classes" />
     </path>
   </target>
 
Only in jpdl-3.2.3.GA/bpel/examples/loan/src/main: bpel
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.bpel
--- jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.bpel	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.bpel	2009-02-06 09:17:28.000000000 +0100
@@ -1,16 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpws:process exitOnStandardFault="yes" name="LoanApproval"
-  targetNamespace="http://jbpm.org/examples/loan"
-  xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
-  xmlns:jbpm="urn:jbpm.org:bpel-1.1" xmlns:loan="http://jbpm.org/examples/loan"
-  xmlns:task="http://jbpm.org/examples/task"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="loan.wsdl"
-    namespace="http://jbpm.org/examples/loan" />
-  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/loaner.wsdl"
-    namespace="http://jbpm.org/examples/loan" />
-  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/task.wsdl"
-    namespace="http://jbpm.org/examples/task" />
+<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:jbpm="urn:jbpm.org:bpel-1.1" xmlns:loan="http://jbpm.org/examples/loan" xmlns:task="http://jbpm.org/examples/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exitOnStandardFault="yes" name="LoanApproval" targetNamespace="http://jbpm.org/examples/loan">
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="loan.wsdl" namespace="http://jbpm.org/examples/loan"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/loaner.wsdl" namespace="http://jbpm.org/examples/loan"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/task.wsdl" namespace="http://jbpm.org/examples/task"/>
   <bpws:partnerLinks>
     <bpws:partnerLink myRole="loaner" name="borrower" partnerLinkType="loan:borrower-loaner" />
   </bpws:partnerLinks>
@@ -22,14 +14,14 @@
   <bpws:correlationSets>
     <bpws:correlationSet name="borrowerName" properties="loan:borrowerName" />
   </bpws:correlationSets>
-  <bpws:sequence name="Main">
-    <bpws:receive createInstance="yes" name="AcceptLoanRequest" operation="requestLoan"
-      partnerLink="borrower" portType="loan:Loaner" variable="loanRequest">
+<bpws:sequence name="HiddenSequence">
+<bpws:receive createInstance="yes" name="AcceptLoanRequest" operation="requestLoan" partnerLink="borrower" portType="loan:Loaner" variable="loanRequest">
       <bpws:correlations>
         <bpws:correlation initiate="yes" set="borrowerName" />
       </bpws:correlations>
     </bpws:receive>
-    <bpws:if name="EvaluateAmount">
+<bpws:switch name="EvaluateAmount">
+<bpws:case>
       <bpws:condition><![CDATA[$loanRequest.amount < 1000]]></bpws:condition>
       <bpws:assign name="ApproveLoan" validate="no">
         <bpws:copy>
@@ -37,11 +29,11 @@
           <bpws:to part="status" variable="statusResponse" />
         </bpws:copy>
       </bpws:assign>
-      <bpws:else>
+</bpws:case>
+<bpws:otherwise>
         <bpws:scope name="EscalateToAgent">
           <bpws:partnerLinks>
-            <bpws:partnerLink myRole="taskRequester" name="taskManager"
-              partnerLinkType="loan:taskRequester-taskManager" partnerRole="taskManager" />
+<bpws:partnerLink myRole="taskRequester" name="taskManager" partnerLinkType="loan:taskRequester-taskManager" partnerRole="taskManager"/>
           </bpws:partnerLinks>
           <bpws:variables>
             <bpws:variable messageType="task:createTaskResponse" name="taskCreationResponse" />
@@ -51,7 +43,7 @@
           <bpws:correlationSets>
             <bpws:correlationSet name="evaluationTask" properties="loan:taskId" />
           </bpws:correlationSets>
-          <bpws:sequence name="EscalateSeq">
+<bpws:sequence name="HiddenSequence1">
             <bpws:assign name="PrepareTaskCreation" validate="no">
               <bpws:copy>
                 <bpws:from><![CDATA['evaluate loan']]></bpws:from>
@@ -76,9 +68,7 @@
                 <bpws:to part="replyTo" variable="taskCreationRequest" />
               </bpws:copy>
             </bpws:assign>
-            <bpws:invoke inputVariable="taskCreationRequest" name="CreateEvaluationTask"
-              operation="createTask" outputVariable="taskCreationResponse" partnerLink="taskManager"
-              portType="task:TaskManager">
+<bpws:invoke inputVariable="taskCreationRequest" name="CreateEvaluationTask" operation="createTask" outputVariable="taskCreationResponse" partnerLink="taskManager" portType="task:TaskManager">
               <bpws:correlations>
                 <bpws:correlation initiate="yes" pattern="in" set="evaluationTask" />
               </bpws:correlations>
@@ -92,8 +82,7 @@
             <bpws:while name="EvaluationLoop">
               <bpws:condition><![CDATA[$statusResponse.status = 'evaluating']]></bpws:condition>
               <bpws:pick name="EvaluationMenu">
-                <bpws:onMessage operation="taskEnded" partnerLink="taskManager"
-                  portType="task:TaskCallback" variable="taskEndedNotification">
+<bpws:onMessage operation="taskEnded" partnerLink="taskManager" portType="task:TaskCallback" variable="taskEndedNotification">
                   <bpws:correlations>
                     <bpws:correlation initiate="no" set="evaluationTask" />
                   </bpws:correlations>
@@ -106,27 +95,23 @@
                     </bpws:copy>
                   </bpws:assign>
                 </bpws:onMessage>
-                <bpws:onMessage operation="getLoanStatus" partnerLink="borrower"
-                  portType="loan:Loaner" variable="statusRequest">
+<bpws:onMessage operation="getLoanStatus" partnerLink="borrower" portType="loan:Loaner" variable="statusRequest">
                   <bpws:correlations>
                     <bpws:correlation initiate="no" set="borrowerName" />
                   </bpws:correlations>
-                  <bpws:reply name="NotifyEvaluating" operation="getLoanStatus"
-                    partnerLink="borrower" portType="loan:Loaner" variable="statusResponse" />
+<bpws:reply name="NotifyEvaluating" operation="getLoanStatus" partnerLink="borrower" portType="loan:Loaner" variable="statusResponse"/>
                 </bpws:onMessage>
               </bpws:pick>
             </bpws:while>
           </bpws:sequence>
         </bpws:scope>
-      </bpws:else>
-    </bpws:if>
-    <bpws:receive name="AcceptStatusRequest" operation="getLoanStatus" partnerLink="borrower"
-      portType="loan:Loaner" variable="statusRequest">
+</bpws:otherwise>
+</bpws:switch>
+<bpws:receive name="AcceptStatusRequest" operation="getLoanStatus" partnerLink="borrower" portType="loan:Loaner" variable="statusRequest">
       <bpws:correlations>
         <bpws:correlation initiate="no" set="borrowerName" />
       </bpws:correlations>
     </bpws:receive>
-    <bpws:reply name="SendStatus" operation="getLoanStatus" partnerLink="borrower"
-      portType="loan:Loaner" variable="statusResponse" />
+<bpws:reply name="SendStatus" operation="getLoanStatus" partnerLink="borrower" portType="loan:Loaner" variable="statusResponse"/>
   </bpws:sequence>
 </bpws:process>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.bpelex jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.bpelex
--- jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.bpelex	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.bpelex	2009-02-06 09:17:28.000000000 +0100
@@ -2,7 +2,7 @@
 <extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
   <extensions>
     <extendedObject href="loan.bpel#/"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1197519198734"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1186562962515"/>
   </extensions>
   <extensions>
     <extendedObject href="loan.bpel#//@activity/@activities.0"/>
@@ -17,111 +17,115 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension" displayName="SmallAmount?"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.2"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.3"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@cases.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@variables/@children.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@cases.0/@activity/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@variables/@children.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@variables/@children.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@variables/@children.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.0/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.0/@copy.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@variables/@children.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.0/@copy.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity/@messages.0/@activity"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.0/@copy.3"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity/@messages.0/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.1"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.0/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.2/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.0/@copy.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity/@messages.1/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.2"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity/@messages.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.2/@copy.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity/@messages.0/@activity"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.2"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity/@messages.0/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity/@messages.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extendedObject href="loan.bpel#//@variables/@children.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@activity/@activities.3/@activity/@messages.1/@activity"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+    <extendedObject href="loan.bpel#//@variables/@children.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@variables/@children.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.0/@copy.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@variables/@children.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.0/@copy.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="4"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@else/@activity/@variables/@children.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity/@messages.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@activity"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="loan.bpel#//@activity/@activities.1/@activity/@copy.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3/@activity/@messages.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="loan.bpel#//@activity/@activities.1/@otherwise/@activity/@activity/@activities.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
 </extensionmodel:ExtensionMap>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.wsdl
--- jpdl-3.2.3.GA/bpel/examples/loan/src/main/bpel2/loan.wsdl	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/bpel2/loan.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions name="loan" targetNamespace="http://jbpm.org/examples/loan"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:tns="http://jbpm.org/examples/loan" xmlns:task="http://jbpm.org/examples/task"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
   <import namespace="http://jbpm.org/examples/loan" location="interface/loaner.wsdl" />
   <import namespace="http://jbpm.org/examples/task" location="interface/task.wsdl" />
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main: java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/main/resources: web
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/loan/src/test/java/org/jbpm/bpel/tutorial/loan/LoanerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/test/java/org/jbpm/bpel/tutorial/loan/LoanerTest.java
--- jpdl-3.2.3.GA/bpel/examples/loan/src/test/java/org/jbpm/bpel/tutorial/loan/LoanerTest.java	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/loan/src/test/java/org/jbpm/bpel/tutorial/loan/LoanerTest.java	2009-02-06 09:17:28.000000000 +0100
@@ -21,11 +21,11 @@
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFactory;
 
-
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
+import org.jboss.test.ws.JBossWSTestSetup;
+
 import org.jbpm.bpel.tutorial.task.TaskInfo;
 import org.jbpm.bpel.tutorial.task.TaskList;
 import org.jbpm.bpel.tutorial.task.TaskManagementService;
@@ -33,7 +33,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/06 22:06:29 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 10:48:51 $
  */
 public class LoanerTest extends TestCase {
 
@@ -44,7 +44,7 @@
     InitialContext ctx = new InitialContext();
     /*
      * "service/Loan" and "service/Task" are the JNDI names of the service interface instances
-     * relative to the client environment context. These names match the <service-ref-name>s in
+     * relative to the client environment context. These name matches the <service-ref-name>s in
      * application-client.xml
      */
     LoanApprovalService loanService = (LoanApprovalService) ctx.lookup("java:comp/env/service/Loan");
@@ -91,6 +91,6 @@
   }
 
   public static Test suite() {
-    return new ModuleDeployTestSetup(LoanerTest.class, "loan-client.jar");
+    return JBossWSTestSetup.newTestSetup(LoanerTest.class, "loan-client.jar");
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/build.xml
--- jpdl-3.2.3.GA/bpel/examples/purchase/build.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -2,48 +2,22 @@
 <project name="purchase" default="main">
 
   <import file="../common/bpel-build.xml" />
-  <import file="../common/test-build.xml" />
-
   <property name="ejb.dir" value="${resources.dir}/ejb" />
 
-  <!-- ============================ -->
-  <!-- === PARTNER REGISTRATION === -->
-  <!-- ============================ -->
-
-  <target name="register.partners"
-          depends="define.register.task"
-          description="register the partner services">
-    <registerpartner baselocation="http://localhost:8080/invoice/invoiceService?wsdl" />
-    <registerpartner baselocation="http://localhost:8080/shipping/shippingService?wsdl" />
-    <registerpartner baselocation="http://localhost:8080/scheduling/schedulingProcess?wsdl" />
-  </target>
-
   <!-- =========================== -->
   <!-- === EJB MODULE ASSEMBLY === -->
   <!-- =========================== -->
 
-  <target name="package.ejb" depends="generate.mapping">
-    <!-- compile ejb classes -->
-    <mkdir dir="${output.classes.dir}" />
-    <javac destdir="${output.classes.dir}"
-           classpathref="jboss.path"
-           source="${javac.source}"
-           target="${javac.target}"
-           debug="${javac.debug}"
-           deprecation="${javac.deprecation}">
-      <src path="${java.dir}" />
-      <src path="${output.java.dir}" />
-    </javac>
-    <!-- build ejb module with classes and descriptors -->
-    <jar destfile="${output.dir}/${module.name}-ejb.jar">
-      <!-- ejb descriptors -->
-      <metainf dir="${ejb.dir}" />
-      <!-- jaxrpc mapping file -->
-      <metainf file="${output.web.dir}/${module.name}-mapping.xml" />
-      <!-- wsdl documents -->
+  <target name="pack-ejb" depends="compile">
+    <ejbjar srcdir="${output.classes.dir}"
+            descriptordir="${ejb.dir}"
+            basejarname="${module.name}"
+            dependency="full">
+      <jboss destdir="${output.dir}" suffix="-ejb.jar" />
+    </ejbjar>
+    <jar destfile="${output.dir}/${module.name}-ejb.jar" update="yes">
+      <metainf file="${output.web.dir}/purchase-mapping.xml" />
       <zipfileset dir="${jboss.server.dir}/data/wsdl/${module.name}.war" prefix="META-INF/wsdl" />
-      <!-- ejb classes -->
-      <fileset dir="${output.classes.dir}" />
     </jar>
   </target>
 
@@ -51,8 +25,9 @@
   <!-- === TEST EXECUTION === -->
   <!-- ====================== -->
 
-  <target name="test" depends="package.ejb" description="test the deployed application">
-    <antcall target="test.test" />
+  <target name="test" description="test the deployed application">
+    <antcall target="pack-ejb" />
+    <antcall target="template.test" />
   </target>
 
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel/purchase.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel/purchase.bpel
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel/purchase.bpel	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel/purchase.bpel	2009-02-06 09:17:28.000000000 +0100
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process name="PurchaseOrder" targetNamespace="http://acme.com/ws-bp/purchase"
+<process name="purchaseOrderProcess" targetNamespace="http://acme.com/ws-bp/purchase"
   xmlns:lns="http://manufacturing.org/wsdl/purchase"
   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
 
@@ -33,10 +33,10 @@
 
   </faultHandlers>
 
-  <sequence name="Main">
+  <sequence>
 
-    <receive name="ReceivePurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT"
-      operation="sendPurchaseOrder" variable="PO" createInstance="yes" />
+    <receive partnerLink="purchasing" portType="lns:purchaseOrderPT" operation="sendPurchaseOrder"
+      variable="PO" createInstance="yes" />
 
     <flow>
 
@@ -45,49 +45,48 @@
         <link name="ship-to-scheduling" />
       </links>
 
-      <sequence name="Shipping">
+      <sequence>
 
-        <assign name="PrepareShipping">
+        <assign>
           <copy>
             <from variable="PO" part="customerInfo" />
             <to variable="shippingRequest" part="customerInfo" />
           </copy>
         </assign>
 
-        <invoke name="RequestShipping" partnerLink="shipping" portType="lns:shippingPT"
-          operation="requestShipping" inputVariable="shippingRequest"
-          outputVariable="shippingInfo">
+        <invoke partnerLink="shipping" portType="lns:shippingPT" operation="requestShipping"
+          inputVariable="shippingRequest" outputVariable="shippingInfo">
           <source linkName="ship-to-invoice" />
         </invoke>
 
-        <receive name="ReceiveSchedule" partnerLink="shipping" portType="lns:shippingCallbackPT"
-          operation="sendSchedule" variable="shippingSchedule">
+        <receive partnerLink="shipping" portType="lns:shippingCallbackPT" operation="sendSchedule"
+          variable="shippingSchedule">
           <source linkName="ship-to-scheduling" />
         </receive>
 
       </sequence>
 
-      <sequence name="Invoicing">
+      <sequence>
 
-        <invoke name="InitiatePriceCalculation" partnerLink="invoicing"
-          portType="lns:computePricePT" operation="initiatePriceCalculation" inputVariable="PO" />
+        <invoke partnerLink="invoicing" portType="lns:computePricePT"
+          operation="initiatePriceCalculation" inputVariable="PO" />
 
-        <invoke name="SendShippingPrice" partnerLink="invoicing" portType="lns:computePricePT"
-          operation="sendShippingPrice" inputVariable="shippingInfo">
+        <invoke partnerLink="invoicing" portType="lns:computePricePT" operation="sendShippingPrice"
+          inputVariable="shippingInfo">
           <target linkName="ship-to-invoice" />
         </invoke>
 
-        <receive name="ReceiveInvoice" partnerLink="invoicing" portType="lns:invoiceCallbackPT"
-          operation="sendInvoice" variable="Invoice" />
+        <receive partnerLink="invoicing" portType="lns:invoiceCallbackPT" operation="sendInvoice"
+          variable="Invoice" />
 
       </sequence>
 
-      <sequence name="Scheduling">
+      <sequence>
 
-        <invoke name="RequestScheduling" partnerLink="scheduling" portType="lns:schedulingPT"
+        <invoke partnerLink="scheduling" portType="lns:schedulingPT"
           operation="requestProductionScheduling" inputVariable="PO" />
 
-        <invoke name="SendShippingSchedule" partnerLink="scheduling" portType="lns:schedulingPT"
+        <invoke partnerLink="scheduling" portType="lns:schedulingPT"
           operation="sendShippingSchedule" inputVariable="shippingSchedule">
           <target linkName="ship-to-scheduling" />
         </invoke>
@@ -96,8 +95,8 @@
 
     </flow>
 
-    <reply name="SendPurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT"
-      operation="sendPurchaseOrder" variable="Invoice" />
+    <reply partnerLink="purchasing" portType="lns:purchaseOrderPT" operation="sendPurchaseOrder"
+      variable="Invoice" />
 
   </sequence>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.bpel
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.bpel	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.bpel	2009-02-06 09:17:28.000000000 +0100
@@ -1,18 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpws:process exitOnStandardFault="yes" name="PurchaseOrder"
-    targetNamespace="http://acme.com/ws-bp/purchase"
-    xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:lns="http://manufacturing.org/wsdl/purchase">
+<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:lns="http://manufacturing.org/wsdl/purchase" exitOnStandardFault="yes" name="purchaseOrderProcess" targetNamespace="http://acme.com/ws-bp/purchase">
     <bpws:documentation>WS-BPEL process for handling a purchase order.</bpws:documentation>
-    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
-        location="purchase.wsdl" namespace="http://manufacturing.org/wsdl/purchase"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="purchase.wsdl" namespace="http://manufacturing.org/wsdl/purchase"/>
     <bpws:partnerLinks>
         <bpws:partnerLink myRole="purchaseService" name="purchasing" partnerLinkType="lns:purchasingLT"/>
-        <bpws:partnerLink myRole="invoiceRequester" name="invoicing"
-            partnerLinkType="lns:invoicingLT" partnerRole="invoiceService"/>
-        <bpws:partnerLink myRole="shippingRequester" name="shipping"
-            partnerLinkType="lns:shippingLT" partnerRole="shippingService"/>
-        <bpws:partnerLink name="scheduling"
-            partnerLinkType="lns:schedulingLT" partnerRole="schedulingService"/>
+<bpws:partnerLink myRole="invoiceRequester" name="invoicing" partnerLinkType="lns:invoicingLT" partnerRole="invoiceService"/>
+<bpws:partnerLink myRole="shippingRequester" name="shipping" partnerLinkType="lns:shippingLT" partnerRole="shippingService"/>
+<bpws:partnerLink name="scheduling" partnerLinkType="lns:schedulingLT" partnerRole="schedulingService"/>
     </bpws:partnerLinks>
     <bpws:variables>
         <bpws:variable messageType="lns:POMessage" name="PO"/>
@@ -23,17 +17,12 @@
         <bpws:variable messageType="lns:scheduleMessage" name="shippingSchedule"/>
     </bpws:variables>
     <bpws:faultHandlers>
-        <bpws:catch faultMessageType="lns:orderFaultType"
-            faultName="lns:cannotCompleteOrder" faultVariable="POFault">
-            <bpws:reply faultName="cannotCompleteOrder"
-                name="NotifyPurchaseFault" operation="sendPurchaseOrder"
-                partnerLink="purchasing" portType="lns:purchaseOrderPT" variable="POFault"/>
+<bpws:catch faultMessageType="lns:orderFaultType" faultName="lns:cannotCompleteOrder" faultVariable="POFault">
+<bpws:reply faultName="cannotCompleteOrder" name="NotifyPurchaseFault" operation="sendPurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT" variable="POFault"/>
         </bpws:catch>
     </bpws:faultHandlers>
-    <bpws:sequence name="Main">
-        <bpws:receive createInstance="yes" name="ReceivePurchaseOrder"
-            operation="sendPurchaseOrder" partnerLink="purchasing"
-            portType="lns:purchaseOrderPT" variable="PO"/>
+<bpws:sequence>
+<bpws:receive createInstance="yes" name="ReceivePurchaseOrder" operation="sendPurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT" variable="PO"/>
         <bpws:flow>
             <bpws:documentation>
 
@@ -51,54 +40,35 @@
                         <bpws:to part="customerInfo" variable="shippingRequest"/>
                     </bpws:copy>
                 </bpws:assign>
-                <bpws:invoke inputVariable="shippingRequest"
-                    name="RequestShipping" operation="requestShipping"
-                    outputVariable="shippingInfo" partnerLink="shipping" portType="lns:shippingPT">
+<bpws:invoke inputVariable="shippingRequest" name="RequestShipping" operation="requestShipping" outputVariable="shippingInfo" partnerLink="shipping" portType="lns:shippingPT">
                     <bpws:sources>
                         <bpws:source linkName="ship-to-invoice"/>
                     </bpws:sources>
                 </bpws:invoke>
-                <bpws:receive name="ReceiveSchedule"
-                    operation="sendSchedule" partnerLink="shipping"
-                    portType="lns:shippingCallbackPT" variable="shippingSchedule">
+<bpws:receive name="ReceiveSchedule" operation="sendSchedule" partnerLink="shipping" portType="lns:shippingCallbackPT" variable="shippingSchedule">
                     <bpws:sources>
                         <bpws:source linkName="ship-to-scheduling"/>
                     </bpws:sources>
                 </bpws:receive>
             </bpws:sequence>
             <bpws:sequence name="Invoicing">
-                <bpws:invoke inputVariable="PO"
-                    name="InitiatePriceCalculation"
-                    operation="initiatePriceCalculation"
-                    partnerLink="invoicing" portType="lns:computePricePT"/>
-                <bpws:invoke inputVariable="shippingInfo"
-                    name="SendShippingPrice"
-                    operation="sendShippingPrice"
-                    partnerLink="invoicing" portType="lns:computePricePT">
+<bpws:invoke inputVariable="PO" name="InitiatePriceCalculation" operation="initiatePriceCalculation" partnerLink="invoicing" portType="lns:computePricePT"/>
+<bpws:invoke inputVariable="shippingInfo" name="SendShippingPrice" operation="sendShippingPrice" partnerLink="invoicing" portType="lns:computePricePT">
                     <bpws:targets>
                         <bpws:target linkName="ship-to-invoice"/>
                     </bpws:targets>
                 </bpws:invoke>
-                <bpws:receive name="ReceiveInvoice"
-                    operation="sendInvoice" partnerLink="invoicing"
-                    portType="lns:invoiceCallbackPT" variable="Invoice"/>
+<bpws:receive name="ReceiveInvoice" operation="sendInvoice" partnerLink="invoicing" portType="lns:invoiceCallbackPT" variable="Invoice"/>
             </bpws:sequence>
             <bpws:sequence name="Scheduling">
-                <bpws:invoke inputVariable="PO" name="RequestScheduling"
-                    operation="requestProductionScheduling"
-                    partnerLink="scheduling" portType="lns:schedulingPT"/>
-                <bpws:invoke inputVariable="shippingSchedule"
-                    name="SendShippingSchedule"
-                    operation="sendShippingSchedule"
-                    partnerLink="scheduling" portType="lns:schedulingPT">
+<bpws:invoke inputVariable="PO" name="RequestScheduling" operation="requestProductionScheduling" partnerLink="scheduling" portType="lns:schedulingPT"/>
+<bpws:invoke inputVariable="shippingSchedule" name="SendShippingSchedule" operation="sendShippingSchedule" partnerLink="scheduling" portType="lns:schedulingPT">
                     <bpws:targets>
                         <bpws:target linkName="ship-to-scheduling"/>
                     </bpws:targets>
                 </bpws:invoke>
             </bpws:sequence>
         </bpws:flow>
-        <bpws:reply name="SendPurchaseOrder"
-            operation="sendPurchaseOrder" partnerLink="purchasing"
-            portType="lns:purchaseOrderPT" variable="Invoice"/>
+<bpws:reply name="SendPurchaseOrder" operation="sendPurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT" variable="Invoice"/>
     </bpws:sequence>
 </bpws:process>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.bpelex jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.bpelex
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.bpelex	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.bpelex	2009-02-06 09:17:28.000000000 +0100
@@ -106,6 +106,6 @@
   </extensions>
   <extensions>
     <extendedObject href="purchase.bpel#/"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1196278493156"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1188351304171"/>
   </extensions>
 </extensionmodel:ExtensionMap>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.wsdl
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/bpel2/purchase.wsdl	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/bpel2/purchase.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions targetNamespace="http://manufacturing.org/wsdl/purchase"
-  xmlns:pos="http://manufacturing.org/wsdl/purchase"
   xmlns:sns="http://manufacturing.org/xsd/purchase"
-  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  xmlns:pos="http://manufacturing.org/wsdl/purchase" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
+  xmlns="http://schemas.xmlsoap.org/wsdl/">
 
   <types>
     <xsd:schema>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/InvoiceCallbackMessageBean.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/InvoiceCallbackMessageBean.java
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/InvoiceCallbackMessageBean.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/InvoiceCallbackMessageBean.java	2009-02-06 09:17:28.000000000 +0100
@@ -31,13 +31,13 @@
 
 import org.jbpm.bpel.tutorial.purchase.Invoice;
 import org.jbpm.bpel.tutorial.purchase.InvoiceCallbackPT;
-import org.jbpm.bpel.tutorial.purchase.PurchaseOrderService;
+import org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService;
 
 /**
  * Asynchronous invoice callback bean.
  * @author Jeff DeLong
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2007/07/05 09:59:56 $
  */
 public class InvoiceCallbackMessageBean implements MessageDrivenBean, MessageListener {
 
@@ -88,7 +88,7 @@
 
   public void ejbCreate() {
     try {
-      PurchaseOrderService service = lookupPurchaseOrderService();
+      PurchaseOrderProcessService service = lookupPurchaseOrderService();
       invoiceRequester = service.getInvoiceRequesterPort();
       log.debug("got invoice callback endpoint: " + invoiceRequester);
     }
@@ -105,10 +105,10 @@
     invoiceRequester = null;
   }
 
-  protected PurchaseOrderService lookupPurchaseOrderService() throws NamingException {
+  protected PurchaseOrderProcessService lookupPurchaseOrderService() throws NamingException {
     InitialContext initialContext = new InitialContext();
     try {
-      return (PurchaseOrderService) initialContext.lookup("java:comp/env/service/PurchaseOrder");
+      return (PurchaseOrderProcessService) initialContext.lookup("java:comp/env/service/PurchaseOrder");
     }
     finally {
       initialContext.close();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/ShippingCallbackMessageBean.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/ShippingCallbackMessageBean.java
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/ShippingCallbackMessageBean.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase/ejb/ShippingCallbackMessageBean.java	2009-02-06 09:17:28.000000000 +0100
@@ -30,7 +30,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.jbpm.bpel.tutorial.purchase.PurchaseOrderService;
+import org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService;
 import org.jbpm.bpel.tutorial.purchase.ScheduleInfo;
 import org.jbpm.bpel.tutorial.purchase.ShippingCallbackPT;
 
@@ -38,7 +38,7 @@
  * Asynchronous shipping callback bean.
  * @author Jeff DeLong
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:31:47 $
+ * @version $Revision: 1800 $ $Date: 2007/07/05 09:59:56 $
  */
 public class ShippingCallbackMessageBean implements MessageDrivenBean, MessageListener {
 
@@ -74,7 +74,7 @@
 
   public void ejbCreate() {
     try {
-      PurchaseOrderService service = lookupPurchaseService();
+      PurchaseOrderProcessService service = lookupPurchaseService();
       shippingRequester = service.getShippingRequesterPort();
     }
     catch (NamingException e) {
@@ -90,10 +90,10 @@
     shippingRequester = null;
   }
 
-  protected PurchaseOrderService lookupPurchaseService() throws NamingException {
+  protected PurchaseOrderProcessService lookupPurchaseService() throws NamingException {
     Context initialContext = new InitialContext();
     try {
-      return (PurchaseOrderService) initialContext.lookup("java:comp/env/service/PurchaseOrder");
+      return (PurchaseOrderProcessService) initialContext.lookup("java:comp/env/service/PurchaseOrder");
     }
     finally {
       initialContext.close();
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase: InvoiceCallbackPT_Impl.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase: PurchaseOrderPT_Impl.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/java/org/jbpm/bpel/tutorial/purchase: ShippingCallbackPT_Impl.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/resources/client/application-client.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/resources/client/application-client.xml
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/resources/client/application-client.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/resources/client/application-client.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
+      http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd">
 
   <display-name>Purchase Order Client</display-name>
 
@@ -7,7 +10,7 @@
 
     <service-ref-name>service/PurchaseOrder</service-ref-name>
     <service-interface>
-      org.jbpm.bpel.tutorial.purchase.PurchaseOrderService
+      org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService
     </service-interface>
     <wsdl-file>META-INF/wsdl/purchase-service.wsdl</wsdl-file>
     <jaxrpc-mapping-file>META-INF/purchase-mapping.xml</jaxrpc-mapping-file>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/main/resources/ejb/ejb-jar.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/resources/ejb/ejb-jar.xml
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/main/resources/ejb/ejb-jar.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/resources/ejb/ejb-jar.xml	2009-02-06 09:17:28.000000000 +0100
@@ -19,11 +19,17 @@
 
         <service-ref-name>service/PurchaseOrder</service-ref-name>
         <service-interface>
-          org.jbpm.bpel.tutorial.purchase.PurchaseOrderService
+          org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService
         </service-interface>
         <wsdl-file>META-INF/wsdl/purchase-service.wsdl</wsdl-file>
         <jaxrpc-mapping-file>META-INF/purchase-mapping.xml</jaxrpc-mapping-file>
 
+        <port-component-ref>
+          <service-endpoint-interface>
+            org.jbpm.bpel.tutorial.purchase.InvoiceCallbackPT
+          </service-endpoint-interface>
+        </port-component-ref>
+
       </service-ref>
 
     </message-driven>
@@ -41,11 +47,17 @@
 
         <service-ref-name>service/PurchaseOrder</service-ref-name>
         <service-interface>
-          org.jbpm.bpel.tutorial.purchase.PurchaseOrderService
+          org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService
         </service-interface>
         <wsdl-file>META-INF/wsdl/purchase-service.wsdl</wsdl-file>
         <jaxrpc-mapping-file>META-INF/purchase-mapping.xml</jaxrpc-mapping-file>
 
+        <port-component-ref>
+          <service-endpoint-interface>
+            org.jbpm.bpel.tutorial.purchase.ShippingCallbackPT
+          </service-endpoint-interface>
+        </port-component-ref>
+
       </service-ref>
 
     </message-driven>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/main/resources: web
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/purchase/src/test/java/org/jbpm/bpel/tutorial/purchase/PurchaseOrderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/test/java/org/jbpm/bpel/tutorial/purchase/PurchaseOrderTest.java
--- jpdl-3.2.3.GA/bpel/examples/purchase/src/test/java/org/jbpm/bpel/tutorial/purchase/PurchaseOrderTest.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/purchase/src/test/java/org/jbpm/bpel/tutorial/purchase/PurchaseOrderTest.java	2009-02-06 09:17:28.000000000 +0100
@@ -7,26 +7,31 @@
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
+import org.jboss.test.ws.JBossWSTestSetup;
 
 /**
  * Test for common order purchasing scenarios.
  * @author Jeff DeLong
  * @author Alejandro Guizar
- * @version $Revision: 1238 $
+ * @version $Revision: 1800 $
  */
 public class PurchaseOrderTest extends TestCase {
 
   private PurchaseOrderPT purchaseOrderPT;
 
+  public static Test suite() {
+    return JBossWSTestSetup.newTestSetup(PurchaseOrderTest.class,
+        "purchase-ejb.jar, purchase-client.jar");
+  }
+
   protected void setUp() throws Exception {
     InitialContext ctx = new InitialContext();
     /*
-     * "service/PurchaseOrder" is the JNDI name of the service interface instance relative to the
-     * client environment context. This name matches the <service-ref-name> in
-     * application-client.xml
+     * "service/PurchaseOrder" is the JNDI name of the service interface
+     * instance relative to the client environment context. This name matches
+     * the <service-ref-name> in application-client.xml
      */
-    PurchaseOrderService service = (PurchaseOrderService) ctx.lookup("java:comp/env/service/PurchaseOrder");
+    PurchaseOrderProcessService service = (PurchaseOrderProcessService) ctx.lookup("java:comp/env/service/PurchaseOrder");
     purchaseOrderPT = service.getPurchaseServicePort();
   }
 
@@ -41,13 +46,15 @@
     purchaseOrder.setQuantity(4);
 
     try {
-      Invoice invoice = purchaseOrderPT.sendPurchaseOrder(customerInfo, purchaseOrder);
+      Invoice invoice = purchaseOrderPT.sendPurchaseOrder(customerInfo,
+          purchaseOrder);
       /*
-       * In our system, the part number is also the unit price! The shipper charges a flat fare of
-       * $10.95.
+       * In our system, the part number is also the unit price! 
+       * The shipper charges a flat fare of $10.95.
        */
-      assertEquals(purchaseOrder.getPartNumber() * purchaseOrder.getQuantity() + 10.95,
-          invoice.getAmount(), 0.001);
+      assertEquals(purchaseOrder.getPartNumber()
+          * purchaseOrder.getQuantity()
+          + 10.95, invoice.getAmount(), 0.001);
       assertEquals(purchaseOrder.getOrderId(), invoice.getOrderId());
     }
     catch (ProblemInfo e) {
@@ -73,9 +80,4 @@
       assertTrue(e.getDetail().indexOf(customerInfo.getAddress()) != -1);
     }
   }
-
-  public static Test suite() {
-    return new ModuleDeployTestSetup(PurchaseOrderTest.class, new String[] { "purchase-ejb.jar",
-        "purchase-client.jar" });
-  }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/scheduling/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/build.xml
--- jpdl-3.2.3.GA/bpel/examples/scheduling/build.xml	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="scheduling" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/scheduling/src/main/java/org/jbpm/bpel/tutorial/scheduling/SchedulingPT_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/src/main/java/org/jbpm/bpel/tutorial/scheduling/SchedulingPT_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/scheduling/src/main/java/org/jbpm/bpel/tutorial/scheduling/SchedulingPT_Impl.java	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/src/main/java/org/jbpm/bpel/tutorial/scheduling/SchedulingPT_Impl.java	2009-02-06 09:17:28.000000000 +0100
@@ -24,7 +24,7 @@
 /**
  * Production scheduling endpoint bean.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:27:49 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class SchedulingPT_Impl implements SchedulingPT, Remote {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/scheduling/src/main/resources/web/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/src/main/resources/web/web.xml
--- jpdl-3.2.3.GA/bpel/examples/scheduling/src/main/resources/web/web.xml	2009-02-06 09:12:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/scheduling/src/main/resources/web/web.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,10 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
+      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
   <!-- Production Scheduling Process -->
   <servlet>
     <servlet-name>schedulingServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.tutorial.scheduling.SchedulingPT_Impl</servlet-class>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.scheduling.SchedulingPT_Impl
+    </servlet-class>
   </servlet>
   <servlet-mapping>
     <servlet-name>schedulingServlet</servlet-name>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/shipping/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/build.xml
--- jpdl-3.2.3.GA/bpel/examples/shipping/build.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="shipping" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/shipping/src/main/java/org/jbpm/bpel/tutorial/shipping/ShippingPT_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/src/main/java/org/jbpm/bpel/tutorial/shipping/ShippingPT_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/shipping/src/main/java/org/jbpm/bpel/tutorial/shipping/ShippingPT_Impl.java	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/src/main/java/org/jbpm/bpel/tutorial/shipping/ShippingPT_Impl.java	2009-02-06 09:17:27.000000000 +0100
@@ -44,7 +44,7 @@
  * Shipping endpoint bean.
  * @author Jeff DeLong
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/01/18 14:38:19 $
+ * @version $Revision: 1800 $ $Date: 2007/01/18 14:38:19 $
  */
 public class ShippingPT_Impl implements ShippingPT, ServiceLifecycle {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/shipping/src/main/resources/web/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/src/main/resources/web/web.xml
--- jpdl-3.2.3.GA/bpel/examples/shipping/src/main/resources/web/web.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/shipping/src/main/resources/web/web.xml	2009-02-06 09:17:28.000000000 +0100
@@ -7,7 +7,9 @@
   <!-- Shipping Service -->
   <servlet>
     <servlet-name>shippingServlet</servlet-name>
-    <servlet-class>org.jbpm.bpel.tutorial.shipping.ShippingPT_Impl</servlet-class>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.shipping.ShippingPT_Impl
+    </servlet-class>
   </servlet>
   <servlet-mapping>
     <servlet-name>shippingServlet</servlet-name>
@@ -21,7 +23,9 @@
   </context-param>
 
   <resource-ref>
-    <description>The single factory from which servlets obtain JMS connections.</description>
+    <description>
+      The single factory from which servlets obtain JMS connections.
+    </description>
     <res-ref-name>jms/ConnectionFactory</res-ref-name>
     <res-type>javax.jms.ConnectionFactory</res-type>
     <res-auth>Container</res-auth>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/task/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/task/build.xml
--- jpdl-3.2.3.GA/bpel/examples/task/build.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/task/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -3,7 +3,7 @@
 
   <import file="../common/ws-build.xml" />
 
-  <target name="wscompile" depends="mapping.wscompile" unless="mapping.uptodate">
+  <target name="wscompile" depends="template.wscompile" unless="artifacts.uptodate">
     <wscompile fork="on"
                verbose="on"
                import="on"
@@ -13,12 +13,12 @@
                sourcebase="${output.java.dir}"
                mapping="${output.web.dir}/treq-mapping.xml"
                config="${resources.dir}/treq-wscompile.xml"
-               jvmargs="-Duser.dir=${basedir}">
+               jvmargs="-Duser.dir=${project.dir}">
       <classpath refid="wscompile.path" />
     </wscompile>
   </target>
 
-  <target name="compile.dependencies">
+  <target name="define-compile-classpath">
     <path id="compile.path">
       <path refid="jboss.path" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
@@ -26,6 +26,4 @@
     </path>
   </target>
 
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/task/src/main/java/org/jbpm/bpel/tutorial/task/TaskManager_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/task/src/main/java/org/jbpm/bpel/tutorial/task/TaskManager_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/task/src/main/java/org/jbpm/bpel/tutorial/task/TaskManager_Impl.java	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/task/src/main/java/org/jbpm/bpel/tutorial/task/TaskManager_Impl.java	2009-02-06 09:17:28.000000000 +0100
@@ -42,7 +42,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:30:54 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 10:37:59 $
  */
 public class TaskManager_Impl implements TaskManager, ServiceLifecycle {
 
@@ -63,9 +63,9 @@
       /*
        * Loading the token, even for read only, leads Hibernate to update the version column at the
        * end of the transaction, causing a stale state exception on the process side. To cope with
-       * this situation, this method can either (1) ignore a second invocation when the process
-       * detects the stale state and retries the operation or (2) avoid loading the token and set
-       * the token column with a plain SQL statement
+       * this situation, this method can either (1) avoid loading the token and set the token column
+       * with a plain SQL statement or (2) ignore a second invocation when the process detects the
+       * stale state and retries the operation
        */
       TaskInstance taskInstance = createTaskInstance2(taskInfo, replyTo, jbpmContext);
       return taskInstance.getId();
@@ -108,7 +108,7 @@
     }
 
     // materialize token
-    Token token = jbpmContext.loadToken(tokenId.longValue());
+    Token token = jbpmContext.loadTokenForUpdate(tokenId.longValue());
 
     // create task instance for token
     TaskInstance taskInstance = token.getProcessInstance()
@@ -121,7 +121,6 @@
 
     // save return address
     taskInstance.setVariable(REPLY_ADDRESS_VARIABLE, replyTo.getAddress().toString());
-    jbpmContext.save(taskInstance);
 
     log.debug("found no task instances, created instance with id=" + taskInstance.getId());
     return taskInstance;
@@ -146,11 +145,11 @@
     Session hbSession = jbpmContext.getSession();
     hbSession.save(taskInstance);
 
-    // associate task instance with token via SQL statement
-    // FIXME isn't there a better way?
-    hbSession.createSQLQuery("UPDATE JBPM_TASKINSTANCE SET TOKEN_ = :token WHERE ID_ = :id")
-        .setLong("token", taskInfo.getTokenId().longValue())
-        .setLong("id", taskInstance.getId())
+    // XXX associate task instance with token via SQL statement
+    hbSession.createSQLQuery(
+        "UPDATE JBPM_TASKINSTANCE ti SET ti.TOKEN_ = :tokenId WHERE ti.ID_ = :taskId")
+        .setLong("tokenId", taskInfo.getTokenId().longValue())
+        .setLong("taskId", taskInstance.getId())
         .executeUpdate();
 
     return taskInstance;
@@ -171,16 +170,16 @@
       Stub taskCallbackStub = (Stub) taskCallback;
       taskCallbackStub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, address);
 
-      log.debug("calling back endpoint at: " + address);
+      log.debug("invoking task callback endpoint at: " + address);
       taskCallback.taskEnded(taskInfo);
     }
     catch (ServiceException e) {
-      log.error("could not get callback endpoint proxy", e);
+      log.error("could not get proxy for callback endpoint interface", e);
       jbpmContext.setRollbackOnly();
       throw new SOAPFaultException(SERVER_CODE, "task callback failed", null, null);
     }
     catch (RemoteException e) {
-      log.error("endpoint callback failed", e);
+      log.error("communication with callback endpoint failed", e);
       jbpmContext.setRollbackOnly();
       throw new SOAPFaultException(SERVER_CODE, "task callback failed", null, null);
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/build.xml
--- jpdl-3.2.3.GA/bpel/examples/ticket/build.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="ticket" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/src/main/java/org/jbpm/bpel/tutorial/ticket/TicketIssuer_Impl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/java/org/jbpm/bpel/tutorial/ticket/TicketIssuer_Impl.java
--- jpdl-3.2.3.GA/bpel/examples/ticket/src/main/java/org/jbpm/bpel/tutorial/ticket/TicketIssuer_Impl.java	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/java/org/jbpm/bpel/tutorial/ticket/TicketIssuer_Impl.java	2009-02-06 09:17:28.000000000 +0100
@@ -16,7 +16,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:07 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:07 $
  */
 public class TicketIssuer_Impl implements TicketIssuer, java.rmi.Remote {
   
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/webservices.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/webservices.xml
--- jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/webservices.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/webservices.xml	2009-02-06 09:17:28.000000000 +0100
@@ -16,7 +16,7 @@
       <!-- logical name for the port (unique within the module) -->
       <port-component-name>ticketIssuerPort</port-component-name>
       <!-- WSDL port element (in WSDL implementation file) -->
-      <wsdl-port xmlns:portNS="http://jbpm.org/examples/ticket">portNS:TicketIssuerPort</wsdl-port>
+      <wsdl-port xmlns:portNS="urn:samples:ticket">portNS:TicketIssuerPort</wsdl-port>
       <!-- service endpoint interface class -->
       <service-endpoint-interface>
         org.jbpm.bpel.tutorial.ticket.TicketIssuer
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/wsdl/ticket-impl.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/wsdl/ticket-impl.wsdl
--- jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/wsdl/ticket-impl.wsdl	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/wsdl/ticket-impl.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,21 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<definitions targetNamespace="urn:samples:ticket" 
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="urn:samples:ticket" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
 
   <binding name="TicketIssuerBinding" type="tns:TicketIssuer">
 
     <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
 
     <operation name="createTicket">
-      <soap:operation soapAction="http://jbpm.org/examples/ticket#createTicket" />
+      <soap:operation soapAction="urn:samples:ticket:action:createTicket" />
       <input>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/ticket" />
+        <soap:body use="literal" namespace="urn:samples:ticket" />
       </input>
       <output>
-        <soap:body use="literal" namespace="http://jbpm.org/examples/ticket" />
+        <soap:body use="literal" namespace="urn:samples:ticket" />
       </output>
     </operation>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/wsdl/ticket.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/wsdl/ticket.wsdl
--- jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/web/wsdl/ticket.wsdl	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/web/wsdl/ticket.wsdl	2009-02-06 09:17:28.000000000 +0100
@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <message name="ticketRequest">
     <documentation>ticket creation request</documentation>
   </message>
 
-  <message name="ticketMessage">
+  <message name="ticketWrap">
     <documentation>ticket number wrapper</documentation>
     <part name="ticketNo" type="xsd:int" />
   </message>
@@ -18,7 +17,7 @@
     <operation name="createTicket">
       <documentation>generate a ticket number, distinct from previous calls</documentation>
       <input message="tns:ticketRequest" />
-      <output message="tns:ticketMessage" />
+      <output message="tns:ticketWrap" />
     </operation>
 
   </portType>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/wstools.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/wstools.xml
--- jpdl-3.2.3.GA/bpel/examples/ticket/src/main/resources/wstools.xml	2009-02-06 09:12:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/ticket/src/main/resources/wstools.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,8 +1,7 @@
 <?xml version="1.0"?>
 <configuration xmlns="http://www.jboss.org/jbossws-tools">
   <global>
-    <package-namespace package="org.jbpm.bpel.tutorial.ticket"
-      namespace="http://jbpm.org/examples/ticket" />
+    <package-namespace package="org.jbpm.bpel.tutorial.ticket" namespace="urn:samples:ticket" />
   </global>
   <wsdl-java file="wsdl/ticket-impl.wsdl">
     <mapping file="ticket-mapping.xml" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/translator/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/build.xml
--- jpdl-3.2.3.GA/bpel/examples/translator/build.xml	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/build.xml	2009-02-06 09:17:28.000000000 +0100
@@ -1,8 +1,4 @@
 <?xml version="1.0"?>
 <project name="translator" default="main">
-
   <import file="../common/ws-build.xml" />
-
-  <target name="test" description="test the deployed component (stub)" />
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionaryFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionaryFactory.java
--- jpdl-3.2.3.GA/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionaryFactory.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionaryFactory.java	2009-02-06 09:17:28.000000000 +0100
@@ -12,7 +12,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:27:49 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:27:49 $
  */
 public class ResourceDictionaryFactory extends DictionaryFactory {
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionary.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionary.java
--- jpdl-3.2.3.GA/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionary.java	2009-02-06 09:12:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/translator/src/main/java/com/example/translator/resource/ResourceDictionary.java	2009-02-06 09:17:28.000000000 +0100
@@ -11,7 +11,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/20 12:28:17 $
+ * @version $Revision: 1800 $ $Date: 2007/01/20 12:28:17 $
  */
 public class ResourceDictionary implements Dictionary {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/build.xml
--- jpdl-3.2.3.GA/bpel/examples/trip/build.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/build.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,17 +1,4 @@
 <?xml version="1.0"?>
 <project name="trip" default="main">
-
   <import file="../common/bpel-build.xml" />
-  <import file="../common/test-build.xml" />
-
-  <!-- ============================ -->
-  <!-- === PARTNER REGISTRATION === -->
-  <!-- ============================ -->
-
-  <target name="register.partners"
-          depends="define.register.task"
-          description="register partner services">
-    <registerpartner baselocation="http://localhost:8080/ticket/ticketIssuer?wsdl" />
-  </target>
-
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/ticket.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/ticket.wsdl
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/ticket.wsdl	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/ticket.wsdl	2009-02-06 09:17:29.000000000 +0100
@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <message name="ticketRequest">
     <documentation>ticket creation request</documentation>
   </message>
 
-  <message name="ticketMessage">
+  <message name="ticketWrap">
     <documentation>ticket number wrapper</documentation>
     <part name="ticketNo" type="xsd:int" />
   </message>
@@ -18,7 +17,7 @@
     <operation name="createTicket">
       <documentation>generate a ticket number, distinct from previous calls</documentation>
       <input message="tns:ticketRequest" />
-      <output message="tns:ticketMessage" />
+      <output message="tns:ticketWrap" />
     </operation>
 
   </portType>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/trip.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/trip.bpel
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/trip.bpel	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/trip.bpel	2009-02-06 09:17:29.000000000 +0100
@@ -1,5 +1,5 @@
-<process name="TripReservation" targetNamespace="http://jbpm.org/examples/trip"
-  xmlns:tns="http://jbpm.org/examples/trip" xmlns:tic="http://jbpm.org/examples/ticket"
+<process name="TripReservation" targetNamespace="http://jbpm.org/examples/trip/"
+  xmlns:tns="http://jbpm.org/examples/trip/" xmlns:tic="urn:samples:ticket"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
@@ -28,46 +28,38 @@
 
     <catch faultName="tns:cancelation">
 
-      <sequence name="Cancel">
-
-        <compensate name="UndoPurchase" scope="TripPurchase" />
-
-        <assign name="PreparePenalty">
+      <sequence>
+        <compensate scope="tripPurchase" />
+        <assign>
           <copy>
             <from variable="cost" />
             <to variable="cancelResponse" part="penalty" query="/tns:penalty/@fee" />
           </copy>
         </assign>
-
-        <reply name="SendPenalty" operation="cancelTrip" partnerLink="traveler"
-          portType="tns:TravelAgent" variable="cancelResponse" />
-
+        <reply operation="cancelTrip" partnerLink="traveler" portType="tns:TravelAgent"
+          variable="cancelResponse" />
       </sequence>
 
     </catch>
 
   </faultHandlers>
 
-  <sequence name="Main">
+  <sequence>
 
-    <scope name="TripPurchase">
+    <scope name="tripPurchase">
 
       <variables>
         <variable name="purchaseResponse" messageType="tns:purchaseResponse" />
         <variable name="ticketRequest" messageType="tic:ticketRequest" />
-        <variable name="ticketMessage" messageType="tic:ticketMessage" />
+        <variable name="ticketWrap" messageType="tic:ticketWrap" />
       </variables>
 
-      <sequence name="PurchaseTrip">
-
-        <receive name="ReceiveTripOrder" operation="purchaseTrip" partnerLink="traveler"
-          portType="tns:TravelAgent" variable="purchaseRequest" createInstance="yes" />
+      <sequence>
 
-        <flow>
-
-          <sequence name="EvaluateCost">
+        <receive operation="purchaseTrip" partnerLink="traveler" portType="tns:TravelAgent"
+          variable="purchaseRequest" createInstance="yes" />
 
-            <assign name="InitializeCost">
+        <assign>
               <copy>
                 <from expression="0" />
                 <to variable="cost" />
@@ -78,108 +70,90 @@
               </copy>
             </assign>
 
-            <switch name="FlightDecision">
-
-              <case condition="bpel:getVariableData('items')/flight
-                and string(bpel:getVariableData('items')/flight/@xsi:nil) != '1'">
+        <flow>
 
-                <scope name="FlightReservation">
+          <invoke operation="createTicket" partnerLink="ticket" portType="tic:TicketIssuer"
+            inputVariable="ticketRequest" outputVariable="ticketWrap">
+            <correlations>
+              <correlation set="trip" initiate="yes" pattern="in" />
+            </correlations>
+          </invoke>
 
+          <switch>
+            <case
+              condition="bpel:getVariableData('items')/flight 
+             and string(bpel:getVariableData('items')/flight/@xsi:nil) != '1'">
+              <scope name="flightReservation">
                   <compensationHandler>
-                    <assign name="ReimburseFlight">
+                  <assign>
                       <copy>
                         <from expression="bpel:getVariableData('cost') - 300 + 100" />
                         <to variable="cost" />
                       </copy>
                     </assign>
                   </compensationHandler>
-
-                  <assign name="ChargeFlight">
+                <assign>
                     <copy>
                       <from expression="bpel:getVariableData('cost') + 300" />
                       <to variable="cost" />
                     </copy>
                   </assign>
-
                 </scope>
-
               </case>
-
             </switch>
 
-            <switch name="HotelDecision">
-
-              <case condition="bpel:getVariableData('items')/hotel
+          <switch>
+            <case
+              condition="bpel:getVariableData('items')/hotel
                 and string(bpel:getVariableData('items')/hotel/@xsi:nil) != '1'">
-
-                <scope name="HotelReservation">
-
+              <scope name="hotelReservation">
                   <compensationHandler>
-                    <assign name="ReimburseHotel">
+                  <assign>
                       <copy>
                         <from expression="bpel:getVariableData('cost') - 100 + 25" />
                         <to variable="cost" />
                       </copy>
                     </assign>
                   </compensationHandler>
-
-                  <assign name="ChargeHotel">
+                <assign>
                     <copy>
                       <from expression="bpel:getVariableData('cost') + 100" />
                       <to variable="cost" />
                     </copy>
                   </assign>
-
                 </scope>
-
               </case>
-
             </switch>
 
-            <switch name="CarDecision">
-
-              <case condition="bpel:getVariableData('items')/rentalCar
+          <switch>
+            <case
+              condition="bpel:getVariableData('items')/rentalCar
                 and string(bpel:getVariableData('items')/rentalCar/@xsi:nil) != '1'">
-
-                <scope name="CarReservation">
-
+              <scope name="carReservation">
                   <compensationHandler>
-                    <assign name="ReimburseCar">
+                  <assign>
                       <copy>
                         <from expression="bpel:getVariableData('cost') - 50 + 5" />
                         <to variable="cost" />
                       </copy>
                     </assign>
                   </compensationHandler>
-
-                  <assign name="ChargeCar">
+                <assign>
                     <copy>
                       <from expression="bpel:getVariableData('cost') + 50" />
                       <to variable="cost" />
                     </copy>
                   </assign>
-
                 </scope>
-
               </case>
 
             </switch>
 
-          </sequence>
-
-          <invoke name="CreateTicket" operation="createTicket" partnerLink="ticket"
-            portType="tic:TicketIssuer" inputVariable="ticketRequest"
-            outputVariable="ticketMessage">
-            <correlations>
-              <correlation set="trip" initiate="yes" pattern="in" />
-            </correlations>
-          </invoke>
-
         </flow>
 
-        <assign name="PrepareInvoice">
+        <assign>
           <copy>
-            <from variable="ticketMessage" part="ticketNo" />
+            <from variable="ticketWrap" part="ticketNo" />
             <to variable="purchaseResponse" part="invoice" query="/tns:invoice/@locator" />
           </copy>
           <copy>
@@ -188,8 +162,8 @@
           </copy>
         </assign>
 
-        <reply name="SendInvoice" operation="purchaseTrip" partnerLink="traveler"
-          portType="tns:TravelAgent" variable="purchaseResponse">
+        <reply operation="purchaseTrip" partnerLink="traveler" portType="tns:TravelAgent"
+          variable="purchaseResponse">
           <correlations>
             <correlation set="trip" />
           </correlations>
@@ -199,16 +173,16 @@
 
     </scope>
 
-    <assign name="SetDateNotReached">
+    <assign>
       <copy>
         <from expression="false()" />
         <to variable="dateReached" />
       </copy>
     </assign>
 
-    <while name="PredateLoop" condition="bpel:getVariableData('dateReached') = 'false'">
+    <while condition="bpel:getVariableData('dateReached') = 'false'">
 
-      <pick name="PredateMenu">
+      <pick>
 
         <onMessage operation="getTripDetail" partnerLink="traveler" portType="tns:TravelAgent"
           variable="detailRequest">
@@ -217,9 +191,9 @@
             <correlation set="trip" />
           </correlations>
 
-          <sequence name="DetailTrip">
+          <sequence>
 
-            <assign name="PrepareTripDetail">
+            <assign>
               <copy>
                 <from variable="purchaseRequest" part="order" query="/tns:order/items" />
                 <to variable="detailResponse" part="detail" query="/tns:detail/items" />
@@ -230,8 +204,8 @@
               </copy>
             </assign>
 
-            <reply name="SendTripDetail" operation="getTripDetail" partnerLink="traveler"
-              portType="tns:TravelAgent" variable="detailResponse" />
+            <reply operation="getTripDetail" partnerLink="traveler" portType="tns:TravelAgent"
+              variable="detailResponse" />
 
           </sequence>
 
@@ -244,13 +218,13 @@
             <correlation set="trip" />
           </correlations>
 
-          <throw name="CancelTrip" faultName="tns:cancelation" />
+          <throw faultName="tns:cancelation" />
 
         </onMessage>
 
         <onAlarm until="bpel:getVariableData('purchaseRequest', 'order', '/tns:order/date')">
 
-          <assign name="SetDateReached">
+          <assign>
             <copy>
               <from expression="true()" />
               <to variable="dateReached" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/trip.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/trip.wsdl
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel/trip.wsdl	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel/trip.wsdl	2009-02-06 09:17:29.000000000 +0100
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip"
-  xmlns:tns="http://jbpm.org/examples/trip" xmlns:tic="http://jbpm.org/examples/ticket"
+<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip/"
+  xmlns:tns="http://jbpm.org/examples/trip/" xmlns:tic="urn:samples:ticket"
   xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
 
   <types>
 
     <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-      targetNamespace="http://jbpm.org/examples/trip">
+      targetNamespace="http://jbpm.org/examples/trip/">
 
       <xsd:complexType name="Flight">
         <xsd:attribute use="required" name="airline" type="xsd:string" />
@@ -27,8 +27,7 @@
 
       <xsd:complexType name="ItemSet">
         <xsd:sequence>
-          <xsd:element name="flight" minOccurs="0" type="tns:Flight" />
-          <xsd:element name="hotel" minOccurs="0" type="tns:Hotel" />
+          <xsd:element name="flight" minOccurs="0" type="tns:Flight" />          <xsd:element name="hotel" minOccurs="0" type="tns:Hotel" />
           <xsd:element name="rentalCar" minOccurs="0" type="tns:RentalCar" />
         </xsd:sequence>
       </xsd:complexType>
@@ -85,11 +84,9 @@
   </types>
 
   <message name="purchaseRequest">
-    <part name="order" element="tns:order" />
-  </message>
+    <part name="order" element="tns:order" />  </message>
 
-  <message name="purchaseResponse">
-    <part name="invoice" element="tns:invoice" />
+  <message name="purchaseResponse">    <part name="invoice" element="tns:invoice" />
   </message>
 
   <message name="cancelResponse">
@@ -146,7 +143,6 @@
   <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tns:detailRequest" part="query"
     query="/tns:query/@locator" />
 
-  <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketMessage"
-    part="ticketNo" />
+  <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketWrap" part="ticketNo" />
 
 </definitions>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/ticket.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/ticket.wsdl
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/ticket.wsdl	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/ticket.wsdl	2009-02-06 09:17:29.000000000 +0100
@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <message name="ticketRequest">
     <documentation>ticket creation request</documentation>
   </message>
 
-  <message name="ticketMessage">
+  <message name="ticketWrap">
     <documentation>ticket number wrapper</documentation>
     <part name="ticketNo" type="xsd:int" />
   </message>
@@ -18,7 +17,7 @@
     <operation name="createTicket">
       <documentation>generate a ticket number, distinct from previous calls</documentation>
       <input message="tns:ticketRequest" />
-      <output message="tns:ticketMessage" />
+      <output message="tns:ticketWrap" />
     </operation>
 
   </portType>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.bpel
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.bpel	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.bpel	2009-02-06 09:17:29.000000000 +0100
@@ -1,36 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpws:process exitOnStandardFault="yes" name="TripReservation"
-    targetNamespace="http://jbpm.org/examples/trip"
-    xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
-    xmlns:tic="http://jbpm.org/examples/ticket"
-    xmlns:tns="http://jbpm.org/examples/trip"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
-        location="trip.wsdl" namespace="http://jbpm.org/examples/trip"/>
-    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
-        location="ticket.wsdl" namespace="http://jbpm.org/examples/ticket"/>
+<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:ns="http://jbpm.org/examples/trip/" xmlns:ns0="urn:samples:ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exitOnStandardFault="yes" name="TripReservation" targetNamespace="http://jbpm.org/examples/trip/">
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="trip.wsdl" namespace="http://jbpm.org/examples/trip/"/>
+<bpws:import importType="http://www.w3.org/2001/XMLSchema" location="bundleentry://347/cache/www.w3.org/2001/XMLSchema.xsd" namespace="http://www.w3.org/2001/XMLSchema"/>
+<bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="ticket.wsdl" namespace="urn:samples:ticket"/>
     <bpws:partnerLinks>
-        <bpws:partnerLink myRole="Agent" name="traveler" partnerLinkType="tns:Traveler-Agent"/>
-        <bpws:partnerLink name="ticket"
-            partnerLinkType="tns:Agent-Ticket" partnerRole="TicketIssuer"/>
+<bpws:partnerLink myRole="Agent" name="traveler" partnerLinkType="ns:Traveler-Agent"/>
+<bpws:partnerLink name="ticket" partnerLinkType="ns:Agent-Ticket" partnerRole="TicketIssuer"/>
     </bpws:partnerLinks>
     <bpws:variables>
-        <bpws:variable messageType="tns:purchaseRequest" name="purchaseRequest"/>
+<bpws:variable messageType="ns:purchaseRequest" name="purchaseRequest"/>
         <bpws:variable name="cost" type="xsd:double"/>
-        <bpws:variable name="items" type="tns:ItemSet"/>
+<bpws:variable name="items" type="ns:ItemSet"/>
         <bpws:variable name="dateReached" type="xsd:boolean"/>
-        <bpws:variable messageType="tns:detailRequest" name="detailRequest"/>
-        <bpws:variable messageType="tns:detailResponse" name="detailResponse"/>
-        <bpws:variable messageType="tns:cancelRequest" name="cancelRequest"/>
-        <bpws:variable messageType="tns:cancelResponse" name="cancelResponse"/>
+<bpws:variable messageType="ns:detailRequest" name="detailRequest"/>
+<bpws:variable messageType="ns:detailResponse" name="detailResponse"/>
+<bpws:variable messageType="ns:cancelRequest" name="cancelRequest"/>
+<bpws:variable messageType="ns:cancelResponse" name="cancelResponse"/>
     </bpws:variables>
     <bpws:correlationSets>
-        <bpws:correlationSet name="trip" properties="tns:tripLocator"/>
+<bpws:correlationSet name="trip" properties="ns:tripLocator"/>
     </bpws:correlationSets>
     <bpws:faultHandlers>
-        <bpws:catch faultName="tns:cancelation">
-            <bpws:sequence name="Cancel">
-                <bpws:compensateScope name="UndoPurchase" target="TripPurchase" />
+<bpws:catch faultName="ns:cancelation">
+<bpws:sequence name="HiddenSequence3">
+<bpws:compensate name="RefundCharges" scope="PurchaseTrip"/>
                 <bpws:assign name="PreparePenalty" validate="no">
                     <bpws:copy>
                         <bpws:from variable="cost"/>
@@ -39,33 +32,19 @@
                         </bpws:to>
                     </bpws:copy>
                 </bpws:assign>
-                <bpws:reply name="SendPenalty" operation="cancelTrip"
-                    partnerLink="traveler" portType="tns:TravelAgent" variable="cancelResponse"/>
+<bpws:reply name="SendPenalty" operation="cancelTrip" partnerLink="traveler" portType="ns:TravelAgent" variable="cancelResponse"/>
             </bpws:sequence>
         </bpws:catch>
     </bpws:faultHandlers>
-    <bpws:sequence name="Main">
-        <bpws:scope name="TripPurchase">
+<bpws:sequence name="HiddenSequence">
+<bpws:scope name="PurchaseTrip">
             <bpws:variables>
-                <bpws:variable messageType="tic:ticketRequest" name="ticketRequest"/>
-                <bpws:variable messageType="tic:ticketMessage" name="ticketMessage"/>
-                <bpws:variable messageType="tns:purchaseResponse" name="purchaseResponse"/>
+<bpws:variable messageType="ns0:ticketRequest" name="ticketRequest"/>
+<bpws:variable messageType="ns0:ticketWrap" name="ticketWrap"/>
+<bpws:variable messageType="ns:purchaseResponse" name="purchaseResponse"/>
             </bpws:variables>
-            <bpws:sequence name="PurchaseTrip">
-                <bpws:receive createInstance="yes"
-                    name="ReceiveTripOrder" operation="purchaseTrip"
-                    partnerLink="traveler" portType="tns:TravelAgent" variable="purchaseRequest"/>
-                <bpws:flow>
-                    <bpws:invoke inputVariable="ticketRequest"
-                        name="CreateTicket" operation="createTicket"
-                        outputVariable="ticketMessage"
-                        partnerLink="ticket" portType="tic:TicketIssuer">
-                        <bpws:correlations>
-                            <bpws:correlation initiate="yes"
-                                pattern="in" set="trip"/>
-                        </bpws:correlations>
-                    </bpws:invoke>
-                    <bpws:sequence name="EvaluateCost">
+<bpws:sequence name="HiddenSequence1">
+<bpws:receive createInstance="yes" name="ReceiveTripOrder" operation="purchaseTrip" partnerLink="traveler" portType="ns:TravelAgent" variable="purchaseRequest"/>
                         <bpws:assign name="InitializeCost" validate="no">
                             <bpws:copy>
                                 <bpws:from><![CDATA[0]]></bpws:from>
@@ -78,11 +57,18 @@
                                 <bpws:to variable="items"/>
                             </bpws:copy>
                         </bpws:assign>
-                        <bpws:if name="FlightDecision">
+<bpws:flow>
+<bpws:invoke inputVariable="ticketRequest" name="CreateTicket" operation="createTicket" outputVariable="ticketWrap" partnerLink="ticket" portType="ns0:TicketIssuer">
+<bpws:correlations>
+<bpws:correlation initiate="yes" pattern="in" set="trip"/>
+</bpws:correlations>
+</bpws:invoke>
+<bpws:switch name="FlightDecision">
+<bpws:case>
                             <bpws:condition><![CDATA[$items/flight and string($items/flight/@xsi:nil) != '1']]></bpws:condition>
-                            <bpws:scope name="FlightReservation">
+<bpws:scope name="ReserveFlight">
                                 <bpws:compensationHandler>
-                                    <bpws:assign name="ReimburseFlight" validate="no">
+<bpws:assign name="reimburseFlight" validate="no">
                                     <bpws:copy>
                                     <bpws:from><![CDATA[$cost - 300 + 100]]></bpws:from>
                                     <bpws:to variable="cost"/>
@@ -96,12 +82,14 @@
                                     </bpws:copy>
                                 </bpws:assign>
                             </bpws:scope>
-                        </bpws:if>
-                        <bpws:if name="HotelDecision">
+</bpws:case>
+</bpws:switch>
+<bpws:switch name="HotelDecision">
+<bpws:case>
                             <bpws:condition><![CDATA[$items/hotel and string($items/hotel/@xsi:nil) != '1']]></bpws:condition>
-                            <bpws:scope name="HotelReservation">
+<bpws:scope name="ReserveHotel">
                                 <bpws:compensationHandler>
-                                    <bpws:assign name="ReimburseHotel" validate="no">
+<bpws:assign name="reimburseHotel" validate="no">
                                     <bpws:copy>
                                     <bpws:from><![CDATA[$cost - 100 + 25]]></bpws:from>
                                     <bpws:to variable="cost"/>
@@ -115,10 +103,12 @@
                                     </bpws:copy>
                                 </bpws:assign>
                             </bpws:scope>
-                        </bpws:if>
-                        <bpws:if name="CarDecision">
+</bpws:case>
+</bpws:switch>
+<bpws:switch name="CarDecision">
+<bpws:case>
                             <bpws:condition><![CDATA[$items/rentalCar and string($items/rentalCar/@xsi:nil) != '1']]></bpws:condition>
-                            <bpws:scope name="CarReservation">
+<bpws:scope name="ReserveCar">
                                 <bpws:compensationHandler>
                                     <bpws:assign name="reimburseCar" validate="no">
                                     <bpws:copy>
@@ -134,12 +124,12 @@
                                     </bpws:copy>
                                 </bpws:assign>
                             </bpws:scope>
-                        </bpws:if>
-                    </bpws:sequence>
+</bpws:case>
+</bpws:switch>
                 </bpws:flow>
                 <bpws:assign name="PrepareInvoice" validate="no">
                     <bpws:copy>
-                        <bpws:from part="ticketNo" variable="ticketMessage"/>
+<bpws:from part="ticketNo" variable="ticketWrap"/>
                         <bpws:to part="invoice" variable="purchaseResponse">
                             <bpws:query><![CDATA[@locator]]></bpws:query>
                         </bpws:to>
@@ -151,8 +141,7 @@
                         </bpws:to>
                     </bpws:copy>
                 </bpws:assign>
-                <bpws:reply name="SendInvoice" operation="purchaseTrip"
-                    partnerLink="traveler" portType="tns:TravelAgent" variable="purchaseResponse">
+<bpws:reply name="SendInvoice" operation="purchaseTrip" partnerLink="traveler" portType="ns:TravelAgent" variable="purchaseResponse">
                     <bpws:correlations>
                         <bpws:correlation initiate="no" set="trip"/>
                     </bpws:correlations>
@@ -165,15 +154,14 @@
                 <bpws:to variable="dateReached"/>
             </bpws:copy>
         </bpws:assign>
-        <bpws:while name="PredateLoop">
+<bpws:while name="PreTripLoop">
             <bpws:condition><![CDATA[$dateReached = 'false']]></bpws:condition>
-            <bpws:pick name="PredateMenu">
-                <bpws:onMessage operation="getTripDetail"
-                    partnerLink="traveler" portType="tns:TravelAgent" variable="detailRequest">
+<bpws:pick name="PreTripMenu">
+<bpws:onMessage operation="getTripDetail" partnerLink="traveler" portType="ns:TravelAgent" variable="detailRequest">
                     <bpws:correlations>
                         <bpws:correlation initiate="no" set="trip"/>
                     </bpws:correlations>
-                    <bpws:sequence name="GetTripDetail">
+<bpws:sequence name="HiddenSequence2">
                         <bpws:assign name="PrepareTripDetail" validate="no">
                             <bpws:copy>
                                 <bpws:from part="order" variable="purchaseRequest">
@@ -190,18 +178,14 @@
                                 </bpws:to>
                             </bpws:copy>
                         </bpws:assign>
-                        <bpws:reply name="SendTripDetail"
-                            operation="getTripDetail"
-                            partnerLink="traveler"
-                            portType="tns:TravelAgent" variable="detailResponse"/>
+<bpws:reply name="SendTripDetail" operation="getTripDetail" partnerLink="traveler" portType="ns:TravelAgent" variable="detailResponse"/>
                     </bpws:sequence>
                 </bpws:onMessage>
-                <bpws:onMessage operation="cancelTrip"
-                    partnerLink="traveler" portType="tns:TravelAgent" variable="cancelRequest">
+<bpws:onMessage operation="cancelTrip" partnerLink="traveler" portType="ns:TravelAgent" variable="cancelRequest">
                     <bpws:correlations>
                         <bpws:correlation initiate="no" set="trip"/>
                     </bpws:correlations>
-                    <bpws:throw faultName="tns:cancelation" name="CancelTrip"/>
+<bpws:throw faultName="ns:cancelation" name="SignalCancelation"/>
                 </bpws:onMessage>
                 <bpws:onAlarm>
                     <bpws:until><![CDATA[$purchaseRequest.order/date]]></bpws:until>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.bpelex jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.bpelex
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.bpelex	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.bpelex	2009-02-06 09:17:29.000000000 +0100
@@ -2,14 +2,14 @@
 <extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
   <extensions>
     <extendedObject href="trip.bpel#/"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1201631436031"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1185967191890"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.3"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
@@ -17,7 +17,7 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.3/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
@@ -29,23 +29,23 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" implicit="true"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.0/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" width="346" height="255"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" width="893" height="213"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@variables/@children.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.0/@copy.1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@copy.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
@@ -53,8 +53,8 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="170" y="90" width="-1" height="-1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="8" y="8" width="-1" height="-1"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.0/@variables/@children.0"/>
@@ -65,79 +65,91 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="-5" y="9" width="-1" height="-1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension" displayName="flight ordered?"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="170" y="8" width="-1" height="-1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1/@activity/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0/@activity/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1/@activity/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0/@activity/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="202" y="8" width="-1" height="-1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension" displayName="hotel ordered?"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="408" y="8" width="-1" height="-1"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2/@activity/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0/@activity/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2/@activity/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0/@activity/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="406" y="11" width="-1" height="-1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CaseExtension" displayName="car ordered?"/>
+  </extensions>
+  <extensions>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="647" y="8" width="-1" height="-1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3/@activity/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0/@activity/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3/@activity/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0/@activity/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1/@activity/@compensationHandler/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0/@activity/@compensationHandler/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.1/@activity/@compensationHandler/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.1/@cases.0/@activity/@compensationHandler/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2/@activity/@compensationHandler/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0/@activity/@compensationHandler/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.2/@activity/@compensationHandler/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.2/@cases.0/@activity/@compensationHandler/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3/@activity/@compensationHandler/@activity"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0/@activity/@compensationHandler/@activity"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1/@activities.3/@activity/@compensationHandler/@activity/@copy.0"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@activities.3/@cases.0/@activity/@compensationHandler/@activity/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension" fromType="1"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.3"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.4"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
   </extensions>
   <extensions>
@@ -145,7 +157,7 @@
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
   </extensions>
   <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.2/@copy.1"/>
+    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.3/@copy.1"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
   <extensions>
@@ -170,7 +182,7 @@
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.2/@activity/@messages.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="on query"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.2/@activity"/>
@@ -206,7 +218,7 @@
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.2/@activity/@messages.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnMessageExtension" displayName="on cancelation"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@variables/@children.6"/>
@@ -218,7 +230,7 @@
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.2/@activity/@alarm.0"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnAlarmExtension"/>
+    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:OnAlarmExtension" displayName="on trip date"/>
   </extensions>
   <extensions>
     <extendedObject href="trip.bpel#//@activity/@activities.2/@activity/@alarm.0/@activity"/>
@@ -252,8 +264,4 @@
     <extendedObject href="trip.bpel#//@faultHandlers/@catch.0/@activity/@activities.1/@copy.0"/>
     <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
   </extensions>
-  <extensions>
-    <extendedObject href="trip.bpel#//@activity/@activities.0/@activity/@activities.1/@activities.1"/>
-    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension" x="-8" y="6" width="-1" height="-1"/>
-  </extensions>
 </extensionmodel:ExtensionMap>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.wsdl
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/bpel2/trip.wsdl	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/bpel2/trip.wsdl	2009-02-06 09:17:29.000000000 +0100
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip"
-  xmlns:tns="http://jbpm.org/examples/trip" xmlns:tic="http://jbpm.org/examples/ticket"
+<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip/"
+  xmlns:tns="http://jbpm.org/examples/trip/" xmlns:tic="urn:samples:ticket"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
 
   <types>
 
-    <xsd:schema targetNamespace="http://jbpm.org/examples/trip">
+    <xsd:schema targetNamespace="http://jbpm.org/examples/trip/">
 
       <xsd:complexType name="Flight">
         <xsd:attribute name="airline" type="xsd:string" use="required" />
@@ -152,6 +152,6 @@
     <vprop:query>@locator</vprop:query>
   </vprop:propertyAlias>
 
-  <vprop:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketMessage" part="ticketNo" />
+  <vprop:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketWrap" part="ticketNo" />
 
 </definitions>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main: java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/resources: web
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/main/resources/wstools.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/resources/wstools.xml
--- jpdl-3.2.3.GA/bpel/examples/trip/src/main/resources/wstools.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/main/resources/wstools.xml	2009-02-06 09:17:29.000000000 +0100
@@ -2,7 +2,7 @@
 <configuration xmlns="http://www.jboss.org/jbossws-tools">
   <global>
     <package-namespace package="org.jbpm.bpel.tutorial.trip"
-      namespace="http://jbpm.org/examples/trip" />
+      namespace="http://jbpm.org/examples/trip/" />
   </global>
   <wsdl-java file="wsdl/trip-service.wsdl">
     <mapping file="trip-mapping.xml" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/examples/trip/src/test/java/org/jbpm/bpel/tutorial/trip/TravelAgentTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/test/java/org/jbpm/bpel/tutorial/trip/TravelAgentTest.java
--- jpdl-3.2.3.GA/bpel/examples/trip/src/test/java/org/jbpm/bpel/tutorial/trip/TravelAgentTest.java	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/examples/trip/src/test/java/org/jbpm/bpel/tutorial/trip/TravelAgentTest.java	2009-02-06 09:17:29.000000000 +0100
@@ -22,11 +22,11 @@
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
+import org.jboss.test.ws.JBossWSTestSetup;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/06 22:06:28 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:34:37 $
  */
 public class TravelAgentTest extends TestCase {
 
@@ -37,6 +37,10 @@
   private RentalCar car = new RentalCar();
   private Calendar tripDate = Calendar.getInstance();
 
+  public static Test suite() {
+    return JBossWSTestSetup.newTestSetup(TravelAgentTest.class, "trip-client.jar");
+  }
+
   protected void setUp() throws Exception {
     /*
      * "service/Trip" is the JNDI name of the service interface instance relative to the client
@@ -110,8 +114,4 @@
 
     assertEquals(100 + 5, penalty.getFee(), 0);
   }
-
-  public static Test suite() {
-    return new ModuleDeployTestSetup(TravelAgentTest.class, "trip-client.jar");
-  }
 }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel: jbossws10
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel: jbossws12
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel: jbossws4ee
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/build.xml
--- jpdl-3.2.3.GA/bpel/library/build.xml	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/build.xml	2009-02-06 09:17:25.000000000 +0100
@@ -21,24 +21,27 @@
 
   <target name="compile.test.dependencies"
           depends="define.libs.classpath, install.jar, install.config">
+    <ant antfile="${jbpm.root}/bpel/examples/common/ws-build.xml"
+         target="compile-common"
+         inheritall="no" />
     <path id="compile.test.classpath">
       <path refid="libs.classpath" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
+      <pathelement location="${jbpm.root}/bpel/examples/common/target/classes" />
     </path>
   </target>
 
-  <target name="test.dependencies" depends="define.libs.classpath">
+  <target name="test.dependencies" depends="define.libs.classpath, determine.ws.library">
     <path id="test.classpath">
       <path refid="libs.classpath" />
       <fileset dir="${jboss.home}/client" includes="*.jar" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
-      <pathelement location="${local.repository}/${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.container.jar.file}" />
+      <pathelement location="${lib.jbpm.bpel.ws.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.config.local}" />
       <pathelement location="target/test.classes" />
+      <pathelement location="${jbpm.root}/bpel/examples/common/target/classes" />
       <pathelement location="src/test/config" />
     </path>
   </target>
@@ -64,14 +67,14 @@
 
   <target name="install.jar"
           depends="package.jar"
-          description="install library to local repository">
+          description="install ${lib.jbpm.bpel.jar.file} to local repository">
     <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
     <copy todir="${local.repository}/${lib.jbpm.bpel.dir}" file="${lib.jbpm.bpel.jar.target}" />
   </target>
 
-  <target name="deploy.product"
-          depends="install.jar, install.config"
-          description="deploy product to server">
+  <target name="deploy.jboss"
+          depends="install.jar, install.config, determine.ws.library"
+          description="deploy jbpm bpel modules to jboss">
     <!-- install dependencies -->
     <ant antfile="${jbpm.root}/bpel/console/build.xml" inheritall="false" />
     <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" inheritall="false" />
@@ -82,7 +85,7 @@
       <fileset file="${lib.jbpm.identity.jar.local}" />
       <fileset file="${lib.jbpm.bpel.jar.local}" />
       <fileset file="${lib.jbpm.bpel.config.local}" />
-      <fileset file="${local.repository}/${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.container.jar.file}" />
+      <fileset file="${lib.jbpm.bpel.ws.jar.local}" />
     </copy>
 
     <!-- copy thirdparty libraries -->
@@ -93,11 +96,37 @@
 
     <!-- deploy web and enterprise modules -->
     <copy todir="${jboss.home}/server/${jboss.server}/deploy">
-      <fileset file="${lib.jbpm.bpel.console.local}" />
+      <fileset file="${lib.jbpm.bpel.war.local}" />
       <fileset file="${lib.jbpm.bpel.enterprise.local}" />
     </copy>
   </target>
 
+  <target name="determine.ws.library">
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws4ee.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.0.2" />
+        <equals arg1="${jboss.version}" arg2="4.0.3" />
+        <equals arg1="${jboss.version}" arg2="4.0.3SP1" />
+        <equals arg1="${jboss.version}" arg2="4.0.3.SP1" />
+      </or>
+    </condition>
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws10.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.0.4.GA" />
+        <equals arg1="${jboss.version}" arg2="4.0.5.GA" />
+      </or>
+    </condition>
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws12.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.2.0.CR1" />
+        <equals arg1="${jboss.version}" arg2="4.2.0.CR2" />
+        <equals arg1="${jboss.version}" arg2="4.2.0.GA" />
+      </or>
+    </condition>
+    <fail unless="lib.jbpm.bpel.ws.jar.local">Unknown JBoss AS version: ${jboss.version}</fail>
+    <echo level="info">Using WS stack integration library ${lib.jbpm.bpel.ws.jar.local}</echo>
+  </target>
+
   <!-- CONFIGURATION : jbpm-bpel-config.jar -->
 
   <target name="package.config" depends="create.manifest">
@@ -108,20 +137,20 @@
 
   <target name="install.config"
           depends="package.config"
-          description="install configuration to local repository">
+          description="install ${lib.jbpm.bpel.config.file} to local repository">
     <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
     <copy todir="${local.repository}/${lib.jbpm.bpel.dir}" file="${lib.jbpm.bpel.config.target}" />
   </target>
 
   <!-- SOURCES : jbpm-bpel-src.zip -->
 
-  <target name="package.src">
-    <zip zipfile="${lib.jbpm.bpel.src.target}">
+  <target name="package.src" depends="create.manifest">
+    <jar jarfile="${lib.jbpm.bpel.src.target}" manifest="target/META-INF/MANIFEST.MF">
       <fileset dir="src/main/java">
         <include name="**/*.java" />
         <patternset refid="jar.resource.files" />
       </fileset>
-    </zip>
+    </jar>
   </target>
 
   <target name="install.src" depends="package.src">
@@ -135,12 +164,8 @@
     <javadoc destdir="target/javadoc"
              windowtitle="jBPM BPEL ${lib.jbpm.bpel.version}"
              overview="src/main/java/package.html"
-             classpathref="compile.classpath"
-             source="${javac.source}">
+             classpathref="compile.classpath">
       <packageset dir="src/main/java" />
-      <link href="http://java.sun.com/j2se/1.4.2/docs/api/" />
-      <link href="http://java.sun.com/j2ee/1.4/docs/api/" />
-      <link href="http://docs.jboss.com/jbpm/v3/javadoc/" />
     </javadoc>
   </target>
 
@@ -179,7 +204,7 @@
           <exclude name="org/jbpm/bpel/integration/jms/RequestListenerTest.class" />
           <exclude name="org/jbpm/bpel/integration/jms/StartListenerTest.class" />
           <exclude name="org/jbpm/bpel/integration/server/SoapHandlerTest.class" />
-          <exclude name="org/jbpm/bpel/integration/client/SoapCallerTest.class" />
+          <exclude name="org/jbpm/bpel/integration/client/SoapClientTest.class" />
         </fileset>
       </batchtest>
     </junit>
@@ -193,8 +218,8 @@
       </batchtest>
     </junit>
 
-    <echo level="info">Server tests</echo>
-    <echo level="info">If all of the following tests fail, make sure JBoss AS is running</echo>
+    <echo level="info">Server tests
+      If all of the following tests fail, make sure jboss is running</echo>
     <junit printsummary="yes" fork="yes" forkmode="once">
       <classpath refid="${test.classpath}" />
       <formatter type="xml" />
@@ -206,7 +231,7 @@
           <include name="org/jbpm/bpel/integration/jms/RequestListenerTest.class" />
           <include name="org/jbpm/bpel/integration/jms/StartListenerTest.class" />
           <include name="org/jbpm/bpel/integration/server/SoapHandlerTest.class" />
-          <include name="org/jbpm/bpel/integration/client/SoapCallerTest.class" />
+          <include name="org/jbpm/bpel/integration/client/SoapClientTest.class" />
         </fileset>
       </batchtest>
     </junit>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/config: hibernate.bpel.cfg.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/config/jbpm.cfg.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/config/jbpm.cfg.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/config/jbpm.cfg.xml	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/config/jbpm.cfg.xml	2009-02-06 09:17:25.000000000 +0100
@@ -2,34 +2,85 @@
 
   <jbpm-context>
 
+    <service name="persistence" factory="org.jbpm.bpel.persistence.db.DbPersistenceServiceFactory" />
+    <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
+    <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
+    <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
+    
     <!-- Standard services (begin) -->
-    <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
     <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
     <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
     <!-- Standard services (end) -->
 
     <!-- Enterprise services (begin) ===
-    <service name="persistence" factory="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory" />
     <service name="message" factory="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl" />
-    <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory" />
+    <service name="scheduler">
+      <factory>
+        <bean class="org.jbpm.bpel.scheduler.ejbtimer.EjbSchedulerServiceFactory">
+          <field name="jbpmConfiguration">
+            <ref bean="jbpmConfiguration" />
+          </field>
+          <field name="schedulerControlHomeName">
+            <string>java:jbpm/SchedulerControl</string>
+          </field>
+        </bean>
+      </factory>
+    </service>
     ==== Enterprise services (end) -->
 
-    <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
-    <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
-    <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
-
     <service name="integration">
       <factory>
         <bean class="org.jbpm.bpel.integration.jms.JmsIntegrationServiceFactory">
-          <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
+          <field name="jbpmConfiguration">
+            <ref bean="jbpmConfiguration" />
+          </field>
+          <field name="defaultDestinationName">
+            <string>queue/A</string>
+          </field>
+          <field name="defaultConnectionFactoryName">
+            <string>java:ConnectionFactory</string>
+          </field>
+          <field name="replyDestinationName">
+            <string>queue/B</string>
+          </field>
         </bean>
       </factory>
     </service>
 
   </jbpm-context>
 
-  <!-- configuration property used by db persistence service -->
-  <string name="resource.hibernate.cfg.xml" value="jbpm.hibernate.cfg.xml" />
+  <!-- configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory -->
+  <string name="resource.hibernate.cfg.xml" value="hibernate.bpel.cfg.xml" />
+
+  <!-- resource names pointing to default configuration files in jbpm-jpdl.jar -->
+  <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
+  <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
+  <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
+  <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
+  <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
+  <string name="resource.jpdl.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
+  <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
+  <string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
+
+  <int    name="jbpm.byte.block.size" value="1024" singleton="true" />
+  <string name="jbpm.mail.smtp.host" value="localhost" />
+  <bean   name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
+  <bean   name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
+  <bean   name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
+
+  <!-- Standard services (begin) -->
+  <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
+    <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
+    <field name="name"><string value="JbpmJobExector" /></field>
+    <field name="nbrOfThreads"><int value="1" /></field>
+    <field name="idleInterval"><int value="5000" /></field>
+    <field name="maxIdleInterval"><int value="3600000" /></field>
+    <field name="historyMaxSize"><int value="20" /></field>
+    <field name="maxLockTime"><int value="600000" /></field>
+    <field name="lockMonitorInterval"><int value="60000" /></field>
+    <field name="lockBufferTime"><int value="5000" /></field>
+  </bean>
+  <!-- Standard services (end) -->
 
   <!-- Enterprise services (begin) ===
   <null name="jbpm.job.executor" />
@@ -37,7 +88,6 @@
 
   <!-- resource names pointing to default configuration files in jbpm-bpel.jar -->
   <string name="resource.parsers" value="org/jbpm/bpel/par/generic.parsers.xml" />
-  <string name="resource.jpdl.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
   <string name="resource.bpel.parsers" value="org/jbpm/bpel/par/bpel.parsers.xml" />
   <string name="resource.bpel.modules" value="org/jbpm/bpel/graph/def/bpel.modules.properties" />  
   <string name="resource.varmapping" value="org/jbpm/bpel/variable/exe/bpel.varmapping.xml" />
@@ -48,25 +98,10 @@
   <string name="resource.evaluator.factories" value="org/jbpm/bpel/sublang/exe/evaluator.factories.xml" />
   <string name="resource.expression.functions" value="org/jbpm/bpel/sublang/xpath/expression.functions.xml" />
   <string name="resource.join.condition.functions" value="org/jbpm/bpel/sublang/xpath/join.condition.functions.xml" />
-  <string name="resource.property.query.functions" value="org/jbpm/bpel/sublang/xpath/property.query.functions.xml" />
-  <string name="resource.variable.query.functions" value="org/jbpm/bpel/sublang/xpath/expression.functions.xml" />
+  <string name="resource.query.functions" value="org/jbpm/bpel/sublang/xpath/query.functions.xml" />
   <string name="resource.endpoint.metadata.lookups" value="org/jbpm/bpel/integration/server/endpoint.metadata.lookups.xml" />
 
-  <!-- compression level applied to xml fragments stored in the database -->
-  <!-- see java.util.zip.Deflater for a description of the allowed values -->
-  <int name="jbpm.bpel.xml.deflate.level" value="0" singleton="true" />
-
-  <bean name="jbpm.bpel.central.catalog" class="org.jbpm.bpel.integration.catalog.CentralCatalog"
-    singleton="true">
-    <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
-  </bean>
-
-  <!-- time to wait for response messages, in milliseconds -->
-  <!-- when timeout expires, a fault message is sent back to client -->
-  <long name="jbpm.bpel.response.timeout" value="60000" />
-
-  <!-- time to expire one-way messages, in milliseconds -->
-  <!-- when timeout expires, message is no longer available for reception -->
-  <long name="jbpm.bpel.oneway.timeout" value="0" />
+  <!-- see java.util.zip.Deflater for details on the compression level -->
+  <int name="jbpm.bpel.element.deflate.level" value="0" singleton="true" />
 
 </jbpm-configuration>
Only in jpdl-3.2.3.GA/bpel/library/src/main/config: jbpm.hibernate.cfg.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/alarm/AlarmAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/alarm/AlarmAction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/alarm/AlarmAction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/alarm/AlarmAction.java	2009-02-06 09:17:25.000000000 +0100
@@ -36,7 +36,7 @@
  * repeteadly.
  * @author Juan Cantú
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/07/20 21:02:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:02:25 $
  */
 public class AlarmAction extends Action {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/alarm/TimeDrivenActivity.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/alarm/TimeDrivenActivity.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/alarm/TimeDrivenActivity.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/alarm/TimeDrivenActivity.java	2009-02-06 09:17:25.000000000 +0100
@@ -20,7 +20,7 @@
  * Contract that activities must fulfill in order to receive {@linkplain AlarmAction alarm}
  * notifications from the jBPM scheduler service.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:58 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:58 $
  */
 public interface TimeDrivenActivity {
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel: app
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/BpelException.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/BpelException.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/BpelException.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/BpelException.java	2009-02-06 09:17:25.000000000 +0100
@@ -19,7 +19,7 @@
 /**
  * Base of all jBPM BPEL exceptions.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:07 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:07 $
  */
 public class BpelException extends JbpmException {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel: deploy
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReferenceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReferenceFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReferenceFactory.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReferenceFactory.java	2009-02-06 09:17:25.000000000 +0100
@@ -35,7 +35,7 @@
  * Manufactures the endpoint reference instance appropriate for a given value
  * element name and interpretation scheme combination.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/05/02 23:06:00 $
+ * @version $Revision: 1800 $ $Date: 2007/05/02 23:06:00 $
  */
 public abstract class EndpointReferenceFactory {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReference.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReference.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReference.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/EndpointReference.java	2009-02-06 09:17:25.000000000 +0100
@@ -32,7 +32,7 @@
  * Endpoint references are the means for dynamic communication of port-specific data for services.
  * This class represents the least common denominator of data needed to identify a service endpoint.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:42:00 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:42:00 $
  */
 public abstract class EndpointReference {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/SoapEndpointReference.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/SoapEndpointReference.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/SoapEndpointReference.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/SoapEndpointReference.java	2009-02-06 09:17:25.000000000 +0100
@@ -35,7 +35,7 @@
 /**
  * Captures enough detail to uniquely identify service endpoints bound to SOAP.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:42:00 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:42:00 $
  */
 public abstract class SoapEndpointReference extends EndpointReference {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaConstants.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaConstants.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaConstants.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaConstants.java	2009-02-06 09:17:25.000000000 +0100
@@ -16,7 +16,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 17:27:03 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 17:27:03 $
  */
 public class WsaConstants {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceFactory.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceFactory.java	2009-02-06 09:17:25.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/02 18:56:28 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 18:56:28 $
  */
 public class WsaEndpointReferenceFactory extends EndpointReferenceFactory {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReference.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReference.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReference.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReference.java	2009-02-06 09:17:25.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:27 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public class WsaEndpointReference extends SoapEndpointReference {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceFactory.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceFactory.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/02 18:56:28 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 18:56:28 $
  */
 public class WsdlEndpointReferenceFactory extends EndpointReferenceFactory {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReference.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReference.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReference.java	2009-02-06 09:12:37.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReference.java	2009-02-06 09:17:25.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 17:27:03 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 17:27:03 $
  */
 public class WsdlEndpointReference extends SoapEndpointReference {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/Copy.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/Copy.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/Copy.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/Copy.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,8 +27,6 @@
   private From from;
   private To to;
 
-  private static final long serialVersionUID = 1L;
-
   private static final Log log = LogFactory.getLog(Copy.class);
 
   public void execute(ExecutionContext exeContext) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromElement.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromElement.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromElement.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromElement.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
  * <code>&lt;from&gt;</code> variant that allows an element literal to be given as the source
  * value to assign to a destination.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromElement extends From {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromExpression.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromExpression.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromExpression.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromExpression.java	2009-02-06 09:17:23.000000000 +0100
@@ -24,7 +24,7 @@
  * <code>&lt;from&gt;</code> variant that allows processes to perform simple computations on
  * properties and variables.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromExpression extends From {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLink.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLink.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLink.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLink.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromPartnerLink extends From {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromProperty.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromProperty.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromProperty.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromProperty.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,7 +25,7 @@
  * <code>&lt;from&gt;</code> variant that explicitly manipulates message properties occurring in
  * variables.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromProperty extends From {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromText.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromText.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromText.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromText.java	2009-02-06 09:17:23.000000000 +0100
@@ -20,7 +20,7 @@
  * <code>&lt;from&gt;</code> variant that allows a text literal to be given as the source value to
  * assign to a destination.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromText extends From {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromVariable.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromVariable.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromVariable.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/FromVariable.java	2009-02-06 09:17:23.000000000 +0100
@@ -19,20 +19,20 @@
 import org.w3c.dom.Element;
 
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:20 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class FromVariable extends From {
 
   private VariableDefinition variable;
   private String part;
-  private VariableQuery query;
+  private Query query;
 
   private static final long serialVersionUID = 1L;
 
@@ -60,7 +60,7 @@
         throw new BpelException("illegal query on message variable: " + variable.getName());
 
       log.debug("evaluating " + query + " for " + token);
-      value = query.getEvaluator().evaluate((Element) value, token);
+      value = query.getEvaluator().evaluate((Element) value);
     }
     return value;
   }
@@ -73,11 +73,11 @@
     this.part = part;
   }
 
-  public VariableQuery getQuery() {
+  public Query getQuery() {
     return query;
   }
 
-  public void setQuery(VariableQuery query) {
+  public void setQuery(Query query) {
     this.query = query;
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToExpression.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToExpression.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToExpression.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToExpression.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class ToExpression extends To {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLink.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLink.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLink.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLink.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class ToPartnerLink extends To {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToProperty.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToProperty.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToProperty.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToProperty.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,7 +25,7 @@
  * <code>&lt;to&gt;</code> variant that explicitly manipulates message properties occurring in
  * variables.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class ToProperty extends To {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToVariable.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToVariable.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToVariable.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/ToVariable.java	2009-02-06 09:17:23.000000000 +0100
@@ -19,20 +19,20 @@
 import org.w3c.dom.Element;
 
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:20 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class ToVariable extends To {
 
   private VariableDefinition variable;
   private String part;
-  private VariableQuery query;
+  private Query query;
 
   private static final long serialVersionUID = 1L;
 
@@ -54,11 +54,11 @@
     this.part = part;
   }
 
-  public VariableQuery getQuery() {
+  public Query getQuery() {
     return query;
   }
 
-  public void setQuery(VariableQuery query) {
+  public void setQuery(Query query) {
     this.query = query;
   }
 
@@ -79,7 +79,7 @@
         Element partValue = messageValue.getPartForAssign(part);
 
         log.debug("assigning " + query + " for " + token);
-        query.getEvaluator().assign(partValue, token, value);
+        query.getEvaluator().assign(partValue, value);
       }
       else {
         log.debug("assigning " + part + " for " + token);
@@ -95,7 +95,7 @@
         throw new BpelException("illegal query on message variable: " + variable.getName());
 
       log.debug("assigning " + query + " for " + token);
-      query.getEvaluator().assign((Element) variableValue, token, value);
+      query.getEvaluator().assign((Element) variableValue, value);
     }
     else {
       log.debug("assigning " + variable + " for " + token);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Assign.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Assign.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Assign.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Assign.java	2009-02-06 09:17:24.000000000 +0100
@@ -24,7 +24,7 @@
 /**
  * Updates the values of variables with new data.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:54:37 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:54:37 $
  */
 public class Assign extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/AssignOperation.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/AssignOperation.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/AssignOperation.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/AssignOperation.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,15 +14,13 @@
  */
 package org.jbpm.bpel.graph.basic;
 
-import java.io.Serializable;
-
 import org.jbpm.graph.exe.ExecutionContext;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:47 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:54:37 $
  */
-public abstract class AssignOperation implements Serializable {
+public abstract class AssignOperation {
 
   long id;
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Empty.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Empty.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Empty.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Empty.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,7 +20,7 @@
 /**
  * A "no-op" in a business process.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Empty extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Exit.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Exit.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Exit.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Exit.java	2009-02-06 09:17:24.000000000 +0100
@@ -21,7 +21,7 @@
 /**
  * Immediately ends a business process instance.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Exit extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Invoke.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Invoke.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Invoke.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Invoke.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,20 +14,19 @@
  */
 package org.jbpm.bpel.graph.basic;
 
+import org.hibernate.Session;
+
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelVisitor;
-import org.jbpm.bpel.integration.IntegrationService;
 import org.jbpm.bpel.integration.def.InvokeAction;
-import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.persistence.db.IntegrationSession;
 import org.jbpm.graph.def.Action;
-import org.jbpm.graph.exe.ExecutionContext;
 
 /**
- * Calls a one-way or request-response operation on an endpoint offered by a partner.
+ * Calls a one-way or request-response operation on an endpoint offered by a
+ * partner.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
 public class Invoke extends Activity {
 
@@ -47,13 +46,14 @@
     if (action instanceof InvokeAction)
       return (InvokeAction) action;
 
-    // acquire proxy of the proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    IntegrationSession integrationSession = IntegrationSession.getContextInstance(jbpmContext);
-    InvokeAction invokeAction = integrationSession.loadInvokeAction(action.getId());
+    // reacquire proxy of the proper type
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    InvokeAction invokeAction = (InvokeAction) hbSession.load(
+        InvokeAction.class, new Long(action.getId()));
 
     // update action reference
     action = invokeAction;
+
     return invokeAction;
   }
 
@@ -65,11 +65,6 @@
     action.setName(name);
   }
 
-  public void terminate(ExecutionContext exeContext) {
-    IntegrationService integrationService = ReceiveAction.getIntegrationService(exeContext.getJbpmContext());
-    integrationService.cancelInvocation(getInvokeAction(), exeContext.getToken());
-  }
-
   public void accept(BpelVisitor visitor) {
     visitor.visit(this);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Receive.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Receive.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Receive.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Receive.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,13 +14,14 @@
  */
 package org.jbpm.bpel.graph.basic;
 
+import org.hibernate.Session;
+
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelVisitor;
 import org.jbpm.bpel.integration.IntegrationService;
 import org.jbpm.bpel.integration.def.InboundMessageActivity;
 import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.persistence.db.IntegrationSession;
 import org.jbpm.graph.def.Action;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
@@ -28,7 +29,7 @@
 /**
  * Blocks for a matching message to arrive.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:21 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:04 $
  */
 public class Receive extends Activity implements InboundMessageActivity {
 
@@ -61,9 +62,9 @@
       return (ReceiveAction) action;
 
     // reacquire proxy of the proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    IntegrationSession integrationSession = IntegrationSession.getContextInstance(jbpmContext);
-    ReceiveAction receiveAction = integrationSession.loadReceiveAction(action.getId());
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    ReceiveAction receiveAction = (ReceiveAction) hbSession.load(
+        ReceiveAction.class, new Long(action.getId()));
 
     // update action reference
     action = receiveAction;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Reply.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Reply.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Reply.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Reply.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,20 +14,22 @@
  */
 package org.jbpm.bpel.graph.basic;
 
+import org.hibernate.Session;
+
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelVisitor;
 import org.jbpm.bpel.integration.def.InboundMessageActivity;
 import org.jbpm.bpel.integration.def.ReplyAction;
-import org.jbpm.bpel.persistence.db.IntegrationSession;
 import org.jbpm.graph.def.Action;
 
 /**
  * Sends a response to a message that was received by an
- * {@linkplain InboundMessageActivity inbound message activity} (IMA). The combination of an IMA and
- * a <tt>reply</tt> forms a request-response operation.
+ * {@linkplain InboundMessageActivity inbound message activity} (IMA). The
+ * combination of an IMA and a <tt>reply</tt> forms a request-response
+ * operation.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:21 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
 public class Reply extends Activity {
 
@@ -48,9 +50,9 @@
       return (ReplyAction) action;
 
     // reacquire proxy of the proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    IntegrationSession integrationSession = IntegrationSession.getContextInstance(jbpmContext);
-    ReplyAction replyAction = integrationSession.loadReplyAction(action.getId());
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    ReplyAction replyAction = (ReplyAction) hbSession.load(
+        ReplyAction.class, new Long(action.getId()));
 
     // update action reference
     action = replyAction;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Rethrow.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Rethrow.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Rethrow.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Rethrow.java	2009-02-06 09:17:24.000000000 +0100
@@ -22,7 +22,7 @@
  * enclosing fault handler. The <tt>rethrow</tt> activity is only used within
  * a fault handler.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Rethrow extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Throw.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Throw.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Throw.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Throw.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,7 +30,7 @@
 /**
  * Generates a fault from inside the business process.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/02/19 22:25:44 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
 public class Throw extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Validate.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Validate.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Validate.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Validate.java	2009-02-06 09:17:24.000000000 +0100
@@ -25,7 +25,7 @@
  * Validates the values of variables against their associated XML and WSDL data
  * definition.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Validate extends Activity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Wait.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Wait.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Wait.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/Wait.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,7 +30,7 @@
  * Suspends the process instance for a given time period or until a certain
  * point in time has been reached.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/02 23:55:04 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:04 $
  */
 public class Wait extends Activity implements TimeDrivenActivity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/AbstractBpelVisitor.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/AbstractBpelVisitor.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/AbstractBpelVisitor.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/AbstractBpelVisitor.java	2009-02-06 09:17:24.000000000 +0100
@@ -32,14 +32,13 @@
 import org.jbpm.bpel.graph.struct.Flow;
 import org.jbpm.bpel.graph.struct.If;
 import org.jbpm.bpel.graph.struct.Pick;
-import org.jbpm.bpel.graph.struct.RepeatUntil;
 import org.jbpm.bpel.graph.struct.Sequence;
 import org.jbpm.bpel.graph.struct.StructuredActivity;
 import org.jbpm.bpel.graph.struct.While;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:33 $
+ * @version $Revision: 1800 $ $Date: 2007/06/26 18:43:19 $
  */
 public class AbstractBpelVisitor implements BpelVisitor {
 
@@ -83,10 +82,6 @@
     propagate(_while);
   }
 
-  public void visit(RepeatUntil repeatUntil) {
-    propagate(repeatUntil);
-  }
-
   public void visit(Pick pick) {
     propagate(pick);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.hbm.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.hbm.xml	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.hbm.xml	2009-02-06 09:17:24.000000000 +0100
@@ -35,7 +35,6 @@
     <!-- p : rethrow -->
     <!-- q : validate -->
     <!-- r : compensateScope -->
-    <!-- s : repeatUntil -->
 
     <list name="sources" cascade="all">
       <cache usage="nonstrict-read-write" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Activity.java	2009-02-06 09:17:24.000000000 +0100
@@ -15,16 +15,15 @@
 package org.jbpm.bpel.graph.def;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.exe.BpelFaultException;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.persistence.db.BpelGraphSession;
 import org.jbpm.bpel.sublang.def.JoinCondition;
 import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
@@ -35,12 +34,11 @@
 import org.jbpm.graph.def.Transition;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
-import org.jbpm.util.Clock;
 
 /**
  * Activities perform the process logic. They are divided into 2 classes: basic and structured.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 11:19:17 $
  */
 public abstract class Activity extends Node {
 
@@ -54,8 +52,6 @@
 
   private boolean unnamed;
 
-  private static final Log log = LogFactory.getLog(Activity.class);
-
   protected Activity() {
   }
 
@@ -87,37 +83,29 @@
   }
 
   /**
-   * Called by a transition to pass execution to this activity. Execution does not start until the
-   * status of all incoming links has been determined and the (implicit or explicit) join condition
-   * has been evaluated.
+   * Called by a transition to pass execution to this node. Execution of this activity is postponed
+   * until target links are resolved.
    */
   public void enter(ExecutionContext exeContext) {
     Token token = exeContext.getToken();
-    /*
-     * if token has ended, it means the enclosing scope has terminated, the process has exited or,
-     * in general, some agent has requested execution to cease
-     */
-    if (token.hasEnded())
-      return;
 
     // update the runtime context information
     token.setNode(this);
 
-    // fire the leave-node event for this node
+    // fire the enter-node event for this node
     fireEvent(Event.EVENTTYPE_NODE_ENTER, exeContext);
 
     // keep track of node entrance, so that a node-log can be generated upon leaving the node
-    token.setNodeEnter(Clock.getCurrentTime());
+    token.setNodeEnter(new Date());
 
-    // remove transition references from execution context
+    // remove the transition references from the runtime context
     exeContext.setTransition(null);
     exeContext.setTransitionSource(null);
 
-    // execute activity
     try {
       if (!targets.isEmpty()) {
         setTargetsToken(token);
-        if (!areTargetsDetermined(token) || evaluateJoinCondition(token) == false)
+        if (!areTargetsDetermined(token) || !evaluateJoinCondition(token))
           return;
       }
       execute(exeContext);
@@ -137,27 +125,18 @@
   private boolean areTargetsDetermined(Token token) {
     for (int i = 0, n = targets.size(); i < n; i++) {
       LinkDefinition target = (LinkDefinition) targets.get(i);
-      if (target.getInstance(token).getStatus() == null) {
-        log.debug("not executing "
-            + this
-            + " for "
-            + token
-            + ", found undetermined link: "
-            + target.getName());
+      if (target.getInstance(token).getStatus() == null)
         return false;
       }
-    }
     return true;
   }
 
   /**
-   * Tells whether this activity is ready to execute. Being ready depends on:
-   * <ol>
-   * <li>having determined the status of all incoming links</li>
-   * <li>obtaining a positive result from evaluating the join condition</li>
-   * </ol>
-   * When the result is negative and {@link #suppressJoinFailure()} returns <code>true</code>,
-   * this activity is {@linkplain #skip(ExecutionContext) skipped} before returning the result.
+   * Checks if the activity is ready to continue its execution. This depends on: a) having
+   * determined the status of all the target links. b) lacking of a join condition or having a
+   * positive result of its evaluation When this evaluation is negative and suppressJoinFailure=yes,
+   * this operation will skip the activity execution and carry on with the remaining process flow
+   * before returning the result.
    */
   private boolean evaluateJoinCondition(Token token) {
     if (joinCondition != null) {
@@ -169,12 +148,16 @@
       // the implicit condition requires the status of at least one incoming link to be positive
       for (int i = 0, n = targets.size(); i < n; i++) {
         LinkDefinition target = (LinkDefinition) targets.get(i);
-        if (target.getInstance(token).getStatus().booleanValue())
+
+        Boolean status = target.getInstance(token).getStatus();
+        assert status != null : target;
+
+        if (status.booleanValue())
           return true;
       }
     }
 
-    // join failed, throw join failure unless suppressed
+    // join failed, throw join failure unless supressed
     if (!suppressJoinFailure())
       throw new BpelFaultException(BpelConstants.FAULT_JOIN_FAILURE);
 
@@ -184,65 +167,55 @@
   }
 
   /**
-   * Called to continue execution over the default leaving transition. If the activity has outgoing
-   * links, their status is determined before execution continues.
+   * Called by the implementation of this node to continue execution over the default transition. If
+   * the activity has source targets their status is solved before resuming the process execution.
    */
   public void leave(ExecutionContext exeContext) {
+    if (!sources.isEmpty()) {
+      BpelFaultException sourceFault = null;
     Token token = exeContext.getToken();
-    /*
-     * if token has ended, it means the enclosing scope has terminated, the process has exited or,
-     * in general, some agent has requested execution to cease
-     */
-    if (token.hasEnded())
-      return;
 
-    if (!sources.isEmpty()) {
       for (int i = 0, n = sources.size(); i < n; i++) {
-        try {
-          LinkDefinition source = (LinkDefinition) sources.get(i);
-          source.determineStatus(token);
-        }
-        catch (BpelFaultException e) {
-          /*
-           * WS-BPEL 2.0 section 11.6.2 If an error occurs while evaluating the transition condition
-           * of one of an activity's outgoing links, then all remaining outgoing links with targets
-           * within the source activity's enclosing scope MUST NOT have their transition conditions
-           * evaluated and remain in the unset state.
-           */
-          Scope scope = getScope();
-          for (; i < n; i++) {
             LinkDefinition source = (LinkDefinition) sources.get(i);
-            if (!scope.hasActivity(source.getTarget())) {
               /*
-               * However, if the target of a remaining outgoing link is outside the source
-               * activity's enclosing scope then the status of the link MUST be set to false.
+         * TODO what happens if a transition condition fails? wait for issue 169 to decide whether
+         * the rest of the links have to be resolved and which fault has to be thrown
                */
-              source.getInstance(token).statusDetermined(false);
-            }
-          }
-          // throwing the exception ensures the remaining outgoing links stay unset
-          throw e;
+        try {
+          source.determineStatus(token);
+          // status resolution could have caused a fault or termination
+          if (token.hasEnded())
+            return;
         }
+        catch (BpelFaultException fault) {
+          sourceFault = fault;
       }
     }
-    // continue execution
-    proceed(exeContext);
+
+      if (sourceFault != null)
+        throw sourceFault;
   }
 
-  private void proceed(ExecutionContext exeContext) {
     Transition transition = getDefaultLeavingTransition();
-    if (transition == null) {
-      // fire node-leave event for this activity
+    if (transition != null) {
+      leave(exeContext, transition);
+    }
+    else {
+      Token token = exeContext.getToken();
+
+      Node node = token.getNode();
+      if (node == null)
+        token.setNode(this);
+
+      // fire the leave-node event for this node
       fireEvent(Event.EVENTTYPE_NODE_LEAVE, exeContext);
       // complete the enclosing scope instance
-      Scope.getInstance(exeContext.getToken()).completed();
+      Scope.getInstance(token).completed();
     }
-    else
-      leave(exeContext, transition);
   }
 
   /**
-   * Returns the {@link CompositeActivity} or {@link ProcessDefinition} in which this activity is
+   * is the {@link CompositeActivity} or {@link ProcessDefinition} in which this activity is
    * contained.
    */
   public GraphElement getParent() {
@@ -253,43 +226,25 @@
     return compositeActivity.getProcessDefinition();
   }
 
-  // behavior methods
+  // behaviour methods
   // /////////////////////////////////////////////////////////////////////////////
 
   /**
-   * Called when the enclosing {@linkplain #getScope() scope} is forced to terminate. Concrete
-   * activities override this method to perform specific termination duties.
+   * Called by the Runtime on an activity when its enclosing scope is forced to terminate. Concrete
+   * activities override the terminate method to perform some logic upon termination.
    */
   public void terminate(ExecutionContext exeContext) {
   }
 
   /**
-   * Called when this activity is not performed due to the value of the
-   * {@link #getSuppressJoinFailure() suppressJoinFailure} attribute being <code>yes</code> and
-   * the (implicit or explicit) {@linkplain #getJoinCondition() join condition} evaluating to
-   * <code>false</code>.
-   */
-  public void skip(ExecutionContext exeContext) {
-    Token token = exeContext.getToken();
-    /*
-     * if token has ended, it means the enclosing scope has terminated, the process has exited or,
-     * in general, some agent has requested execution to cease
+   * Called when an activity must be skipped. If the activity has source links, they are set to a
+   * negative status before carrying on with the process execution.
      */
-    if (token.hasEnded())
-      return;
-
-    // dead path elimination
-    eliminatePath(token);
-
-    // continue execution
-    proceed(exeContext);
+  public void skip(ExecutionContext context) {
+    eliminatePath(context.getToken());
+    leave(context, getDefaultLeavingTransition());
   }
 
-  /**
-   * Sets the status of all outgoing links to <code>false</code>. To avoid violating control
-   * dependencies, this is only performed after the status of all incoming links has been
-   * determined.
-   */
   public void eliminatePath(Token token) {
     if (!targets.isEmpty()) {
       setTargetsToken(token);
@@ -298,10 +253,10 @@
     }
 
     if (!sources.isEmpty())
-      setSourcesNegativeStatus(token);
+      setNegativeSourcesStatus(token);
   }
 
-  private void setSourcesNegativeStatus(Token token) {
+  private void setNegativeSourcesStatus(Token token) {
     for (int i = 0, n = sources.size(); i < n; i++) {
       LinkDefinition source = (LinkDefinition) sources.get(i);
       source.getInstance(token).statusDetermined(false);
@@ -316,7 +271,7 @@
     try {
       if (!equals(token.getNode())) {
         // token left: dealing with a path previously eliminated by a structure
-        setSourcesNegativeStatus(token);
+        setNegativeSourcesStatus(token);
       }
       else if (evaluateJoinCondition(token))
         execute(new ExecutionContext(token));
@@ -364,9 +319,6 @@
     return null;
   }
 
-  /**
-   * Retrieves a list of all target {@linkplain LinkDefinition links}.
-   */
   public List getTargets() {
     return targets;
   }
@@ -409,9 +361,6 @@
     return null;
   }
 
-  /**
-   * Retrieves a list of all source {@linkplain LinkDefinition links}.
-   */
   public List getSources() {
     return sources;
   }
@@ -440,16 +389,10 @@
       link.setSource(null);
   }
 
-  /**
-   * Returns the immediately enclosing composite activity.
-   */
   public CompositeActivity getCompositeActivity() {
     return compositeActivity;
   }
 
-  /**
-   * Sets the immediately enclosing composite activity.
-   */
   void setCompositeActivity(CompositeActivity compositeActivity) {
     this.compositeActivity = compositeActivity;
   }
@@ -457,10 +400,6 @@
   // utility methods
   // /////////////////////////////////////////////////////////////////////////////
 
-  /**
-   * Detaches this activity from its immediately enclosing
-   * {@linkplain #getCompositeActivity() composite activity}.
-   */
   public void detachFromParent() {
     if (compositeActivity != null) {
       compositeActivity.removeNode(this);
@@ -468,16 +407,10 @@
     }
   }
 
-  /**
-   * Returns the enclosing process definition.
-   */
   public BpelProcessDefinition getBpelProcessDefinition() {
     return (BpelProcessDefinition) getProcessDefinition();
   }
 
-  /**
-   * Returns the nearest enclosing scope.
-   */
   public Scope getScope() {
     // easy way out: composite activity is not a scope
     if (!compositeActivity.isScope())
@@ -487,13 +420,13 @@
     if (compositeActivity instanceof Scope)
       return (Scope) compositeActivity;
 
-    // acquire proxy of the proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    BpelGraphSession graphSession = BpelGraphSession.getContextInstance(jbpmContext);
-    Scope scope = graphSession.loadScope(compositeActivity.getId());
+    // reacquire proxy with the proper type
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    Scope scope = (Scope) hbSession.load(Scope.class, new Long(compositeActivity.getId()));
 
     // update composite activity reference
     compositeActivity = scope;
+
     return scope;
   }
 
@@ -530,9 +463,6 @@
     activity.addArrivingTransition(transition);
   }
 
-  /**
-   * Tells whether this activity is connected to the given activity.
-   */
   public boolean isConnected(Activity activity) {
     return findTransition(activity) != null;
   }
@@ -552,8 +482,10 @@
   private Transition findTransition(Activity activity) {
     List leavingTransitions = getLeavingTransitions();
     if (leavingTransitions != null) {
+
       Set arrivingTransitions = activity.getArrivingTransitions();
       if (arrivingTransitions != null) {
+
         for (int i = 0, n = leavingTransitions.size(); i < n; i++) {
           Transition transition = (Transition) leavingTransitions.get(i);
           if (arrivingTransitions.contains(transition))
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelProcessDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelProcessDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelProcessDefinition.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelProcessDefinition.java	2009-02-06 09:17:24.000000000 +0100
@@ -27,6 +27,7 @@
 import java.util.Set;
 import java.util.Map.Entry;
 
+import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -40,7 +41,7 @@
 /**
  * BPEL process definitions model the behavior of a participant in a business interaction.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:52 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:08:03 $
  */
 public class BpelProcessDefinition extends ProcessDefinition {
 
@@ -67,6 +68,7 @@
     if (!(node instanceof Scope))
       throw new IllegalArgumentException("not a scope: " + node);
 
+    List nodes = getNodes();
     if (nodes != null && !nodes.isEmpty())
       removeNode((Node) nodes.get(0));
 
@@ -74,19 +76,17 @@
   }
 
   public ModuleDefinition getDefinition(Class clazz) {
-    checkDefinitions();
-    return super.getDefinition(clazz);
+    Map definitions = getDefinitions();
+    return definitions != null ? (ModuleDefinition) definitions.get(clazz.getName()) : null;
   }
 
   public Map getDefinitions() {
-    checkDefinitions();
-    return super.getDefinitions();
+    if (definitions == null)
+      initDefinitions();
+    return definitions;
   }
 
-  private void checkDefinitions() {
-    if (definitions != null)
-      return;
-
+  private void initDefinitions() {
     // walk through registered module classes
     for (int i = 0, n = moduleClasses.size(); i < n; i++) {
       Class moduleClass = (Class) moduleClasses.get(i);
@@ -94,11 +94,8 @@
         ModuleDefinition module = (ModuleDefinition) moduleClass.newInstance();
         addDefinition(module);
       }
-      catch (InstantiationException e) {
-        log.warn("cannot instantiate module class: " + moduleClass, e);
-      }
-      catch (IllegalAccessException e) {
-        log.warn("module class or constructor not public: " + moduleClass, e);
+      catch (Exception e) {
+        log.warn("could not initialize module: " + moduleClass);
       }
     }
   }
@@ -106,6 +103,7 @@
   public Scope getGlobalScope() {
     Scope globalScope;
 
+    List nodes = getNodes();
     if (nodes == null || nodes.isEmpty()) {
       globalScope = new Scope();
       globalScope.setName("global");
@@ -160,12 +158,14 @@
     return namespaces;
   }
 
-  public Namespace getNamespace(String prefix, String uri) {
-    for (Iterator i = namespaces.iterator(); i.hasNext();) {
-      Namespace namespace = (Namespace) i.next();
-      if (prefix.equals(namespace.getPrefix()) && uri.equals(namespace.getURI()))
+  public Namespace getNamespace(String prefix, String URI) {
+    Iterator namespaceIt = namespaces.iterator();
+    while (namespaceIt.hasNext()) {
+      Namespace namespace = (Namespace) namespaceIt.next();
+      if (prefix.equals(namespace.getPrefix()) && URI.equals(namespace.getURI())) {
         return namespace;
     }
+    }
     return null;
   }
 
@@ -177,6 +177,17 @@
     return namespace;
   }
 
+  public Set addNamespaces(Set namespaces) {
+    HashSet internNamespaces = new HashSet();
+    Iterator namespaceIt = namespaces.iterator();
+    while (namespaceIt.hasNext()) {
+      Namespace namespace = (Namespace) namespaceIt.next();
+      Namespace internNamespace = addNamespace(namespace);
+      internNamespaces.add(internNamespace);
+    }
+    return internNamespaces;
+  }
+
   public Namespace addNamespace(String prefix, String URI) {
     Namespace namespace = getNamespace(prefix, URI);
     if (namespace == null) {
@@ -186,16 +197,6 @@
     return namespace;
   }
 
-  public Set addNamespaces(Set namespaces) {
-    HashSet internNamespaces = new HashSet();
-    for (Iterator i = namespaces.iterator(); i.hasNext();) {
-      Namespace namespace = (Namespace) i.next();
-      Namespace internNamespace = addNamespace(namespace);
-      internNamespaces.add(internNamespace);
-    }
-    return internNamespaces;
-  }
-
   public Set addNamespaces(Map namespaceMap) {
     HashSet internNamespaces = new HashSet();
     Iterator namespaceEntryIt = namespaceMap.entrySet().iterator();
@@ -224,8 +225,9 @@
 
     // walk through property names
     ArrayList moduleClasses = new ArrayList();
-    for (Iterator i = modulesProperties.keySet().iterator(); i.hasNext();) {
-      String moduleName = (String) i.next();
+    Iterator moduleNameIt = modulesProperties.keySet().iterator();
+    while (moduleNameIt.hasNext()) {
+      String moduleName = (String) moduleNameIt.next();
 
       // load module class
       Class moduleClass = ClassLoaderUtil.loadClass(moduleName);
@@ -247,13 +249,21 @@
     InputStream resourceStream = ClassLoaderUtil.getStream(resource);
     if (resourceStream == null)
       throw new FileNotFoundException(resource);
-    try {
+
       Properties properties = new Properties();
+    try {
       properties.load(resourceStream);
-      return properties;
     }
     finally {
       resourceStream.close();
     }
+    return properties;
+  }
+
+  public String toString() {
+    return new ToStringBuilder(this).append("name", name)
+        .append("targetNamespace", targetNamespace)
+        .append("version", version)
+        .toString();
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelVisitor.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelVisitor.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelVisitor.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/BpelVisitor.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,13 +30,12 @@
 import org.jbpm.bpel.graph.struct.Flow;
 import org.jbpm.bpel.graph.struct.If;
 import org.jbpm.bpel.graph.struct.Pick;
-import org.jbpm.bpel.graph.struct.RepeatUntil;
 import org.jbpm.bpel.graph.struct.Sequence;
 import org.jbpm.bpel.graph.struct.While;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:33 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public interface BpelVisitor {
 
@@ -64,8 +63,6 @@
 
   public void visit(While _while);
 
-  public void visit(RepeatUntil repeatUntil);
-
   public void visit(Pick pick);
 
   public void visit(Flow flow);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/CompositeActivity.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/CompositeActivity.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/CompositeActivity.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/CompositeActivity.java	2009-02-06 09:17:24.000000000 +0100
@@ -25,17 +25,18 @@
 import org.jbpm.graph.def.ProcessDefinition;
 
 /**
- * Common base for process elements that enclose one or more activities. Such process elements
- * include:
+ * Common base for process elements that enclose one or more activities. Such
+ * process elements include:
  * <ul>
  * <li>{@linkplain StructuredActivity structured activities}</li>
  * <li>{@linkplain Scope scopes}</li>
  * <li>fault, compensation and termination {@linkplain Handler handlers}</li>
  * </ul>
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
-public abstract class CompositeActivity extends Activity implements NodeCollection {
+public abstract class CompositeActivity extends Activity implements
+    NodeCollection {
 
   protected CompositeActivity() {
   }
@@ -83,14 +84,6 @@
     return false;
   }
 
-  public boolean hasActivity(Activity activity) {
-    for (CompositeActivity composite = activity.getCompositeActivity(); composite != null; composite = composite.getCompositeActivity()) {
-      if (equals(composite))
-        return true;
-    }
-    return false;
-  }
-
   protected void adoptActivity(Activity activity) {
     final CompositeActivity composite = activity.getCompositeActivity();
     assert composite == null || equals(composite) : composite;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/ImportDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/ImportDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/ImportDefinition.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/ImportDefinition.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,12 +30,15 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
+import com.ibm.wsdl.Constants;
+
 import org.jbpm.bpel.graph.def.Import.Type;
 import org.jbpm.bpel.variable.def.ElementType;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.SchemaType;
 import org.jbpm.bpel.wsdl.PartnerLinkType;
 import org.jbpm.bpel.wsdl.Property;
+import org.jbpm.bpel.wsdl.xml.WsdlConstants;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
 import org.jbpm.module.def.ModuleDefinition;
 import org.jbpm.module.exe.ModuleInstance;
@@ -44,7 +47,7 @@
  * Groups imported WSDL and XML Schema documents. Provides lookup facilites for the various elements
  * defined in those documents.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:52 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 20:52:46 $
  */
 public class ImportDefinition extends ModuleDefinition {
 
@@ -79,24 +82,25 @@
 
     for (int i = 0, n = imports.size(); i < n; i++) {
       Import _import = (Import) imports.get(i);
-      if (!Type.WSDL.equals(_import.getType()))
-        continue; // not a wsdl document, skip it
 
+      if (Type.WSDL.equals(_import.getType())) {
       partnerLinkType = WsdlUtil.getPartnerLinkType((Definition) _import.getDocument(), name);
+
       if (partnerLinkType != null) {
         addPartnerLinkType(partnerLinkType);
         return partnerLinkType;
       }
     }
+    }
     return null;
   }
 
   public void addPartnerLinkType(PartnerLinkType partnerLinkType) {
-    // register port type of first role
+    // register the referenced port types
     PartnerLinkType.Role role = partnerLinkType.getFirstRole();
+    if (role != null)
     role.setPortType(addPortType(role.getPortType()));
 
-    // register port type of second role
     role = partnerLinkType.getSecondRole();
     if (role != null)
       role.setPortType(addPortType(role.getPortType()));
@@ -112,15 +116,16 @@
 
     for (int i = 0, n = imports.size(); i < n; i++) {
       Import _import = (Import) imports.get(i);
-      if (!Type.WSDL.equals(_import.getType()))
-        continue; // not a wsdl document, skip it
 
+      if (Type.WSDL.equals(_import.getType())) {
       portType = WsdlUtil.getPortType((Definition) _import.getDocument(), name);
+
       if (portType != null) {
         portTypes.put(name, portType);
         return portType;
       }
     }
+    }
     return null;
   }
 
@@ -165,28 +170,31 @@
 
     for (int i = 0, n = imports.size(); i < n; i++) {
       Import _import = (Import) imports.get(i);
-      if (!Type.WSDL.equals(_import.getType()))
-        continue; // not a wsdl document, skip it
 
+      if (Type.WSDL.equals(_import.getType())) {
       message = WsdlUtil.getMessage((Definition) _import.getDocument(), name);
+
       if (message != null) {
         messages.put(name, message);
         return message;
       }
     }
+    }
     return null;
   }
 
   public Message addMessage(Message message) {
     QName name = message.getQName();
-
     Message internMessage = (Message) messages.get(name);
-    if (internMessage != null)
-      return internMessage;
 
+    if (internMessage == null) {
     messages.put(name, message);
+      internMessage = message;
+
     addMessageType(message);
-    return message;
+    }
+
+    return internMessage;
   }
 
   public Property getProperty(QName name) {
@@ -196,15 +204,16 @@
 
     for (int i = 0, n = imports.size(); i < n; i++) {
       Import _import = (Import) imports.get(i);
-      if (!Type.WSDL.equals(_import.getType()))
-        continue; // not a wsdl document, skip it
 
+      if (Type.WSDL.equals(_import.getType())) {
       property = WsdlUtil.getProperty((Definition) _import.getDocument(), name);
+
       if (property != null) {
         properties.put(name, property);
         return property;
       }
     }
+    }
     return null;
   }
 
@@ -212,6 +221,36 @@
     properties.put(property.getQName(), property);
   }
 
+  /**
+   * Gets the import where a certain definition can be found.
+   * @param name the definition name
+   * @param element the definition element, can be one of the following:
+   * <ul>
+   * <li>wsdl:portType</li>
+   * <li>wsdl:message</li>
+   * <li>bpel:partnerLinkType</li>
+   * <li>bpel:property</li>
+   * </ul>
+   * @return the declaring import
+   */
+  public Import getDeclaringImport(QName name, QName element) {
+    for (int i = 0, n = imports.size(); i < n; i++) {
+      Import imp = (Import) imports.get(i);
+
+      if (imp.getType().equals(Type.WSDL)) {
+        Definition def = (Definition) imp.getDocument();
+        if ((Constants.Q_ELEM_PORT_TYPE.equals(element) && WsdlUtil.getPortType(def, name) != null)
+            || (Constants.Q_ELEM_MESSAGE.equals(element) && WsdlUtil.getMessage(def, name) != null)
+            || (WsdlConstants.Q_PARTNER_LINK_TYPE.equals(element) && WsdlUtil.getPartnerLinkType(
+                def, name) != null)
+            || (WsdlConstants.Q_PROPERTY.equals(element) && WsdlUtil.getProperty(def, name) != null)) {
+          return imp;
+        }
+      }
+    }
+    return null;
+  }
+
   public Definition getDeclaringDefinition(PortType portType) {
     QName portTypeName = portType.getQName();
 
@@ -235,12 +274,12 @@
     return null;
   }
 
-  private static Definition getDeclaringDefinition(Definition baseDef, QName portTypeName) {
+  private Definition getDeclaringDefinition(Definition baseDef, QName portTypeName) {
     // look in imports with a matching target namespace
-    List imports = baseDef.getImports(portTypeName.getNamespaceURI());
-    if (imports != null) {
-      for (int i = 0, n = imports.size(); i < n; i++) {
-        javax.wsdl.Import _import = (javax.wsdl.Import) imports.get(i);
+    List importList = baseDef.getImports(portTypeName.getNamespaceURI());
+    if (importList != null) {
+      for (int i = 0, n = importList.size(); i < n; i++) {
+        javax.wsdl.Import _import = (javax.wsdl.Import) importList.get(i);
         Definition innerDef = _import.getDefinition();
         if (innerDef.getPortTypes().containsKey(portTypeName))
           return innerDef;
@@ -249,9 +288,9 @@
 
     // look in imported definitions of all imports
     for (Iterator l = baseDef.getImports().values().iterator(); l.hasNext();) {
-      imports = (List) l.next();
-      for (int i = 0, n = imports.size(); i < n; i++) {
-        javax.wsdl.Import _import = (javax.wsdl.Import) imports.get(i);
+      importList = (List) l.next();
+      for (int i = 0, n = importList.size(); i < n; i++) {
+        javax.wsdl.Import _import = (javax.wsdl.Import) importList.get(i);
         Definition innerDef = getDeclaringDefinition(_import.getDefinition(), portTypeName);
         if (innerDef != null)
           return innerDef;
@@ -261,9 +300,14 @@
   }
 
   public MessageType getMessageType(QName name) {
+    if (messageTypes == null)
+      messageTypes = new HashMap();
+
     MessageType type = (MessageType) messageTypes.get(name);
+
     if (type == null) {
       Message message = getMessage(name);
+
       if (message != null)
         type = addMessageType(message);
     }
@@ -277,7 +321,11 @@
   }
 
   public ElementType getElementType(QName name) {
+    if (elementTypes == null)
+      elementTypes = new HashMap();
+
     ElementType type = (ElementType) elementTypes.get(name);
+
     if (type == null) {
       type = new ElementType(name);
       elementTypes.put(name, type);
@@ -286,7 +334,11 @@
   }
 
   public SchemaType getSchemaType(QName name) {
+    if (schemaTypes == null)
+      schemaTypes = new HashMap();
+
     SchemaType type = (SchemaType) schemaTypes.get(name);
+
     if (type == null) {
       type = new SchemaType(name);
       schemaTypes.put(name, type);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Import.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Import.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Import.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Import.java	2009-02-06 09:17:24.000000000 +0100
@@ -16,7 +16,6 @@
 
 import java.io.Serializable;
 
-import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.enums.Enum;
 
 import com.ibm.wsdl.Constants;
@@ -26,7 +25,7 @@
 /**
  * Reference to a single imported document, either WSDL or XML Schema.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Import implements Serializable {
 
@@ -71,18 +70,6 @@
     this.document = document;
   }
 
-  public String toString() {
-    ToStringBuilder builder = new ToStringBuilder(this);
-
-    if (namespace != null)
-      builder.append("namespace", namespace);
-
-    if (location != null)
-      builder.append("location", location);
-
-    return builder.append("type", type.getName()).toString();
-  }
-
   public static class Type extends Enum {
 
     private static final long serialVersionUID = 1L;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/LinkDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/LinkDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/LinkDefinition.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/LinkDefinition.java	2009-02-06 09:17:24.000000000 +0100
@@ -18,17 +18,19 @@
 
 import org.apache.commons.lang.builder.ToStringBuilder;
 
+import org.jbpm.bpel.graph.exe.BpelFaultException;
 import org.jbpm.bpel.graph.exe.LinkInstance;
 import org.jbpm.bpel.graph.struct.Flow;
 import org.jbpm.bpel.sublang.def.Expression;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
+import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
- * Establishes explicit control dependencies between nested child activities within a
- * {@link Flow flow}.
+ * Establishes explicit control dependencies between nested child activities
+ * within a {@link Flow flow}.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:45 $
  */
 public class LinkDefinition implements Serializable {
 
@@ -48,16 +50,23 @@
   }
 
   public void determineStatus(Token token) {
-    boolean status;
+    LinkInstance linkInstance = getInstance(token);
 
-    if (transitionCondition != null) {
-      Object conditionValue = transitionCondition.getEvaluator().evaluate(token);
-      status = DatatypeUtil.toBoolean(conditionValue);
+    if (transitionCondition == null) {
+      linkInstance.statusDetermined(true);
+    }
+    else {
+      try {
+        // uses the source variable context to evaluate the transition condition
+        linkInstance.statusDetermined(DatatypeUtil.toBoolean(transitionCondition.getEvaluator()
+            .evaluate(token)));
+      }
+      catch (BpelFaultException e) {
+        // set a negative link status before throwing the exception
+        linkInstance.setStatus(Boolean.FALSE);
+        throw e;
+      }
     }
-    else
-      status = true;
-
-    getInstance(token).statusDetermined(status);
   }
 
   public Expression getTransitionCondition() {
@@ -93,17 +102,19 @@
   }
 
   public String toString() {
-    return new ToStringBuilder(this).append("name", name).append("source", source).append("target",
-        target).toString();
+    return new ToStringBuilder(this).append("name", name).append("source",
+        source).append("target", target).toString();
   }
 
   public LinkInstance getInstance(Token token) {
-    return (LinkInstance) token.getProcessInstance().getContextInstance().getVariable(name, token);
+    ContextInstance ci = token.getProcessInstance().getContextInstance();
+    return (LinkInstance) ci.getVariable(name, token);
   }
 
   public LinkInstance createInstance(Token token) {
+    ContextInstance ci = token.getProcessInstance().getContextInstance();
     LinkInstance linkInstance = new LinkInstance(this);
-    token.getProcessInstance().getContextInstance().createVariable(name, linkInstance, token);
+    ci.createVariable(name, linkInstance, token);
     return linkInstance;
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Namespace.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Namespace.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Namespace.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/def/Namespace.java	2009-02-06 09:17:24.000000000 +0100
@@ -21,7 +21,7 @@
 /**
  * XML namespace declaration (prefix-URI pair).
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Namespace implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/BpelFaultException.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/BpelFaultException.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/BpelFaultException.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/BpelFaultException.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:13:41 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:13:41 $
  */
 public class BpelFaultException extends BpelException {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/Compensator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/Compensator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/Compensator.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/Compensator.java	2009-02-06 09:17:24.000000000 +0100
@@ -18,7 +18,7 @@
  * Contract that compensation requestors must adhere for receiving scope
  * compensation notifications from the jBPM BPEL scope state machine.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public interface Compensator {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/EventInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/EventInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/EventInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/EventInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:47 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 08:20:24 $
  */
 class EventInstance extends ScopeInstance {
 
@@ -33,13 +33,13 @@
     super(scope, token);
   }
 
-  public void proceed() {
+  public void close() {
     // end event token (do not verify parent completion)
     getToken().end(false);
 
-    // send completed signal to parent if it has no more pending events
+    // send completed signal to parent if it is completing events
     ScopeInstance parentInstance = getParent();
-    if (ActiveState.EVENTS.equals(parentInstance.getState())
+    if (parentInstance.getState().equals(ActiveState.COMPLETING_EVENTS)
         && !parentInstance.hasPendingEvents()) {
       parentInstance.completed();
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/FaultInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/FaultInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/FaultInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/FaultInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:13 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:13 $
  */
 public class FaultInstance {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/LinkInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/LinkInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/LinkInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/LinkInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,7 +30,7 @@
 
   private static final long serialVersionUID = 1L;
 
-  LinkInstance() {
+  public LinkInstance() {
   }
 
   public LinkInstance(LinkDefinition definition) {
@@ -59,8 +59,10 @@
 
   public void statusDetermined(boolean status) {
     this.status = Boolean.valueOf(status);
-    if (targetToken != null)
-      definition.getTarget().targetDetermined(targetToken); // notify target activity
+    if (targetToken != null) {
+      // if a token is registered as a target, notify its activity
+      definition.getTarget().targetDetermined(targetToken);
+    }
   }
 
   public String toString() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstanceIterator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstanceIterator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstanceIterator.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstanceIterator.java	2009-02-06 09:17:24.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/07/02 23:55:06 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:06 $
  */
 class ScopeInstanceIterator implements Iterator {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -21,6 +21,9 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -30,6 +33,9 @@
 import org.jbpm.bpel.alarm.AlarmAction;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.exe.state.ActiveState;
+import org.jbpm.bpel.graph.exe.state.CompensatingState;
+import org.jbpm.bpel.graph.exe.state.FaultingState;
+import org.jbpm.bpel.graph.exe.state.TerminatingState;
 import org.jbpm.bpel.graph.scope.Handler;
 import org.jbpm.bpel.graph.scope.OnAlarm;
 import org.jbpm.bpel.graph.scope.OnEvent;
@@ -38,19 +44,17 @@
 import org.jbpm.bpel.integration.def.CorrelationSetDefinition;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.persistence.db.BpelGraphSession;
 import org.jbpm.bpel.persistence.db.ScopeSession;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.def.VariableType;
 import org.jbpm.bpel.variable.exe.MessageValue;
-import org.jbpm.graph.def.Node;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
 import org.jbpm.scheduler.SchedulerService;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/06/11 19:58:04 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 11:25:00 $
  */
 public class ScopeInstance implements Serializable, Compensator {
 
@@ -63,11 +67,29 @@
 
   private static final String PRIMARY_TOKEN = "primary";
   private static final String HANDLER_TOKEN = "handler";
+  private static final String EVENT_TOKEN = "event";
   private static final String EVENTS_TOKEN = "events";
-  private static final String EVENT_TOKEN_PREFIX = "event-";
 
-  private static final Log log = LogFactory.getLog(ScopeInstance.class);
+  private static final ScopeState[] TERMINATABLE_STATES = {
+      ActiveState.PERFORMING_PRIMARY_ACTIVITY, ActiveState.COMPLETING_EVENTS,
+      FaultingState.FAULTING_WITH_HANDLER, FaultingState.FAULTING_WITHOUT_HANDLER,
+      CompensatingState.COMPENSATING_WITH_HANDLER, CompensatingState.COMPENSATING_WITHOUT_HANDLER,
+      TerminatingState.TERMINATING_WITH_HANDLER, TerminatingState.TERMINATING_WITHOUT_HANDLER };
+  private static final Predicate terminatableStatesPredicate = new StatePredicate(
+      TERMINATABLE_STATES);
+
+  private static final ScopeState[] NOT_ENDED_STATES = { ActiveState.PERFORMING_PRIMARY_ACTIVITY,
+      ActiveState.COMPLETING_EVENTS, FaultingState.TERMINATING_PRIMARY_ACTIVITY,
+      FaultingState.FAULTING_WITH_HANDLER, FaultingState.FAULTING_WITHOUT_HANDLER,
+      FaultingState.TERMINATING_FAULT_HANDLER, CompensatingState.COMPENSATING_WITH_HANDLER,
+      CompensatingState.COMPENSATING_WITHOUT_HANDLER,
+      CompensatingState.TERMINATING_COMPENSATION_HANDLER,
+      TerminatingState.TERMINATING_PRIMARY_ACTIVITY, TerminatingState.TERMINATING_WITH_HANDLER,
+      TerminatingState.TERMINATING_WITHOUT_HANDLER,
+      TerminatingState.TERMINATING_TERMINATION_HANDLER };
+  private static final Predicate notEndedStatesPredicate = new StatePredicate(NOT_ENDED_STATES);
 
+  private static final Log log = LogFactory.getLog(ScopeInstance.class);
   private static final long serialVersionUID = 1L;
 
   ScopeInstance() {
@@ -77,25 +99,27 @@
     this.definition = definition;
     this.token = token;
     // initial state is performing primary activity
-    state = ActiveState.PRIMARY;
-    // create a token for the primary activity
-    Activity activity = definition.getActivity();
-    new Token(token, activity != null ? activity.getName() : PRIMARY_TOKEN);
+    setState(ActiveState.PERFORMING_PRIMARY_ACTIVITY);
+    // create a token for performing the primary activity
+    new Token(token, PRIMARY_TOKEN);
   }
 
   public void initializeData() {
     // TODO variable initialization and bpws:scopeInitializationFault handling
     // variables
-    for (Iterator i = definition.getVariables().values().iterator(); i.hasNext();)
-      ((VariableDefinition) i.next()).createInstance(token);
+    Iterator variableIt = definition.getVariables().values().iterator();
+    while (variableIt.hasNext())
+      ((VariableDefinition) variableIt.next()).createInstance(token);
 
     // correlation sets
-    for (Iterator i = definition.getCorrelationSets().values().iterator(); i.hasNext();)
-      ((CorrelationSetDefinition) i.next()).createInstance(token);
+    Iterator correlationSetIt = definition.getCorrelationSets().values().iterator();
+    while (correlationSetIt.hasNext())
+      ((CorrelationSetDefinition) correlationSetIt.next()).createInstance(token);
 
     // partner links
-    for (Iterator i = definition.getPartnerLinks().values().iterator(); i.hasNext();)
-      ((PartnerLinkDefinition) i.next()).createInstance(token);
+    Iterator partnerLinkIt = definition.getPartnerLinks().values().iterator();
+    while (partnerLinkIt.hasNext())
+      ((PartnerLinkDefinition) partnerLinkIt.next()).createInstance(token);
   }
 
   // signals
@@ -120,7 +144,7 @@
   }
 
   public void scopeCompensated(ScopeInstance nestedInstance) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(JbpmContext.getCurrentJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(JbpmContext.getCurrentJbpmContext());
     ScopeInstance nextNestedInstance = scopeSession.nextChildToCompensate(this);
     if (nextNestedInstance != null)
       nextNestedInstance.compensate(this);
@@ -128,20 +152,13 @@
       state.childrenCompensated(this);
   }
 
-  public void scopeTerminated(ScopeInstance nestedInstance) {
-    if (!hasTerminableChildren())
+  public void scopeTerminated(ScopeInstance child) {
+    Iterator childrenIt = new FilterIterator(new ScopeInstanceIterator(token),
+        terminatableStatesPredicate);
+    if (!childrenIt.hasNext())
       state.childrenTerminated(this);
   }
 
-  private boolean hasTerminableChildren() {
-    for (Iterator i = new ScopeInstanceIterator(token); i.hasNext();) {
-      ScopeInstance scopeInstance = (ScopeInstance) i.next();
-      if (scopeInstance.getState().isTerminable())
-        return true;
-    }
-    return false;
-  }
-
   // behavior methods
   // ///////////////////////////////////////////////////////////////////////////
 
@@ -165,8 +182,9 @@
     VariableType dataType;
     // is it a message?
     MessageValue messageValue = faultInstance.getMessageValue();
-    if (messageValue != null)
+    if (messageValue != null) {
       dataType = messageValue.getType();
+    }
     else {
       // is it an element?
       Element elementValue = faultInstance.getElementValue();
@@ -236,13 +254,13 @@
     }
   }
 
-  public void proceed() {
+  public void close() {
     Token parentToken = token.getParent();
     if (parentToken != null) {
-      // end scope token (do not cause parent termination)
+      // end local scope token (do not cause parent termination)
       token.end(false);
-      // leave the scope
-      new ExecutionContext(parentToken).leaveNode();
+      // resume execution in parent scope
+      parentToken.getNode().leave(new ExecutionContext(parentToken));
     }
     else {
       // end global scope token (this will end the process instance)
@@ -251,18 +269,11 @@
   }
 
   public void terminateChildren() {
-    Token handlerToken = getHandlerToken();
-    if (handlerToken != null && !handlerToken.hasEnded()) {
-      // terminate handler execution
-      terminateToken(handlerToken);
-    }
-    else {
       Token primaryToken = getPrimaryToken();
       if (!primaryToken.hasEnded()) {
         // terminate primary activity execution
         terminateToken(primaryToken);
-      }
-      // check whether any event token needs termination
+      // check if any event token needs termination
       Token eventsToken = getEventsToken();
       if (eventsToken != null && !eventsToken.hasEnded()) {
         // stop listening for events
@@ -276,62 +287,58 @@
               terminateToken(eventToken);
           }
         }
-        // end events token (do not cause parent termination)
+        // end events token
         eventsToken.end(false);
       }
     }
-    // notify children termination if no nested scope instances are being terminated
-    if (!hasTerminableChildren())
+    else {
+      Token handlerToken = getHandlerToken();
+      if (handlerToken != null && !handlerToken.hasEnded()) {
+        // terminate handler execution
+        terminateToken(handlerToken);
+      }
+    }
+    /*
+     * notify children termination if no nested scope instances are still being canceled
+     */
+    Iterator nestedScopeIt = new FilterIterator(new ScopeInstanceIterator(token),
+        terminatableStatesPredicate);
+    if (!nestedScopeIt.hasNext())
       state.childrenTerminated(this);
   }
 
   private static void terminateToken(Token token) {
-    Activity activity;
-    // check whether node has the proper type already
-    Node node = token.getNode();
-    if (node instanceof Activity)
-      activity = (Activity) node;
-    else {
-      // acquire proxy of the proper type
-      JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-      BpelGraphSession graphSession = BpelGraphSession.getContextInstance(jbpmContext);
-      activity = graphSession.loadActivity(node.getId());
-    }
-
     // terminate activity
+    Activity activity = (Activity) token.getNode();
+    // if (activity != null)
     activity.terminate(new ExecutionContext(token));
 
-    // end token (do not verify parent termination)
+    // end given token (do not verify parent termination)
     token.end(false);
   }
 
   public boolean hasPendingEvents() {
-    Token eventsToken = getEventsToken();
-    if (eventsToken == null)
+    Token eventToken = getEventsToken();
+    if (eventToken == null)
       return false;
 
-    for (Iterator i = new ScopeInstanceIterator(eventsToken); i.hasNext();) {
-      ScopeInstance scopeInstance = (ScopeInstance) i.next();
-      if (!scopeInstance.getState().isEnd())
-        return true;
-    }
-    return false;
+    Iterator scopeInstanceIt = new FilterIterator(new ScopeInstanceIterator(eventToken),
+        notEndedStatesPredicate);
+    return scopeInstanceIt.hasNext();
   }
 
   public Token getPrimaryToken() {
-    Activity activity = definition.getActivity();
-    return token.getChild(activity != null ? activity.getName() : PRIMARY_TOKEN);
+    return token.getChild(PRIMARY_TOKEN);
   }
 
   public Token createEventToken() {
     Token eventsToken = getEventsToken();
     Map eventTokens = eventsToken.getChildren();
-    return new Token(eventsToken, EVENT_TOKEN_PREFIX
-        + (eventTokens != null ? eventTokens.size() : 0));
+    return new Token(eventsToken, EVENT_TOKEN + (eventTokens != null ? eventTokens.size() : 0));
   }
 
   public Token createHandlerToken() {
-    if (token.hasChild(HANDLER_TOKEN))
+    if (getHandlerToken() != null)
       throw new IllegalStateException("handler token already exists");
 
     return new Token(token, HANDLER_TOKEN);
@@ -350,7 +357,7 @@
   }
 
   public Token getEventToken(int index) {
-    return getEventsToken().getChild(EVENT_TOKEN_PREFIX + index);
+    return getEventsToken().getChild(EVENT_TOKEN + index);
   }
 
   public ScopeState getState() {
@@ -419,4 +426,18 @@
   public static ScopeInstance createEventInstance(Scope scope, Token token) {
     return new EventInstance(scope, token);
   }
+
+  private static class StatePredicate implements Predicate {
+
+    private final ScopeState[] states;
+
+    private StatePredicate(ScopeState[] states) {
+      this.states = states;
+    }
+
+    public boolean evaluate(Object obj) {
+      ScopeInstance scopeInstance = (ScopeInstance) obj;
+      return ArrayUtils.contains(states, scopeInstance.getState());
+    }
+  }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeState.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeState.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeState.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/ScopeState.java	2009-02-06 09:17:24.000000000 +0100
@@ -16,20 +16,20 @@
 
 import java.io.Serializable;
 
-import org.apache.commons.lang.enums.Enum;
+import org.apache.commons.lang.enums.ValuedEnum;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:09 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
-public abstract class ScopeState extends Enum implements Serializable {
+public abstract class ScopeState extends ValuedEnum implements Serializable {
 
   /**
    * Constructs a scope state identified by the given name.
    * @param name
    */
-  protected ScopeState(String name) {
-    super(name);
+  protected ScopeState(String name, int code) {
+    super(name, code);    
   }
 
   public final Class getEnumClass() {
@@ -37,72 +37,60 @@
   }
 
   /**
-   * Requests cancellation of the scope instance argument.
-   * @param scope the scope instance to terminate
+   * Requests cancelation of the scope instance argument.
+   * @param scope
    */
   public void terminate(ScopeInstance scope) {
-    throwStateException("terminate");
+    throw newStateException("terminate");
   }
 
   /**
    * Requests compensation of the scope instance argument.
-   * @param scope the scope instance to compensate
+   * @param scope
    */
   public void compensate(ScopeInstance scope) {
-    throwStateException("compensate");
+    throw newStateException("compensate");
   }
 
   /**
-   * Notifies the completion of the given scope instance.
-   * @param scope the scope instance that completed
+   * Notifies the completion of a scope instance inside an execution flow
+   * @param scope
    */
   public void completed(ScopeInstance scope) {
-    throwStateException("completed");
+    throw newStateException("completed");
   }
 
   /**
-   * Notifies the occurrence of a fault in the given scope instance.
-   * @param scope the scope instance that faulted
+   * Notifies that a fault occured during the execution of a scope instance
+   * @param scope
    */
   public void faulted(ScopeInstance scope) {
-    throwStateException("faulted");
+    throw newStateException("faulted");
   }
 
   /**
-   * Notifies the termination of the children of the scope instance argument.
-   * @param scope the scope instance whose children were terminated
+   * Notifies that the children of the given scope instance were terminated
+   * @param scope
    */
   public void childrenTerminated(ScopeInstance scope) {
-    throwStateException("childrenTerminated");
+    throw newStateException("childrenTerminated");
   }
 
   /**
-   * Notifies the compensation of the children of the scope instance argument.
-   * @param scope the scope instance whose children were compensated
+   * Notifies that the children of the given scope instance were compensated
+   * @param scope
    */
   public void childrenCompensated(ScopeInstance scope) {
-    throwStateException("childrenCompensated");
+    throw newStateException("childrenCompensated");
   }
   
   /**
-   * Tells whether this state is terminable.
-   */
-  public boolean isTerminable() {
-    return false;
-  }
-  
-  /**
-   * Tells whether this state is an end state.
-   */
-  public boolean isEnd() {
-    return false;
-  }
-
-  /**
-   * Creates an exception to signal that the given transition is illegal from the current state.
+   * Creates an exception to signal that the given transition is illegal from
+   * the current state.
    * @param transition the name of the illegal transition
+   * @return a newly created exception
    */
-  private void throwStateException(String transition) throws IllegalStateException {
-    throw new IllegalStateException(this + ": transition=" + transition);
+  protected IllegalStateException newStateException(String transition) {
+    return new IllegalStateException(this + ": transition=" + transition);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/ActiveState.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/ActiveState.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/ActiveState.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/ActiveState.java	2009-02-06 09:17:24.000000000 +0100
@@ -19,11 +19,12 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
 public abstract class ActiveState extends ScopeState {
 
-  public static final ScopeState PRIMARY = new ActiveState("AP") {
+  public static final ScopeState PERFORMING_PRIMARY_ACTIVITY = new ActiveState(
+      "performingPrimaryActivity", 0) {
 
     private static final long serialVersionUID = 1L;
 
@@ -31,21 +32,22 @@
       scope.disableEvents();
       if (!scope.hasPendingEvents()) {
         // set completed if no events left
-        EndState.enterCompleted(scope);
+        EndedState.enterCompleted(scope);
       }
       else {
         // wait for completion of pending events
-        scope.setState(EVENTS);
+        scope.setState(COMPLETING_EVENTS);
       }
     }
   };
 
-  public static final ScopeState EVENTS = new ActiveState("AE") {
+  public static final ScopeState COMPLETING_EVENTS = new ActiveState(
+      "completingEvents", 1) {
 
     private static final long serialVersionUID = 1L;
 
     public void completed(ScopeInstance scope) {
-      EndState.enterCompleted(scope);
+      EndedState.enterCompleted(scope);
     }
   };
 
@@ -53,8 +55,8 @@
    * Constructs an active state identified by the given name.
    * @param name
    */
-  private ActiveState(String name) {
-    super(name);
+  private ActiveState(String name, int code) {
+    super(name, code);
   }
 
   public void terminate(ScopeInstance scope) {
@@ -64,8 +66,4 @@
   public void faulted(ScopeInstance scope) {
     FaultingState.enterFaulting(scope);
   }
-
-  public boolean isTerminable() {
-    return true;
-  }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/CompensatingState.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/CompensatingState.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/CompensatingState.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/CompensatingState.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,63 +20,66 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class CompensatingState extends ScopeState {
 
   private static final long serialVersionUID = 1L;
 
-  public static final ScopeState DEFAULT = new CompensatingState("CD") {
+  public static final ScopeState COMPENSATING_WITHOUT_HANDLER = new CompensatingState(
+      "compensatingWithoutHandler", 10) {
 
     private static final long serialVersionUID = 1L;
 
     public void faulted(ScopeInstance scope) {
-      EndState.enterFaulted(scope);
+      EndedState.enterFaulted(scope);
     }
 
     public void childrenCompensated(ScopeInstance scope) {
-      EndState.enterCompensated(scope);
+      EndedState.enterCompensated(scope);
     }
   };
 
-  public static final ScopeState EXPLICIT = new CompensatingState("CE") {
+  public static final ScopeState COMPENSATING_WITH_HANDLER = new CompensatingState(
+      "compensatingWithHandler", 11) {
 
     private static final long serialVersionUID = 1L;
 
     public void completed(ScopeInstance scope) {
-      // end handler token (do not verify parent termination)
+      // end handler token (do not verify parent completion)
       scope.getHandlerToken().end(false);
-      EndState.enterCompensated(scope);
+      EndedState.enterCompensated(scope);
     }
 
     public void faulted(ScopeInstance scope) {
-      scope.setState(TERMINATING_HANDLER);
+      scope.setState(TERMINATING_COMPENSATION_HANDLER);
       scope.terminateChildren();
     }
   };
 
-  public static final ScopeState TERMINATING_HANDLER = new CompensatingState("CT") {
+  public static final ScopeState TERMINATING_COMPENSATION_HANDLER = new CompensatingState(
+      "terminatingCompensationHandler", 12) {
 
     private static final long serialVersionUID = 1L;
 
     public void childrenTerminated(ScopeInstance scope) {
-      EndState.enterFaulted(scope);
+      EndedState.enterFaulted(scope);
     }
   };
 
-  private CompensatingState(String name) {
-    super(name);
+  private CompensatingState(String name, int code) {
+    super(name, code);
   }
 
   public static void enterCompensating(ScopeInstance scope) {
     Handler handler = scope.getDefinition().getCompensationHandler();
 
     if (handler != null) {
-      scope.setState(EXPLICIT);
-      StateUtil.executeHandler(scope, handler);
+      scope.setState(COMPENSATING_WITH_HANDLER);
+      StateUtil.invokeHandler(scope, handler);
     }
     else {
-      scope.setState(DEFAULT);
+      scope.setState(COMPENSATING_WITHOUT_HANDLER);
       StateUtil.invokeDefaultCompensation(scope);
     }
   }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state: EndedState.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state: EndState.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/FaultingState.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/FaultingState.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/FaultingState.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/FaultingState.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,92 +20,89 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class FaultingState extends ScopeState {
 
   private static final long serialVersionUID = 1L;
 
-  public static final ScopeState TERMINATING_PRIMARY = new FaultingState("FP") {
+  public static final ScopeState TERMINATING_PRIMARY_ACTIVITY = new FaultingState(
+      "terminatingPrimaryActivityOnFault", 2) {
 
     private static final long serialVersionUID = 1L;
 
     public void childrenTerminated(ScopeInstance scope) {
       Handler handler = scope.getFaultHandler();
       if (handler != null) {
-        scope.setState(EXPLICIT);
-        StateUtil.executeHandler(scope, handler);
+        scope.setState(FAULTING_WITH_HANDLER);
+        StateUtil.invokeHandler(scope, handler);
       }
       else {
         /*
-         * TODO If the fault occurs in (or is rethrown to) the global process scope, and there is no
-         * matching fault handler for the fault at the global level, the process terminates
-         * abnormally, as though an exit activity had been performed.
+         * TODO If the fault occurs in (or is rethrown to) the global process
+         * scope, and there is no matching fault handler for the fault at the
+         * global level, the process terminates abnormally, as though an exit
+         * activity had been performed.
          */
-        scope.setState(DEFAULT);
+        scope.setState(FAULTING_WITHOUT_HANDLER);
         StateUtil.invokeDefaultCompensation(scope);
       }
     }
   };
 
-  public static final ScopeState DEFAULT = new FaultingState("FD") {
+  public static final ScopeState FAULTING_WITHOUT_HANDLER = new FaultingState(
+      "faultingWithoutHandler", 3) {
 
     private static final long serialVersionUID = 1L;
 
     public void childrenCompensated(ScopeInstance scope) {
-      EndState.enterFaulted(scope);
+      EndedState.enterFaulted(scope);
     }
 
     public void faulted(ScopeInstance scope) {
-      EndState.enterFaulted(scope);
-    }
-
-    public boolean isTerminable() {
-      return true;
+      EndedState.enterFaulted(scope);
     }
   };
 
-  public static final ScopeState EXPLICIT = new FaultingState("FE") {
+  public static final ScopeState FAULTING_WITH_HANDLER = new FaultingState(
+      "faultingWithHandler", 4) {
 
     private static final long serialVersionUID = 1L;
 
     public void completed(ScopeInstance scope) {
-      EndState.enterExited(scope);
+      EndedState.enterExited(scope);
     }
 
     public void faulted(ScopeInstance scope) {
-      scope.setState(TERMINATING_HANDLER);
+      scope.setState(TERMINATING_FAULT_HANDLER);
       scope.terminateChildren();
     }
-
-    public boolean isTerminable() {
-      return true;
-    }
   };
 
-  public static final ScopeState TERMINATING_HANDLER = new FaultingState("FT") {
+  public static final ScopeState TERMINATING_FAULT_HANDLER = new FaultingState(
+      "terminatingFaultHandler", 5) {
 
     private static final long serialVersionUID = 1L;
 
     public void childrenTerminated(ScopeInstance scope) {
-      EndState.enterFaulted(scope);
+      EndedState.enterFaulted(scope);
     }
   };
 
-  private FaultingState(String name) {
-    super(name);
+  protected FaultingState(String name, int code) {
+    super(name, code);
   }
 
   public void terminate(ScopeInstance scope) {
     /*
-     * in case a Terminate signal is sent to a nested scope that has already faulted internally, the
-     * Terminate signal is ignored; the scope will eventually send either a Faulted or an Exited
-     * signal to the parent
+     * in case a Terminate signal is sent to a nested scope that has already
+     * faulted internally, the Terminate signal is ignored; the scope will
+     * eventually send either a Faulted or an Exited signal to the parent
      */
   }
 
   public static void enterFaulting(ScopeInstance scope) {
-    scope.setState(FaultingState.TERMINATING_PRIMARY);
+    scope.setState(FaultingState.TERMINATING_PRIMARY_ACTIVITY);
     scope.terminateChildren();
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/StateUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/StateUtil.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/StateUtil.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/StateUtil.java	2009-02-06 09:17:24.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:10 $
  */
 class StateUtil {
 
@@ -37,7 +37,7 @@
   }
 
   public static void invokeDefaultCompensation(ScopeInstance targetInstance) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(JbpmContext.getCurrentJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(JbpmContext.getCurrentJbpmContext());
     if (scopeSession != null) {
       ScopeInstance nestedInstance = scopeSession.nextChildToCompensate(targetInstance);
       if (nestedInstance != null) {
@@ -48,9 +48,9 @@
     targetInstance.getState().childrenCompensated(targetInstance);
   }
 
-  public static void executeHandler(ScopeInstance scopeInstance, Handler handler) {
-    Token token = scopeInstance.createHandlerToken();
-    log.debug("executing '" + handler + "' for '" + token + "'");
-    handler.execute(new ExecutionContext(token));
+  public static void invokeHandler(ScopeInstance scope, Handler handler) {
+    Token handlerToken = scope.createHandlerToken();
+    log.debug("invoking '" + handler + "' for '" + handlerToken + "'");
+    handler.execute(new ExecutionContext(handlerToken));
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/TerminatingState.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/TerminatingState.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/TerminatingState.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/exe/state/TerminatingState.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,86 +20,83 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class TerminatingState extends ScopeState {
 
   private static final long serialVersionUID = 1L;
 
-  public static final ScopeState TERMINATING_PRIMARY = new TerminatingState("TP") {
+  public static final ScopeState TERMINATING_PRIMARY_ACTIVITY = new TerminatingState(
+      "terminatingPrimaryActivityOnRequest", 6) {
 
     private static final long serialVersionUID = 1L;
 
     public void faulted(ScopeInstance scope) {
       /*
-       * A fault at this point is ignored, it comes from a faulted notification send from a child
-       * before it was canceled.
+       * A fault at this point is ignored, it comes from a faulted notification
+       * send from a child before it was canceled.
        */
     }
 
     public void childrenTerminated(ScopeInstance scope) {
       Handler handler = scope.getDefinition().getTerminationHandler();
+
       if (handler != null) {
-        scope.setState(EXPLICIT);
-        StateUtil.executeHandler(scope, handler);
+        scope.setState(TERMINATING_WITH_HANDLER);
+        StateUtil.invokeHandler(scope, handler);
       }
       else {
-        scope.setState(DEFAULT);
+        scope.setState(TERMINATING_WITHOUT_HANDLER);
         StateUtil.invokeDefaultCompensation(scope);
       }
     }
   };
 
-  public static final ScopeState DEFAULT = new TerminatingState("TD") {
+  public static final ScopeState TERMINATING_WITH_HANDLER = new TerminatingState(
+      "terminatingWithHandler", 7) {
 
     private static final long serialVersionUID = 1L;
 
     public void faulted(ScopeInstance scope) {
-      EndState.enterTerminated(scope);
-    }
-
-    public void childrenCompensated(ScopeInstance scope) {
-      EndState.enterTerminated(scope);
+      scope.setState(TERMINATING_TERMINATION_HANDLER);
+      scope.terminateChildren();
     }
 
-    public boolean isTerminable() {
-      return true;
+    public void completed(ScopeInstance scope) {
+      EndedState.enterTerminated(scope);
     }
   };
 
-  public static final ScopeState EXPLICIT = new TerminatingState("TE") {
+  public static final ScopeState TERMINATING_WITHOUT_HANDLER = new TerminatingState(
+      "terminatingWithoutHandler", 8) {
 
     private static final long serialVersionUID = 1L;
 
     public void faulted(ScopeInstance scope) {
-      scope.setState(TERMINATING_HANDLER);
-      scope.terminateChildren();
+      EndedState.enterTerminated(scope);
     }
 
-    public void completed(ScopeInstance scope) {
-      EndState.enterTerminated(scope);
-    }
-
-    public boolean isTerminable() {
-      return true;
+    public void childrenCompensated(ScopeInstance scope) {
+      EndedState.enterTerminated(scope);
     }
   };
 
-  public static final ScopeState TERMINATING_HANDLER = new TerminatingState("TT") {
+  public static final ScopeState TERMINATING_TERMINATION_HANDLER = new TerminatingState(
+      "terminatingTerminationHandler", 9) {
 
     private static final long serialVersionUID = 1L;
 
     public void childrenTerminated(ScopeInstance scope) {
-      EndState.enterTerminated(scope);
+      EndedState.enterTerminated(scope);
     }
   };
 
-  protected TerminatingState(String name) {
-    super(name);
+  protected TerminatingState(String name, int code) {
+    super(name, code);
   }
 
   public static void enterTerminating(ScopeInstance scope) {
-    scope.setState(TERMINATING_PRIMARY);
+    scope.setState(TERMINATING_PRIMARY_ACTIVITY);
     scope.terminateChildren();
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Catch.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Catch.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Catch.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Catch.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,7 +28,7 @@
  * Fault handlers attached to a scope provide a way to define custom error
  * recovery activities.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class Catch extends Handler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Compensate.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Compensate.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Compensate.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Compensate.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,7 +28,7 @@
  * {@link Handler catchAll}, {@link Handler compensationHandler} and
  * {@link Handler terminationHandler}.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/18 10:21:30 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 19:42:16 $
  */
 public class Compensate extends Activity implements Compensator {
 
@@ -42,7 +42,7 @@
   }
 
   public void execute(ExecutionContext exeContext) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(exeContext.getJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(exeContext.getJbpmContext());
     ScopeInstance enclosingInstance = Scope.getInstance(exeContext.getToken());
     ScopeInstance nestedInstance = scopeSession.nextChildToCompensate(enclosingInstance);
 
@@ -57,7 +57,7 @@
   }
 
   public void scopeCompensated(ScopeInstance nestedInstance) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(JbpmContext.getCurrentJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(JbpmContext.getCurrentJbpmContext());
     ScopeInstance enclosingInstance = nestedInstance.getParent();
     ScopeInstance nextNestedInstance = scopeSession.nextChildToCompensate(enclosingInstance);
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/CompensateScope.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/CompensateScope.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/CompensateScope.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/CompensateScope.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,7 +28,7 @@
  * {@link Handler compensationHandler} and
  * {@link Handler terminationHandler}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/18 10:21:30 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class CompensateScope extends Activity implements Compensator {
 
@@ -52,7 +52,7 @@
   }
 
   public void execute(ExecutionContext exeContext) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(exeContext.getJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(exeContext.getJbpmContext());
     ScopeInstance nestedScope = scopeSession.nextScopeToCompensate(
         exeContext.getProcessInstance(), target);
 
@@ -63,7 +63,7 @@
   }
 
   public void scopeCompensated(ScopeInstance nestedInstance) {
-    ScopeSession scopeSession = ScopeSession.getContextInstance(JbpmContext.getCurrentJbpmContext());
+    ScopeSession scopeSession = ScopeSession.getInstance(JbpmContext.getCurrentJbpmContext());
     ScopeInstance nextNestedInstance = scopeSession.nextScopeToCompensate(
         nestedInstance.getToken().getProcessInstance(), target);
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/FaultActionHandler.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/FaultActionHandler.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/FaultActionHandler.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/FaultActionHandler.java	2009-02-06 09:17:24.000000000 +0100
@@ -13,7 +13,7 @@
  * Delivers the {@linkplain FaultInstance fault} carried by a
  * {@link BpelFaultException} to the nearest enclosing scope.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/02/19 22:25:44 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:25:44 $
  */
 public class FaultActionHandler implements ActionHandler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Handler.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Handler.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Handler.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Handler.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,6 +14,7 @@
  */
 package org.jbpm.bpel.graph.scope;
 
+import java.io.Serializable;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -25,9 +26,9 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
-public class Handler extends CompositeActivity {
+public class Handler extends CompositeActivity implements Serializable {
 
   private Activity activity;
 
@@ -54,8 +55,8 @@
     activity = null;
   }
 
-  public void execute(ExecutionContext exeContext) {
-    activity.enter(exeContext);
+  public void execute(ExecutionContext context) {
+    activity.enter(context);
   }
 
   // children management
@@ -82,7 +83,8 @@
 
   public void reorderNode(int oldIndex, int newIndex) {
     if (activity == null || oldIndex != 0 || newIndex != 0) {
-      throw new IndexOutOfBoundsException("could not reorder element: oldIndex="
+      throw new IndexOutOfBoundsException(
+          "could not reorder element: oldIndex="
           + oldIndex
           + ", newIndex="
           + newIndex);
@@ -98,7 +100,8 @@
   }
 
   public Map getNodesMap() {
-    return activity != null ? Collections.singletonMap(activity.getName(), activity) : null;
+    return activity != null ? Collections.singletonMap(activity.getName(),
+        activity) : null;
   }
 
   public boolean hasNode(String name) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/NestedScopeFinder.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/NestedScopeFinder.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/NestedScopeFinder.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/NestedScopeFinder.java	2009-02-06 09:17:24.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/06/26 18:43:19 $
+ * @version $Revision: 1800 $ $Date: 2007/06/26 18:43:19 $
  */
 class NestedScopeFinder extends AbstractBpelVisitor {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnAlarm.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnAlarm.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnAlarm.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnAlarm.java	2009-02-06 09:17:24.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:05 $
  */
 public class OnAlarm extends Handler implements TimeDrivenActivity {
 
@@ -40,7 +40,7 @@
   public void timerFired(AlarmAction targetAlarm, Token token) {
     ScopeInstance scopeInstance = Scope.getInstance(token);
     if (!scopeInstance.getState().equals(
-        ActiveState.PRIMARY)) {
+        ActiveState.PERFORMING_PRIMARY_ACTIVITY)) {
       log.debug("scope is no longer in normal processing mode, ignoring: alarm="
           + targetAlarm
           + ", scope="
@@ -50,7 +50,7 @@
 
     // create event token and scope instance
     Token eventToken = scopeInstance.createEventToken();
-    scopeInstance.getDefinition().createEventInstance(eventToken);
+    getScope().createEventInstance(eventToken);
 
     // execute associated activity
     execute(new ExecutionContext(eventToken));
@@ -63,7 +63,7 @@
     if (action instanceof AlarmAction)
       return (AlarmAction) action;
 
-    // acquire proxy of the proper type
+    // reacquire proxy of the proper type
     Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
     AlarmAction alarmAction = (AlarmAction) hbSession.load(AlarmAction.class,
         new Long(action.getId()));
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnEvent.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnEvent.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnEvent.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/OnEvent.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,15 +14,16 @@
  */
 package org.jbpm.bpel.graph.scope;
 
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.graph.exe.state.ActiveState;
 import org.jbpm.bpel.integration.def.InboundMessageActivity;
 import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.persistence.db.IntegrationSession;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.graph.def.Action;
 import org.jbpm.graph.exe.ExecutionContext;
@@ -30,7 +31,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class OnEvent extends Handler implements InboundMessageActivity {
 
@@ -41,9 +42,10 @@
 
   public void messageReceived(ReceiveAction messageTarget, Token token) {
     ScopeInstance scopeInstance = Scope.getInstance(token);
-    if (!scopeInstance.getState().equals(ActiveState.PRIMARY)) {
+    if (!scopeInstance.getState().equals(
+        ActiveState.PERFORMING_PRIMARY_ACTIVITY)) {
       log.debug("message refused, scope no longer in '"
-          + ActiveState.PRIMARY
+          + ActiveState.PERFORMING_PRIMARY_ACTIVITY
           + "' state: "
           + "token="
           + token
@@ -54,7 +56,7 @@
 
     // create event token and scope instance
     Token eventToken = scopeInstance.createEventToken();
-    scopeInstance.getDefinition().createEventInstance(eventToken);
+    getScope().createEventInstance(eventToken);
 
     // if this handler has a local variable definition, create the instance
     if (variable != null)
@@ -80,9 +82,9 @@
       return (ReceiveAction) action;
 
     // reacquire proxy of the proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    IntegrationSession integrationSession = IntegrationSession.getContextInstance(jbpmContext);
-    ReceiveAction receiveAction = integrationSession.loadReceiveAction(action.getId());
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    ReceiveAction receiveAction = (ReceiveAction) hbSession.load(
+        ReceiveAction.class, new Long(action.getId()));
 
     // update action reference
     action = receiveAction;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Scope.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Scope.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Scope.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/scope/Scope.java	2009-02-06 09:17:24.000000000 +0100
@@ -39,7 +39,6 @@
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.integration.def.CorrelationSetDefinition;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
-import org.jbpm.bpel.persistence.db.BpelGraphSession;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.def.VariableType;
@@ -61,7 +60,7 @@
  * {@linkplain Catch fault handlers}, a {@linkplain Handler compensation handler} and a
  * {@linkplain Handler termination handler}.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:49 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 08:20:25 $
  */
 public class Scope extends CompositeActivity {
 
@@ -121,6 +120,11 @@
     super.eliminatePath(token);
   }
 
+  public void complete(ScopeInstance parent) {
+    // disableTriggers(parent);
+    new ExecutionContext(parent.getToken()).leaveNode();
+  }
+
   public void accept(BpelVisitor visitor) {
     visitor.visit(this);
   }
@@ -388,8 +392,9 @@
           // fault data is a WSDL message, and the handler has an element
           // variable
           MessageType messageType;
-          if (dataType instanceof MessageType)
+          if (dataType instanceof MessageType) {
             messageType = (MessageType) dataType;
+          }
           else {
             // reacquire proxy of the proper type
             Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
@@ -547,9 +552,9 @@
       return (BpelProcessDefinition) processDefinition;
 
     // reacquire proxy of proper type
-    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    BpelGraphSession graphSession = BpelGraphSession.getContextInstance(jbpmContext);
-    BpelProcessDefinition bpelProcessDefinition = graphSession.loadProcessDefinition(processDefinition.getId());
+    Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+    BpelProcessDefinition bpelProcessDefinition = (BpelProcessDefinition) hbSession.load(
+        BpelProcessDefinition.class, new Long(processDefinition.getId()));
 
     // update process definition reference
     processDefinition = bpelProcessDefinition;
@@ -576,8 +581,9 @@
   }
 
   public Scope findNestedScope(String name) {
-    for (Iterator i = findNestedScopes().iterator(); i.hasNext();) {
-      Scope nestedScope = (Scope) i.next();
+    Iterator nestedScopeIt = findNestedScopes().iterator();
+    while (nestedScopeIt.hasNext()) {
+      Scope nestedScope = (Scope) nestedScopeIt.next();
       if (nestedScope.getName().equals(name))
         return nestedScope;
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Flow.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Flow.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Flow.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Flow.java	2009-02-06 09:17:24.000000000 +0100
@@ -35,7 +35,7 @@
  * be used within a <tt>flow</tt> to define explicit control dependencies between nested child
  * activities.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 public class Flow extends StructuredActivity {
 
@@ -56,127 +56,108 @@
 
   public void execute(ExecutionContext exeContext) {
     // initialize links
-    Token parentToken = initializeLinks(exeContext.getToken());
+    Token flowToken = initializeLinks(exeContext.getToken());
 
     // create concurrent tokens
-    Token[] concurrentTokens = createConcurrentTokens(parentToken);
+    Token[] concurrentTokens = createConcurrentTokens(flowToken);
 
     // execute concurrent tokens on activities
     List activities = getNodes();
     for (int i = 0, n = concurrentTokens.length; i < n; i++) {
       Activity activity = (Activity) activities.get(i);
-      getBegin().leave(new ExecutionContext(concurrentTokens[i]),
-          activity.getDefaultArrivingTransition());
-      // stop executing concurrent tokens if parent token is prematurely ended
-      if (parentToken.hasEnded())
+      Token concurrentToken = concurrentTokens[i];
+
+      begin.leave(new ExecutionContext(concurrentToken), activity.getDefaultArrivingTransition());
+
+      // stop if flow token is prematurely ended
+      if (flowToken.hasEnded())
         break;
     }
   }
 
-  public Token initializeLinks(Token parentToken) {
-    // easy way out: no links to initialize
-    if (links.isEmpty())
-      return parentToken;
-
-    // a new token is required to contain link instances
-    Token linksToken = new Token(parentToken, getName());
+  public Token initializeLinks(Token token) {
+    if (!links.isEmpty()) {
+      // a new token is required to contain the link variables
+      token = new Token(token, getName());
 
-    for (Iterator i = links.values().iterator(); i.hasNext();) {
-      LinkDefinition link = (LinkDefinition) i.next();
-      link.createInstance(linksToken);
+      Iterator linkIt = links.values().iterator();
+      while (linkIt.hasNext()) {
+        LinkDefinition link = (LinkDefinition) linkIt.next();
+        link.createInstance(token);
+      }
     }
-    return linksToken;
+    return token;
   }
 
-  public Token[] createConcurrentTokens(Token parentToken) {
+  public Token[] createConcurrentTokens(Token parent) {
     List activities = getNodes();
     int activityCount = activities.size();
-    Token[] concurrentTokens = new Token[activityCount];
+    Token[] tokens = new Token[activityCount];
 
     for (int i = 0; i < activityCount; i++) {
       Activity activity = (Activity) activities.get(i);
-      concurrentTokens[i] = new Token(parentToken, activity.getName());
+      tokens[i] = new Token(parent, activity.getName());
     }
-    return concurrentTokens;
+    return tokens;
   }
 
   public void terminate(ExecutionContext exeContext) {
-    for (Iterator i = exeContext.getToken().getChildren().values().iterator(); i.hasNext();) {
-      Token concurrentToken = (Token) i.next();
-      /*
-       * if concurrent token has ended, it means the concurrent activity has completed, the process
-       * has exited or, in general, some agent has requested execution to cease
-       */
-      if (concurrentToken.hasEnded())
-        continue;
-
-      // terminate nested activities
+    Iterator concurrentTokenIt = exeContext.getToken().getChildren().values().iterator();
+    // terminate the active children
+    while (concurrentTokenIt.hasNext()) {
+      Token concurrentToken = (Token) concurrentTokenIt.next();
+      if (concurrentToken.isAbleToReactivateParent()) {
+        // cancel atomic activities
       Activity activity = (Activity) concurrentToken.getNode();
       activity.terminate(new ExecutionContext(concurrentToken));
-
+      }
       // end concurrent token (do not verify parent termination)
-      // also make concurrent token unable to reactivate parent
       concurrentToken.end(false);
     }
   }
 
   public void leave(ExecutionContext exeContext) {
-    Token concurrentToken = exeContext.getToken();
-    /*
-     * if concurrent token has ended, it means the enclosing scope has terminated, the process has
-     * exited or, in general, some agent has requested execution to cease
-     */
-    if (concurrentToken.hasEnded())
-      return;
+    Token token = exeContext.getToken();
 
-    // end concurrent token (do not verify parent termination)
-    // also make concurrent token unable to reactivate parent
-    concurrentToken.end(false);
+    // mark child token as having reached the meeting point
+    token.setAbleToReactivateParent(false);
 
-    if (mustReactivateParent(concurrentToken, exeContext.getJbpmContext())) {
-      Token parentToken;
-      // if a token was created to contain link instances, end it
+    if (mustReactivateParent(token)) {
+      Token parentToken = token.getParent();
+      // if a token was created for scoping links, end it
       if (!links.isEmpty()) {
-        Token linksToken = concurrentToken.getParent();
-        linksToken.end(false);
-        parentToken = linksToken.getParent();
+        parentToken.end(false);
+        parentToken = parentToken.getParent();
       }
-      else
-        parentToken = concurrentToken.getParent();
-
       getEnd().leave(new ExecutionContext(parentToken));
     }
   }
 
-  public void eliminatePath(Token parentToken) {
+  public void eliminatePath(Token token) {
     /*
-     * create link instances before eliminating path! otherwise path elimination will try to set the
-     * status of links whose instances do not even exist
+     * create link instances before eliminating path! override this method instead of skip() to fix
+     * branch elimination (e.g. <if> and <pick>) as well
      */
-    super.eliminatePath(initializeLinks(parentToken));
+    token = initializeLinks(token);
+    super.eliminatePath(token);
   }
 
-  protected boolean mustReactivateParent(Token concurrentToken, JbpmContext jbpmContext) {
-    BpelGraphSession graphSession = BpelGraphSession.getContextInstance(jbpmContext);
+  protected boolean mustReactivateParent(Token token) {
+    BpelGraphSession bpelGraphSession = BpelGraphSession.getInstance(JbpmContext.getCurrentJbpmContext());
 
-    for (Iterator i = concurrentToken.getParent().getChildren().values().iterator(); i.hasNext();) {
-      Token siblingToken = (Token) i.next();
-      if (siblingToken == concurrentToken)
+    for (Iterator i = token.getParent().getChildren().values().iterator(); i.hasNext();) {
+      Token concurrentToken = (Token) i.next();
+      if (concurrentToken == token)
         continue;
       /*
        * acquire lock on the concurrent token to prevent race conditions between siblings where all
        * of them determine the parent must not be reactivated yet
        */
-      if (graphSession != null)
-        graphSession.lockToken(siblingToken);
+      if (bpelGraphSession != null)
+        bpelGraphSession.lockToken(concurrentToken);
 
-      if (siblingToken.isAbleToReactivateParent()) {
-        log.debug("not leaving "
-            + this
-            + " for "
-            + concurrentToken
-            + ", found active sibling: "
-            + siblingToken);
+      if (concurrentToken.isAbleToReactivateParent()) {
+        log.debug("flow will not reactivate parent yet, found concurrent token: " + concurrentToken);
         return false;
       }
     }
@@ -207,8 +188,8 @@
     return links;
   }
 
-  public LinkDefinition getLink(String name) {
-    return (LinkDefinition) links.get(name);
+  public LinkDefinition getLink(String linkName) {
+    return (LinkDefinition) links.get(linkName);
   }
 
   public void accept(BpelVisitor visitor) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/If.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/If.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/If.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/If.java	2009-02-06 09:17:24.000000000 +0100
@@ -31,7 +31,7 @@
 /**
  * Selects exactly one activity for execution from a set of choices.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:24 $
  */
 public class If extends StructuredActivity {
 
@@ -54,7 +54,7 @@
     // iterate over the conditions to select a branch
     Activity selectedBranch = null;
     for (int i = 0, n = conditions.size(); i < n; i++) {
-      Activity branch = (Activity) getActivities().get(i);
+      Activity branch = (Activity) activities.get(i);
 
       // if no branch has been selected,
       if (selectedBranch == null) {
@@ -86,7 +86,7 @@
     }
     else if (selectedBranch == null) {
       // no else branch, go to end
-      selectedBranch = getEnd();
+      selectedBranch = end;
       log.debug("no branch with condition selected and no else branch present");
     }
     getBegin().leave(exeContext, selectedBranch.getDefaultArrivingTransition());
@@ -96,7 +96,6 @@
   // /////////////////////////////////////////////////////////////////////////////
 
   protected void addActivity(Activity activity) {
-    List activities = getActivities();
     int conditionCount = conditions.size();
     // is there a default activity?
     if (activities.size() > conditionCount) {
@@ -108,7 +107,7 @@
       activities.add(_else);
     }
     else {
-      // do the actual addition
+      // attach the new activity
       super.addActivity(activity);
     }
     /*
@@ -119,14 +118,15 @@
   }
 
   protected void removeActivity(Activity activity) {
-    int activityIndex = getActivities().indexOf(activity);
+    int activityIndex = activities.indexOf(activity);
     // if the activity is conditional, remove the associated condition
-    if (activityIndex < conditions.size())
+    if (activityIndex < conditions.size()) {
       conditions.remove(activityIndex);
-    // do the actual removal
+    }
     super.removeActivity(activity);
   }
 
+  // javadoc description in NodeCollection
   public void reorderNode(int oldIndex, int newIndex) {
     super.reorderNode(oldIndex, newIndex);
     /*
@@ -144,7 +144,7 @@
   // /////////////////////////////////////////////////////////////////////////////
 
   public Expression getCondition(Activity activity) {
-    int index = getActivities().indexOf(activity);
+    int index = activities.indexOf(activity);
     if (index == -1)
       throw new BpelException("cannot get the condition of a non-member activity");
 
@@ -152,7 +152,7 @@
   }
 
   public void setCondition(Activity activity, Expression condition) {
-    int index = getActivities().indexOf(activity);
+    int index = activities.indexOf(activity);
     if (index == -1)
       throw new BpelException("cannot set a condition for a non-member activity");
 
@@ -168,13 +168,11 @@
   }
 
   public Activity getElse() {
-    List activities = getActivities();
     int conditionCount = conditions.size();
     return activities.size() > conditionCount ? (Activity) activities.get(conditionCount) : null;
   }
 
   public void setElse(Activity _else) {
-    List activities = getActivities();
     int index = activities.indexOf(_else);
     if (index == -1)
       throw new BpelException("cannot set a non-member activity as otherwise");
@@ -198,7 +196,7 @@
   }
 
   public List getBranches() {
-    return getActivities().subList(0, conditions.size());
+    return activities.subList(0, conditions.size());
   }
 
   List getConditions() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Pick.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Pick.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Pick.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Pick.java	2009-02-06 09:17:24.000000000 +0100
@@ -36,7 +36,7 @@
  * Blocks for one of several possible messages to arrive or for a time-out to occur. When one of
  * these triggers occurs, the associated child activity is performed.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 public class Pick extends StructuredActivity implements InboundMessageActivity, TimeDrivenActivity {
 
@@ -117,17 +117,14 @@
   }
 
   protected void performActivity(Activity selectedActivity, ExecutionContext exeContext) {
-    List activities = getActivities();
-    Token token = exeContext.getToken();
-
     for (int i = 0, n = activities.size(); i < n; i++) {
       Activity activity = (Activity) activities.get(i);
       if (!selectedActivity.equals(activity))
-        activity.eliminatePath(token);
+        activity.eliminatePath(exeContext.getToken());
     }
 
-    log.debug("selected branch: " + selectedActivity + " for " + token);
-    getBegin().leave(exeContext, selectedActivity.getDefaultArrivingTransition());
+    log.debug("selected branch: " + selectedActivity);
+    begin.leave(exeContext, selectedActivity.getDefaultArrivingTransition());
   }
 
   // children management
@@ -140,7 +137,6 @@
     // if there are alarms, move the activity at the last receptor index
     int alarmCount = onAlarms.size();
     if (alarmCount > 0) {
-      List activities = getActivities();
       int receptorIndex = onMessages.size() - 1;
       activities.remove(receptorIndex + alarmCount);
       activities.add(receptorIndex, activity);
@@ -148,7 +144,7 @@
   }
 
   protected void removeActivity(Activity activity) {
-    int index = getActivities().indexOf(activity);
+    int index = activities.indexOf(activity);
     if (index < onMessages.size())
       onMessages.remove(index);
     else
@@ -165,7 +161,6 @@
   }
 
   public void setOnMessage(Activity activity, ReceiveAction onMessage) {
-    List activities = getActivities();
     int activityIndex = activities.indexOf(activity);
     if (activityIndex == -1) {
       throw new IllegalArgumentException("cannot set message event for non-member activity: "
@@ -181,12 +176,12 @@
       activities.add(onMessages.size(), activity);
       onMessages.add(onMessage);
     }
-    // maintain the bidirectional association
+    // mantain the bidirectional association
     onMessage.setInboundMessageActivity(this);
   }
 
   public Activity getActivity(ReceiveAction onMessage) {
-    return (Activity) getActivities().get(onMessages.indexOf(onMessage));
+    return (Activity) activities.get(onMessages.indexOf(onMessage));
   }
 
   public List getOnAlarms() {
@@ -194,7 +189,6 @@
   }
 
   public void setOnAlarm(Activity activity, AlarmAction onAlarm) {
-    List activities = getActivities();
     int activityIndex = activities.indexOf(activity);
     if (activityIndex == -1) {
       throw new IllegalArgumentException("cannot set alarm event for non-member activity: "
@@ -216,7 +210,7 @@
   }
 
   public Activity getActivity(AlarmAction onAlarm) {
-    return (Activity) getActivities().get(onMessages.size() + onAlarms.indexOf(onAlarm));
+    return (Activity) activities.get(onMessages.size() + onAlarms.indexOf(onAlarm));
   }
 
   // Pick properties
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct: RepeatUntil.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct: RepetitiveActivity.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Sequence.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Sequence.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Sequence.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/Sequence.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,8 +14,6 @@
  */
 package org.jbpm.bpel.graph.struct;
 
-import java.util.List;
-
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelVisitor;
 import org.jbpm.graph.def.Transition;
@@ -23,7 +21,7 @@
 /**
  * Defines a collection of activities to be performed sequentially in lexical order.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 public class Sequence extends StructuredActivity {
 
@@ -45,18 +43,18 @@
   // /////////////////////////////////////////////////////////////////////////////
 
   protected void addImplicitTransitions(Activity activity) {
-    List activities = getActivities();
-    int activityCount = activities.size();
-    End end = getEnd();
-
-    if (activityCount > 0) {
-      Activity lastActivity = (Activity) activities.get(activityCount - 1);
+    if (activities.isEmpty()) {
+      // connect the sequence start to the new one
+      begin.connect(activity);
+    }
+    else {
+      Activity lastActivity = (Activity) activities.get(activities.size() - 1);
+      // disconnect the last activity from the sequence end
       lastActivity.disconnect(end);
+      // connect the last activity to the new one
       lastActivity.connect(activity);
     }
-    else
-      getBegin().connect(activity);
-
+    // connect the new activity with the sequence end
     activity.connect(end);
   }
 
@@ -73,22 +71,20 @@
   }
 
   public void reorderNode(int oldIndex, int newIndex) {
-    // remove activity from its old position and disconnect it from other nodes
-    List activities = getActivities();
-    Activity reorderedActivity = (Activity) activities.remove(oldIndex);
-    removeImplicitTransitions(reorderedActivity);
-
-    // connect activity to its new predecessor and successor
-    Activity predecessor = (newIndex == 0 ? getBegin() : (Activity) activities.get(newIndex - 1));
-    Activity successor = newIndex == activities.size() ? getEnd()
-        : (Activity) activities.get(newIndex);
+    // remove activity from its old position and remove its incoming and outgoing connections
+    Activity reorderedObject = (Activity) activities.remove(oldIndex);
+    removeImplicitTransitions(reorderedObject);
+
+    // add activity to new position and connect to its new predecessors and successors
+    Activity predecessor = (newIndex == 0 ? begin : (Activity) activities.get(newIndex - 1));
+    Activity successor = newIndex == activities.size() ? end : (Activity) activities.get(newIndex);
 
     Transition leaving = predecessor.getDefaultLeavingTransition();
     successor.removeArrivingTransition(leaving);
-    reorderedActivity.addArrivingTransition(leaving);
-    reorderedActivity.connect(successor);
+    reorderedObject.addArrivingTransition(leaving);
+    reorderedObject.connect(successor);
 
-    activities.add(newIndex, reorderedActivity);
+    activities.add(newIndex, reorderedObject);
   }
 
   public void accept(BpelVisitor visitor) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.hbm.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.hbm.xml	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.hbm.xml	2009-02-06 09:17:24.000000000 +0100
@@ -61,26 +61,23 @@
 
     </subclass>
 
-    <subclass name="org.jbpm.bpel.graph.struct.RepetitiveActivity" discriminator-value="null">
+    <subclass name="org.jbpm.bpel.graph.struct.While" discriminator-value="k">
 
-      <many-to-one name="condition" column="CONDITION_" foreign-key="FK_REPETITIVE_CONDITION"
+      <many-to-one name="condition" column="CONDITION_" foreign-key="FK_WHILE_CONDITION"
         cascade="all" />
-      <many-to-one name="loop" column="LOOP_" foreign-key="FK_REPETITIVE_LOOP" cascade="all" />
-
-      <subclass name="org.jbpm.bpel.graph.struct.While" discriminator-value="k" />
-      <subclass name="org.jbpm.bpel.graph.struct.RepeatUntil" discriminator-value="s" />
+      <many-to-one name="loop" column="LOOP_" foreign-key="FK_WHILE_LOOP" cascade="all" />
 
     </subclass>
 
   </subclass>
 
+  <subclass name="org.jbpm.bpel.graph.struct.While$Loop" extends="org.jbpm.bpel.graph.def.Activity"
+    discriminator-value="L" />
+
   <subclass name="org.jbpm.bpel.graph.struct.StructuredActivity$Begin"
     extends="org.jbpm.bpel.graph.def.Activity" discriminator-value="Y" />
 
   <subclass name="org.jbpm.bpel.graph.struct.StructuredActivity$End"
     extends="org.jbpm.bpel.graph.def.Activity" discriminator-value="Z" />
 
-  <subclass name="org.jbpm.bpel.graph.struct.RepetitiveActivity$Loop"
-    extends="org.jbpm.bpel.graph.def.Activity" discriminator-value="L" />
-
 </hibernate-mapping>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/StructuredActivity.java	2009-02-06 09:17:24.000000000 +0100
@@ -25,6 +25,7 @@
 import org.jbpm.bpel.graph.def.LinkDefinition;
 import org.jbpm.bpel.sublang.def.JoinCondition;
 import org.jbpm.graph.def.Node;
+import org.jbpm.graph.def.NodeCollection;
 import org.jbpm.graph.def.Transition;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
@@ -32,13 +33,13 @@
 /**
  * Common base of structured activities.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 11:19:17 $
  */
-public abstract class StructuredActivity extends CompositeActivity {
+public abstract class StructuredActivity extends CompositeActivity implements NodeCollection {
 
-  private List activities = new ArrayList();
-  private Begin begin = new Begin(this);
-  private End end = new End(this);
+  protected List activities = new ArrayList();
+  protected Begin begin = new Begin(this);
+  protected End end = new End(this);
 
   private transient Map nodesMap;
 
@@ -66,6 +67,11 @@
     end.leave(exeContext);
   }
 
+  public void skip(ExecutionContext exeContext) {
+    eliminatePath(exeContext.getToken());
+    end.leave(exeContext, getDefaultLeavingTransition());
+  }
+
   public void eliminatePath(Token token) {
     for (int i = 0, n = activities.size(); i < n; i++) {
       Activity activity = (Activity) activities.get(i);
@@ -88,27 +94,20 @@
   // children management
   // /////////////////////////////////////////////////////////////////////////////
 
-  protected List getActivities() {
-    return activities;
-  }
-
   public Node addNode(Node node) {
-    if (!(node instanceof Activity))
-      throw new IllegalArgumentException("node is not activity: " + node);
-
+    if (!(node instanceof Activity)) {
+      throw new IllegalArgumentException("cannot add non-bpel activity to structure: " + node);
+    }
     addActivity((Activity) node);
     return node;
   }
 
   protected void addActivity(Activity activity) {
-    // activity -> delimiters
     addImplicitTransitions(activity);
 
-    // activity -> parent
     activity.detachFromParent();
     adoptActivity(activity);
 
-    // parent -> activity
     activities.add(activity);
     if (nodesMap != null)
       nodesMap.put(activity.getName(), activity);
@@ -123,13 +122,10 @@
   }
 
   protected void removeActivity(Activity activity) {
-    // activity -> delimiters
     removeImplicitTransitions(activity);
 
-    // activity -> parent
     disadoptActivity(activity);
 
-    // parent -> activity
     activities.remove(activity);
     if (nodesMap != null)
       nodesMap.remove(activity.getName());
@@ -164,18 +160,14 @@
     return nodesMap != null ? nodesMap.containsKey(name) : false;
   }
 
-  /**
-   * Connects the given activity to the delimiters of this structure.
-   */
   protected void addImplicitTransitions(Activity activity) {
+    // connect the activity to structure delimiters
     begin.connect(activity);
     activity.connect(end);
   }
 
-  /**
-   * Disconnects the given activity from the delimiters of this structure.
-   */
   protected void removeImplicitTransitions(Activity activity) {
+    // disconnect activity from structure delimiters
     begin.disconnect(activity);
     activity.disconnect(end);
   }
@@ -274,10 +266,6 @@
     public void skip(ExecutionContext exeContext) {
       getCompositeActivity().skip(exeContext);
     }
-
-    public String toString() {
-      return getCompositeActivity().toString() + "/Begin";
-    }
   }
 
   /**
@@ -297,9 +285,5 @@
     public void execute(ExecutionContext exeContext) {
       getCompositeActivity().leave(exeContext);
     }
-
-    public String toString() {
-      return getCompositeActivity().toString() + "/End";
-    }
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/While.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/While.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/While.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/graph/struct/While.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,21 +14,37 @@
  */
 package org.jbpm.bpel.graph.struct;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.enums.Enum;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+
+import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelVisitor;
+import org.jbpm.bpel.graph.def.CompositeActivity;
+import org.jbpm.bpel.sublang.def.Expression;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
+import org.jbpm.graph.def.Transition;
+import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
 
 /**
- * Defines that an activity is to be repeated as long as the specified
- * {@link #getCondition() condition} is true.
+ * Defines an activity to be repeated as long as the specified {@link #getCondition() condition} is
+ * true.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
-public class While extends RepetitiveActivity {
+public class While extends StructuredActivity {
 
   private static final long serialVersionUID = 1L;
 
+  private Expression condition;
+  private Loop loop = new Loop(this);
+
   public While() {
   }
 
@@ -36,25 +52,184 @@
     super(name);
   }
 
-  protected boolean repeatExecution(Token token) {
-    return DatatypeUtil.toBoolean(getCondition().getEvaluator().evaluate(token)) == true;
+  // children management
+  // /////////////////////////////////////////////////////////////////////////////
+
+  protected void addActivity(Activity activity) {
+    if (!activities.isEmpty())
+      removeActivity((Activity) activities.get(0));
+
+    super.addActivity(activity);
   }
 
   protected void addImplicitTransitions(Activity activity) {
-    getBegin().connect(loop);
-    loop.connect(activity); // transition 0 (activity)
-    loop.connect(getEnd()); // transition 1 (end)
+    if (!getEvaluateFirst())
+      begin.connect(activity);
+
+    loop.connect(activity);
     activity.connect(loop);
   }
 
   protected void removeImplicitTransitions(Activity activity) {
-    getBegin().disconnect(loop);
+    if (!getEvaluateFirst())
+      begin.disconnect(activity);
+
     loop.disconnect(activity);
-    loop.disconnect(getEnd());
     activity.disconnect(loop);
   }
 
+  // while properties
+  // /////////////////////////////////////////////////////////////////////////////
+
+  public void setName(String name) {
+    super.setName(name);
+    loop.setName(name);
+  }
+
+  public boolean getEvaluateFirst() {
+    return begin.isConnected(loop);
+  }
+
+  public void setEvaluateFirst(boolean evaluateFirst) {
+    if (evaluateFirst == getEvaluateFirst())
+      return;
+
+    if (evaluateFirst)
+      begin.connect(loop);
+    else
+      begin.disconnect(loop);
+  }
+
+  public Expression getCondition() {
+    return condition;
+  }
+
+  public void setCondition(Expression condition) {
+    this.condition = condition;
+  }
+
+  public Loop getLoop() {
+    return loop;
+  }
+
   public void accept(BpelVisitor visitor) {
     visitor.visit(this);
   }
+
+  /**
+   * Implements the loop behavior for the while activity
+   */
+  public static class Loop extends Activity {
+
+    private static ThreadLocal entranceLocal = new ThreadLocal() {
+
+      protected Object initialValue() {
+        return new HashMap();
+      }
+    };
+
+    private static final long serialVersionUID = 1L;
+
+    private static class EntranceMark extends Enum {
+
+      static final EntranceMark FIRST_ENTRANCE = new EntranceMark("firstEntrance");
+      static final EntranceMark REENTRANCE = new EntranceMark("reentrance");
+
+      private static final long serialVersionUID = 1L;
+
+      private EntranceMark(String name) {
+        super(name);
+      }
+    }
+
+    private Log log = LogFactory.getLog(While.class);
+
+    Loop() {
+    }
+
+    Loop(While _while) {
+      super("loop");
+      _while.adoptActivity(this);
+
+      _while.getBegin().connect(this);
+      connect(_while.getEnd());
+    }
+
+    public While getWhile() {
+      CompositeActivity composite = getCompositeActivity();
+
+      if (composite == null)
+        return null;
+
+      if (composite instanceof While)
+        return (While) composite;
+
+      // reacquire proxy of the proper type
+      Session hbSession = JbpmContext.getCurrentJbpmContext().getSession();
+      While _while = (While) hbSession.load(While.class, new Long(composite.getId()));
+
+      // update composite activity reference
+      _while.adoptActivity(this);
+
+      return _while;
+    }
+
+    public void execute(ExecutionContext exeContext) {
+      if (getMark() == EntranceMark.FIRST_ENTRANCE) {
+        setMark(EntranceMark.REENTRANCE);
+        log.debug("reentrance detected on "
+            + getCompositeActivity()
+            + " for "
+            + exeContext.getToken());
+        return;
+      }
+
+      While _while = getWhile();
+      Expression condition = _while.getCondition();
+      Token token = exeContext.getToken();
+
+      for (;;) {
+        // evaluate condition
+        log.debug("evaluating " + condition + " for " + token);
+        if (DatatypeUtil.toBoolean(condition.getEvaluator().evaluate(token))) {
+          // mark first entrance
+          setMark(EntranceMark.FIRST_ENTRANCE);
+
+          // leave over loop transition
+          leave(exeContext, (Transition) getLeavingTransitions().get(1));
+
+          // verify entrance mark
+          if (removeMark() == EntranceMark.FIRST_ENTRANCE) {
+            log.debug("wait state reached from " + _while + " for " + token);
+            break;
+          }
+          log.debug("continue " + _while + " for " + token);
+        }
+        else {
+          // leave over end transition
+          leave(exeContext, (Transition) getLeavingTransitions().get(0));
+          log.debug("break " + _while + " for " + token);
+          break;
+        }
+      }
+    }
+
+    private EntranceMark getMark() {
+      return (EntranceMark) getEntranceMarks().get(this);
+    }
+
+    private void setMark(EntranceMark mark) {
+      getEntranceMarks().put(this, mark);
+    }
+
+    private EntranceMark removeMark() {
+      EntranceMark mark = (EntranceMark) getEntranceMarks().remove(this);
+      assert mark != null : "entrance mark not found";
+      return mark;
+    }
+
+    private static Map getEntranceMarks() {
+      return (Map) entranceLocal.get();
+    }
+  }
 }
\ No newline at end of file
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: CatalogEntry.hbm.xml
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: CatalogEntry.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: CentralCatalog.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/CompositeCatalog.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/CompositeCatalog.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/CompositeCatalog.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/CompositeCatalog.java	2009-02-06 09:17:24.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:06:10 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:06:10 $
  */
 public class CompositeCatalog implements ServiceCatalog {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: DecoratorCatalog.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/DefinitionCatalog.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/DefinitionCatalog.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/DefinitionCatalog.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/DefinitionCatalog.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,30 +28,25 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:29 $
+ * @version $Revision: 1800 $ $Date: 2007/09/03 02:02:07 $
  */
 public class DefinitionCatalog implements ServiceCatalog {
 
-  private Map servicesByName = new HashMap();
   private Map servicesByPortType = new HashMap();
+  private Map servicesByName = new HashMap();
 
   public void addService(Service service) {
-    synchronized (servicesByName) {
       servicesByName.put(service.getQName(), service);
-    }
 
     for (Iterator p = service.getPorts().values().iterator(); p.hasNext();) {
       Port port = (Port) p.next();
       QName portTypeName = port.getBinding().getPortType().getQName();
 
-      List services;
-      synchronized (servicesByPortType) {
-        services = (List) servicesByPortType.get(portTypeName);
+      List services = (List) servicesByPortType.get(portTypeName);
         if (services == null) {
           services = new ArrayList();
           servicesByPortType.put(portTypeName, services);
         }
-      }
       services.add(service);
     }
   }
@@ -63,6 +58,11 @@
     }
   }
 
+  public void addDefinitions(Definition[] definitions) {
+    for (int i = 0; i < definitions.length; i++)
+      addDefinition(definitions[i]);
+  }
+
   public List lookupServices(QName portTypeName) {
     List services = (List) servicesByPortType.get(portTypeName);
     return services != null ? services : Collections.EMPTY_LIST;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/ServiceCatalog.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/ServiceCatalog.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/ServiceCatalog.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog/ServiceCatalog.java	2009-02-06 09:17:24.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:06:10 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:06:10 $
  */
 public interface ServiceCatalog {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: UrlCatalog.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/catalog: URLCatalog.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/client: Caller.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/client: SoapCaller.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/client: SoapClient.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlation.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlation.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlation.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlation.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,7 +22,7 @@
  * Indicates a correlation set ocurring in the message being sent or received in
  * an activity.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:42:19 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:42:19 $
  */
 public class Correlation implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/CorrelationSetDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/CorrelationSetDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/CorrelationSetDefinition.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/CorrelationSetDefinition.java	2009-02-06 09:17:25.000000000 +0100
@@ -29,7 +29,7 @@
  * Each correlation set is a named group of properties used to identify an
  * application-level conversation within a process instance.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class CorrelationSetDefinition implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlations.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlations.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlations.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/Correlations.java	2009-02-06 09:17:25.000000000 +0100
@@ -28,7 +28,7 @@
  * Groups the correlations ocurring in the message being sent or received in an
  * activity.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class Correlations implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InboundMessageActivity.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InboundMessageActivity.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InboundMessageActivity.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InboundMessageActivity.java	2009-02-06 09:17:25.000000000 +0100
@@ -21,7 +21,7 @@
  * {@linkplain ReceiveAction reception} notifications from the jBPM BPEL partner
  * integration service.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/02 23:55:04 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:04 $
  */
 public interface InboundMessageActivity {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InvokeAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InvokeAction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InvokeAction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/InvokeAction.java	2009-02-06 09:17:25.000000000 +0100
@@ -28,7 +28,7 @@
 /**
  * @author Juan Cantu
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:36:13 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:36:13 $
  */
 public class InvokeAction extends MessageAction implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/MessageAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/MessageAction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/MessageAction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/MessageAction.java	2009-02-06 09:17:25.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/02/19 18:56:18 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:56:18 $
  */
 public abstract class MessageAction extends Action {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/PartnerLinkDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/PartnerLinkDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/PartnerLinkDefinition.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/PartnerLinkDefinition.java	2009-02-06 09:17:25.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/10 23:58:50 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:58:50 $
  */
 public class PartnerLinkDefinition implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ProcessInstanceStarter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ProcessInstanceStarter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ProcessInstanceStarter.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ProcessInstanceStarter.java	2009-02-06 09:17:25.000000000 +0100
@@ -34,7 +34,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:10 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 class ProcessInstanceStarter extends AbstractBpelVisitor {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReceiveAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReceiveAction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReceiveAction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReceiveAction.java	2009-02-06 09:17:25.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:10 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 public class ReceiveAction extends MessageAction implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReplyAction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReplyAction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReplyAction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/def/ReplyAction.java	2009-02-06 09:17:25.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/02/19 18:56:18 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:56:18 $
  */
 public class ReplyAction extends MessageAction implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/CorrelationSetInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/CorrelationSetInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/CorrelationSetInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/CorrelationSetInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -31,7 +31,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class CorrelationSetInstance {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/PartnerLinkInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/PartnerLinkInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/PartnerLinkInstance.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/exe/PartnerLinkInstance.java	2009-02-06 09:17:24.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/10 23:58:50 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:58:50 $
  */
 public class PartnerLinkInstance {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/IntegrationService.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/IntegrationService.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/IntegrationService.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/IntegrationService.java	2009-02-06 09:17:25.000000000 +0100
@@ -27,7 +27,7 @@
 /**
  * Contract of partner integration.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:06 $
  */
 public interface IntegrationService extends Service {
 
@@ -43,7 +43,5 @@
 
   public void invoke(InvokeAction invokeAction, Token token);
 
-  public void cancelInvocation(InvokeAction invokeAction, Token token);
-
   public EndpointReference getMyReference(PartnerLinkDefinition partnerLink, Token token);
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationConstants.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationConstants.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationConstants.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationConstants.java	2009-02-06 09:17:24.000000000 +0100
@@ -20,18 +20,18 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:07:15 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:29:55 $
  */
 public class IntegrationConstants {
 
   /** JMS property for the partner link identifier, in the request message. */
-  public static final String PARTNER_LINK_ID_PROP = "JbpmPartnerLink";
+  public static final String PARTNER_LINK_ID_PROP = "jbpm_bpel_partnerLinkId";
 
   /** JMS property for the operation name, in the request message. */
-  public static final String OPERATION_NAME_PROP = "JbpmOperation";
+  public static final String OPERATION_NAME_PROP = "jbpm_bpel_operationName";
 
   /** JMS property for the fault qualified name, in the response message. */
-  public static final String FAULT_NAME_PROP = "JbpmFault";
+  public static final String FAULT_NAME_PROP = "jbpm_bpel_faultName";
 
   static final QName DEFAULT_REFERENCE_NAME = new QName(WsaConstants.NS_ADDRESSING,
       WsaConstants.ELEM_ENDPOINT_REFERENCE);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationControl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationControl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationControl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/IntegrationControl.java	2009-02-06 09:17:24.000000000 +0100
@@ -15,31 +15,32 @@
 package org.jbpm.bpel.integration.jms;
 
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.naming.Context;
 import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
+import javax.wsdl.Definition;
 import javax.wsdl.Operation;
 import javax.wsdl.Port;
 import javax.xml.namespace.QName;
 
+import org.apache.commons.collections.LRUMap;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
-import org.jbpm.bpel.deploy.ScopeMatcher;
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor.InitiateMode;
+import org.jbpm.bpel.app.AppDescriptor;
+import org.jbpm.bpel.app.ScopeMatcher;
+import org.jbpm.bpel.app.AppPartnerRole.InitiateMode;
 import org.jbpm.bpel.endpointref.EndpointReference;
 import org.jbpm.bpel.endpointref.EndpointReferenceFactory;
 import org.jbpm.bpel.graph.basic.Receive;
@@ -49,11 +50,8 @@
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.graph.struct.Pick;
 import org.jbpm.bpel.graph.struct.StructuredActivity.Begin;
-import org.jbpm.bpel.integration.catalog.DefinitionCatalog;
 import org.jbpm.bpel.integration.catalog.ServiceCatalog;
-import org.jbpm.bpel.integration.client.Caller;
-import org.jbpm.bpel.integration.client.SoapCaller;
-import org.jbpm.bpel.integration.def.InvokeAction;
+import org.jbpm.bpel.integration.client.SoapClient;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.integration.def.ReceiveAction;
 import org.jbpm.bpel.integration.def.ReplyAction;
@@ -65,31 +63,32 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class IntegrationControl {
 
   private final JmsIntegrationServiceFactory integrationServiceFactory;
 
   private Connection jmsConnection;
-  private DeploymentDescriptor deploymentDescriptor;
+  private AppDescriptor appDescriptor;
 
   private List partnerLinkEntries = Collections.EMPTY_LIST;
 
-  private final List startListeners = new Vector();
+  private List startListeners = Collections.EMPTY_LIST;
   private final Map requestListeners = new Hashtable();
   private final Map outstandingRequests = new Hashtable();
-  private final DefinitionCatalog myCatalog = new DefinitionCatalog();
 
-  private final Map callers = new HashMap();
+  private Definition wsdlDefinition;
+
+  private final Map partnerClients = new LRUMap();
 
   /**
-   * JNDI subcontext that contains JMS objects, relative to the initial context.
+   * Default JNDI subcontext containing JMS objects, relative to the initial context.
    */
-  public static final String JMS_CONTEXT = "java:comp/env/jms";
+  public static final String DEFAULT_JMS_CONTEXT = "java:comp/env/jms";
 
-  /** JNDI name bound to the JMS connection factory, relative to {@link #JMS_CONTEXT}. */
-  public static final String CONNECTION_FACTORY_NAME = "JbpmConnectionFactory";
+  /** JNDI name bound to the JMS connection factory, relative to the JMS context. */
+  public static final String CONNECTION_FACTORY_NAME = "IntegrationConnectionFactory";
 
   private static final Log log = LogFactory.getLog(IntegrationControl.class);
   private static final long serialVersionUID = 1L;
@@ -106,12 +105,12 @@
     return jmsConnection;
   }
 
-  public DeploymentDescriptor getDeploymentDescriptor() {
-    return deploymentDescriptor;
+  public AppDescriptor getAppDescriptor() {
+    return appDescriptor;
   }
 
-  public void setDeploymentDescriptor(DeploymentDescriptor deploymentDescriptor) {
-    this.deploymentDescriptor = deploymentDescriptor;
+  public void setAppDescriptor(AppDescriptor appDescriptor) {
+    this.appDescriptor = appDescriptor;
   }
 
   public PartnerLinkEntry getPartnerLinkEntry(PartnerLinkDefinition partnerLink) {
@@ -196,7 +195,7 @@
     if (outstandingRequests.put(key, request) != null)
       throw new BpelFaultException(BpelConstants.FAULT_CONFLICTING_REQUEST);
 
-    log.debug("added outstanding request: receiveAction="
+    log.debug("added outstanding request: receiver="
         + receiveAction
         + ", token="
         + token
@@ -211,7 +210,7 @@
     if (request == null)
       throw new BpelFaultException(BpelConstants.FAULT_MISSING_REQUEST);
 
-    log.debug("removed outstanding request: replyAction="
+    log.debug("removed outstanding request: replier="
         + replyAction
         + ", token="
         + token
@@ -226,82 +225,85 @@
         messageExchange);
   }
 
-  private static long getOrAssignId(PartnerLinkInstance partnerLinkInstance) {
-    long id = partnerLinkInstance.getId();
-    // in case instance is transient, assign an identifier to it
-    if (id == 0L) {
-      Services.assignId(partnerLinkInstance);
-      id = partnerLinkInstance.getId();
-    }
-    return id;
+  public Map getPartnerClients() {
+    return partnerClients;
   }
 
-  public Map getCallers() {
-    return callers;
+  public SoapClient getPartnerClient(PartnerLinkInstance instance) {
+    Long instanceId = new Long(getOrAssignId(instance));
+    synchronized (partnerClients) {
+      // retrieve cached port consumer
+      SoapClient partnerClient = (SoapClient) partnerClients.get(instanceId);
+      // cache miss?
+      if (partnerClient == null) {
+        // create client from partner endpoint reference
+        partnerClient = createPartnerClient(instance);
+        partnerClients.put(instanceId, partnerClient);
+      }
+      return partnerClient;
   }
-
-  public Caller createCaller(InvokeAction invokeAction, Token token) {
-    PartnerLinkDefinition partnerLinkDefinition = invokeAction.getPartnerLink();
-    PartnerLinkInstance partnerLinkInstance = partnerLinkDefinition.getInstance(token);
-
-    // retrieve partner reference
-    EndpointReference partnerReference = partnerLinkInstance.getPartnerReference();
-    if (partnerReference == null) {
-      // create reference whose sole selection criterion is the port type
-      partnerReference = createPartnerReference(partnerLinkDefinition);
-      partnerLinkInstance.setPartnerReference(partnerReference);
     }
 
-    // select a port from the service catalog with the criteria known at this point
-    Port port = partnerReference.selectPort(getPartnerCatalog());
-    log.debug("selected port " + port.getName() + " on " + invokeAction + " for " + token);
-
+  private SoapClient createPartnerClient(PartnerLinkInstance instance) {
+    EndpointReference partnerRef = instance.getPartnerReference();
+    if (partnerRef == null) {
+      // no partner reference, create one containing only the port type as
+      // selection criterion
+      partnerRef = createPartnerReference(instance.getDefinition());
+      instance.setPartnerReference(partnerRef);
+      log.debug("initialized partner reference: instance=" + instance + ", reference=" + partnerRef);
+    }
+    // select a port from the service catalog with the criteria known at
+    // this point
+    Port port = partnerRef.selectPort(getServiceCatalog());
+    log.debug("selected partner port: instance=" + instance + ", port=" + port.getName());
     // create a client for that port
-    Caller caller = new SoapCaller(port);
-    callers.put(new Caller.Key(invokeAction.getId(), token.getId()), caller);
-    return caller;
+    return new SoapClient(port);
   }
 
-  EndpointReference createPartnerReference(PartnerLinkDefinition partnerLink) {
-    PartnerLinkEntry entry = getPartnerLinkEntry(partnerLink);
+  private static long getOrAssignId(PartnerLinkInstance instance) {
+    long instanceId = instance.getId();
+    // in case instance is transient, assign an identifier to it
+    if (instanceId == 0L) {
+      Services.assignId(instance);
+      instanceId = instance.getId();
+    }
+    return instanceId;
+  }
+
+  EndpointReference createPartnerReference(PartnerLinkDefinition definition) {
+    PartnerLinkEntry entry = getPartnerLinkEntry(definition);
     InitiateMode initiateMode = entry.getInitiateMode();
 
     EndpointReference partnerReference;
-    if (InitiateMode.PULL.equals(initiateMode)) {
+    if (InitiateMode.STATIC.equals(initiateMode)) {
+      partnerReference = entry.getPartnerReference();
+    }
+    else if (InitiateMode.PULL.equals(initiateMode)) {
       EndpointReferenceFactory referenceFactory = EndpointReferenceFactory.getInstance(
           IntegrationConstants.DEFAULT_REFERENCE_NAME, null);
       partnerReference = referenceFactory.createEndpointReference();
     }
-    else if (InitiateMode.STATIC.equals(initiateMode))
-      partnerReference = entry.getPartnerReference();
     else
       throw new BpelFaultException(BpelConstants.FAULT_UNINITIALIZED_PARTNER_ROLE);
 
     return partnerReference;
   }
 
-  public Caller removeCaller(InvokeAction invokeAction, Token token) {
-    return (Caller) callers.remove(new Caller.Key(invokeAction.getId(), token.getId()));
-  }
-
-  public ServiceCatalog getPartnerCatalog() {
-    return getDeploymentDescriptor().getServiceCatalog();
+  public ServiceCatalog getServiceCatalog() {
+    return getAppDescriptor().getServiceCatalog();
   }
 
   public List getStartListeners() {
     return startListeners;
   }
 
-  public void addStartListener(StartListener startListener) {
-    startListeners.add(startListener);
-  }
-
-  public void removeStartListener(StartListener startListener) {
-    startListeners.remove(startListener);
+  public Definition getWsdlDefinition() {
+    return wsdlDefinition;
   }
 
-  public DefinitionCatalog getMyCatalog() {
-    return myCatalog;
+  public void setWsdlDefinition(Definition wsdlDefinition) {
+    this.wsdlDefinition = wsdlDefinition;
   }
 
   /**
@@ -313,7 +315,7 @@
     InitialContext initialContext = new InitialContext();
     try {
       // publish partner link information to JNDI
-      BpelProcessDefinition processDefinition = getDeploymentDescriptor().findProcessDefinition(
+      BpelProcessDefinition processDefinition = getAppDescriptor().findProcessDefinition(
           jbpmContext);
       buildPartnerLinkEntries(initialContext, processDefinition);
 
@@ -324,25 +326,33 @@
         // enable start IMAs
         StartListenersBuilder builder = new StartListenersBuilder(this);
         builder.visit(processDefinition);
+        startListeners = builder.getStartListeners();
 
-        // note: upon creation, start listeners add themselves to this control
         if (startListeners.isEmpty())
           throw new BpelException(processDefinition + " has no start activities");
 
+        for (int i = 0, n = startListeners.size(); i < n; i++) {
+          StartListener startListener = (StartListener) startListeners.get(i);
+          startListener.open();
+        }
+
         // enable outstanding IMAs
-        IntegrationSession integrationSession = IntegrationSession.getContextInstance(jbpmContext);
+        IntegrationSession integrationSession = IntegrationSession.getInstance(jbpmContext);
         JmsIntegrationService integrationService = JmsIntegrationService.get(jbpmContext);
 
         // receive
-        for (Iterator i = integrationSession.findReceiveTokens(processDefinition).iterator(); i.hasNext();) {
-          Token token = (Token) i.next();
+        Iterator receiveTokenIt = integrationSession.findReceiveTokens(processDefinition)
+            .iterator();
+        while (receiveTokenIt.hasNext()) {
+          Token token = (Token) receiveTokenIt.next();
           Receive receive = (Receive) token.getNode();
           integrationService.jmsReceive(receive.getReceiveAction(), token, this, true);
         }
 
         // pick
-        for (Iterator i = integrationSession.findPickTokens(processDefinition).iterator(); i.hasNext();) {
-          Token token = (Token) i.next();
+        Iterator pickTokenIt = integrationSession.findPickTokens(processDefinition).iterator();
+        while (pickTokenIt.hasNext()) {
+          Token token = (Token) pickTokenIt.next();
           // pick points activity token to begin mark
           Begin begin = (Begin) token.getNode();
           Pick pick = (Pick) begin.getCompositeActivity();
@@ -350,13 +360,14 @@
         }
 
         // event
-        for (Iterator t = integrationSession.findEventTokens(processDefinition).iterator(); t.hasNext();) {
-          Token token = (Token) t.next();
+        Iterator eventTokenIt = integrationSession.findEventTokens(processDefinition).iterator();
+        while (eventTokenIt.hasNext()) {
+          Token token = (Token) eventTokenIt.next();
           // scope points events token to itself
           Scope scope = (Scope) token.getNode();
-          List onEvents = scope.getOnEvents();
-          for (int i = 0, n = onEvents.size(); i < n; i++) {
-            OnEvent onEvent = (OnEvent) onEvents.get(i);
+          Iterator onEventsIt = scope.getOnEvents().iterator();
+          while (onEventsIt.hasNext()) {
+            OnEvent onEvent = (OnEvent) onEventsIt.next();
             integrationService.jmsReceive(onEvent.getReceiveAction(), token, this, false);
           }
         }
@@ -380,18 +391,18 @@
    */
   public void disableInboundMessageActivities() throws JMSException {
     // disable start IMAs
-    synchronized (startListeners) {
-      for (int i = 0, n = startListeners.size(); i < n; i++) {
-        StartListener startListener = (StartListener) startListeners.get(i);
+    Iterator startListenerIt = startListeners.iterator();
+    while (startListenerIt.hasNext()) {
+      StartListener startListener = (StartListener) startListenerIt.next();
         startListener.close();
       }
-      startListeners.clear();
-    }
+    startListeners = Collections.EMPTY_LIST;
 
     // disable outstanding IMAs
     synchronized (requestListeners) {
-      for (Iterator i = requestListeners.values().iterator(); i.hasNext();) {
-        RequestListener requestListener = (RequestListener) i.next();
+      Iterator requestListenerIt = requestListeners.values().iterator();
+      while (requestListenerIt.hasNext()) {
+        RequestListener requestListener = (RequestListener) requestListenerIt.next();
         requestListener.close();
       }
       requestListeners.clear();
@@ -405,48 +416,34 @@
       throws NamingException {
     // match scopes with their descriptors
     ScopeMatcher scopeMatcher = new ScopeMatcher(process);
-    scopeMatcher.visit(getDeploymentDescriptor());
+    scopeMatcher.visit(getAppDescriptor());
     Map scopeDescriptors = scopeMatcher.getScopeDescriptors();
     // lookup destinations & bind port entries
     PartnerLinkEntriesBuilder builder = new PartnerLinkEntriesBuilder(scopeDescriptors,
-        getJmsContext(initialContext), integrationServiceFactory.getRequestDestination());
+        getJmsContext(initialContext), integrationServiceFactory.getDefaultDestination());
     builder.visit(process);
     partnerLinkEntries = builder.getPartnerLinkEntries();
   }
 
-  private static Context getJmsContext(InitialContext initialContext) {
-    Context jmsContext;
-    try {
-      jmsContext = (Context) initialContext.lookup(JMS_CONTEXT);
-      log.debug("retrieved jms context: " + JMS_CONTEXT);
-    }
-    catch (NamingException e) {
-      log.debug("jms context not found: " + JMS_CONTEXT);
-      jmsContext = initialContext;
-      log.debug("fell back on initial context");
-    }
-    return jmsContext;
-  }
-
   void openJmsConnection(InitialContext initialContext) throws NamingException, JMSException {
     ConnectionFactory jmsConnectionFactory = getConnectionFactory(initialContext);
     jmsConnection = jmsConnectionFactory.createConnection();
   }
 
   private ConnectionFactory getConnectionFactory(InitialContext initialContext)
-      throws NamingException {
+      throws NamingException, NameNotFoundException {
     Context jmsContext = getJmsContext(initialContext);
     ConnectionFactory jmsConnectionFactory;
     try {
       jmsConnectionFactory = (ConnectionFactory) jmsContext.lookup(CONNECTION_FACTORY_NAME);
       log.debug("retrieved jms connection factory: " + CONNECTION_FACTORY_NAME);
     }
-    catch (NamingException e) {
+    catch (NameNotFoundException e) {
       log.debug("jms connection factory not found: " + CONNECTION_FACTORY_NAME);
-      jmsConnectionFactory = integrationServiceFactory.getConnectionFactory();
+      log.debug("falling back to default from integration service factory");
+      jmsConnectionFactory = integrationServiceFactory.getDefaultConnectionFactory();
       if (jmsConnectionFactory == null)
         throw e;
-      log.debug("fell back on default connection factory");
     }
     return jmsConnectionFactory;
   }
@@ -459,14 +456,26 @@
   }
 
   void reset() {
-    deploymentDescriptor = null;
+    appDescriptor = null;
 
     partnerLinkEntries = Collections.EMPTY_LIST;
 
-    startListeners.clear();
+    startListeners = Collections.EMPTY_LIST;
     requestListeners.clear();
     outstandingRequests.clear();
 
-    callers.clear();
+    partnerClients.clear();
+  }
+
+  static Context getJmsContext(InitialContext initialContext) {
+    Context jmsContext;
+    try {
+      jmsContext = (Context) initialContext.lookup(DEFAULT_JMS_CONTEXT);
+    }
+    catch (NamingException e) {
+      log.debug("could not retrieve jms context, falling back to initial context");
+      jmsContext = initialContext;
+    }
+    return jmsContext;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationServiceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationServiceFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationServiceFactory.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationServiceFactory.java	2009-02-06 09:17:24.000000000 +0100
@@ -36,37 +36,38 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/07/05 09:36:35 $
  */
 public class JmsIntegrationServiceFactory implements ServiceFactory {
 
   // injected objects, see jbpm.cfg.xml
+  private String defaultConnectionFactoryName;
+  private String defaultDestinationName;
+  private String replyDestinationName;
   private JbpmConfiguration jbpmConfiguration;
-  private String connectionFactoryName = "java:comp/env/jms/JbpmConnectionFactory";
-  private String requestDestinationName = "java:comp/env/jms/JbpmRequestQueue";
-  private String responseDestinationName = "java:comp/env/jms/JbpmResponseQueue";
-
-  private ConnectionFactory connectionFactory;
-  private Destination requestDestination;
-  private Destination responseDestination;
+
+  private ConnectionFactory defaultConnectionFactory;
+  private Destination defaultDestination;
+  private Destination replyDestination;
 
   private Map integrationControls = new HashMap();
 
-  private static final long serialVersionUID = 1L;
   private static final Log log = LogFactory.getLog(JmsIntegrationServiceFactory.class);
+  private static final long serialVersionUID = 1L;
 
   public Service openService() {
     return new JmsIntegrationService(this);
   }
 
   public void close() {
-    for (Iterator i = integrationControls.values().iterator(); i.hasNext();) {
-      IntegrationControl integrationControl = (IntegrationControl) i.next();
+    Iterator integrationControlIt = integrationControls.values().iterator();
+    while (integrationControlIt.hasNext()) {
+      IntegrationControl integrationControl = (IntegrationControl) integrationControlIt.next();
       try {
         integrationControl.disableInboundMessageActivities();
       }
       catch (JMSException e) {
-        log.warn("could not disable inbound message activities", e);
+        log.warn("could not close integration control", e);
       }
     }
   }
@@ -75,44 +76,55 @@
     return jbpmConfiguration;
   }
 
-  public ConnectionFactory getConnectionFactory() {
-    if (connectionFactory == null && connectionFactoryName != null) {
+  public IntegrationControl getIntegrationControl(ProcessDefinition processDefinition) {
+    Long processId = new Long(processDefinition.getId());
+    IntegrationControl integrationControl = (IntegrationControl) integrationControls.get(processId);
+    if (integrationControl == null) {
+      log.debug("creating integration control: processDefinition=" + processDefinition);
+      integrationControl = new IntegrationControl(this);
+      integrationControls.put(processId, integrationControl);
+    }
+    return integrationControl;
+  }
+
+  public ConnectionFactory getDefaultConnectionFactory() {
+    if (defaultConnectionFactory == null && defaultConnectionFactoryName != null) {
       try {
-        connectionFactory = (ConnectionFactory) lookup(connectionFactoryName);
+        defaultConnectionFactory = (ConnectionFactory) lookup(defaultConnectionFactoryName);
       }
       catch (NamingException e) {
-        log.warn("could not retrieve connection factory", e);
+        log.debug("could not retrieve default connection", e);
       }
     }
-    return connectionFactory;
+    return defaultConnectionFactory;
   }
 
-  public Destination getRequestDestination() {
-    if (requestDestination == null && requestDestinationName != null) {
+  public Destination getDefaultDestination() {
+    if (defaultDestination == null && defaultDestinationName != null) {
       try {
-        requestDestination = (Destination) lookup(requestDestinationName);
+        defaultDestination = (Destination) lookup(defaultDestinationName);
       }
       catch (NamingException e) {
-        log.warn("could not retrieve request destination", e);
+        log.debug("could not retrieve default destination", e);
       }
     }
-    return requestDestination;
+    return defaultDestination;
   }
 
-  public Destination getResponseDestination() {
-    if (responseDestination == null) {
-      if (responseDestinationName == null) {
+  public Destination getReplyDestination() {
+    if (replyDestination == null) {
+      if (replyDestinationName == null) {
         throw new IllegalStateException(
-            "response destination name not specified in jbpm configuration");
+            "reply destination name not specified in jbpm configuration");
       }
       try {
-        responseDestination = (Destination) lookup(responseDestinationName);
+        replyDestination = (Destination) lookup(replyDestinationName);
       }
       catch (NamingException e) {
-        throw new BpelException("could not retrieve response destination", e);
+        throw new BpelException("could not retrieve reply destination", e);
       }
     }
-    return responseDestination;
+    return replyDestination;
   }
 
   private static Object lookup(String name) throws NamingException {
@@ -125,21 +137,7 @@
     }
   }
 
-  public IntegrationControl getIntegrationControl(ProcessDefinition processDefinition) {
-    Long processId = new Long(processDefinition.getId());
-    synchronized (integrationControls) {
-      IntegrationControl integrationControl = (IntegrationControl) integrationControls.get(processId);
-      if (integrationControl == null) {
-        log.debug("creating integration control: processDefinition=" + processDefinition);
-        integrationControl = new IntegrationControl(this);
-        integrationControls.put(processId, integrationControl);
-      }
-      return integrationControl;
-    }
-  }
-
-  public static JmsIntegrationServiceFactory getConfigurationInstance(
-      JbpmConfiguration jbpmConfiguration) {
+  public static JmsIntegrationServiceFactory getInstance(JbpmConfiguration jbpmConfiguration) {
     return (JmsIntegrationServiceFactory) jbpmConfiguration.getServiceFactory(IntegrationService.SERVICE_NAME);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationService.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationService.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationService.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/JmsIntegrationService.java	2009-02-06 09:17:24.000000000 +0100
@@ -36,12 +36,13 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.exe.BpelFaultException;
 import org.jbpm.bpel.integration.IntegrationService;
-import org.jbpm.bpel.integration.client.Caller;
-import org.jbpm.bpel.integration.client.SoapCaller;
+import org.jbpm.bpel.integration.catalog.DefinitionCatalog;
+import org.jbpm.bpel.integration.client.SoapClient;
 import org.jbpm.bpel.integration.def.InvokeAction;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.integration.def.ReceiveAction;
 import org.jbpm.bpel.integration.def.ReplyAction;
+import org.jbpm.bpel.integration.exe.PartnerLinkInstance;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.exe.MessageValue;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
@@ -49,7 +50,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:36:16 $
  */
 public class JmsIntegrationService implements IntegrationService {
 
@@ -125,9 +126,8 @@
     if (requestListener == null)
       return;
     /*
-     * this service may or may not have created the request listener; in the affirmative case, the
-     * call below prevents the listener from being opened when the service closes; in the negative
-     * case, the call has no effect
+     * this service may not have created the request listener, but removing it in case it did is
+     * necessary to avoid opening it later on when this service closes
      */
     requestListeners.remove(requestListener);
     // release listener resources
@@ -162,75 +162,76 @@
   }
 
   public void invoke(InvokeAction invokeAction, Token token) {
-    // acquire caller for partner
-    IntegrationControl integrationControl = getIntegrationControl(token);
-    Caller caller = integrationControl.createCaller(invokeAction, token);
-    try {
-      // extract input parts
+    // extract the input parts
       Map inputParts = invokeAction.writeMessage(token);
-      log.debug("sending input " + inputParts + " on " + invokeAction + " for " + token);
 
-      // is this a request/response operation?
+    PartnerLinkDefinition partnerLinkDef = invokeAction.getPartnerLink();
+    PartnerLinkInstance partnerLinkInst = partnerLinkDef.getInstance(token);
+
+    // acquire a client for the partner link
+    IntegrationControl integrationControl = getIntegrationControl(token);
+    SoapClient partnerClient = integrationControl.getPartnerClient(partnerLinkInst);
+
       Operation operation = invokeAction.getOperation();
+    String operationName = operation.getName();
+
+    // is this a request/response operation?
       if (operation.getOutput() != null) {
-        try {
           // send input, block for output
-          Map outputParts = caller.call(operation.getName(), inputParts);
-          log.debug("received output " + outputParts + " on " + invokeAction + " for " + token);
-          // assign output parts
-          invokeAction.readMessage(token, outputParts);
+      Map outputParts;
+      try {
+        outputParts = partnerClient.call(operationName, inputParts);
         }
         catch (BpelFaultException e) {
           replaceMessageType(e, token);
           throw e;
         }
+
+      log.debug("invoked: partnerLink="
+          + partnerLinkDef.getName()
+          + ", operation="
+          + operationName
+          + ", output="
+          + outputParts);
+
+      // assign the output data
+      invokeAction.readMessage(token, outputParts);
       }
       else {
         // fire and forget
-        caller.callOneWay(operation.getName(), inputParts);
-      }
-    }
-    finally {
-      integrationControl.removeCaller(invokeAction, token);
-      caller.close();
+      partnerClient.callOneWay(operationName, inputParts);
+      log.debug("invoked: partnerLink=" + partnerLinkDef.getName() + ", operation=" + operationName);
     }
   }
 
   /**
    * Replaces the transient message type in the given fault exception with the persistent object
-   * from the process definition. {@link SoapCaller} produces faults with transient message types.
+   * from the process definition. {@link SoapClient} produces faults with transient message types.
    */
   private static void replaceMessageType(BpelFaultException faultException, Token token) {
     // extract the message value from the exception
     MessageValue faultData = faultException.getFaultInstance().getMessageValue();
 
-    // BPEL-286 a request/response call that throws SOAPException raises fault with no data
-    if (faultData == null)
-      return;
-
-    // retrieve persistent type from import definition
+    // find the related message type
     BpelProcessDefinition processDefinition = (BpelProcessDefinition) token.getProcessInstance()
         .getProcessDefinition();
     MessageType persistentType = processDefinition.getImportDefinition().getMessageType(
         faultData.getType().getName());
 
-    // replace transient type with persistent type
+    // replace with the persistent object
     faultData.setType(persistentType);
   }
 
-  public void cancelInvocation(InvokeAction invokeAction, Token token) {
-    Caller caller = getIntegrationControl(token).removeCaller(invokeAction, token);
-    if (caller != null)
-      caller.close();
-  }
-
   public EndpointReference getMyReference(PartnerLinkDefinition partnerLink, Token token) {
     IntegrationControl integrationControl = getIntegrationControl(token);
     EndpointReference myReference = integrationControl.getPartnerLinkEntry(partnerLink)
         .getMyReference();
     // fill in address, if missing
     if (myReference.getAddress() == null) {
-      Port myPort = myReference.selectPort(integrationControl.getMyCatalog());
+      DefinitionCatalog catalog = new DefinitionCatalog();
+      catalog.addDefinition(integrationControl.getWsdlDefinition());
+
+      Port myPort = myReference.selectPort(catalog);
       SOAPAddress soapAddress = (SOAPAddress) WsdlUtil.getExtension(
           myPort.getExtensibilityElements(), SOAPConstants.Q_ELEM_SOAP_ADDRESS);
       if (soapAddress != null)
@@ -247,7 +248,7 @@
         openRequestListeners();
       }
       catch (JMSException e) {
-        throw new BpelException("could not open request listeners", e);
+        throw new BpelException("could not open subsequent request listeners", e);
       }
     }
     else
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/OutstandingRequest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/OutstandingRequest.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/OutstandingRequest.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/OutstandingRequest.java	2009-02-06 09:17:24.000000000 +0100
@@ -27,13 +27,14 @@
 import javax.jms.Session;
 import javax.xml.namespace.QName;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:06 $
  */
 public class OutstandingRequest {
 
@@ -47,14 +48,6 @@
     this.correlationID = correlationID;
   }
 
-  public Destination getReplyDestination() {
-    return replyDestination;
-  }
-
-  public String getCorrelationID() {
-    return correlationID;
-  }
-
   public void sendReply(Map parts, QName faultName, Session jmsSession) throws JMSException {
     MessageProducer producer = null;
     try {
@@ -111,9 +104,6 @@
     private final String messageExchange;
 
     Key(long partnerLinkId, String operation, String messageExchange) {
-      if (operation == null)
-        throw new IllegalArgumentException("operation cannot be null");
-
       this.partnerLinkId = partnerLinkId;
       this.operationName = operation;
       this.messageExchange = messageExchange;
@@ -131,25 +121,20 @@
       return messageExchange;
     }
 
-    public boolean equals(Object other) {
-      if (this == other)
-        return true;
-      if (!(other instanceof Key))
+    public boolean equals(Object obj) {
+      if (!(obj instanceof Key))
         return false;
-      final Key that = (Key) other;
+
+      Key that = (Key) obj;
       return partnerLinkId == that.partnerLinkId
           && operationName.equals(that.operationName)
-          && messageExchange != null ? messageExchange.equals(that.messageExchange)
-          : that.messageExchange == null;
+          && (messageExchange != null ? messageExchange.equals(that.messageExchange)
+              : that.messageExchange == null);
     }
 
     public int hashCode() {
-      final int prime = 23;
-      int result = 239;
-      result = prime * result + (int) (partnerLinkId ^ (partnerLinkId >>> 32));
-      result = prime * result + operationName.hashCode();
-      result = prime * result + (messageExchange == null ? 0 : messageExchange.hashCode());
-      return result;
+      return new HashCodeBuilder(239, 23).append(partnerLinkId).append(operationName).append(
+          messageExchange).toHashCode();
     }
 
     public String toString() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntriesBuilder.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntriesBuilder.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntriesBuilder.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntriesBuilder.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,11 +28,11 @@
 import org.apache.commons.logging.LogFactory;
 
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.deploy.MyRoleDescriptor;
-import org.jbpm.bpel.deploy.PartnerLinkDescriptor;
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor;
-import org.jbpm.bpel.deploy.ScopeDescriptor;
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor.InitiateMode;
+import org.jbpm.bpel.app.AppMyRole;
+import org.jbpm.bpel.app.AppPartnerLink;
+import org.jbpm.bpel.app.AppPartnerRole;
+import org.jbpm.bpel.app.AppScope;
+import org.jbpm.bpel.app.AppPartnerRole.InitiateMode;
 import org.jbpm.bpel.endpointref.EndpointReference;
 import org.jbpm.bpel.endpointref.EndpointReferenceFactory;
 import org.jbpm.bpel.graph.def.AbstractBpelVisitor;
@@ -41,7 +41,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:30 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:29:55 $
  */
 class PartnerLinkEntriesBuilder extends AbstractBpelVisitor {
 
@@ -66,10 +66,10 @@
   public void visit(Scope scope) {
     Map appPartnerLinks;
     // extract partner link descriptors and the default destination name
-    ScopeDescriptor scopeDescriptor = (ScopeDescriptor) scopeDescriptors.get(scope);
-    if (scopeDescriptor != null) {
+    AppScope appScope = (AppScope) scopeDescriptors.get(scope);
+    if (appScope != null) {
       // take partner link descriptors
-      appPartnerLinks = scopeDescriptor.getPartnerLinks();
+      appPartnerLinks = appScope.getPartnerLinks();
     }
     else {
       // there is no scope descriptor, so there are no partner link descriptors
@@ -78,7 +78,7 @@
     Iterator partnerLinkIt = scope.getPartnerLinks().values().iterator();
     while (partnerLinkIt.hasNext()) {
       PartnerLinkDefinition definition = (PartnerLinkDefinition) partnerLinkIt.next();
-      PartnerLinkDescriptor descriptor = (PartnerLinkDescriptor) appPartnerLinks.get(definition.getName());
+      AppPartnerLink descriptor = (AppPartnerLink) appPartnerLinks.get(definition.getName());
 
       PartnerLinkEntry entry = buildEntry(definition, descriptor);
       partnerLinkEntries.add(entry);
@@ -87,7 +87,7 @@
     scope.getActivity().accept(this);
   }
 
-  protected PartnerLinkEntry buildEntry(PartnerLinkDefinition definition, PartnerLinkDescriptor descriptor) {
+  protected PartnerLinkEntry buildEntry(PartnerLinkDefinition definition, AppPartnerLink descriptor) {
     PartnerLinkEntry entry = new PartnerLinkEntry();
     entry.setId(definition.getId());
 
@@ -104,7 +104,7 @@
 
       // my role descriptor may override the defaults
       if (descriptor != null) {
-        MyRoleDescriptor myRole = descriptor.getMyRole();
+        AppMyRole myRole = descriptor.getMyRole();
         if (myRole != null) {
           // override handle
           if (myRole.getHandle() != null)
@@ -135,7 +135,7 @@
 
       // partner role descriptor may override the defaults
       if (descriptor != null) {
-        PartnerRoleDescriptor partnerRole = descriptor.getPartnerRole();
+        AppPartnerRole partnerRole = descriptor.getPartnerRole();
         if (partnerRole != null) {
           // override initiate mode
           if (partnerRole.getInitiateMode() != null)
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntry.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntry.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntry.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/PartnerLinkEntry.java	2009-02-06 09:17:24.000000000 +0100
@@ -16,12 +16,12 @@
 
 import javax.jms.Destination;
 
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor.InitiateMode;
+import org.jbpm.bpel.app.AppPartnerRole.InitiateMode;
 import org.jbpm.bpel.endpointref.EndpointReference;
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:30 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:29:55 $
  */
 public class PartnerLinkEntry {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/RequestListener.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/RequestListener.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/RequestListener.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/RequestListener.java	2009-02-06 09:17:24.000000000 +0100
@@ -28,6 +28,7 @@
 import javax.jms.Session;
 import javax.xml.namespace.QName;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -44,7 +45,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 10:50:48 $
  */
 public class RequestListener implements MessageListener {
 
@@ -53,7 +54,7 @@
 
   private final IntegrationControl integrationControl;
   private final Session jmsSession;
-  private final MessageConsumer messageConsumer;
+  private final MessageConsumer consumer;
 
   private final boolean oneShot;
 
@@ -74,11 +75,13 @@
 
     this.oneShot = oneShot;
 
-    // create message consumer
-    Destination destination = integrationControl.getPartnerLinkEntry(receiveAction.getPartnerLink())
-        .getDestination();
+    // get the destination associated to the partner link
+    PartnerLinkEntry partnerLinkEntry = integrationControl.getPartnerLinkEntry(receiveAction.getPartnerLink());
+    Destination destination = partnerLinkEntry.getDestination();
+    // format the message selector
     String selector = formatSelector(receiveAction, token);
-    this.messageConsumer = jmsSession.createConsumer(destination, selector);
+    // create message consumer for destination and selector above
+    this.consumer = jmsSession.createConsumer(destination, selector);
 
     integrationControl.addRequestListener(this);
     log.debug("created request listener: receiveAction=" + receiveAction + ", token=" + token);
@@ -122,17 +125,16 @@
     return tokenId;
   }
 
-  public MessageConsumer getMessageConsumer() {
-    return messageConsumer;
-  }
-
   public void open() throws JMSException {
     /*
      * jms could deliver a message immediately after setting this listener, so make sure this
      * listener is fully initialized at this point
      */
-    messageConsumer.setMessageListener(this);
-    log.debug("opened request listener: receiveAction=" + receiveActionId + ", token=" + tokenId);
+    consumer.setMessageListener(this);
+    log.debug("opened request listener: receiveActionId="
+        + receiveActionId
+        + ", tokenId="
+        + tokenId);
   }
 
   public void onMessage(Message message) {
@@ -140,8 +142,8 @@
       log.error("received non-object message: " + message);
       return;
     }
-    try {
       ObjectMessage request = (ObjectMessage) message;
+    try {
       log.debug("delivering request: " + RequestListener.messageToString(request));
       /*
        * LEAK WARNING. This listener must be removed from the integration control before passing
@@ -182,14 +184,22 @@
     }
   }
 
+  private static boolean isRecoverable(RuntimeException exception) {
+    for (Throwable throwable = exception; throwable != null; throwable = throwable.getCause()) {
+      if (throwable instanceof StaleStateException || throwable instanceof LockAcquisitionException)
+        return true;
+    }
+    return false;
+  }
+
   private void deliverRequest(Map parts, Destination replyTo, String requestId) {
     JbpmContext jbpmContext = integrationControl.getIntegrationServiceFactory()
         .getJbpmConfiguration()
         .createJbpmContext();
     try {
       // load receive action via integration session
-      ReceiveAction receiveAction = IntegrationSession.getContextInstance(jbpmContext)
-          .loadReceiveAction(receiveActionId);
+      ReceiveAction receiveAction = IntegrationSession.getInstance(jbpmContext).loadReceiveAction(
+          receiveActionId);
 
       // load the token and have it saved automatically
       Token token = jbpmContext.loadTokenForUpdate(tokenId);
@@ -222,16 +232,19 @@
   }
 
   public void close() throws JMSException {
-    messageConsumer.close();
-    log.debug("closed request listener: receiveAction=" + receiveActionId + ", token=" + tokenId);
+    consumer.close();
+    log.debug("closed request listener: receiveActionId="
+        + receiveActionId
+        + ", tokenId="
+        + tokenId);
   }
 
   public String toString() {
     ToStringBuilder builder = new ToStringBuilder(this);
     try {
-      QueueReceiver queueReceiver = (QueueReceiver) messageConsumer;
+      QueueReceiver queueReceiver = (QueueReceiver) consumer;
       builder.append("queue", queueReceiver.getQueue()).append("selector",
-          messageConsumer.getMessageSelector());
+          consumer.getMessageSelector());
     }
     catch (JMSException e) {
       log.debug("could not fill request listener fields", e);
@@ -260,15 +273,6 @@
     return result.toString();
   }
 
-
-  public static boolean isRecoverable(RuntimeException exception) {
-    for (Throwable throwable = exception; throwable != null; throwable = throwable.getCause()) {
-      if (throwable instanceof StaleStateException || throwable instanceof LockAcquisitionException)
-        return true;
-    }
-    return false;
-  }
-
   public static class Key {
 
     private final long receiveActionId;
@@ -287,21 +291,16 @@
       return tokenId;
     }
 
-    public boolean equals(Object other) {
-      if (this == other)
-        return true;
-      if (!(other instanceof Key))
+    public boolean equals(Object obj) {
+      if (!(obj instanceof Key))
         return false;
-      final Key that = (Key) other;
+
+      Key that = (Key) obj;
       return receiveActionId == that.receiveActionId && tokenId == that.tokenId;
     }
 
     public int hashCode() {
-      final int prime = 5;
-      int result = 863;
-      result = prime * result + (int) (receiveActionId ^ (receiveActionId >>> 32));
-      result = prime * result + (int) (tokenId ^ (tokenId >>> 32));
-      return result;
+      return new HashCodeBuilder(863, 5).append(receiveActionId).append(tokenId).toHashCode();
     }
 
     public String toString() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListener.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListener.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListener.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListener.java	2009-02-06 09:17:24.000000000 +0100
@@ -24,17 +24,17 @@
 import javax.jms.ObjectMessage;
 import javax.jms.QueueReceiver;
 import javax.jms.Session;
-import javax.jms.TopicSubscriber;
 
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.StaleStateException;
+import org.hibernate.exception.LockAcquisitionException;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.exe.BpelFaultException;
 import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.persistence.db.BpelGraphSession;
 import org.jbpm.bpel.persistence.db.IntegrationSession;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.ProcessInstance;
@@ -42,7 +42,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 10:50:48 $
  */
 public class StartListener implements MessageListener {
 
@@ -50,31 +50,27 @@
   private final long receiveActionId;
 
   private final IntegrationControl integrationControl;
-
   private final Session jmsSession;
-  private final MessageConsumer messageConsumer;
+  private final MessageConsumer consumer;
 
   private static final Log log = LogFactory.getLog(StartListener.class);
 
   StartListener(BpelProcessDefinition processDefinition, ReceiveAction receiveAction,
-      IntegrationControl integrationControl) throws JMSException {
-    // initialize entity identifiers
-    processDefinitionId = processDefinition.getId();
-    receiveActionId = receiveAction.getId();
+      IntegrationControl integrationControl, Session jmsSession) throws JMSException {
+    this.processDefinitionId = processDefinition.getId();
+    this.receiveActionId = receiveAction.getId();
 
-    // save integration control
     this.integrationControl = integrationControl;
+    this.jmsSession = jmsSession;
 
-    jmsSession = integrationControl.getJmsConnection().createSession(false,
-        Session.CLIENT_ACKNOWLEDGE);
-
-    // create message consumer
+    // get the destination associated to the partner link
     Destination destination = integrationControl.getPartnerLinkEntry(receiveAction.getPartnerLink())
         .getDestination();
+    // format the message selector
     String selector = formatSelector(receiveAction);
-    messageConsumer = jmsSession.createConsumer(destination, selector);
+    // create message consumer for destination and selector above
+    consumer = jmsSession.createConsumer(destination, selector);
 
-    integrationControl.addStartListener(this);
     log.debug("created start listener: processDefinition="
         + processDefinition
         + ", receiveAction="
@@ -92,88 +88,38 @@
         + '\'';
   }
 
-  StartListener(StartListener other) throws JMSException {
-    this.processDefinitionId = other.processDefinitionId;
-    this.receiveActionId = other.receiveActionId;
-
-    this.integrationControl = other.integrationControl;
-
-    jmsSession = integrationControl.getJmsConnection().createSession(false,
-        Session.CLIENT_ACKNOWLEDGE);
-    messageConsumer = jmsSession.createConsumer(getDestination(other.messageConsumer),
-        other.messageConsumer.getMessageSelector());
-
-    integrationControl.addStartListener(this);
-    log.debug("created start listener: processDefinition="
-        + processDefinitionId
-        + ", receiveAction="
-        + receiveActionId);
-  }
-
-  private static Destination getDestination(MessageConsumer messageConsumer) throws JMSException {
-    if (messageConsumer instanceof QueueReceiver) {
-      QueueReceiver queueReceiver = (QueueReceiver) messageConsumer;
-      return queueReceiver.getQueue();
-    }
-    if (messageConsumer instanceof TopicSubscriber) {
-      TopicSubscriber topicSubscriber = (TopicSubscriber) messageConsumer;
-      return topicSubscriber.getTopic();
-    }
-    throw new JMSException("unknown message consumer type: " + messageConsumer.getClass());
-  }
-
-  public long getReceiveActionId() {
-    return receiveActionId;
-  }
-
-  public MessageConsumer getMessageConsumer() {
-    return messageConsumer;
-  }
-
   public void open() throws JMSException {
     /*
-     * jms may deliver a message immediately after setting the message listener; make sure this
+     * jms could deliver a message immediately after setting this listener, so make sure this
      * listener is fully initialized at this point
      */
-    messageConsumer.setMessageListener(this);
-    log.debug("opened start listener: processDefinition="
+    consumer.setMessageListener(this);
+    log.debug("opened start listener: process="
         + processDefinitionId
-        + ", receiveAction="
+        + ", receiver="
         + receiveActionId);
   }
 
+  public long getReceiveActionId() {
+    return receiveActionId;
+  }
+
   public void onMessage(Message message) {
     if (!(message instanceof ObjectMessage)) {
       log.error("received non-object jms message: " + message);
       return;
     }
-
-    try {
       ObjectMessage request = (ObjectMessage) message;
+    try {
       log.debug("delivering request: " + RequestListener.messageToString(request));
-
-      /*
-       * CODE ORDER NOTE. Removing this listener early in the process prevents any other thread from
-       * closing it. This effect is desirable because the orderly shutdown mechanism of JMS never
-       * stops a running listener anyway. Furthermore, the mechanism is specified to *block* the
-       * other thread until this listener returns.
-       */
-      integrationControl.removeStartListener(this);
-
-      // BPEL-282 create new start listener to improve concurrency
-      StartListener startListener = new StartListener(this);
-      startListener.open();
-
       deliverRequest((Map) request.getObject(), request.getJMSReplyTo(), request.getJMSMessageID());
       request.acknowledge();
-
-      close();
     }
     catch (JMSException e) {
       log.error("request delivery failed due to jms exception, giving up", e);
     }
     catch (RuntimeException e) {
-      if (RequestListener.isRecoverable(e)) {
+      if (isRecoverable(e)) {
         log.warn("request delivery failed due to recoverable exception, attempting recovery");
         try {
           // recover the session manually
@@ -188,17 +134,25 @@
     }
   }
 
+  private static boolean isRecoverable(RuntimeException exception) {
+    for (Throwable throwable = exception; throwable != null; throwable = throwable.getCause()) {
+      if (throwable instanceof StaleStateException || throwable instanceof LockAcquisitionException)
+        return true;
+    }
+    return false;
+  }
+
   private void deliverRequest(Map parts, Destination replyTo, String requestId) {
     JbpmContext jbpmContext = integrationControl.getIntegrationServiceFactory()
         .getJbpmConfiguration()
         .createJbpmContext();
     try {
       // load process definition
-      BpelGraphSession graphSession = BpelGraphSession.getContextInstance(jbpmContext);
-      BpelProcessDefinition processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
-      // load receive action
-      ReceiveAction receiveAction = IntegrationSession.getContextInstance(jbpmContext)
-          .loadReceiveAction(receiveActionId);
+      BpelProcessDefinition processDefinition = (BpelProcessDefinition) jbpmContext.getSession()
+          .load(BpelProcessDefinition.class, new Long(processDefinitionId));
+      // load the message receiver
+      ReceiveAction receiveAction = IntegrationSession.getInstance(jbpmContext).loadReceiveAction(
+          receiveActionId);
 
       // instantiate the process
       ProcessInstance processInstance = new ProcessInstance(processDefinition);
@@ -238,20 +192,18 @@
   }
 
   public void close() throws JMSException {
-    messageConsumer.close();
-    jmsSession.close();
-    log.debug("closed start listener: processDefinition="
+    consumer.close();
+    log.debug("closed start listener: process="
         + processDefinitionId
-        + ", receiveAction="
+        + ", receiver="
         + receiveActionId);
   }
 
   public String toString() {
     ToStringBuilder builder = new ToStringBuilder(this);
     try {
-      QueueReceiver queueReceiver = (QueueReceiver) messageConsumer;
-      builder.append("queue", queueReceiver.getQueue()).append("selector",
-          queueReceiver.getMessageSelector());
+      builder.append("queue", ((QueueReceiver) consumer).getQueue()).append("selector",
+          consumer.getMessageSelector());
     }
     catch (JMSException e) {
       log.debug("could not fill request listener fields", e);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListenersBuilder.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListenersBuilder.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListenersBuilder.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/jms/StartListenersBuilder.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,9 +14,12 @@
  */
 package org.jbpm.bpel.integration.jms;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 import javax.jms.JMSException;
+import javax.jms.Session;
 
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.def.AbstractBpelVisitor;
@@ -28,20 +31,27 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:18 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 class StartListenersBuilder extends AbstractBpelVisitor {
 
   private final IntegrationControl integrationControl;
+  private final Session jmsSession;
 
+  private List startListeners = new ArrayList();
   private JMSException jmsException;
 
   StartListenersBuilder(IntegrationControl integrationControl) throws JMSException {
     this.integrationControl = integrationControl;
+    jmsSession = integrationControl.getJmsConnection().createSession(false,
+        Session.CLIENT_ACKNOWLEDGE);
   }
 
-  public JMSException getJmsException() {
-    return jmsException;
+  public List getStartListeners() throws JMSException {
+    if (jmsException != null)
+      throw jmsException;
+
+    return startListeners;
   }
 
   public void visit(Receive receive) {
@@ -49,9 +59,9 @@
       return;
 
     try {
-      StartListener startListener = new StartListener(receive.getBpelProcessDefinition(),
-          receive.getReceiveAction(), integrationControl);
-      startListener.open();
+      StartListener listener = new StartListener(receive.getBpelProcessDefinition(),
+          receive.getReceiveAction(), integrationControl, jmsSession);
+      startListeners.add(listener);
     }
     catch (JMSException e) {
       jmsException = e;
@@ -67,9 +77,9 @@
 
       for (Iterator i = pick.getOnMessages().iterator(); i.hasNext();) {
         ReceiveAction receiveAction = (ReceiveAction) i.next();
-        StartListener startListener = new StartListener(processDefinition, receiveAction,
-            integrationControl);
-        startListener.open();
+        StartListener listener = new StartListener(processDefinition, receiveAction,
+            integrationControl, jmsSession);
+        startListeners.add(listener);
       }
     }
     catch (JMSException e) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadata.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadata.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadata.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadata.java	2009-02-06 09:17:24.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/04/11 06:37:35 $
+ * @version $Revision: 1800 $ $Date: 2007/04/11 06:37:35 $
  */
 public class EndpointMetadata {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadataLookup.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadataLookup.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadataLookup.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/EndpointMetadataLookup.java	2009-02-06 09:17:24.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/04/11 06:37:35 $
+ * @version $Revision: 1800 $ $Date: 2007/04/11 06:37:35 $
  */
 public interface EndpointMetadataLookup {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/endpoint.metadata.lookups.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/endpoint.metadata.lookups.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/endpoint.metadata.lookups.xml	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/endpoint.metadata.lookups.xml	2009-02-06 09:17:24.000000000 +0100
@@ -1,8 +1,8 @@
 <endpointMetadataLookups>
-  <endpointMetadataLookup messageContextClass="org.jboss.axis.MessageContext"
-    lookupClass="org.jbpm.bpel.integration.server.JBoss403EndpointMetadataLookup" />
   <endpointMetadataLookup messageContextClass="org.jboss.ws.soap.SOAPMessageContextImpl"
-    lookupClass="org.jbpm.bpel.integration.server.JBoss405EndpointMetadataLookup" />
+    lookupClass="org.jbpm.bpel.integration.server.JBossWS10EndpointMetadataLookup" />
   <endpointMetadataLookup messageContextClass="org.jboss.ws.core.jaxrpc.handler.SOAPMessageContextJAXRPC"
-    lookupClass="org.jbpm.bpel.integration.server.JBoss420EndpointMetadataLookup" />
+    lookupClass="org.jbpm.bpel.integration.server.JBossWS12EndpointMetadataLookup" />
+  <endpointMetadataLookup messageContextClass="org.jboss.axis.MessageContext"
+    lookupClass="org.jbpm.bpel.integration.server.JBossWS4EEEndpointMetadataLookup" />
 </endpointMetadataLookups>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/IntegrationConfigurator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/IntegrationConfigurator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/IntegrationConfigurator.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/IntegrationConfigurator.java	2009-02-06 09:17:24.000000000 +0100
@@ -26,14 +26,14 @@
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.integration.jms.IntegrationControl;
 import org.jbpm.bpel.integration.jms.JmsIntegrationServiceFactory;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:51 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:29:54 $
  */
 public class IntegrationConfigurator implements ServletContextListener {
 
@@ -45,27 +45,34 @@
   public void contextInitialized(ServletContextEvent event) {
     ServletContext servletContext = event.getServletContext();
 
-    String configResource = servletContext.getInitParameter(JBPM_CONFIG_RESOURCE_PARAM);
-    JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance(configResource);
+    String configurationName = servletContext.getInitParameter(JBPM_CONFIG_RESOURCE_PARAM);
+    JbpmConfiguration jbpmConfiguration;
+    if (configurationName != null)
+      jbpmConfiguration = JbpmConfiguration.getInstance(configurationName);
+    else
+      jbpmConfiguration = JbpmConfiguration.getInstance();
 
     JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     try {
       // read the app descriptor from a classpath resource
-      DeploymentDescriptor deploymentDescriptor = DeploymentDescriptor.readDeploymentDescriptor(jbpmContext);
-      // obtain the integration control for the process definition referenced in the descriptor
-      BpelProcessDefinition processDefinition = deploymentDescriptor.findProcessDefinition(jbpmContext);
-      JmsIntegrationServiceFactory integrationServiceFactory = JmsIntegrationServiceFactory.getConfigurationInstance(jbpmConfiguration);
+      AppDescriptor appDescriptor = AppDescriptor.readAppDescriptor(jbpmContext);
+      /*
+       * obtain the integration control associated with the process definition referenced in the
+       * descriptor
+       */
+      BpelProcessDefinition processDefinition = appDescriptor.findProcessDefinition(jbpmContext);
+      JmsIntegrationServiceFactory integrationServiceFactory = JmsIntegrationServiceFactory.getInstance(jbpmConfiguration);
       IntegrationControl integrationControl = integrationServiceFactory.getIntegrationControl(processDefinition);
 
       // make app descriptor available to message activities
-      integrationControl.setDeploymentDescriptor(deploymentDescriptor);
+      integrationControl.setAppDescriptor(appDescriptor);
       // start receiving requests
       integrationControl.enableInboundMessageActivities(jbpmContext);
 
       // make integration control available to jax-rpc handlers
       servletContext.setAttribute(SoapHandler.INTEGRATION_CONTROL_ATTR, integrationControl);
 
-      log.info("message reception enabled for process: " + deploymentDescriptor.getName());
+      log.info("Message reception enabled for process: " + appDescriptor.getName());
     }
     catch (RuntimeException e) {
       jbpmContext.setRollbackOnly();
@@ -87,12 +94,12 @@
   public void contextDestroyed(ServletContextEvent event) {
     IntegrationControl integrationControl = (IntegrationControl) event.getServletContext()
         .getAttribute(SoapHandler.INTEGRATION_CONTROL_ATTR);
-    // ensure integration control is bound to servlet context, as initialization may have failed
+    // context initialization might have failed to retrieve the integration control
     if (integrationControl != null) {
       try {
         integrationControl.disableInboundMessageActivities();
-        log.info("message reception disabled for process: "
-            + integrationControl.getDeploymentDescriptor().getName());
+        log.info("Message reception disabled for process: "
+            + integrationControl.getAppDescriptor().getName());
       }
       catch (JMSException e) {
         log.error("could not stop bpel application", e);
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server: IntegrationConsoleServlet.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/SoapHandler.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/SoapHandler.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/server/SoapHandler.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/server/SoapHandler.java	2009-02-06 09:17:24.000000000 +0100
@@ -68,7 +68,7 @@
 import org.jbpm.bpel.integration.soap.SoapBindConstants;
 import org.jbpm.bpel.integration.soap.SoapFormatter;
 import org.jbpm.bpel.integration.soap.SoapUtil;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
@@ -78,12 +78,16 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:06:55 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:29:54 $
  */
 public class SoapHandler implements Handler {
 
   private QName[] headers;
 
+  private long responseTimeout;
+  private long oneWayTimeout;
+
+  private JbpmConfiguration jbpmConfiguration;
   private IntegrationControl integrationControl;
 
   private QName portTypeName;
@@ -91,20 +95,30 @@
   private String portName;
   private SoapFormatter formatter;
 
+  private static Map endpointMetadataLookups;
+
   private static final Log log = LogFactory.getLog(SoapHandler.class);
-  private static final Map endpointMetadataLookups = readEndpointMetadataLookups();
+
+  /** Name of the partner link associated with the endpoint. */
+  public static final String PARTNER_LINK_HANDLE_PARAM = "partnerLinkHandle";
+  /** Time to wait for response messages, in milliseconds. */
+  public static final String RESPONSE_TIMEOUT_PARAM = "responseTimeout";
+  /** Time to expire one-way messages, in milliseconds. */
+  public static final String ONE_WAY_TIMEOUT_PARAM = "oneWayTimeout";
+  /** Location of the jBPM configuration resource. */
+  public static final String JBPM_CONFIGURATION_PARAM = "jbpmConfiguration";
 
   /** Message context property for the operation name */
-  static final String OPERATION_NAME_PROP = "org.jbpm.operation.name";
+  static final String OPERATION_NAME_PROP = "jbpm.bpel.operation.name";
   /** Message context property for the message parts */
-  static final String MESSAGE_PARTS_PROP = "org.jbpm.message.parts";
+  static final String MESSAGE_PARTS_PROP = "jbpm.bpel.message.parts";
   /** Message context property for the fault name */
-  static final String FAULT_NAME_PROP = "org.jbpm.fault.name";
+  static final String FAULT_NAME_PROP = "jbpm.bpel.fault.name";
   /** Message context property for the SOAP fault exception */
-  static final String FAULT_EXCEPTION_PROP = "org.jbpm.fault.exception";
+  static final String FAULT_EXCEPTION_PROP = "jbpm.bpel.fault.exception";
 
   /** Servlet context attribute for the integration control instance */
-  public static final String INTEGRATION_CONTROL_ATTR = "org.jbpm.integration.control";
+  static final String INTEGRATION_CONTROL_ATTR = "jbpm.bpel.integration.control";
 
   public static final String RESOURCE_ENDPOINT_METADATA_LOOKUPS = "resource.endpoint.metadata.lookups";
 
@@ -119,21 +133,55 @@
    */
   SoapHandler(IntegrationControl integrationControl, QName serviceName, Port port) {
     this.integrationControl = integrationControl;
+    jbpmConfiguration = integrationControl.getIntegrationServiceFactory().getJbpmConfiguration();
+
+    Binding binding = port.getBinding();
+
     this.serviceName = serviceName;
     portName = port.getName();
-    Binding binding = port.getBinding();
     portTypeName = binding.getPortType().getQName();
+
     formatter = new SoapFormatter(binding);
   }
 
   public void init(HandlerInfo handlerInfo) throws JAXRPCException {
     // save headers
     headers = handlerInfo.getHeaders();
+    // get the configuration
+    Map handlerConfig = handlerInfo.getHandlerConfig();
+    // response timeout parameter
+    String receiveTimeoutText = (String) handlerConfig.get(RESPONSE_TIMEOUT_PARAM);
+    if (receiveTimeoutText != null) {
+      try {
+        responseTimeout = Long.parseLong(receiveTimeoutText);
+      }
+      catch (NumberFormatException e) {
+        throw new JAXRPCException("Parameter '"
+            + RESPONSE_TIMEOUT_PARAM
+            + "' does not contain a parsable long", e);
+      }
+    }
+    // one-way timeout parameter
+    String oneWayTimeoutText = (String) handlerConfig.get(ONE_WAY_TIMEOUT_PARAM);
+    if (oneWayTimeoutText != null) {
+      try {
+        oneWayTimeout = Long.parseLong(oneWayTimeoutText);
+      }
+      catch (NumberFormatException e) {
+        throw new JAXRPCException("Parameter '"
+            + ONE_WAY_TIMEOUT_PARAM
+            + "' does not contain a parsable long", e);
+      }
+    }
+    // jbpm configuration parameter
+    String configurationName = (String) handlerConfig.get(JBPM_CONFIGURATION_PARAM);
+    if (configurationName != null)
+      jbpmConfiguration = JbpmConfiguration.getInstance(configurationName);
+    else
+      jbpmConfiguration = JbpmConfiguration.getInstance();
   }
 
   public void destroy() {
-    // release port-component specific state
-    integrationControl = null;
   }
 
   public QName[] getHeaders() {
@@ -142,23 +190,10 @@
 
   public boolean handleRequest(MessageContext messageContext) throws JAXRPCException,
       SOAPFaultException {
-    /*
-     * WSEE 1.1 section 6.2.2.1: If Handler instances are pooled, they must be pooled by Port
-     * component. This is because Handlers may retain non-client specific state across method calls
-     * that are specific to the Port component.
-     */
-    if (integrationControl == null) {
-      /*
-       * COMPLIANCE NOTE: the state initialized in this call is port-component specific, but
-       * non-client specific
-       */
-      lookupEndpointMetadata(messageContext);
-    }
-
-    JbpmContext jbpmContext = integrationControl.getIntegrationServiceFactory()
-        .getJbpmConfiguration()
-        .createJbpmContext();
+    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     try {
+      lookupEndpointMetadata(jbpmContext, messageContext);
+
       Session jmsSession = integrationControl.getJmsConnection().createSession(false,
           Session.CLIENT_ACKNOWLEDGE);
       try {
@@ -168,17 +203,18 @@
         Destination replyTo = jmsRequest.getJMSReplyTo();
         if (replyTo != null) {
           ObjectMessage jmsResponse = receiveResponse(jmsSession, replyTo,
-              jmsRequest.getJMSMessageID(), jbpmContext);
+              jmsRequest.getJMSMessageID());
 
-          // remember operation name and message parts for handling response
+          // store operation name and output parts for handling response
           messageContext.setProperty(OPERATION_NAME_PROP,
               jmsRequest.getStringProperty(IntegrationConstants.OPERATION_NAME_PROP));
           messageContext.setProperty(MESSAGE_PARTS_PROP, jmsResponse.getObject());
-
-          // is response a fault?
+          /*
+           * when the outcome is a fault, the response jms message contains the fault name in its
+           * properties
+           */
           String faultName = jmsResponse.getStringProperty(IntegrationConstants.FAULT_NAME_PROP);
           if (faultName != null) {
-            // remember fault name for handling fault
             messageContext.setProperty(FAULT_NAME_PROP, faultName);
             throw new SOAPFaultException(SoapBindConstants.CLIENT_FAULTCODE,
                 SoapBindConstants.BUSINESS_FAULTSTRING, null, null);
@@ -216,44 +252,59 @@
     return true;
   }
 
-  private void lookupEndpointMetadata(MessageContext messageContext) {
+  private void lookupEndpointMetadata(JbpmContext jbpmContext, MessageContext messageContext) {
     // obtain metadata lookup strategy for the given message context class
-    EndpointMetadataLookup endpointMetadataLookup = getEndpointMetadataLookup(messageContext.getClass());
+    EndpointMetadataLookup endpointMetadataLookup = getEndpointMetadataLookup(jbpmContext,
+        messageContext.getClass());
     // lookup metadata in message context
     EndpointMetadata endpointMetadata = endpointMetadataLookup.lookupMetaData(messageContext);
 
-    Definition definition = endpointMetadata.getWsdlDefinition();
+    Definition wsdlDefinition = endpointMetadata.getWsdlDefinition();
     serviceName = endpointMetadata.getServiceName();
     portName = endpointMetadata.getPortName();
 
-    Binding binding = definition.getService(serviceName).getPort(portName).getBinding();
+    Binding binding = wsdlDefinition.getService(serviceName).getPort(portName).getBinding();
     portTypeName = binding.getPortType().getQName();
     formatter = new SoapFormatter(binding, endpointMetadata.getFaultFormat());
 
     ServletContext servletContext = endpointMetadata.getServletContext();
     integrationControl = (IntegrationControl) servletContext.getAttribute(INTEGRATION_CONTROL_ATTR);
-    integrationControl.getMyCatalog().addDefinition(definition);
+    integrationControl.setWsdlDefinition(wsdlDefinition);
+  }
+
+  private static EndpointMetadataLookup getEndpointMetadataLookup(JbpmContext jbpmContext,
+      Class messageContextClass) {
+    /*
+     * obtain group of known message context implementations and their associated endpoint metadata
+     * lookups from jbpm configuration
+     */
+    synchronized (SoapHandler.class) {
+      if (endpointMetadataLookups == null)
+        endpointMetadataLookups = readEndpointMetadataLookups(jbpmContext);
   }
 
-  private static EndpointMetadataLookup getEndpointMetadataLookup(Class messageContextClass) {
     String contextClassName = messageContextClass.getName();
     EndpointMetadataLookup endpointMetadataLookup = (EndpointMetadataLookup) endpointMetadataLookups.get(contextClassName);
+
     if (endpointMetadataLookup == null) {
       throw new BpelException("no endpoint metadata lookup for message context: "
           + contextClassName);
     }
+
+    log.debug("using custom endpoint metadata lookup '"
+        + endpointMetadataLookup.getClass().getName()
+        + "' for message context: "
+        + contextClassName);
+
     return endpointMetadataLookup;
   }
 
-  /**
-   * Obtain the mapping of known message context implementations to their corresponding endpoint
-   * metadata lookups from the configuration.
-   */
-  private static Map readEndpointMetadataLookups() {
+  private static Map readEndpointMetadataLookups(JbpmContext jbpmContext) {
     // get activity readers resource name
-    String resource = JbpmConfiguration.Configs.getString(RESOURCE_ENDPOINT_METADATA_LOOKUPS);
+    String resource = (String) jbpmContext.getObjectFactory().createObject(
+        RESOURCE_ENDPOINT_METADATA_LOOKUPS);
 
-    // parse lookups document
+    // parse activity readers document
     Element lookupsElem;
     try {
       lookupsElem = XmlUtil.parseResource(resource);
@@ -267,16 +318,18 @@
       return Collections.EMPTY_MAP;
     }
 
-    // walk through endpointMetadataLookup elements
+    // walk through activityReader elements
     HashMap lookups = new HashMap();
-    for (Iterator i = XmlUtil.getElements(lookupsElem, null, "endpointMetadataLookup"); i.hasNext();) {
-      Element lookupElem = (Element) i.next();
+    Iterator lookupElemIt = XmlUtil.getElements(lookupsElem, null, "endpointMetadataLookup");
+    while (lookupElemIt.hasNext()) {
+      Element lookupElem = (Element) lookupElemIt.next();
       String contextClassName = lookupElem.getAttribute("messageContextClass");
 
       // load lookup class
       String lookupClassName = lookupElem.getAttribute("lookupClass");
       try {
         Class lookupClass = ClassLoaderUtil.getClassLoader().loadClass(lookupClassName);
+
         // validate lookup class
         if (!EndpointMetadataLookup.class.isAssignableFrom(lookupClass)) {
           log.warn("not an endpoint metadata lookup: " + lookupClassName);
@@ -293,7 +346,7 @@
             + lookupClassName);
       }
       catch (ClassNotFoundException e) {
-        log.debug("endpoint metadata lookup not found, skipping: " + lookupClassName);
+        log.debug("endpoint metadata lookup not found, skipping: " + lookupClassName, e);
       }
       catch (InstantiationException e) {
         log.warn("endpoint metadata lookup class not instantiable: " + lookupClassName, e);
@@ -316,11 +369,9 @@
     String operationName = (String) messageContext.getProperty(OPERATION_NAME_PROP);
     SOAPMessage soapMessage = ((SOAPMessageContext) messageContext).getMessage();
 
-    JbpmContext jbpmContext = integrationControl.getIntegrationServiceFactory()
-        .getJbpmConfiguration()
-        .createJbpmContext();
+    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     try {
-      lookupEndpointMetadata(messageContext);
+      lookupEndpointMetadata(jbpmContext, messageContext);
 
       SOAPEnvelope envelope = soapMessage.getSOAPPart().getEnvelope();
       // remove existing body, it might have undesirable content
@@ -330,10 +381,10 @@
       body = envelope.addBody();
 
       if (faultException == null)
-        writeOutput(operationName, soapMessage, parts);
+        writeResponse(operationName, soapMessage, parts);
       else {
         String faultName = (String) messageContext.getProperty(FAULT_NAME_PROP);
-        writeFault(operationName, soapMessage, faultName, parts, faultException);
+        writeFault(operationName, soapMessage, faultException, faultName, parts);
       }
     }
     /*
@@ -353,6 +404,14 @@
     return true;
   }
 
+  public long getResponseTimeout() {
+    return responseTimeout;
+  }
+
+  public long getOneWayTimeout() {
+    return oneWayTimeout;
+  }
+
   protected ObjectMessage sendRequest(SOAPMessage soapMessage, Session jmsSession,
       JbpmContext jbpmContext) throws SOAPException, JMSException {
     // create a jms message to deliver the incoming content
@@ -380,8 +439,8 @@
     jmsRequest.setObject(requestParts);
 
     // fill message properties
-    BpelProcessDefinition process = integrationControl.getDeploymentDescriptor()
-        .findProcessDefinition(jbpmContext);
+    BpelProcessDefinition process = integrationControl.getAppDescriptor().findProcessDefinition(
+        jbpmContext);
     MessageType requestType = process.getImportDefinition().getMessageType(
         operation.getInput().getMessage().getQName());
     fillCorrelationProperties(requestParts, jmsRequest, requestType.getPropertyAliases());
@@ -392,19 +451,15 @@
       // is the exchange pattern request/response?
       if (operation.getOutput() != null) {
         Destination replyTo = integrationControl.getIntegrationServiceFactory()
-            .getResponseDestination();
+            .getReplyDestination();
         jmsRequest.setJMSReplyTo(replyTo);
 
         // have jms discard request message if response timeout expires
-        Number responseTimeout = getResponseTimeout(jbpmContext);
-        if (responseTimeout != null)
-          producer.setTimeToLive(responseTimeout.longValue());
+        producer.setTimeToLive(responseTimeout);
       }
       else {
         // have jms discard message if one-way timeout expires
-        Number oneWayTimeout = getOneWayTimeout(jbpmContext);
-        if (oneWayTimeout != null)
-          producer.setTimeToLive(oneWayTimeout.longValue());
+        producer.setTimeToLive(oneWayTimeout);
       }
 
       // send request message
@@ -419,25 +474,6 @@
     }
   }
 
-  private static Number getResponseTimeout(JbpmContext jbpmContext) {
-    Object responseTimeout = jbpmContext.getObjectFactory().createObject(
-        "jbpm.bpel.response.timeout");
-    if (responseTimeout instanceof Number)
-      return (Number) responseTimeout;
-    else if (responseTimeout != null)
-      log.warn("response timeout is not a number: " + responseTimeout);
-    return null;
-  }
-
-  private static Number getOneWayTimeout(JbpmContext jbpmContext) {
-    Object oneWayTimeout = jbpmContext.getObjectFactory().createObject("jbpm.bpel.oneway.timeout");
-    if (oneWayTimeout instanceof Number)
-      return (Number) oneWayTimeout;
-    else if (oneWayTimeout != null)
-      log.warn("one-way timeout is not a number: " + oneWayTimeout);
-    return null;
-  }
-
   private Operation determineOperation(SOAPMessage soapMessage) throws SOAPException {
     Binding binding = formatter.getBinding();
 
@@ -485,8 +521,9 @@
     if (propertyAliases == null)
       return;
     // iterate through the property aliases associated with the message type
-    for (Iterator i = propertyAliases.entrySet().iterator(); i.hasNext();) {
-      Entry aliasEntry = (Entry) i.next();
+    Iterator aliasEntryIt = propertyAliases.entrySet().iterator();
+    while (aliasEntryIt.hasNext()) {
+      Entry aliasEntry = (Entry) aliasEntryIt.next();
       QName propertyName = (QName) aliasEntry.getKey();
       PropertyAlias alias = (PropertyAlias) aliasEntry.getValue();
       // get part accessor from operation wrapper
@@ -500,13 +537,16 @@
         continue;
       }
       // evaluate the query against the part value, if any
-      PropertyQuery query = alias.getQuery();
+      Query query = alias.getQuery();
       if (query != null) {
         try {
           value = query.getEvaluator().evaluate((Element) value);
         }
         catch (BpelFaultException e) {
-          // the most likely cause is a selection failure due to missing nodes
+          /*
+           * the most likely cause of this exception is a selection failure due to missing xml
+           * information items
+           */
           log.debug("query evaluation failed, "
               + "cannot get property value: property="
               + propertyName
@@ -523,17 +563,15 @@
     }
   }
 
-  protected ObjectMessage receiveResponse(Session jmsSession, Destination replyTo,
-      String requestId, JbpmContext jbpmContext) throws JMSException, SOAPFaultException {
+  protected ObjectMessage receiveResponse(Session jmsSession, Destination replyTo, String requestId)
+      throws JMSException, SOAPFaultException {
     // set up consumer
     String selector = "JMSCorrelationID='" + requestId + '\'';
     MessageConsumer consumer = jmsSession.createConsumer(replyTo, selector);
     try {
       // receive response message
       log.debug("listening for response: destination=" + replyTo + ", requestId=" + requestId);
-      Number responseTimeout = getResponseTimeout(jbpmContext);
-      ObjectMessage jmsResponse = (ObjectMessage) (responseTimeout != null ? consumer.receive(responseTimeout.longValue())
-          : consumer.receive());
+      ObjectMessage jmsResponse = (ObjectMessage) consumer.receive(responseTimeout);
       // did a message arrive in time?
       if (jmsResponse == null) {
         log.debug("response timeout expired: destination=" + replyTo + ", requestId" + requestId);
@@ -550,14 +588,14 @@
     }
   }
 
-  protected void writeOutput(String operationName, SOAPMessage soapMessage, Map responseParts)
+  protected void writeResponse(String operationName, SOAPMessage soapMessage, Map responseParts)
       throws SOAPException {
     formatter.writeMessage(operationName, soapMessage, responseParts, MessageDirection.OUTPUT);
   }
 
-  protected void writeFault(String operationName, SOAPMessage soapMessage, String faultName,
-      Map faultParts, SOAPFaultException faultException) throws SOAPException {
-    formatter.writeFault(operationName, soapMessage, faultName, faultParts,
-        faultException.getFaultCode(), faultException.getFaultString());
+  protected void writeFault(String operationName, SOAPMessage soapMessage,
+      SOAPFaultException faultException, String faultName, Map faultParts) throws SOAPException {
+    formatter.writeFault(operationName, soapMessage, faultException.getFaultCode(),
+        faultException.getFaultString(), faultName, faultParts);
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/FaultFormat.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/FaultFormat.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/FaultFormat.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/FaultFormat.java	2009-02-06 09:17:24.000000000 +0100
@@ -25,14 +25,14 @@
 import javax.xml.soap.SOAPEnvelope;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFault;
-import javax.xml.soap.SOAPMessage;
 
 import org.apache.commons.lang.enums.Enum;
 import org.w3c.dom.Element;
 
+
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/06/18 23:49:19 $
  */
 public abstract class FaultFormat extends Enum {
 
@@ -44,15 +44,11 @@
 
   abstract void setCode(SOAPElement faultElem, QName code) throws SOAPException;
 
-  abstract void setReason(SOAPElement faultElem, String reason) throws SOAPException;
-
-  abstract void addDetail(SOAPElement faultElem, Map parts) throws SOAPException;
-
-  abstract boolean hasFault(SOAPMessage message) throws SOAPException;
+  abstract void setReason(SOAPElement faultElem, String reason)
+      throws SOAPException;
 
-  abstract SOAPElement getFault(SOAPBody body);
-
-  abstract SOAPElement getDetail(SOAPElement faultElem);
+  abstract void addDetail(SOAPElement faultElem, Map parts)
+      throws SOAPException;
 
   public static final FaultFormat DEFAULT = new FaultFormat("default") {
 
@@ -64,9 +60,10 @@
 
     void setCode(SOAPElement faultElem, QName code) throws SOAPException {
       SOAPFault fault = (SOAPFault) faultElem;
-      SOAPEnvelope envelope = (SOAPEnvelope) faultElem.getParentElement().getParentElement();
-      fault.setFaultCode(envelope.createName(code.getLocalPart(), code.getPrefix(),
-          code.getNamespaceURI()));
+      SOAPEnvelope envelope = (SOAPEnvelope) faultElem.getParentElement()
+          .getParentElement();
+      fault.setFaultCode(envelope.createName(code.getLocalPart(),
+          code.getPrefix(), code.getNamespaceURI()));
     }
 
     void setReason(SOAPElement faultElem, String reason) throws SOAPException {
@@ -75,28 +72,16 @@
     }
 
     void addDetail(SOAPElement faultElem, Map parts) throws SOAPException {
-      SOAPFault fault = (SOAPFault) faultElem;
-      Detail detail = fault.addDetail();
+      SOAPFault f = (SOAPFault) faultElem;
+      Detail detail = f.addDetail();
 
-      // walk through message parts
-      for (Iterator i = parts.values().iterator(); i.hasNext();) {
-        Element part = (Element) i.next();
+      // iterate through the fault message parts
+      Iterator partIt = parts.values().iterator();
+      while (partIt.hasNext()) {
+        Element part = (Element) partIt.next();
         SoapUtil.copyChildElement(detail, part);
       }
     }
-
-    boolean hasFault(SOAPMessage message) throws SOAPException {
-      return message.getSOAPBody().hasFault();
-    }
-
-    SOAPElement getFault(SOAPBody body) {
-      return body.getFault();
-    }
-
-    SOAPElement getDetail(SOAPElement faultElem) {
-      SOAPFault fault = (SOAPFault) faultElem;
-      return fault.getDetail();
-    }
   };
 
   public static final FaultFormat RAW = new FaultFormat("raw") {
@@ -105,11 +90,12 @@
 
     SOAPElement addFault(SOAPBody body) throws SOAPException {
       /*
-       * jboss-ws4ee throws ClassCastException upon calling the remote endpoint if child elements
-       * other than SOAPBodyElements are added to SOAPBody
+       * jboss-ws4ee throws ClassCastException upon calling the remote endpoint
+       * if child elements other than SOAPBodyElements are added to SOAPBody
        */
       SOAPEnvelope envelope = (SOAPEnvelope) body.getParentElement();
-      Name faultName = envelope.createName("Fault", body.getPrefix(), body.getNamespaceURI());
+      Name faultName = envelope.createName("Fault", body.getPrefix(),
+          body.getNamespaceURI());
       return body.addBodyElement(faultName);
     }
 
@@ -126,23 +112,12 @@
     void addDetail(SOAPElement faultElem, Map parts) throws SOAPException {
       SOAPElement detail = SoapUtil.addChildElement(faultElem, "detail");
 
-      // walk through message parts
-      for (Iterator i = parts.values().iterator(); i.hasNext();) {
-        Element part = (Element) i.next();
+      // iterate through the fault message parts
+      Iterator partIt = parts.values().iterator();
+      while (partIt.hasNext()) {
+        Element part = (Element) partIt.next();
         SoapUtil.copyChildElement(detail, part);
       }
     }
-
-    boolean hasFault(SOAPMessage message) throws SOAPException {
-      return getFault(message.getSOAPBody()) != null;
-    }
-
-    SOAPElement getFault(SOAPBody body) {
-      return SoapUtil.getElement(body, body.getNamespaceURI(), "Fault");
-    }
-
-    SOAPElement getDetail(SOAPElement faultElem) {
-      return SoapUtil.getElement(faultElem, "detail");
-    }
   };
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/MessageDirection.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/MessageDirection.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/MessageDirection.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/MessageDirection.java	2009-02-06 09:17:24.000000000 +0100
@@ -32,7 +32,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/06/09 23:36:41 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:41 $
  */
 public abstract class MessageDirection extends Enum {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapBindConstants.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapBindConstants.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapBindConstants.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapBindConstants.java	2009-02-06 09:17:24.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/04/11 06:37:35 $
+ * @version $Revision: 1800 $ $Date: 2007/04/11 06:37:35 $
  */
 public class SoapBindConstants {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapFormatter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapFormatter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapFormatter.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapFormatter.java	2009-02-06 09:17:24.000000000 +0100
@@ -14,8 +14,6 @@
  */
 package org.jbpm.bpel.integration.soap;
 
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -49,7 +47,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:18:22 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:17:18 $
  */
 public class SoapFormatter {
 
@@ -168,30 +166,22 @@
      * BP 1.2 R2717: An rpc-literal binding MUST have the namespace attribute specified, the value
      * of which MUST be an absolute URI, on contained soapbind:body elements
      */
-    String operationNamespace = soapBindBody.getNamespaceURI();
-    if (operationNamespace == null) {
+    String operationNamespaceUri = soapBindBody.getNamespaceURI();
+    if (operationNamespaceUri == null) {
       throw new SOAPException("rpc binding must have the namespace attribute "
           + "specified on contained soapbind:body elements: "
           + binding);
     }
-    try {
-      if (!new URI(operationNamespace).isAbsolute()) {
-        throw new SOAPException("rpc binding must have the namespace attribute specified, "
-            + "the value of which must be an absolute URI"
-            + binding);
-      }
-    }
-    catch (URISyntaxException e) {
-      throw new SOAPException("rpc binding must have the namespace attribute specified, "
-          + "the value of which must be an absolute URI"
-          + binding, e);
-    }
-    // create operation element
+    // create rpc wrapper
     Operation operation = bindOperation.getOperation();
+    /*
+     * jboss-ws4ee throws ClassCastException upon calling the remote endpoint if child elements
+     * other than SOAPBodyElements are added to SOAPBody
+     */
     SOAPEnvelope envelope = (SOAPEnvelope) body.getParentElement();
-    Name operationQName = envelope.createName(direction.getRpcWrapperLocalName(operation),
-        "operationNS", operationNamespace);
-    SOAPElement operationElem = body.addBodyElement(operationQName);
+    Name rpcWrapperName = envelope.createName(direction.getRpcWrapperLocalName(operation),
+        "operationNS", operationNamespaceUri);
+    SOAPElement rpcWrapper = body.addBodyElement(rpcWrapperName);
 
     List partNames = direction.getRpcBodyPartNames(soapBindBody, operation);
     List wsdlParts = getWsdlParts(partNames, direction.getMessageDefinition(operation));
@@ -210,7 +200,7 @@
       }
       // copy part to accessor inside operation wrapper
       Element part = (Element) parts.get(wsdlPart.getName());
-      SoapUtil.copyChildElement(operationElem, part);
+      SoapUtil.copyChildElement(rpcWrapper, part);
     }
   }
 
@@ -486,6 +476,7 @@
 
     if (wsdlParts.size() == 1) {
       Part wsdlPart = (Part) wsdlParts.get(0);
+
       /*
        * BP 1.2 R2204: A document-literal binding MUST refer, in each of its soapbind:body
        * element(s), only to wsdl:part element(s) that have been defined using the element
@@ -498,9 +489,11 @@
             + "using attribute 'element': "
             + binding);
       }
+
       // create part
       Element part = XmlUtil.createElement(elementName);
       parts.put(wsdlPart.getName(), part);
+
       /*
        * BP 1.2 R2712: A document-literal binding MUST be serialized as an ENVELOPE with a soap:Body
        * whose child element is an instance of the global element declaration referenced by the
@@ -535,8 +528,8 @@
     }
   }
 
-  public void writeFault(String operation, SOAPMessage message, String fault, Map parts,
-      QName code, String reason) throws SOAPException {
+  public void writeFault(String operation, SOAPMessage message, QName code, String reason,
+      String fault, Map parts) throws SOAPException {
     SOAPElement faultElem = faultFormat.addFault(message.getSOAPBody());
     faultFormat.setCode(faultElem, code);
     faultFormat.setReason(faultElem, reason);
@@ -589,18 +582,20 @@
           + "'namespace' specified on contained soapbind:fault elements: "
           + binding);
     }
+
+    Fault wsdlFault = bindOperation.getOperation().getFault(fault);
     /*
      * WSDL 1.1 section 3.6: The fault message MUST have a single part
      */
-    Fault wsdlFault = bindOperation.getOperation().getFault(fault);
     Map wsdlParts = wsdlFault.getMessage().getParts();
     if (wsdlParts.size() != 1)
       throw new SOAPException("fault messages must have a single part: " + binding);
+
+    Part wsdlPart = (Part) wsdlParts.values().iterator().next();
     /*
      * BP 1.2 R2205: A wsdl:binding MUST refer, in each of its soapbind:fault elements, only to
      * wsdl:part element(s) that have been defined using the element attribute
      */
-    Part wsdlPart = (Part) wsdlParts.values().iterator().next();
     QName elementName = wsdlPart.getElementName();
     if (elementName == null) {
       throw new SOAPException("binding must refer, in each of its "
@@ -609,8 +604,8 @@
           + binding);
     }
     /*
-     * WSDL 1.1 section 3.6: The soapbind:fault element specifies the contents of the SOAP Fault
-     * detail element
+     * WSDL 1.1 section 3.6: The soap:fault element specifies the contents of the SOAP Fault detail
+     * element
      */
     Element part = (Element) parts.get(wsdlPart.getName());
     if (!XmlUtil.nodeNameEquals(part, elementName)) {
@@ -622,26 +617,28 @@
   }
 
   public Fault readFault(String operation, SOAPMessage message, Map parts) throws SOAPException {
-    SOAPElement faultElem = faultFormat.getFault(message.getSOAPBody());
-    SOAPElement detail = faultFormat.getDetail(faultElem);
+    SOAPElement bodyElem = message.getSOAPBody();
+    SOAPElement faultElem = SoapUtil.getElement(bodyElem, bodyElem.getNamespaceURI(), "Fault");
+    SOAPElement detail = SoapUtil.getElement(faultElem, "detail");
     if (detail == null)
       throw new SOAPException("soap fault does not include a detail element");
 
     BindingOperation bindOperation = binding.getBindingOperation(operation, null, null);
     // look for a wsdl fault which matches detail content
-    for (Iterator i = bindOperation.getOperation().getFaults().values().iterator(); i.hasNext();) {
-      Fault wsdlFault = (Fault) i.next();
+    Iterator wsdlFaultIt = bindOperation.getOperation().getFaults().values().iterator();
+    while (wsdlFaultIt.hasNext()) {
+      Fault wsdlFault = (Fault) wsdlFaultIt.next();
 
       // obtain definition of part which appears inside detail
       Map wsdlParts = wsdlFault.getMessage().getParts();
       if (wsdlParts.size() != 1)
         throw new SOAPException("multiple parts not supported in fault");
 
+      Part wsdlPart = (Part) wsdlParts.values().iterator().next();
       /*
        * BP 1.2 R2205: A wsdl:binding MUST refer, in each of its soapbind:fault elements, only to
        * wsdl:part element(s) that have been defined using the element attribute
        */
-      Part wsdlPart = (Part) wsdlParts.values().iterator().next();
       QName elementName = wsdlPart.getElementName();
       if (elementName == null) {
         throw new SOAPException("binding must refer, in each of its "
@@ -698,10 +695,6 @@
 
       return wsdlFault;
     }
-    throw new SOAPException("no wsdl fault matches the detail element content");
-  }
-
-  public boolean hasFault(SOAPMessage message) throws SOAPException {
-    return faultFormat.hasFault(message);
+    throw new SOAPException("no wsdl fault matches the detail element content: " + detail);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapUtil.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapUtil.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/integration/soap/SoapUtil.java	2009-02-06 09:17:24.000000000 +0100
@@ -38,7 +38,7 @@
 /**
  * Utility methods for dealing with SAAJ objects.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 19:28:29 $
  */
 public class SoapUtil {
 
@@ -128,8 +128,8 @@
     String prefix = SoapUtil.getPrefix(namespaceURI, elem);
     if (prefix == null) {
       String givenPrefix = value.getPrefix();
-      prefix = XmlUtil.generatePrefix(givenPrefix.length() > 0 ? givenPrefix
-          : QUALIFIED_VALUE_PREFIX, elem);
+      prefix = XmlUtil.generatePrefix(elem, givenPrefix.length() > 0 ? givenPrefix
+          : QUALIFIED_VALUE_PREFIX);
       elem.addNamespaceDeclaration(prefix, namespaceURI);
     }
     return prefix + ':' + localName;
@@ -326,7 +326,7 @@
       }
       // non-empty default namespace declaration
       else if (namespaceURI.length() > 0) {
-        prefix = XmlUtil.generatePrefix(DEFAULT_NAMESPACE_PREFIX, source);
+        prefix = XmlUtil.generatePrefix(source, DEFAULT_NAMESPACE_PREFIX);
         target.addNamespaceDeclaration(prefix, namespaceURI);
         if (traceEnabled)
           log.trace("reassigned default namespace declaration: " + prefix + "->" + namespaceURI);
@@ -414,11 +414,11 @@
 
         // no prefix for that namespace?
         if (prefix == null) {
-          prefix = XmlUtil.generatePrefix(DEFAULT_NAMESPACE_PREFIX, source);
+          prefix = XmlUtil.generatePrefix(source, DEFAULT_NAMESPACE_PREFIX);
         }
         // BPEL-195 source maps prefix to another URI?
         else if (!namespaceURI.equals(source.getAttributeNS(BpelConstants.NS_XMLNS, prefix))) {
-          prefix = XmlUtil.generatePrefix(prefix, source);
+          prefix = XmlUtil.generatePrefix(source, prefix);
         }
 
         targetName = envelope.createName(localName, prefix, namespaceURI);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/BpelArchiveParser.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/BpelArchiveParser.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/BpelArchiveParser.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/BpelArchiveParser.java	2009-02-06 09:17:24.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/05/03 12:25:52 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:52 $
  */
 public class BpelArchiveParser implements ProcessArchiveParser {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/bpel.parsers.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/bpel.parsers.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/bpel.parsers.xml	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/bpel.parsers.xml	2009-02-06 09:17:24.000000000 +0100
@@ -1,5 +1,5 @@
 <parsers>
-  <parser class="org.jbpm.bpel.par.DescriptorArchiveParser" />
+  <parser class="org.jbpm.bpel.par.DefDescriptorArchiveParser" />
   <parser class="org.jbpm.bpel.par.BpelArchiveParser" />
   <parser class="org.jbpm.jpdl.par.FileArchiveParser" />
 </parsers>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par: DefDescriptorArchiveParser.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par: DefDescriptor.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par: DefinitionDescriptor.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par: DescriptorArchiveParser.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/GenericArchiveParser.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/GenericArchiveParser.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/par/GenericArchiveParser.java	2009-02-06 09:12:35.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/par/GenericArchiveParser.java	2009-02-06 09:17:24.000000000 +0100
@@ -38,7 +38,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/03 11:11:10 $
+ * @version $Revision: 1800 $ $Date: 2007/03/03 11:11:10 $
  */
 public class GenericArchiveParser implements ProcessArchiveParser {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/BpelGraphSession.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/BpelGraphSession.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/BpelGraphSession.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/BpelGraphSession.java	2009-02-06 09:17:25.000000000 +0100
@@ -14,10 +14,6 @@
  */
 package org.jbpm.bpel.persistence.db;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 import org.hibernate.Criteria;
 import org.hibernate.LockMode;
 import org.hibernate.Session;
@@ -26,44 +22,27 @@
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.graph.struct.RepetitiveActivity;
 import org.jbpm.graph.exe.Token;
+import org.jbpm.persistence.PersistenceService;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:53 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:46:36 $
  */
 public class BpelGraphSession {
 
-  private final Session session;
+  private Session session;
 
   public BpelGraphSession(Session session) {
     this.session = session;
   }
 
-  public BpelProcessDefinition loadProcessDefinition(long id) {
-    return (BpelProcessDefinition) session.load(BpelProcessDefinition.class, new Long(id));
-  }
-
-  public Activity loadActivity(long id) {
-    return (Activity) session.load(Activity.class, new Long(id));
-  }
-
-  public Scope loadScope(long id) {
-    return (Scope) session.load(Scope.class, new Long(id));
-  }
-
-  public RepetitiveActivity loadRepetitiveActivity(long id) {
-    return (RepetitiveActivity) session.load(RepetitiveActivity.class, new Long(id));
-  }
-
   public BpelProcessDefinition findProcessDefinition(String name, String targetNamespace,
       int version) {
-    Criteria criteria = session.createCriteria(BpelProcessDefinition.class).add(
-        Restrictions.eq("name", name)).add(Restrictions.eq("version", new Integer(version)));
+    Criteria criteria = session.createCriteria(BpelProcessDefinition.class)
+      .add(Restrictions.eq("name", name))
+      .add(Restrictions.eq("version", new Integer(version)));
 
     if (targetNamespace != null)
       criteria.add(Restrictions.eq("targetNamespace", targetNamespace));
@@ -72,8 +51,10 @@
   }
 
   public BpelProcessDefinition findLatestProcessDefinition(String name, String targetNamespace) {
-    Criteria criteria = session.createCriteria(BpelProcessDefinition.class).add(
-        Restrictions.eq("name", name)).addOrder(Order.desc("version")).setMaxResults(1);
+    Criteria criteria = session.createCriteria(BpelProcessDefinition.class)
+      .add(Restrictions.eq("name", name))
+      .addOrder(Order.desc("version"))
+      .setMaxResults(1);
 
     if (targetNamespace != null)
       criteria.add(Restrictions.eq("targetNamespace", targetNamespace));
@@ -81,22 +62,6 @@
     return (BpelProcessDefinition) criteria.uniqueResult();
   }
 
-  public List findLatestProcessDefinitions() {
-    List processDefinitionTuples = session.getNamedQuery(
-        "BpelGraphSession.findLatestProcessDefinitions").list();
-    ArrayList processDefinitions = new ArrayList();
-    for (Iterator i = processDefinitionTuples.iterator(); i.hasNext();) {
-      Object[] processDefinitionTuple = (Object[]) i.next();
-      String name = (String) processDefinitionTuple[0];
-      String targetNamespace = (String) processDefinitionTuple[1];
-      Integer version = (Integer) processDefinitionTuple[2];
-      BpelProcessDefinition processDefinition = findProcessDefinition(name, targetNamespace,
-          version.intValue());
-      processDefinitions.add(processDefinition);
-    }
-    return processDefinitions;
-  }
-
   public void deployProcessDefinition(BpelProcessDefinition processDefinition) {
     String processName = processDefinition.getName();
     if (processName == null)
@@ -121,8 +86,12 @@
     session.lock(token, LockMode.UPGRADE);
   }
 
-  public static BpelGraphSession getContextInstance(JbpmContext jbpmContext) {
-    Session session = jbpmContext.getSession();
-    return session != null ? new BpelGraphSession(session) : null;
+  public static BpelGraphSession getInstance(JbpmContext jbpmContext) {
+    PersistenceService persistenceService = jbpmContext.getServices().getPersistenceService();
+    if (persistenceService instanceof DbPersistenceService) {
+      DbPersistenceService dbPersistenceService = (DbPersistenceService) persistenceService;
+      return dbPersistenceService.getBpelGraphSession();
+    }
+    return null;
   }
 }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db: DbPersistenceServiceFactory.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db: DbPersistenceService.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/hibernate.queries.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/hibernate.queries.hbm.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/hibernate.queries.hbm.xml	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/hibernate.queries.hbm.xml	2009-02-06 09:17:25.000000000 +0100
@@ -12,15 +12,6 @@
     import classes whose names appear in where clauses here -->
   <import class="org.jbpm.bpel.graph.struct.StructuredActivity$Begin" />
 
-  <query name="BpelGraphSession.findLatestProcessDefinitions">
-    <![CDATA[
-    select pd.name, pd.targetNamespace, max(pd.version)
-    from org.jbpm.bpel.graph.def.BpelProcessDefinition pd
-    where pd.version >= 1
-    group by pd.name, pd.targetNamespace
-    ]]>
-  </query>
-
   <query name="IntegrationSession.findReceiveTokens">
     <![CDATA[
     select token
@@ -74,7 +65,7 @@
       join scope.token token
     where token.processInstance = :processInstance
       and token.node in (:nestedScopes)
-      and scope.state = 'EA'
+       and scope.state = 'completed'
       and token.end is not null
     order by token.end desc
     ]]>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/IntegrationSession.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/IntegrationSession.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/IntegrationSession.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/IntegrationSession.java	2009-02-06 09:17:25.000000000 +0100
@@ -19,30 +19,30 @@
 import java.util.List;
 
 import org.hibernate.Session;
-import org.hibernate.criterion.Restrictions;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.integration.catalog.CatalogEntry;
-import org.jbpm.bpel.integration.def.InvokeAction;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.integration.def.ReceiveAction;
-import org.jbpm.bpel.integration.def.ReplyAction;
 import org.jbpm.bpel.integration.exe.PartnerLinkInstance;
+import org.jbpm.persistence.PersistenceService;
 
 /**
  * Partner integration database operations.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:53 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:46:36 $
  */
 public class IntegrationSession {
 
-  private final Session session;
+  private Session session;
 
   public IntegrationSession(Session session) {
     this.session = session;
   }
 
+  protected IntegrationSession() {
+  }
+
   public PartnerLinkDefinition loadPartnerLinkDefinition(long id) {
     return (PartnerLinkDefinition) session.load(PartnerLinkDefinition.class, new Long(id));
   }
@@ -55,53 +55,34 @@
     return (ReceiveAction) session.load(ReceiveAction.class, new Long(id));
   }
 
-  public ReplyAction loadReplyAction(long id) {
-    return (ReplyAction) session.load(ReplyAction.class, new Long(id));
-  }
-
-  public InvokeAction loadInvokeAction(long id) {
-    return (InvokeAction) session.load(InvokeAction.class, new Long(id));
-  }
-
   public Collection findReceiveTokens(BpelProcessDefinition processDefinition) {
-    return session.getNamedQuery("IntegrationSession.findReceiveTokens").setEntity(
-        "processDefinition", processDefinition).list();
+    return session.getNamedQuery("IntegrationSession.findReceiveTokens")
+        .setEntity("processDefinition", processDefinition)
+        .list();
   }
 
   public Collection findPickTokens(BpelProcessDefinition processDefinition) {
-    List tokens = session.getNamedQuery("IntegrationSession.findPickTokens").setEntity(
-        "processDefinition", processDefinition).list();
+    List tokens = session.getNamedQuery("IntegrationSession.findPickTokens")
+        .setEntity("processDefinition", processDefinition)
+        .list();
     // discard duplicates caused by eager collection fetching
     return new HashSet(tokens);
   }
 
   public Collection findEventTokens(BpelProcessDefinition processDefinition) {
-    List tokens = session.getNamedQuery("IntegrationSession.findEventTokens").setEntity(
-        "processDefinition", processDefinition).list();
+    List tokens = session.getNamedQuery("IntegrationSession.findEventTokens")
+        .setEntity("processDefinition", processDefinition)
+        .list();
     // discard duplicates caused by eager collection fetching
     return new HashSet(tokens);
   }
 
-  public Collection findCatalogEntries() {
-    return session.createCriteria(CatalogEntry.class).list();
+  public static IntegrationSession getInstance(JbpmContext jbpmContext) {
+    PersistenceService persistenceService = jbpmContext.getServices().getPersistenceService();
+    if (persistenceService instanceof DbPersistenceService) {
+      DbPersistenceService dbPersistenceService = (DbPersistenceService) persistenceService;
+      return dbPersistenceService.getIntegrationSession();
   }
-
-  public void saveCatalogEntry(CatalogEntry catalogEntry) {
-    String baseLocation = catalogEntry.getBaseLocation();
-    if (baseLocation != null && !catalogEntry.hasDescriptionBody()) {
-      // look for existing entries having the same base location and no description body
-      List catalogEntries = session.createCriteria(CatalogEntry.class)
-          .add(Restrictions.eq("baseLocation", baseLocation))
-          .add(Restrictions.isNull("descriptionBody"))
-          .list();
-      // avoid duplication
-      if (!catalogEntries.isEmpty())
-        return;
-    }
-    session.save(catalogEntry);
-  }
-
-  public static IntegrationSession getContextInstance(JbpmContext jbpmContext) {
-    return new IntegrationSession(jbpmContext.getSession());
+    return null;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/ScopeSession.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/ScopeSession.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/ScopeSession.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/ScopeSession.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,20 +22,24 @@
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.persistence.PersistenceService;
 
 /**
  * Scope compensation database operations.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:53 $
+ * @version $Revision: 1800 $ $Date: 2007/05/17 08:34:45 $
  */
 public class ScopeSession {
 
-  private final Session session;
+  private Session session;
 
   public ScopeSession(Session session) {
     this.session = session;
   }
 
+  protected ScopeSession() {
+  }
+
   public ScopeInstance nextChildToCompensate(ScopeInstance enclosingInstance) {
     Collection innerScopes = enclosingInstance.getDefinition().findNestedScopes();
     return innerScopes.isEmpty() ? null : findNextScopeToCompensate(enclosingInstance.getToken()
@@ -57,8 +61,11 @@
         .uniqueResult();
   }
 
-  public static ScopeSession getContextInstance(JbpmContext jbpmContext) {
-    Session session = jbpmContext.getSession();
-    return session != null ? new ScopeSession(session) : null;
+  public static ScopeSession getInstance(JbpmContext jbpmContext) {
+    ScopeSession scopeSession = null;
+    PersistenceService persistenceService = jbpmContext.getServices().getPersistenceService();
+    if (persistenceService instanceof DbPersistenceService)
+      scopeSession = ((DbPersistenceService) persistenceService).getScopeSession();
+    return scopeSession;
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/ElementType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/ElementType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/ElementType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/ElementType.java	2009-02-06 09:17:25.000000000 +0100
@@ -43,11 +43,9 @@
 import org.jbpm.bpel.xml.util.XmlUtil;
 
 /**
- * Mapping between a DOM {@linkplain Element element} and a {@linkplain Types#VARBINARY VARBINARY}
- * column.
+ * Maps a DOM {@linkplain Element element} to a {@linkplain Types#VARBINARY VARBINARY} column.
  * @author Juan Cantu
- * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:46:43 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:23:01 $
  */
 public class ElementType implements UserType {
 
@@ -97,8 +95,8 @@
       return null;
 
     // introduce inflater, if requested
-    Number deflateLevel = getXmlDeflateLevel();
-    if (deflateLevel != null)
+    int deflateLevel = getDeflateLevel();
+    if (deflateLevel != Deflater.NO_COMPRESSION)
       xmlStream = new InflaterInputStream(xmlStream);
 
     try {
@@ -134,31 +132,16 @@
 
         // allocate memory result stream
         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
+        OutputStream xmlStream = byteStream;
 
-        // deflate if requested
-        Number deflateLevel = getXmlDeflateLevel();
-        if (deflateLevel != null) {
-          // introduce deflater stream
-          Deflater deflater = new Deflater(deflateLevel.intValue());
-          OutputStream deflaterStream = new DeflaterOutputStream(byteStream, deflater);
-          // write element to stream
-          idTransformer.transform(new DOMSource(element), new StreamResult(deflaterStream));
-          // release resources
-          try {
-            deflaterStream.close();
-          }
-          catch (IOException e) {
-            // should not happen
-            throw new AssertionError(e);
-          }
-          deflater.end();
-        }
-        else {
-          // write element to stream
-          idTransformer.transform(new DOMSource(element), new StreamResult(byteStream));
-          // noop
-          // byteStream.close();
-        }
+        // introduce deflater stream, if requested
+        int deflateLevel = getDeflateLevel();
+        if (deflateLevel != Deflater.NO_COMPRESSION)
+          xmlStream = new DeflaterOutputStream(byteStream);
+
+        // write DOM subtree to stream
+        idTransformer.transform(new DOMSource(element), new StreamResult(xmlStream));
+        xmlStream.close();
 
         // extract contents of result stream
         st.setBytes(index, byteStream.toByteArray());
@@ -166,22 +149,23 @@
           log.trace("binding '" + byteStream + "' to parameter: " + index);
       }
       catch (TransformerException e) {
-        throw new HibernateException("could not transform to xml stream: " + element, e);
+        throw new HibernateException("could not format to bytes: " + element, e);
+      }
+      catch (IOException e) {
+        throw new HibernateException("could not format to bytes: " + element, e);
       }
     }
   }
 
-  private static Number getXmlDeflateLevel() {
+  private static int getDeflateLevel() {
     JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
     if (jbpmContext != null) {
-      Object deflateLevel = jbpmContext.getObjectFactory().createObject(
-          "jbpm.bpel.xml.deflate.level");
-      if (deflateLevel instanceof Number)
-        return (Number) deflateLevel;
-      else if (deflateLevel != null)
-        log.warn("xml deflate level is not a number: " + deflateLevel);
+      Object elementDeflate = jbpmContext.getObjectFactory().createObject(
+          "jbpm.bpel.element.deflate.level");
+      if (elementDeflate instanceof Integer)
+        return ((Integer) elementDeflate).intValue();
     }
-    return null;
+    return Deflater.NO_COMPRESSION;
   }
 
   public Class returnedClass() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/EnumType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/EnumType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/EnumType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/EnumType.java	2009-02-06 09:17:25.000000000 +0100
@@ -29,9 +29,9 @@
 import org.hibernate.usertype.UserType;
 
 /**
- * Mapping between an {@linkplain Enum enumeration} and a {@linkplain Types#VARCHAR VARCHAR} column.
+ * Maps an {@linkplain Enum enumeration} to a {@linkplain Types#VARCHAR VARCHAR} column.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:46:43 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:23:01 $
  */
 public class EnumType implements UserType, ParameterizedType {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/QNameType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/QNameType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/QNameType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/QNameType.java	2009-02-06 09:17:25.000000000 +0100
@@ -18,7 +18,6 @@
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Types;
 
 import javax.xml.namespace.QName;
 
@@ -29,15 +28,14 @@
 import org.hibernate.usertype.CompositeUserType;
 
 /**
- * Mapping between a {@linkplain QName qualified name} and two {@linkplain Types#VARCHAR VARCHAR}
- * columns.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:46:43 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 12:58:13 $
  */
 public class QNameType implements CompositeUserType {
 
   private static final String[] PROPERTY_NAMES = { "localPart", "namespaceURI" };
-  private static final Type[] PROPERTY_TYPES = { Hibernate.STRING, Hibernate.STRING };
+  private static final Type[] PROPERTY_TYPES = { Hibernate.STRING,
+      Hibernate.STRING };
 
   public boolean equals(Object x, Object y) throws HibernateException {
     return x == null ? y == null : x.equals(y);
@@ -59,8 +57,8 @@
     return QName.class;
   }
 
-  public Object assemble(Serializable cached, SessionImplementor session, Object owner)
-      throws HibernateException {
+  public Object assemble(Serializable cached, SessionImplementor session,
+      Object owner) throws HibernateException {
     return cached;
   }
 
@@ -77,7 +75,8 @@
     return PROPERTY_TYPES;
   }
 
-  public Object getPropertyValue(Object component, int property) throws HibernateException {
+  public Object getPropertyValue(Object component, int property)
+      throws HibernateException {
     QName qname = (QName) component;
     return property == 0 ? qname.getLocalPart() : qname.getNamespaceURI();
   }
@@ -87,8 +86,9 @@
     throw new HibernateException("QName is immutable");
   }
 
-  public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner)
-      throws HibernateException, SQLException {
+  public Object nullSafeGet(ResultSet rs, String[] names,
+      SessionImplementor session, Object owner) throws HibernateException,
+      SQLException {
     // BPEL-221: QNameType persists namespace property in LOCALNAME_ column
     String localPart = (String) Hibernate.STRING.nullSafeGet(rs, names[0]);
     String namespace = (String) Hibernate.STRING.nullSafeGet(rs, names[1]);
@@ -96,8 +96,8 @@
     return localPart != null ? new QName(namespace, localPart) : null;
   }
 
-  public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session)
-      throws HibernateException, SQLException {
+  public void nullSafeSet(PreparedStatement st, Object value, int index,
+      SessionImplementor session) throws HibernateException, SQLException {
     QName qname = (QName) value;
 
     String localPart;
@@ -116,8 +116,8 @@
     Hibernate.STRING.nullSafeSet(st, namespace, index + 1);
   }
 
-  public Object replace(Object original, Object target, SessionImplementor session, Object owner)
-      throws HibernateException {
+  public Object replace(Object original, Object target,
+      SessionImplementor session, Object owner) throws HibernateException {
     return original;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/StringBufferReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/StringBufferReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/StringBufferReader.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/persistence/db/type/StringBufferReader.java	2009-02-06 09:17:25.000000000 +0100
@@ -20,7 +20,7 @@
 /**
  * A character stream whose source is a string buffer.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/03/05 12:58:13 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 12:58:13 $
  */
 public class StringBufferReader extends Reader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Expression.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Expression.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Expression.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Expression.java	2009-02-06 09:17:25.000000000 +0100
@@ -14,13 +14,16 @@
  */
 package org.jbpm.bpel.sublang.def;
 
+import org.jbpm.bpel.BpelException;
+import org.jbpm.bpel.sublang.exe.EvaluatorFactory;
 import org.jbpm.bpel.sublang.exe.ExpressionEvaluator;
+import org.jbpm.bpel.xml.BpelConstants;
 
 /**
- * Expressions extract and combine variable data in interesting ways to control the behavior of the
- * process.
+ * Expressions extract and combine variable data in interesting ways to control
+ * the behavior of the process.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:15 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class Expression extends Snippet {
 
@@ -36,6 +39,19 @@
   }
 
   public void parse() {
-    evaluator = getEvaluatorFactory().createEvaluator(this);
+    // get language specific to this script
+    String language = getLanguage();
+    // no specific language, use XPath 1.0
+    if (language == null)
+      language = BpelConstants.URN_XPATH_1_0;
+
+    // get factory associated to language
+    EvaluatorFactory factory = EvaluatorFactory.getInstance(language);
+    if (factory == null) {
+      throw new BpelException("unsupported language: " + language);
+    }
+
+    // create expression evaluator
+    evaluator = factory.createEvaluator(this);
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/JoinCondition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/JoinCondition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/JoinCondition.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/JoinCondition.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,7 +22,7 @@
  * the status of {@linkplain LinkDefinition links} targeting the enclosing
  * {@linkplain Activity#getJoinCondition() activity}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class JoinCondition extends Expression {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def: PropertyQuery.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def: Query.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.hbm.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.hbm.xml	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.hbm.xml	2009-02-06 09:17:25.000000000 +0100
@@ -22,9 +22,8 @@
     </set>
 
     <subclass name="org.jbpm.bpel.sublang.def.Expression" discriminator-value="e" />
+    <subclass name="org.jbpm.bpel.sublang.def.Query" discriminator-value="q" />
     <subclass name="org.jbpm.bpel.sublang.def.JoinCondition" discriminator-value="j" />
-    <subclass name="org.jbpm.bpel.sublang.def.PropertyQuery" discriminator-value="p" />
-    <subclass name="org.jbpm.bpel.sublang.def.VariableQuery" discriminator-value="v" />
 
   </class>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/def/Snippet.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,15 +23,13 @@
 
 import org.apache.commons.lang.builder.ToStringBuilder;
 
-import org.jbpm.bpel.BpelException;
 import org.jbpm.bpel.graph.def.Namespace;
-import org.jbpm.bpel.sublang.exe.EvaluatorFactory;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
- * Common base for {@linkplain Expression expressions} and {@linkplain PropertyQuery queries}.
+ * Common base for {@linkplain Expression expressions} and
+ * {@linkplain Query queries}.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:15 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public abstract class Snippet implements Serializable {
 
@@ -88,20 +86,6 @@
     setNamespaces(namespaces);
   }
 
-  protected EvaluatorFactory getEvaluatorFactory() {
-    // get language specific to this script
-    String language = getLanguage();
-    // no specific language, use XPath 1.0
-    if (language == null)
-      language = BpelConstants.URN_XPATH_1_0;
-
-    // get factory associated to language
-    EvaluatorFactory factory = EvaluatorFactory.getInstance(language);
-    if (factory == null)
-      throw new BpelException("unsupported language: " + language);
-    return factory;
-  }
-
   public String toString() {
     return new ToStringBuilder(this).append("text", text).toString();
   }
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/def: VariableQuery.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/EvaluatorFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/EvaluatorFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/EvaluatorFactory.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/EvaluatorFactory.java	2009-02-06 09:17:25.000000000 +0100
@@ -26,16 +26,15 @@
 import org.xml.sax.SAXException;
 
 import org.jbpm.JbpmConfiguration;
-import org.jbpm.bpel.sublang.def.VariableQuery;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.xml.util.XmlUtil;
 import org.jbpm.util.ClassLoaderUtil;
 
 /**
  * Evaluator factories produce BPEL expression and query evaluators.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:15 $
+ * @version $Revision: 1800 $ $Date: 2007/07/31 21:24:45 $
  */
 public abstract class EvaluatorFactory {
 
@@ -50,9 +49,7 @@
 
   public abstract ExpressionEvaluator createEvaluator(Expression expression);
 
-  public abstract PropertyQueryEvaluator createEvaluator(PropertyQuery query);
-
-  public abstract VariableQueryEvaluator createEvaluator(VariableQuery query);
+  public abstract QueryEvaluator createEvaluator(Query query);
 
   public static EvaluatorFactory getInstance(String language) {
     return (EvaluatorFactory) factories.get(language);
@@ -99,10 +96,7 @@
 
         // register factory instance
         factories.put(language, factory);
-        log.debug("registered evaluator factory: language="
-            + language
-            + ", class="
-            + factoryClassName);
+        log.debug("registered evaluator factory: language=" + language + ", class=" + factoryClassName);
       }
       catch (InstantiationException e) {
         log.warn("evaluator factory class not instantiable: " + factoryClassName, e);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/ExpressionEvaluator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/ExpressionEvaluator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/ExpressionEvaluator.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe/ExpressionEvaluator.java	2009-02-06 09:17:25.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:15 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public interface ExpressionEvaluator {
 
@@ -26,11 +26,11 @@
    * Evaluates the underlying expression, using the given token as the context
    * information.
    */
-  public Object evaluate(Token contextToken);
+  public Object evaluate(Token contextInfo);
 
   /**
    * Assigns a value to the location identified by the underlying expression,
    * using the given token as the context information.
    */
-  public void assign(Token contextToken, Object value);
+  public void assign(Token contextInfo, Object value);
 }
\ No newline at end of file
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe: PropertyQueryEvaluator.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe: QueryEvaluator.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/exe: VariableQueryEvaluator.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/ExprVisitor.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/ExprVisitor.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/ExprVisitor.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/ExprVisitor.java	2009-02-06 09:17:25.000000000 +0100
@@ -32,7 +32,7 @@
  * <code>VisitorSupport</code> class in Jaxen. These two libraries were
  * deleted from Jaxen in version 1.1 Beta12 with no direct replacement.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/02/24 13:34:30 $
+ * @version $Revision: 1800 $ $Date: 2007/02/24 13:34:30 $
  */
 class ExprVisitor {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusFunction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusFunction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusFunction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusFunction.java	2009-02-06 09:17:25.000000000 +0100
@@ -31,7 +31,7 @@
  * <code><i>boolean</i> bpws:getLinkStatus(<i>string</i> linkName)</code>
  * </p>
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:16:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:16:08 $
  */
 public class GetLinkStatusFunction implements Function {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetTokenIdFunction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetTokenIdFunction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetTokenIdFunction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetTokenIdFunction.java	2009-02-06 09:17:25.000000000 +0100
@@ -32,14 +32,14 @@
  * <code><i>number</i> jbpm:getTokenId()</code>
  * </p>
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/16 19:47:08 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:17:31 $
  */
 public class GetTokenIdFunction implements Function {
 
   /**
    * Extracts the identifier of the jBPM token in the given context.
    * @param context the context where the function is called
-   * @param args an empty list; this function requires no arguments
+   * @args an empty list; this function requires no arguments
    * @return the token id
    * @throws FunctionCallException if <code>args</code> is not empty
    */
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariableDataFunction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariableDataFunction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariableDataFunction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariableDataFunction.java	2009-02-06 09:17:25.000000000 +0100
@@ -37,7 +37,7 @@
  * <i>string</i> partName?, <i>string</i> locationPath?)</code>
  * </p>
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:16 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:16:08 $
  */
 public class GetVariableDataFunction implements Function {
 
@@ -155,11 +155,11 @@
     log.debug("parameters: " + variableArg + ", " + partArg + ", " + locationArg);
 
     Navigator navigator = context.getNavigator();
-    ContextSupport support = context.getContextSupport();
 
     // find variable definition
-    TokenVariableContext variableContext = (TokenVariableContext) support.getVariableContext();
     String variableName = StringFunction.evaluate(variableArg, navigator);
+    ContextSupport support = context.getContextSupport();
+    TokenVariableContext variableContext = (TokenVariableContext) support.getVariableContext();
     VariableDefinition variable = variableContext.findVariableDefinition(variableName);
     if (variable == null)
       throw new FunctionCallException("variable not found: " + variableName);
@@ -177,11 +177,13 @@
     // evaluate location string
     String locationString = StringFunction.evaluate(locationArg, navigator);
     try {
-      XPathVariableQueryEvaluator evaluator = XPathEvaluatorFactory.createVariableQueryEvaluator(locationString);
-      evaluator.setNamespaceContext(support.getNamespaceContext());
-      // in 1.1 the context node is 'the root of the document fragment representing the entire part'
-      Object queryValue = evaluator.evaluate(partValue.getOwnerDocument(),
-          variableContext.getToken());
+      XPathQueryEvaluator locationEvaluator = XPathEvaluatorFactory.createQueryEvaluator(locationString);
+      locationEvaluator.setNamespaceContext(support.getNamespaceContext());
+      /*
+       * in BPEL 1.1, the context node is 'the root of the document fragment representing the entire
+       * part'
+       */
+      Object queryValue = locationEvaluator.evaluate(partValue.getOwnerDocument());
       log.debug("return value: " + queryValue);
       return queryValue;
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyFunction.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyFunction.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyFunction.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyFunction.java	2009-02-06 09:17:25.000000000 +0100
@@ -38,7 +38,7 @@
  * <i>string</i> propertyName)</code>
  * </p>
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:16:08 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:16:08 $
  */
 public class GetVariablePropertyFunction implements Function {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath: property.query.functions.xml
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath: query.functions.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/SetNamespaceContext.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/SetNamespaceContext.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/SetNamespaceContext.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/SetNamespaceContext.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:13:41 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:13:41 $
  */
 class SetNamespaceContext implements NamespaceContext {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/TokenVariableContext.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/TokenVariableContext.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/TokenVariableContext.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/TokenVariableContext.java	2009-02-06 09:17:25.000000000 +0100
@@ -28,7 +28,7 @@
  * An implementation of {@link VariableContext} that resolves variable bindings
  * from the values in the scope of the enclosed {@link Token token}.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/05/29 01:09:34 $
+ * @version $Revision: 1800 $ $Date: 2007/05/29 01:09:34 $
  */
 public class TokenVariableContext implements VariableContext, Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluatorFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluatorFactory.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluatorFactory.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluatorFactory.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,19 +23,17 @@
 import org.jaxen.expr.PathExpr;
 
 import org.jbpm.bpel.BpelException;
-import org.jbpm.bpel.sublang.def.VariableQuery;
 import org.jbpm.bpel.sublang.def.Expression;
 import org.jbpm.bpel.sublang.def.JoinCondition;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
-import org.jbpm.bpel.sublang.exe.VariableQueryEvaluator;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.sublang.exe.EvaluatorFactory;
 import org.jbpm.bpel.sublang.exe.ExpressionEvaluator;
-import org.jbpm.bpel.sublang.exe.PropertyQueryEvaluator;
+import org.jbpm.bpel.sublang.exe.QueryEvaluator;
 
 /**
  * A factory for expressions and queries written in XPath 1.0.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:16 $
+ * @version $Revision: 1800 $ $Date: 2007/07/31 21:24:46 $
  */
 public class XPathEvaluatorFactory extends EvaluatorFactory {
 
@@ -50,11 +48,11 @@
     String text = expression.getText();
     XPathExpressionEvaluator evaluator;
     try {
-      evaluator = expression instanceof JoinCondition ? createJoinConditionEvaluator(text)
-          : createExpressionEvaluator(text);
+      evaluator = expression instanceof JoinCondition ? XPathEvaluatorFactory.createJoinConditionEvaluator(text)
+          : XPathEvaluatorFactory.createExpressionEvaluator(text);
     }
     catch (JaxenException e) {
-      throw new BpelException("could not create evaluator for expression: " + expression, e);
+      throw new BpelException("could not create evaluator: expression=" + expression, e);
     }
 
     // set namespace declarations
@@ -65,32 +63,14 @@
     return evaluator;
   }
 
-  public PropertyQueryEvaluator createEvaluator(PropertyQuery query) {
+  public QueryEvaluator createEvaluator(Query query) {
     // parse text and create evaluator
-    XPathPropertyQueryEvaluator evaluator;
+    XPathQueryEvaluator evaluator;
     try {
-      evaluator = createPropertyQueryEvaluator(query.getText());
+      evaluator = new XPathQueryEvaluator(query.getText());
     }
     catch (JaxenException e) {
-      throw new BpelException("could not create evaluator for query: " + query, e);
-    }
-
-    // set namespace declarations
-    Set namespaces = query.getNamespaces();
-    if (namespaces != null)
-      evaluator.setNamespaceContext(new SetNamespaceContext(namespaces));
-
-    return evaluator;
-  }
-
-  public VariableQueryEvaluator createEvaluator(VariableQuery query) {
-    // parse text and create evaluator
-    XPathVariableQueryEvaluator evaluator;
-    try {
-      evaluator = createVariableQueryEvaluator(query.getText());
-    }
-    catch (JaxenException e) {
-      throw new BpelException("could not create evaluator for query: " + query, e);
+      throw new BpelException("could not create evaluator: query=" + query, e);
     }
 
     // set namespace declarations
@@ -111,6 +91,14 @@
     return expression;
   }
 
+  static XPathQueryEvaluator createQueryEvaluator(String text) throws JaxenException {
+    /*
+     * BPEL 2.0 S8.2.6: the restrictions on an expression do not apply to a query because it has a
+     * defined context node; any legal XPath expression can be used
+     */
+    return new XPathQueryEvaluator(text);
+  }
+
   static XPathJoinConditionEvaluator createJoinConditionEvaluator(String text)
       throws JaxenException {
     XPathJoinConditionEvaluator joinCondition = new XPathJoinConditionEvaluator(text);
@@ -122,24 +110,6 @@
     return joinCondition;
   }
 
-  static XPathVariableQueryEvaluator createVariableQueryEvaluator(String text)
-      throws JaxenException {
-    /*
-     * BPEL 2.0 S8.2.6: the restrictions on an expression do not apply to a query because it has a
-     * defined context node; any legal XPath expression can be used
-     */
-    return new XPathVariableQueryEvaluator(text);
-  }
-
-  static XPathPropertyQueryEvaluator createPropertyQueryEvaluator(String text)
-      throws JaxenException {
-    /*
-     * BPEL 2.0 S8.2.6: the restrictions on an expression do not apply to a query because it has a
-     * defined context node; any legal XPath expression can be used
-     */
-    return new XPathPropertyQueryEvaluator(text);
-  }
-
   private static class ExprValidator extends ExprVisitor {
 
     private boolean valid;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluator.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathEvaluator.java	2009-02-06 09:17:25.000000000 +0100
@@ -54,7 +54,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 abstract class XPathEvaluator extends BaseXPath {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathExpressionEvaluator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathExpressionEvaluator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathExpressionEvaluator.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathExpressionEvaluator.java	2009-02-06 09:17:25.000000000 +0100
@@ -48,7 +48,7 @@
  * Evaluator for general expressions. When XPath 1.0 is used as an expression language, there is no
  * context node available.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:16 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 class XPathExpressionEvaluator extends XPathEvaluator implements ExpressionEvaluator {
 
@@ -75,30 +75,32 @@
    * to {@link #getContext(Object)} with the given <code>contextInfo</code> as argument</li>
    * <ul>
    */
-  public Object evaluate(Token contextToken) {
+  public Object evaluate(Token contextInfo) {
+    Object result = null;
     try {
-      List nodeSet = selectNodes(contextToken);
-      if (nodeSet != null) {
-        switch (nodeSet.size()) {
+      List nodeset = selectNodes(contextInfo);
+      if (nodeset != null) {
+        switch (nodeset.size()) {
         case 0:
           break;
         case 1:
-          return nodeSet.get(0);
+          result = nodeset.get(0);
+          break;
         default:
-          return nodeSet;
+          result = nodeset;
         }
       }
-      return null;
     }
     catch (JaxenException e) {
       log.error("expression evaluation failed", e);
       throw new BpelFaultException(BpelConstants.FAULT_SUB_LANGUAGE_EXECUTION);
     }
+    return result;
   }
 
-  public void assign(Token contextToken, Object value) {
+  public void assign(Token contextInfo, Object value) {
     Expr rootExpr = getRootExpr();
-    Context context = getContext(contextToken);
+    Context context = getContext(contextInfo);
     // direct variable assignment?
     if (rootExpr instanceof VariableReferenceExpr) {
       assignVariable((VariableReferenceExpr) rootExpr, context, value);
@@ -114,26 +116,6 @@
     }
   }
 
-  protected FunctionContext createFunctionContext() {
-    return functionLibrary;
-  }
-
-  /**
-   * Gets a context for XPath evaluation. The context for an expression expression is:
-   * <ul>
-   * <li>the variable bindings are the variables in the scope of the given token</li>
-   * <li>the function library is {@link #functionLibrary}</li>
-   * <li>the namespace declarations are taken from the snippet</li>
-   * </ul>
-   * @param token an instance of {@link Token}
-   */
-  protected Context getContext(Object token) {
-    ContextSupport support = getContextSupport();
-    support.setVariableContext(new TokenVariableContext((Token) token));
-
-    return new Context(support);
-  }
-
   private static void assignVariable(VariableReferenceExpr rootExpr, Context context, Object value) {
     String variableName = rootExpr.getVariableName();
     TokenVariableContext variableContext = (TokenVariableContext) context.getContextSupport()
@@ -180,6 +162,25 @@
     }
   }
 
+  protected FunctionContext createFunctionContext() {
+    return functionLibrary;
+  }
+
+  /**
+   * Gets a context for XPath evaluation. The context for an expression expression is:
+   * <ul>
+   * <li>the variable bindings are the variables in the scope of the given token</li>
+   * <li>the function library is {@link #functionLibrary}</li>
+   * <li>the namespace declarations are taken from the snippet</li>
+   * </ul>
+   * @param node an instance of {@link Token}
+   */
+  protected Context getContext(Object node) {
+    ContextSupport support = new ContextSupport(getNamespaceContext(), getFunctionContext(),
+        new TokenVariableContext((Token) node), getNavigator());
+    return new Context(support);
+  }
+
   private static class ExprAssigner extends ExprVisitor {
 
     private Context context;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathJoinConditionEvaluator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathJoinConditionEvaluator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathJoinConditionEvaluator.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath/XPathJoinConditionEvaluator.java	2009-02-06 09:17:25.000000000 +0100
@@ -31,7 +31,7 @@
  * Evaluator for expressions in join conditions. Only link status can be used within join conditions
  * and only join conditions can make use of link status.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 class XPathJoinConditionEvaluator extends XPathExpressionEvaluator {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath: XPathPropertyQueryEvaluator.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath: XPathQueryEvaluator.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/sublang/xpath: XPathVariableQueryEvaluator.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/ElementType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/ElementType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/ElementType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/ElementType.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
 /**
  * Metadata related to an XML Schema element.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class ElementType extends XmlType {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/MessageType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/MessageType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/MessageType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/MessageType.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
 import org.w3c.dom.Element;
 
 import org.jbpm.bpel.graph.exe.BpelFaultException;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.exe.MessageValue;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.xml.BpelConstants;
@@ -31,7 +31,7 @@
 /**
  * Metadata related to a WSDL message type.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:21 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class MessageType extends VariableType {
 
@@ -92,7 +92,7 @@
       Object variableValue) {
     // get the part, fail if it does not exist
     Element part = ((MessageValue) variableValue).getPart(propertyAlias.getPart());
-    PropertyQuery query = propertyAlias.getQuery();
+    Query query = propertyAlias.getQuery();
     return query != null ?
     // evaluate the query on the given part
     query.getEvaluator().evaluate(part)
@@ -103,7 +103,7 @@
   protected void assignProperty(PropertyAlias propertyAlias,
       Object variableValue, Object propertyValue) {
     String partName = propertyAlias.getPart();
-    PropertyQuery query = propertyAlias.getQuery();
+    Query query = propertyAlias.getQuery();
     MessageValue messageValue = (MessageValue) variableValue;
     if (query == null) {
       // assign to the part
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/SchemaType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/SchemaType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/SchemaType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/SchemaType.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
 /**
  * Metadata related to an XML Schema type, simple or complex.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class SchemaType extends XmlType {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableDefinition.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableDefinition.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableDefinition.java	2009-02-06 09:17:25.000000000 +0100
@@ -31,7 +31,7 @@
  * Variables hold messages that are exchanged, as well as intermediate data used in business logic
  * and in composing messages sent to partners.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:09 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class VariableDefinition implements Serializable {
 
@@ -64,8 +64,8 @@
    * @param token the scope token
    */
   public void createInstance(Token token) {
-    Object value = type.createValue(this);
-    token.getProcessInstance().getContextInstance().createVariable(name, value, token);
+    ContextInstance contextInstance = token.getProcessInstance().getContextInstance();
+    contextInstance.createVariable(name, type.createValue(this), token);
   }
 
   /**
@@ -74,7 +74,8 @@
    * @param value the initial value
    */
   public void createInstance(Token token, Object value) {
-    token.getProcessInstance().getContextInstance().createVariable(name, value, token);
+    ContextInstance contextInstance = token.getProcessInstance().getContextInstance();
+    contextInstance.createVariable(name, value, token);
   }
 
   /**
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/VariableType.java	2009-02-06 09:17:25.000000000 +0100
@@ -32,7 +32,7 @@
 /**
  * Common base for metadata related to a kind of variable declaration.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:27 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public abstract class VariableType implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/XmlType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/XmlType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/def/XmlType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/def/XmlType.java	2009-02-06 09:17:25.000000000 +0100
@@ -20,7 +20,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
@@ -30,7 +30,7 @@
  * Common base for {@linkplain SchemaType XML Schema types} and
  * {@linkplain ElementType XML Schema elements}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:21 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public abstract class XmlType extends VariableType {
 
@@ -102,7 +102,7 @@
 
   protected Object evaluateProperty(PropertyAlias propertyAlias,
       Object variableValue) {
-    PropertyQuery query = propertyAlias.getQuery();
+    Query query = propertyAlias.getQuery();
     return query != null ?
     // evaluate the query using the variable value as context node
     query.getEvaluator().evaluate((Element) variableValue)
@@ -112,7 +112,7 @@
 
   protected void assignProperty(PropertyAlias propertyAlias,
       Object variableValue, Object propertyValue) {
-    PropertyQuery query = propertyAlias.getQuery();
+    Query query = propertyAlias.getQuery();
     Element elementValue = (Element) variableValue;
     if (query == null) {
       // assign the variable itself; assume this is a simple type or an element
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementInstance.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementInstance.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementInstance.java	2009-02-06 09:17:25.000000000 +0100
@@ -21,7 +21,7 @@
 /**
  * Stores variable values of type {@link Element} in the database.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class ElementInstance extends VariableInstance {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementMatcher.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementMatcher.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementMatcher.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/ElementMatcher.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,7 +22,7 @@
  * Criteria for deciding whether a variable value is a
  * {@linkplain Element DOM element}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class ElementMatcher implements JbpmTypeMatcher {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/MessageValue.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/MessageValue.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/MessageValue.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/variable/exe/MessageValue.java	2009-02-06 09:17:25.000000000 +0100
@@ -37,7 +37,7 @@
  * Holds together the {@linkplain MessageType type metadata} and the part values of a WSDL message
  * {@linkplain VariableDefinition variable}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/07/22 05:57:25 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:57:25 $
  */
 public class MessageValue {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/AbstractExtension.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/AbstractExtension.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/AbstractExtension.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/AbstractExtension.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,7 +22,7 @@
 /**
  * Basic implementation of a WSDL extensibility element.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public abstract class AbstractExtension implements ExtensibilityElement,
     Serializable {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/DefinitionImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/DefinitionImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/DefinitionImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/DefinitionImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/02/19 22:29:42 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 22:29:42 $
  */
 public class DefinitionImpl extends com.ibm.wsdl.DefinitionImpl {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/FaultImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/FaultImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/FaultImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/FaultImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class FaultImpl extends OperationMember implements Fault {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/InputImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/InputImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/InputImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/InputImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class InputImpl extends OperationMember implements Input {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/NamedExtension.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/NamedExtension.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/NamedExtension.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/NamedExtension.java	2009-02-06 09:17:25.000000000 +0100
@@ -19,7 +19,7 @@
 /**
  * Represents extensibility elements having a qualified name.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class NamedExtension extends AbstractExtension {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OperationMember.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OperationMember.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OperationMember.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OperationMember.java	2009-02-06 09:17:25.000000000 +0100
@@ -31,7 +31,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/04/11 06:37:35 $
+ * @version $Revision: 1800 $ $Date: 2007/04/11 06:37:35 $
  */
 public abstract class OperationMember implements Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OutputImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OutputImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OutputImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/OutputImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class OutputImpl extends OperationMember implements Output {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -25,7 +25,7 @@
  * in the conversation and specifying the portType provided by each service to
  * receive messages within the context of the conversation.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class PartnerLinkTypeImpl extends NamedExtension implements
     PartnerLinkType {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.hbm.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.hbm.xml	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.hbm.xml	2009-02-06 09:17:25.000000000 +0100
@@ -16,6 +16,7 @@
 
     <many-to-one name="message" class="com.ibm.wsdl.MessageImpl" column="MESSAGE_" foreign-key="FK_ALIAS_MESSAGE" />
     <property name="part" column="PART_" />
+    <many-to-one name="query" column="QUERY_" foreign-key="FK_ALIAS_QUERY" cascade="all" />
 
     <property name="type" type="qname">
       <column name="TYPELOCALNAME_" />
@@ -27,8 +28,6 @@
       <column name="ELEMENTNAMESPACE_" />
     </property>
 
-    <many-to-one name="query" column="QUERY_" foreign-key="FK_ALIAS_QUERY" cascade="all" />
-
   </class>
 
 </hibernate-mapping>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyAliasImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -17,7 +17,7 @@
 import javax.wsdl.Message;
 import javax.xml.namespace.QName;
 
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.wsdl.xml.WsdlConstants;
@@ -26,7 +26,7 @@
  * A property alias maps a global property to a location in a specific message
  * part. The property name becomes an alias for the message part and location.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:20 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:13:41 $
  */
 public class PropertyAliasImpl extends AbstractExtension implements
     PropertyAlias {
@@ -36,7 +36,7 @@
   private String part;
   private QName type;
   private QName element;
-  private PropertyQuery query;
+  private Query query;
 
   private static final long serialVersionUID = 1L;
 
@@ -87,11 +87,11 @@
     this.element = element;
   }
 
-  public PropertyQuery getQuery() {
+  public Query getQuery() {
     return query;
   }
 
-  public void setQuery(PropertyQuery query) {
+  public void setQuery(Query query) {
     this.query = query;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/impl/PropertyImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -24,7 +24,7 @@
  * an XML Schema simple type. The intent is not to create a new type, but to
  * create a name that has greater significance than the type itself.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/10/29 06:13:41 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:13:41 $
  */
 public class PropertyImpl extends NamedExtension implements Property {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PartnerLinkType.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PartnerLinkType.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PartnerLinkType.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PartnerLinkType.java	2009-02-06 09:17:25.000000000 +0100
@@ -25,7 +25,7 @@
  * the {@linkplain Role roles} played by each service in the conversation and
  * specifies the portType provided by each service.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public interface PartnerLinkType extends ExtensibilityElement, Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PropertyAlias.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PropertyAlias.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PropertyAlias.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/PropertyAlias.java	2009-02-06 09:17:25.000000000 +0100
@@ -22,7 +22,7 @@
 
 import org.jbpm.bpel.graph.basic.Assign;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 
 /**
  * Maps a {@linkplain Property property} to a field in a specific
@@ -31,7 +31,7 @@
  * such in {@linkplain Expression expressions} and
  * {@linkplain Assign assignments}.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:19 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public interface PropertyAlias extends ExtensibilityElement, Serializable {
 
@@ -88,10 +88,10 @@
   /**
    * Gets the aliased location.
    */
-  public PropertyQuery getQuery();
+  public Query getQuery();
 
   /**
    * Sets the aliased location.
    */
-  public void setQuery(PropertyQuery query);
+  public void setQuery(Query query);
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/Property.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/Property.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/Property.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/Property.java	2009-02-06 09:17:25.000000000 +0100
@@ -23,7 +23,7 @@
  * Creates a unique name and associates it with an XML Schema type. The intent
  * is to introduce a name that has semantic significance beyond the type itself.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public interface Property extends ExtensibilityElement, Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeSerializer.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeSerializer.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeSerializer.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeSerializer.java	2009-02-06 09:17:25.000000000 +0100
@@ -40,7 +40,7 @@
  * Translates between <code>plt:partnerLinkType</code> elements and {@link PartnerLinkType}
  * instances.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:27 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public class PartnerLinkTypeSerializer implements ExtensionDeserializer, ExtensionSerializer,
     Serializable {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertyAliasSerializer.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertyAliasSerializer.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertyAliasSerializer.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertyAliasSerializer.java	2009-02-06 09:17:25.000000000 +0100
@@ -33,7 +33,7 @@
 import com.ibm.wsdl.util.xml.DOMUtils;
 import com.ibm.wsdl.util.xml.XPathUtils;
 
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
@@ -44,7 +44,7 @@
  * Translates between <code>bpel:propertyAlias</code> elements and {@link PropertyAlias}
  * instances.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:17 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public class PropertyAliasSerializer implements ExtensionSerializer, ExtensionDeserializer,
     Serializable {
@@ -187,7 +187,7 @@
     if (required != null)
       DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_REQUIRED, required.toString(), def, pw);
 
-    PropertyQuery query = alias.getQuery();
+    Query query = alias.getQuery();
     if (query != null) {
       pw.println('>');
       // query element
@@ -205,8 +205,8 @@
    * @param queryElem the element to deserialize
    * @return the deserialized instance
    */
-  protected PropertyQuery unmarshallQuery(Element queryElem) {
-    PropertyQuery query = new PropertyQuery();
+  protected Query unmarshallQuery(Element queryElem) {
+    Query query = new Query();
     // namespace declarations
     query.setNamespaces(XmlUtil.findNamespaceDeclarations(queryElem));
     // language attribute
@@ -217,13 +217,13 @@
   }
 
   /**
-   * Serializes a {@link PropertyQuery} instance into the given {@link PrintWriter}.
+   * Serializes a {@link Query} instance into the given {@link PrintWriter}.
    * @param query the instance to serialize
    * @param pw the stream to write in
    * @param def the definition where the extensibility element appears
    * @throws WSDLException if serialization fails
    */
-  protected void marshallQuery(PropertyQuery query, PrintWriter pw, Definition def) throws WSDLException {
+  protected void marshallQuery(Query query, PrintWriter pw, Definition def) throws WSDLException {
     // open tag
     String queryTag = DOMUtils.getQualifiedValue(WsdlConstants.NS_VPROP, WsdlConstants.ELEM_QUERY,
         def);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertySerializer.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertySerializer.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertySerializer.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/PropertySerializer.java	2009-02-06 09:17:25.000000000 +0100
@@ -37,7 +37,7 @@
 /**
  * Translates between <code>bpel:property</code> elements and {@link Property} instances.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:27 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public class PropertySerializer implements ExtensionSerializer, ExtensionDeserializer, Serializable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlConstants.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlConstants.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlConstants.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlConstants.java	2009-02-06 09:17:25.000000000 +0100
@@ -19,14 +19,14 @@
 /**
  * Constant values used in WSDL extension definitions.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:13 $
+ * @version $Revision: 1800 $ $Date: 2007/05/17 08:35:44 $
  */
 public class WsdlConstants {
 
   // Namespace URIs
-  public static final String NS_PLNK = "http://docs.oasis-open.org/wsbpel/2.0/plnktype";
+  public static final String NS_PLNK = "http://schemas.xmlsoap.org/ws/2004/03/partner-link/";
   public static final String NS_PLNK_1_1 = "http://schemas.xmlsoap.org/ws/2003/05/partner-link/";
-  public static final String NS_VPROP = "http://docs.oasis-open.org/wsbpel/2.0/varprop";
+  public static final String NS_VPROP = "http://schemas.xmlsoap.org/ws/2004/03/business-process/property";
 
   // Element names
   public static final String ELEM_PARTNER_LINK_TYPE = "partnerLinkType";
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlFactoryImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlFactoryImpl.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlFactoryImpl.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlFactoryImpl.java	2009-02-06 09:17:25.000000000 +0100
@@ -28,7 +28,7 @@
  * Enhances the WSDL4J implementation of the {@link WSDLFactory} to accommodate
  * extension definitions introduced by BPEL.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/01/22 00:24:55 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 00:24:55 $
  */
 public class WsdlFactoryImpl extends com.ibm.wsdl.factory.WSDLFactoryImpl {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlUtil.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlUtil.java	2009-02-06 09:12:36.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/wsdl/xml/WsdlUtil.java	2009-02-06 09:17:25.000000000 +0100
@@ -56,7 +56,7 @@
 /**
  * Utility methods for dealing with JWSDL objects.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:52 $
+ * @version $Revision: 1800 $ $Date: 2007/08/21 09:33:19 $
  */
 public class WsdlUtil {
 
@@ -76,24 +76,24 @@
 
   public static Definition getSharedDefinition() {
     if (sharedDefinition == null)
-      sharedDefinition = factory.newDefinition();
+      sharedDefinition = getFactory().newDefinition();
 
     return sharedDefinition;
   }
 
   public static ExtensionRegistry getSharedExtensionRegistry() {
     if (sharedRegistry == null)
-      sharedRegistry = factory.newPopulatedExtensionRegistry();
+      sharedRegistry = getFactory().newPopulatedExtensionRegistry();
 
     return sharedRegistry;
   }
 
   public static Definition readText(String text) throws WSDLException {
-    return factory.newWSDLReader().readWSDL(null, new InputSource(new StringReader(text)));
+    return getFactory().newWSDLReader().readWSDL(null, new InputSource(new StringReader(text)));
   }
 
   public static Definition readResource(Class clazz, String resource) throws WSDLException {
-    return factory.newWSDLReader().readWSDL(clazz.getResource(resource).toExternalForm());
+    return getFactory().newWSDLReader().readWSDL(clazz.getResource(resource).toExternalForm());
   }
 
   public static void writeFile(File file, Definition def, WSDLWriter writer) throws WSDLException {
@@ -104,14 +104,14 @@
 
     // write wsdl document
     try {
-      writeFileImpl(file, def, writer);
+      writeFile0(file, def, writer);
     }
     catch (IOException e) {
       throw new WSDLException(WSDLException.OTHER_ERROR, "could not write file: " + file, e);
     }
   }
 
-  private static void writeFileImpl(File file, Definition def, WSDLWriter writer)
+  private static void writeFile0(File file, Definition def, WSDLWriter writer)
       throws WSDLException, IOException {
     // open a file for writing
     OutputStream fileSink = new FileOutputStream(file);
@@ -135,13 +135,14 @@
   }
 
   public static Definition writeAndRead(Definition definition) throws WSDLException {
+    WSDLFactory factory = getFactory();
     // write the definition to an in-memory sink
-    CharArrayWriter memorySink = new CharArrayWriter();
-    factory.newWSDLWriter().writeWSDL(definition, memorySink);
+    CharArrayWriter output = new CharArrayWriter();
+    factory.newWSDLWriter().writeWSDL(definition, output);
     // read the definition back from memory
     try {
       return factory.newWSDLReader().readWSDL(definition.getDocumentBaseURI(),
-          XmlUtil.parseText(memorySink.toString()));
+          XmlUtil.parseText(output.toString()));
     }
     catch (SAXException e) {
       throw new WSDLException(WSDLException.PARSER_ERROR,
@@ -171,9 +172,10 @@
     return (PartnerLinkType) new WsdlElementLookup() {
 
       protected Object getLocalElement(Definition def, QName name) {
-        for (Iterator i = getExtensions(def.getExtensibilityElements(),
-            WsdlConstants.Q_PARTNER_LINK_TYPE); i.hasNext();) {
-          PartnerLinkType partnerLinkType = (PartnerLinkType) i.next();
+        Iterator partnerLinkTypeIt = getExtensions(def.getExtensibilityElements(),
+            WsdlConstants.Q_PARTNER_LINK_TYPE);
+        while (partnerLinkTypeIt.hasNext()) {
+          PartnerLinkType partnerLinkType = (PartnerLinkType) partnerLinkTypeIt.next();
           if (partnerLinkType.getQName().equals(name))
             return partnerLinkType;
         }
@@ -186,8 +188,10 @@
     return (Property) new WsdlElementLookup() {
 
       protected Object getLocalElement(Definition def, QName name) {
-        for (Iterator i = getExtensions(def.getExtensibilityElements(), WsdlConstants.Q_PROPERTY); i.hasNext();) {
-          Property property = (Property) i.next();
+        Iterator propertyIt = getExtensions(def.getExtensibilityElements(),
+            WsdlConstants.Q_PROPERTY);
+        while (propertyIt.hasNext()) {
+          Property property = (Property) propertyIt.next();
           if (property.getQName().equals(name))
             return property;
         }
@@ -198,12 +202,14 @@
 
   public static ExtensibilityElement getExtension(List extensions, QName extensionType) {
     if (extensions != null) {
-      for (Iterator i = extensions.iterator(); i.hasNext();) {
-        ExtensibilityElement extension = (ExtensibilityElement) i.next();
-        if (ExtensionTypePredicate.evaluate(extension, extensionType))
+      Iterator extensionIt = extensions.iterator();
+      while (extensionIt.hasNext()) {
+        ExtensibilityElement extension = (ExtensibilityElement) extensionIt.next();
+        if (ExtensionTypePredicate.evaluate(extension, extensionType)) {
           return extension;
       }
     }
+    }
     return null;
   }
 
@@ -225,32 +231,34 @@
     return imp;
   }
 
-  private static abstract class WsdlElementLookup {
+  private abstract static class WsdlElementLookup {
 
     public Object getElement(Definition def, QName name) {
       Object element = getLocalElement(def, name);
-      if (element == null)
+      if (element == null) {
         element = getImportedElement(def, name);
+      }
       return element;
     }
 
     protected Object getImportedElement(Definition def, QName name) {
       // look in imports with a matching target namespace
-      List importList = def.getImports(name.getNamespaceURI());
-      if (importList != null) {
-        for (int i = 0, n = importList.size(); i < n; i++) {
-          javax.wsdl.Import _import = (javax.wsdl.Import) importList.get(i);
-          Object element = getLocalElement(_import.getDefinition(), name);
+      List imports = def.getImports(name.getNamespaceURI());
+      if (imports != null) {
+        for (int i = 0, n = imports.size(); i < n; i++) {
+          javax.wsdl.Import imp = (javax.wsdl.Import) imports.get(i);
+          Object element = getLocalElement(imp.getDefinition(), name);
           if (element != null)
             return element;
         }
       }
       // look in imported definitions of all imports
-      for (Iterator l = def.getImports().values().iterator(); l.hasNext();) {
-        importList = (List) l.next();
-        for (int i = 0, n = importList.size(); i < n; i++) {
-          javax.wsdl.Import _import = (javax.wsdl.Import) importList.get(i);
-          Object element = getImportedElement(_import.getDefinition(), name);
+      Iterator importsIt = def.getImports().values().iterator();
+      while (importsIt.hasNext()) {
+        imports = (List) importsIt.next();
+        for (int i = 0, n = imports.size(); i < n; i++) {
+          javax.wsdl.Import imp = (javax.wsdl.Import) imports.get(i);
+          Object element = getImportedElement(imp.getDefinition(), name);
           if (element != null)
             return element;
         }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/AbstractProblemHandler.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/AbstractProblemHandler.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/AbstractProblemHandler.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/AbstractProblemHandler.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,38 +25,40 @@
 import org.jbpm.jpdl.xml.Problem;
 
 /**
- * A skeletal implementation of the {@link ProblemHandler} interface intended to minimize the effort
- * required to implement this interface.
+ * A skeletal implementation of the {@link ProblemHandler} interface intended to
+ * minimize the effort required to implement this interface.
  * 
  * The programmer needs to extend this class and provide implementations for the
  * {@link ProblemHandler#add(Problem) add} and
  * {@link ProblemHandler#getProblemCount() getProblemCount} methods.
  * 
- * The documentation for each non-abstract method in this class describes its implementation in
- * detail.
+ * The documentation for each non-abstract methods in this class describes its
+ * implementation in detail.
  * 
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:33 $
+ * @version $Revision: 1800 $ $Date: 2007/05/24 13:48:43 $
  */
 public abstract class AbstractProblemHandler implements ProblemHandler {
 
   private static final Log log = LogFactory.getLog(ProblemHandler.class);
 
   /**
-   * Default constructor, for invocation by subclass constructors. Typically implicit.
+   * Default constructor, for invocation by subclass constructors. Typically
+   * implicit.
    */
   protected AbstractProblemHandler() {
   }
 
   /**
-   * Returns a SAX error handler backed by this problem handler. Warnings and errors reported
-   * through the returned {@link ErrorHandler} instance will report a problem to this handler.
+   * Returns a SAX error handler backed by this problem handler. Warnings and
+   * errors reported through the returned {@link ErrorHandler} instance will
+   * report a problem to this handler.
    * 
    * This implementation returns an {@link ErrorHandler} instance that reports
    * {@linkplain ErrorHandler#warning(SAXParseException) warnings},
    * {@linkplain ErrorHandler#error(SAXParseException) errors} and
-   * {@linkplain ErrorHandler#fatalError(SAXParseException) fatal errors} by calling the (abstract)
-   * {@link ProblemHandler#add(Problem) add} method.
+   * {@linkplain ErrorHandler#fatalError(SAXParseException) fatal errors} by
+   * calling the (abstract) {@link ProblemHandler#add(Problem) add} method.
    * 
    * @return a SAX error handler view of this problem handler
    */
@@ -65,16 +67,17 @@
   }
 
   /**
-   * Returns a TrAX error listener backed by this problem handler. Warnings and errors reported
-   * through the returned {@link ErrorListener} instance will report the problem to this handler.
+   * Returns a TrAX error listener backed by this problem handler. Warnings and
+   * errors reported through the returned {@link ErrorListener} instance will
+   * report the problem to this handler.
    * 
    * This implementation returns an {@link ErrorListener} instance that reports
    * {@linkplain ErrorListener#warning(TransformerException) warnings},
    * {@linkplain ErrorListener#error(TransformerException) errors} and
-   * {@linkplain ErrorListener#fatalError(TransformerException) fatal errors} by calling the
-   * (abstract) {@link ProblemHandler#add(Problem) add} method.
+   * {@linkplain ErrorListener#fatalError(TransformerException) fatal errors} by
+   * calling the (abstract) {@link ProblemHandler#add(Problem) add} method.
    * 
-   * @return a TrAX error listener view of this problem handler
+   * @return an TrAX error listener view of this problem handler
    */
   public ErrorListener asTraxErrorListener() {
     return new ErrorListenerAdapter(this);
@@ -90,19 +93,16 @@
     if (problem.getDescription() != null)
       detailBuffer.append(problem.getDescription());
 
-    if (problem.getResource() != null) {
-      detailBuffer.append(" (").append(problem.getResource());
+    if (problem.getResource() != null)
+      detailBuffer.append(": ").append(problem.getResource());
 
       if (problem.getLine() != null)
-        detailBuffer.append(':').append(problem.getLine());
-
-      detailBuffer.append(')');
-    }
+      detailBuffer.append('(').append(problem.getLine()).append(')');
 
     if (problem instanceof ParseProblem) {
       ParseProblem parseProblem = (ParseProblem) problem;
       if (parseProblem.getLocation() != null)
-        detailBuffer.append(" at ").append(parseProblem.getLocation());
+        detailBuffer.append(' ').append(parseProblem.getLocation());
     }
 
     String detail = detailBuffer.toString();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ActivityReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ActivityReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ActivityReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ActivityReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/20 22:35:40 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:35:40 $
  */
 public abstract class ActivityReader {
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml: AppDescriptorReader.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml: AppDescriptorWriter.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/AssignReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/AssignReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/AssignReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/AssignReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -41,7 +41,7 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.CompositeActivity;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.def.VariableType;
@@ -52,7 +52,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:20 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:37:41 $
  */
 public class AssignReader extends ActivityReader {
 
@@ -249,8 +249,8 @@
     return partName;
   }
 
-  protected VariableQuery readQuery(Element queryElem, CompositeActivity parent) {
-    VariableQuery query = new VariableQuery();
+  protected Query readQuery(Element queryElem, CompositeActivity parent) {
+    Query query = new Query();
     BpelProcessDefinition processDefinition = parent.getBpelProcessDefinition();
 
     // namespace declarations
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/bpel-1-1-converter.xslt jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/bpel-1-1-converter.xslt
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/bpel-1-1-converter.xslt	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/bpel-1-1-converter.xslt	2009-02-06 09:17:23.000000000 +0100
@@ -5,7 +5,7 @@
   <xsl:output method="xml" />
 
   <xsl:variable name="old-uri" select="'http://schemas.xmlsoap.org/ws/2003/03/business-process/'" />
-  <xsl:variable name="new-uri" select="'http://docs.oasis-open.org/wsbpel/2.0/process/executable'" />
+  <xsl:variable name="new-uri" select="'http://schemas.xmlsoap.org/ws/2004/03/business-process/'" />
 
   <xsl:variable name="old-xpath-lang" select="'http://www.w3.org/TR/1999/REC-xpath-19991116'" />
   <xsl:variable name="new-xpath-lang" select="'urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0'" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelConstants.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelConstants.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelConstants.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelConstants.java	2009-02-06 09:17:23.000000000 +0100
@@ -19,20 +19,20 @@
 /**
  * Constant values used in BPEL process definitions.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:17:06 $
+ * @version $Revision: 1800 $ $Date: 2007/08/21 09:33:19 $
  */
 public class BpelConstants {
 
   // namespaces
-  public static final String NS_BPEL = "http://docs.oasis-open.org/wsbpel/2.0/process/executable";
-  public static final String NS_SERVICE_REF = "http://docs.oasis-open.org/wsbpel/2.0/serviceref";
+  public static final String NS_BPEL = "http://schemas.xmlsoap.org/ws/2004/03/business-process/";
+  public static final String NS_SERVICE_REF = "http://schemas.xmlsoap.org/ws/2004/03/business-process/service-ref";
   public static final String NS_BPEL_1_1 = "http://schemas.xmlsoap.org/ws/2003/03/business-process/";
   public static final String NS_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
   public static final String NS_XML_SCHEMA_INSTANCE = "http://www.w3.org/2001/XMLSchema-instance";
   public static final String NS_XMLNS = "http://www.w3.org/2000/xmlns/";
   public static final String NS_VENDOR = "urn:jbpm.org:bpel-1.1";
-  public static final String NS_DEFINITION_DESCRIPTOR = "urn:jbpm.org:bpel-1.1:definition";
-  public static final String NS_DEPLOYMENT_DESCRIPTOR = "urn:jbpm.org:bpel-1.1:deployment";
+  public static final String NS_DEF_DESCRIPTOR = "urn:jbpm.org:bpel-1.1:definition";
+  public static final String NS_APP_DESCRIPTOR = "urn:jbpm.org:bpel-1.1:application";
   public static final String NS_EXAMPLES = "http://jbpm.org/bpel/examples";
 
   public static final String URN_XPATH_1_0 = "urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0";
@@ -195,16 +195,8 @@
   public static final QName FAULT_INVALID_EXPRESSION_VALUE = new QName(BpelConstants.NS_BPEL,
       "invalidExpressionValue");
 
-  // extension faults
-  public static final QName FAULT_INVOCATION_FAILURE = new QName(NS_VENDOR, "invocationFailure");
-
-  // definition descriptor
-  public static final String ELEM_IMPORTS = "imports";
-  public static final String ELEM_WSDL = "wsdl";
-  public static final String ELEM_XML_SCHEMA = "schema";
-
-  // deployment descriptor
-  public static final String ELEM_BPEL_DEPLOYMENT = "bpelDeployment";
+  // application descriptor
+  public static final String ELEM_BPEL_APPLICATION = "bpelApplication";
   public static final String ATTR_VERSION = "version";
   public static final String ELEM_SCOPES = "scopes";
   public static final String ELEM_MY_ROLE = "myRole";
@@ -217,6 +209,11 @@
   public static final String ATTR_CONTEXT_URL = "contextUrl";
   public static final String ELEM_DEFINITION = "definition";
 
+  // definition descriptor
+  public static final String ELEM_IMPORTS = "imports";
+  public static final String ELEM_WSDL = "wsdl";
+  public static final String ELEM_XML_SCHEMA = "schema";
+
   // xml variable initialization mark
   public static final String ATTR_INITIALIZED = "initialized";
   public static final String ATTR_NIL = "nil";
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelParseException.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelParseException.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelParseException.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelParseException.java	2009-02-06 09:17:23.000000000 +0100
@@ -19,9 +19,9 @@
 import org.jbpm.bpel.BpelException;
 
 /**
- * Lists the problems detected in the course of reading a BPEL document.
+ * Wraps a list of problems detected in the course of reading a BPEL document.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:16:30 $
+ * @version $Revision: 1800 $ $Date: 2007/03/03 11:11:11 $
  */
 public class BpelParseException extends BpelException {
 
@@ -30,7 +30,7 @@
   private static final long serialVersionUID = 1L;
 
   public BpelParseException(List problems) {
-    super(problems.size() + " problem(s) found");
+    super("Problems (" + problems.size() + " item[s])");
     this.problems = problems;
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/BpelReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -75,7 +75,7 @@
 import org.jbpm.bpel.integration.def.ReceiveAction;
 import org.jbpm.bpel.integration.def.Correlation.Initiate;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.ElementType;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.SchemaType;
@@ -99,7 +99,7 @@
  * {@linkplain BpelProcessDefinition process definition}.
  * @author Juan Cantú
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:16:30 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class BpelReader {
 
@@ -258,7 +258,7 @@
     read(processDefinition, processElem, wsdlLocator);
   }
 
-  protected void read(BpelProcessDefinition processDefinition, Element processElem,
+  protected void read(BpelProcessDefinition process, Element processElem,
       ProcessWsdlLocator wsdlLocator) {
     // see if the bpel document requires updating
     if (BpelConstants.NS_BPEL_1_1.equals(processElem.getNamespaceURI())) {
@@ -275,11 +275,11 @@
             resultDocument));
         processElem = resultDocument.getDocumentElement();
 
-        log.debug("upgraded bpel document: " + processDefinition.getLocation());
+        log.debug("upgraded bpel document: " + process.getLocation());
       }
       catch (TransformerException e) {
         Problem problem = new Problem(Problem.LEVEL_ERROR, "bpel upgrade failed", e);
-        problem.setResource(processDefinition.getLocation());
+        problem.setResource(process.getLocation());
         problemHandler.add(problem);
       }
 
@@ -289,10 +289,10 @@
     }
 
     // read attributes in the process element
-    readProcessAttributes(processElem, processDefinition);
+    readProcessAttributes(processElem, process);
 
     // read imported documents
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = process.getImportDefinition();
     readImports(processElem, importDefinition, wsdlLocator);
 
     // halt on import parse errors
@@ -304,8 +304,8 @@
       registerPropertyAliases(importDefinition);
 
       // finally read the global scope
-      readScope(processElem, processDefinition.getGlobalScope());
-      log.debug("read bpel document: " + processDefinition.getLocation());
+      readScope(processElem, process.getGlobalScope());
+      log.info("read bpel document: " + process.getLocation());
     }
     catch (BpelException e) {
       problemHandler.add(new Problem(Problem.LEVEL_ERROR, "bpel process is invalid", e));
@@ -320,94 +320,83 @@
   }
 
   public void registerPropertyAliases(ImportDefinition importDefinition) {
+    // get the process-level query language
+    BpelProcessDefinition process = (BpelProcessDefinition) importDefinition.getProcessDefinition();
+    String queryLanguage = process.getQueryLanguage();
+
     // register property aliases in each wsdl document
     List imports = importDefinition.getImports();
     for (int i = 0, n = imports.size(); i < n; i++) {
       Import _import = (Import) imports.get(i);
       if (Import.Type.WSDL.equals(_import.getType()))
-        registerPropertyAliases(importDefinition, (Definition) _import.getDocument());
+        registerPropertyAliases(importDefinition, (Definition) _import.getDocument(), queryLanguage);
     }
   }
 
-  private void registerPropertyAliases(ImportDefinition importDefinition, Definition wsdlDef) {
-    BpelProcessDefinition processDefinition = (BpelProcessDefinition) importDefinition.getProcessDefinition();
-
+  private void registerPropertyAliases(ImportDefinition importDefinition, Definition wsdlDef,
+      String queryLanguage) {
+    BpelProcessDefinition process = (BpelProcessDefinition) importDefinition.getProcessDefinition();
     // first deal with local extensibility elements
-    for (Iterator i = WsdlUtil.getExtensions(wsdlDef.getExtensibilityElements(),
-        WsdlConstants.Q_PROPERTY_ALIAS); i.hasNext();) {
-      PropertyAlias alias = (PropertyAlias) i.next();
-
-      // property
+    Iterator aliasIt = WsdlUtil.getExtensions(wsdlDef.getExtensibilityElements(),
+        WsdlConstants.Q_PROPERTY_ALIAS);
+    while (aliasIt.hasNext()) {
+      PropertyAlias alias = (PropertyAlias) aliasIt.next();
       Property property = alias.getProperty();
-      if (!property.isUndefined())
-        importDefinition.addProperty(property);
-      else {
-        Problem problem = new Problem(Problem.LEVEL_ERROR, "property not found: "
-            + property.getQName());
+      Message message = alias.getMessage();
+      // check the property definition exists
+      if (property.isUndefined()) {
+        Problem problem = new Problem(Problem.LEVEL_ERROR, "aliasing property not found: property="
+            + property.getQName()
+            + ", message="
+            + message.getQName());
         problem.setResource(wsdlDef.getDocumentBaseURI());
         problemHandler.add(problem);
       }
+      else
+        importDefinition.addProperty(property);
 
-      // message
-      Message message = alias.getMessage();
-      if (message != null) {
         // check the message definition exists
-        if (!message.isUndefined()) {
-          // register property alias in message type
-          MessageType type = importDefinition.getMessageType(message.getQName());
-          type.addPropertyAlias(alias);
-        }
-        else {
-          Problem problem = new Problem(Problem.LEVEL_ERROR, "message not found: "
-              + message.getQName());
+      if (message.isUndefined()) {
+        Problem problem = new Problem(Problem.LEVEL_ERROR, "aliased message not found: "
+            + "message="
+            + message.getQName()
+            + ", property="
+            + property.getQName());
           problem.setResource(wsdlDef.getDocumentBaseURI());
           problemHandler.add(problem);
         }
-      }
-      else {
-        QName element = alias.getElement();
-        if (element != null)
-          importDefinition.getElementType(element).addPropertyAlias(alias);
         else {
-          QName type = alias.getType();
-          if (type != null)
-            importDefinition.getSchemaType(type).addPropertyAlias(alias);
-          else {
-            Problem problem = new Problem(Problem.LEVEL_ERROR,
-                "neither message, element nor type specified in property alias");
-            problem.setResource(wsdlDef.getDocumentBaseURI());
-            problemHandler.add(problem);
-          }
-        }
+        // register property alias in message type
+        MessageType type = importDefinition.getMessageType(message.getQName());
+        type.addPropertyAlias(alias);
       }
-
-      // query
-      PropertyQuery query = alias.getQuery();
+      // parse query, if any
+      Query query = alias.getQuery();
       if (query != null) {
-        // namespaces
-        query.setNamespaces(processDefinition.addNamespaces(query.getNamespaces()));
-        // language
         if (query.getLanguage() == null)
-          query.setLanguage(processDefinition.getQueryLanguage());
-        // syntax
+          query.setLanguage(queryLanguage);
+        query.setNamespaces(process.addNamespaces(query.getNamespaces()));
         try {
           query.parse();
         }
         catch (BpelException e) {
-          Problem problem = new Problem(Problem.LEVEL_ERROR, "could not parse query: "
-              + query.getText(), e);
+          Problem problem = new Problem(Problem.LEVEL_ERROR,
+              "could not parse aliased location: property="
+                  + property.getQName()
+                  + ", message="
+                  + message.getQName(), e);
           problem.setResource(wsdlDef.getDocumentBaseURI());
           problemHandler.add(problem);
         }
       }
     }
-
-    // deal with imported definitions
-    for (Iterator l = wsdlDef.getImports().values().iterator(); l.hasNext();) {
-      List imports = (List) l.next();
+    // now deal with imported definitions
+    Iterator importsIt = wsdlDef.getImports().values().iterator();
+    while (importsIt.hasNext()) {
+      List imports = (List) importsIt.next();
       for (int i = 0, n = imports.size(); i < n; i++) {
-        javax.wsdl.Import _import = (javax.wsdl.Import) imports.get(i);
-        registerPropertyAliases(importDefinition, _import.getDefinition());
+        javax.wsdl.Import imp = (javax.wsdl.Import) imports.get(i);
+        registerPropertyAliases(importDefinition, imp.getDefinition(), queryLanguage);
       }
     }
   }
@@ -415,19 +404,17 @@
   // process properties
   // //////////////////////////////////////////////////////////////
 
-  protected void readProcessAttributes(Element processElem, BpelProcessDefinition processDefinition) {
+  protected void readProcessAttributes(Element processElem, BpelProcessDefinition process) {
     // name & namespace
-    processDefinition.setName(processElem.getAttribute(BpelConstants.ATTR_NAME));
-    processDefinition.setTargetNamespace(processElem.getAttribute(BpelConstants.ATTR_TARGET_NAMESPACE));
+    process.setName(processElem.getAttribute(BpelConstants.ATTR_NAME));
+    process.setTargetNamespace(processElem.getAttribute(BpelConstants.ATTR_TARGET_NAMESPACE));
     // query & expression language
-    processDefinition.setQueryLanguage(XmlUtil.getAttribute(processElem,
-        BpelConstants.ATTR_QUERY_LANGUAGE));
-    processDefinition.setExpressionLanguage(XmlUtil.getAttribute(processElem,
+    process.setQueryLanguage(XmlUtil.getAttribute(processElem, BpelConstants.ATTR_QUERY_LANGUAGE));
+    process.setExpressionLanguage(XmlUtil.getAttribute(processElem,
         BpelConstants.ATTR_EXPRESSION_LANGUAGE));
     // suppress join failure
     Attr suppressAttr = processElem.getAttributeNode(BpelConstants.ATTR_SUPPRESS_JOIN_FAILURE);
-    processDefinition.getGlobalScope().setSuppressJoinFailure(
-        readTBoolean(suppressAttr, Boolean.FALSE));
+    process.getGlobalScope().setSuppressJoinFailure(readTBoolean(suppressAttr, Boolean.FALSE));
   }
 
   protected void readImports(Element processElem, ImportDefinition importDefinition,
@@ -517,7 +504,7 @@
       // read imported WSDL document
       WSDLReader reader = WsdlUtil.getFactory().newWSDLReader();
       definition = reader.readWSDL(wsdlLocator);
-      log.debug("read wsdl document: " + location);
+      log.info("read wsdl document: " + location);
     }
     catch (WSDLException e) {
       problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not read wsdl document", e));
@@ -945,8 +932,8 @@
           property.setQName(propertyName);
         }
         catch (WSDLException e) {
-          // should not happen
-          throw new AssertionError(e);
+          // cannot happen
+          throw new Error(e);
         }
       }
       set.addProperty(property);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.readers.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.readers.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.readers.xml	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.readers.xml	2009-02-06 09:17:23.000000000 +0100
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <catalogReaders>
-  <catalogReader name="urlCatalog" class="org.jbpm.bpel.xml.UrlCatalogReader" />
-  <catalogReader name="centralCatalog" class="org.jbpm.bpel.xml.CentralCatalogReader" />
+  <catalogReader name="urlCatalog" class="org.jbpm.bpel.xml.URLCatalogReader" />
 </catalogReaders>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.writers.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.writers.xml
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.writers.xml	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/catalog.writers.xml	2009-02-06 09:17:23.000000000 +0100
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <catalogWriters>
-  <catalogWriter catalog="org.jbpm.bpel.integration.catalog.UrlCatalog"
-    class="org.jbpm.bpel.xml.UrlCatalogWriter" />
-  <catalogWriter catalog="org.jbpm.bpel.integration.catalog.CentralCatalog"
-    class="org.jbpm.bpel.xml.CentralCatalogWriter" />
+  <catalogWriter catalog="org.jbpm.bpel.integration.catalog.URLCatalog"
+    class="org.jbpm.bpel.xml.URLCatalogWriter" />
 </catalogWriters>
\ No newline at end of file
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: CentralCatalogReader.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: CentralCatalogWriter.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 /**
  * Translates <code>bpel:compensate</code> elements to {@link Compensate} instances.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:16:30 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 19:42:16 $
  */
 public class CompensateReader extends ActivityReader {
 
@@ -37,8 +37,8 @@
       activityElem.setAttribute(BpelConstants.ATTR_TARGET, activityElem.getAttribute("scope"));
       activityElem.removeAttribute("scope");
       // read as compensateScope
-      ActivityReader compensateScopeReader = bpelReader.getActivityReader(BpelConstants.ELEM_COMPENSATE_SCOPE);
-      return compensateScopeReader.read(activityElem, parent);
+      ActivityReader compScopeReader = bpelReader.getActivityReader(BpelConstants.ELEM_COMPENSATE_SCOPE);
+      return compScopeReader.read(activityElem, parent);
     }
 
     Compensate compensate = new Compensate();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateScopeReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateScopeReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateScopeReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/CompensateScopeReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:16:30 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class CompensateScopeReader extends ActivityReader {
 
@@ -42,9 +42,7 @@
     Scope target = compensateScope.getScope().findNestedScope(targetName);
     if (target != null)
       compensateScope.setTarget(target);
-    else {
-      bpelReader.getProblemHandler()
-          .add(new ParseProblem("target scope not found", compensateElem));
-    }
+    else
+      bpelReader.getProblemHandler().add(new ParseProblem("target not found", compensateElem));
   }
 }
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml: DefDescriptorReader.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: DefinitionDescriptorReader.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: DeploymentDescriptorReader.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: DeploymentDescriptorWriter.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/EmptyReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/EmptyReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/EmptyReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/EmptyReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class EmptyReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorHandlerAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorHandlerAdapter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorHandlerAdapter.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorHandlerAdapter.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 /**
  * Adapts a problem handler to the SAX error handling interface.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/05/24 13:48:43 $
+ * @version $Revision: 1800 $ $Date: 2007/05/24 13:48:43 $
  */
 class ErrorHandlerAdapter implements ErrorHandler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorListenerAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorListenerAdapter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorListenerAdapter.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ErrorListenerAdapter.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 /**
  * Adapts a problem handler to the TrAX error listening interface.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/05/24 13:48:43 $
+ * @version $Revision: 1800 $ $Date: 2007/05/24 13:48:43 $
  */
 class ErrorListenerAdapter implements ErrorListener {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ExitReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ExitReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ExitReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ExitReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class ExitReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/FlowReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/FlowReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/FlowReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/FlowReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,10 +25,10 @@
 import org.jbpm.bpel.xml.util.XmlUtil;
 
 /**
- * Encapsulates the logic to create and connect process elements that make up the <i>flow</i>
- * structure.
+ * Encapsulates the logic to create and connect process elements that make up
+ * the <i>flow</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:08 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class FlowReader extends ActivityReader {
 
@@ -47,16 +47,19 @@
     Element linksElem = XmlUtil.getElement(flowElem, BpelConstants.NS_BPEL,
         BpelConstants.ELEM_LINKS);
     if (linksElem != null) {
-      for (Iterator i = XmlUtil.getElements(linksElem, BpelConstants.NS_BPEL,
-          BpelConstants.ELEM_LINK); i.hasNext();) {
-        Element linkElem = (Element) i.next();
-        flow.addLink(new LinkDefinition(linkElem.getAttribute(BpelConstants.ATTR_NAME)));
+      Iterator linkElemIt = XmlUtil.getElements(linksElem,
+          BpelConstants.NS_BPEL, BpelConstants.ELEM_LINK);
+      while (linkElemIt.hasNext()) {
+        Element linkElem = (Element) linkElemIt.next();
+        flow.addLink(new LinkDefinition(
+            linkElem.getAttribute(BpelConstants.ATTR_NAME)));
       }
     }
 
     // activities
-    for (Iterator i = bpelReader.getActivityElements(flowElem); i.hasNext();) {
-      Element activityElem = (Element) i.next();
+    Iterator activityElemIt = bpelReader.getActivityElements(flowElem);
+    while (activityElemIt.hasNext()) {
+      Element activityElem = (Element) activityElemIt.next();
       bpelReader.readActivity(activityElem, flow);
     }
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/IfReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/IfReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/IfReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/IfReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -28,7 +28,7 @@
  * Encapsulates the logic to create and connect process elements that make up
  * the <i>if</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class IfReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/InvokeReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/InvokeReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/InvokeReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/InvokeReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -38,7 +38,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:36:13 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:36:13 $
  */
 public class InvokeReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ParseProblem.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ParseProblem.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ParseProblem.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ParseProblem.java	2009-02-06 09:17:23.000000000 +0100
@@ -63,6 +63,6 @@
   }
 
   public String toString() {
-    return super.toString() + " at " + location;
+    return super.toString() + " [" + location + "]";
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/PickReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/PickReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/PickReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/PickReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class PickReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCollector.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCollector.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCollector.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCollector.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,7 +25,7 @@
  * addition to implementing the interface method, this class provides access to
  * the list that is used internally to store the problems.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/05/24 13:48:43 $
+ * @version $Revision: 1800 $ $Date: 2007/05/24 13:48:43 $
  */
 public class ProblemCollector extends AbstractProblemHandler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCounter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCounter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCounter.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemCounter.java	2009-02-06 09:17:23.000000000 +0100
@@ -20,7 +20,7 @@
  * An implementation of the {@link ProblemHandler} interface that simply counts
  * the reported problems.
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/05/24 13:48:43 $
+ * @version $Revision: 1800 $ $Date: 2007/05/24 13:48:43 $
  */
 public class ProblemCounter extends AbstractProblemHandler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemHandler.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemHandler.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemHandler.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProblemHandler.java	2009-02-06 09:17:23.000000000 +0100
@@ -24,10 +24,10 @@
  * Problem handlers help XML document readers report errors and warnings to its clients.
  * @see BpelReader
  * @see ProcessWsdlLocator
- * @see DefinitionDescriptorReader
- * @see DeploymentDescriptorReader
+ * @see DefDescriptorReader
+ * @see AppDescriptorReader
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:37 $
  */
 public interface ProblemHandler {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessArchiveWsdlLocator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessArchiveWsdlLocator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessArchiveWsdlLocator.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessArchiveWsdlLocator.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/05/03 12:25:53 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:53 $
  */
 public class ProcessArchiveWsdlLocator extends ProcessWsdlLocator {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessWsdlLocator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessWsdlLocator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessWsdlLocator.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ProcessWsdlLocator.java	2009-02-06 09:17:23.000000000 +0100
@@ -37,7 +37,7 @@
 import org.xml.sax.SAXException;
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.par.DefinitionDescriptor;
+import org.jbpm.bpel.par.DefDescriptor;
 import org.jbpm.bpel.wsdl.xml.WsdlConstants;
 import org.jbpm.bpel.xml.util.XmlUtil;
 import org.jbpm.jpdl.xml.Problem;
@@ -45,9 +45,9 @@
 /**
  * Allows the {@linkplain BpelReader BPEL reader} to retrieve descriptions recursively imported by
  * the WSDL documents referenced in the {@linkplain BpelProcessDefinition process definition} or in
- * the {@linkplain DefinitionDescriptor definition descriptor}.
+ * the {@linkplain DefDescriptor definition descriptor}.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:07 $
  */
 public class ProcessWsdlLocator implements WSDLLocator {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ReceiveReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ReceiveReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ReceiveReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ReceiveReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class ReceiveReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/RepeatUntilReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/RepeatUntilReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/RepeatUntilReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/RepeatUntilReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -18,37 +18,25 @@
 
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.CompositeActivity;
-import org.jbpm.bpel.graph.struct.RepeatUntil;
-import org.jbpm.bpel.xml.util.XmlUtil;
+import org.jbpm.bpel.graph.struct.While;
 
 /**
- * Encapsulates the logic to create and connect process elements that constitute the <i>repeatUntil</i>
- * structure.
+ * Encapsulates the logic to create and connect process elements that constitute
+ * the <i>repeatUntil</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:33 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
-public class RepeatUntilReader extends ActivityReader {
+public class RepeatUntilReader extends WhileReader {
 
   /**
    * Loads the activity properties from the given DOM element
    */
   public Activity read(Element activityElem, CompositeActivity parent) {
-    RepeatUntil repeatUntil = new RepeatUntil();
-    readStandardProperties(activityElem, repeatUntil, parent);
-    readRepeatUntil(activityElem, repeatUntil);
-    return repeatUntil;
-  }
-
-  public void readRepeatUntil(Element repeatUntilElem, RepeatUntil repeatUntil) {
-    validateNonInitial(repeatUntilElem, repeatUntil);
-
-    // activity
-    Element activityElem = bpelReader.getActivityElement(repeatUntilElem);
-    bpelReader.readActivity(activityElem, repeatUntil);
+    While _while = new While();
+    _while.setEvaluateFirst(false);
 
-    // condition
-    Element conditionElem = XmlUtil.getElement(repeatUntilElem, BpelConstants.NS_BPEL,
-        BpelConstants.ELEM_CONDITION);
-    repeatUntil.setCondition(bpelReader.readExpression(conditionElem, repeatUntil));
+    readStandardProperties(activityElem, _while, parent);
+    readWhile(activityElem, _while);
+    return _while;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ReplyReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ReplyReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ReplyReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ReplyReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -35,7 +35,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class ReplyReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/RethrowReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/RethrowReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/RethrowReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/RethrowReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class RethrowReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ScopeReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ScopeReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ScopeReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ScopeReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class ScopeReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/SequenceReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/SequenceReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/SequenceReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/SequenceReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -26,7 +26,7 @@
  * Encapsulates the logic to create and connect process elements that make up
  * the <i>sequence</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class SequenceReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
  * Contract that readers must fulfill in order to convert {@linkplain Element DOM elements} to
  * {@linkplain ServiceCatalog service catalogs}.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:58 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:58 $
  */
 public interface ServiceCatalogReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogWriter.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogWriter.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogWriter.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ServiceCatalogWriter.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
  * Contract that readers must fulfill in order to convert
  * {@linkplain ServiceCatalog service catalogs} to {@linkplain Element DOM elements}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:58 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:58 $
  */
 public interface ServiceCatalogWriter {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/SwitchReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/SwitchReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/SwitchReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/SwitchReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -28,7 +28,7 @@
  * Encapsulates the logic to create and connect process elements that make up
  * the <i>switch</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class SwitchReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ThrowReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ThrowReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ThrowReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ThrowReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class ThrowReader extends ActivityReader {
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: UrlCatalogReader.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml: URLCatalogReader.java
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml: UrlCatalogWriter.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml: URLCatalogWriter.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_2_0.xsd jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_2_0.xsd
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_2_0.xsd	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_2_0.xsd	2009-02-06 09:17:23.000000000 +0100
@@ -1,18 +1,122 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-	Copyright (c) OASIS Open 2003-2007. All Rights Reserved.
--->
-<xsd:schema targetNamespace="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
-			xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+<xsd:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
+			xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
 			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 			elementFormDefault="qualified"
 			blockDefault="#all">
 	
+	<!-- SCHEMA TODO: the namespace of this schema needs to be finalized --> 
+	
 	<xsd:annotation>
 		<xsd:documentation>
-			Schema for Executable Process for WS-BPEL 2.0
-			OASIS Standard
-			11th April, 2007
+			BPEL4WS Schema
+			2004-03-24: YIU-OSS: Alex Yiu: Extracted from wsbpel-specification-draft.doc (Rev 1.22 - Modified on 24 March, 2004)
+			2004-03-24: YIU-OSS: Alex Yiu: Updated targetNamespace with "2004/03"
+			2004-03-24: YIU-OSS: Alex Yiu: fixed a number of syntax typos (e.g remove complexContent)
+			2004-06-26: YIU-OSS: Alex Yiu: Using XMLSpy to do a re-indent
+			2004-06-28: YIU-OSS: Alex Yiu: Applying Issue 94 resolution by merging tActivityContainer and tActivityOrCompensateContainer
+			2004-06-28: YIU-OSS: Alex Yiu: Applying Issue 75 resolution: by allowing partnerLinks declaration within a scope
+			2004-06-28: YIU-OSS: Alex Yiu: Applying Issue 37 resolution: "initiate" attribute becomes a tri-value switch instead of a boolean switch
+			2004-07-19: YIU-OSS: Alex Yiu: Adding "service-ref" element and its definition for issue 34
+			2004-07-21: YIU-OSS: Alex Yiu: Applying Issue 43 and 44
+			2004-09-01: YIU-OSS: Alex Yiu: Applying Issue 146: Making tVariable Extensible
+			2004-09-01: YIU-OSS: Alex Yiu: Applying Issue 149: Adding formal documentation support to BPEL
+			2004-09-01: YIU-OSS: Alex Yiu: A bunch of misc cleanup for Issue 13
+			2004-10-20: YIU-OSS: Alex Yiu: Fixing schema problems discovered by Dieter Koenig
+			2004-10-20: YIU-OSS: Alex Yiu: Applying Issue 123
+			2004-10-20: YIU-OSS: Alex Yiu: Applying some non-normative changes suggested by Paul Brown
+			2004-11-30: YIU-OSS: Alex Yiu: Applying Issue 152 and 165
+			2004-12-02: YIU-OSS: Alex Yiu: Applying Issue 135 (TerminationHandler changes from Satish)
+			2005-04-02: curbera-oss: Paco Curbera: Applying Issue 93
+			2005-04-24: curbera-oss: Paco Curbera: Applying Issue 112
+			2005-05-01: YIU-OSS: Alex Yiu: Fixing XSD syntax typo for Issue 112
+			2005-05-02: YIU-OSS: Alex Yiu: Reapplying XSD syntax changes lost during CVS Migration:
+					(a) Moving terminationHandler from process level to scope level
+					(b) removing compensationHandler from the process level
+					(c) renaming an attribute of "scope" from "variableAccessSerializable" to "isolated"
+					(d) removing "enableInstanceCompensation" attribute from XSD
+					(e) removing "partner" and "partners" element
+			2005-05-06: Rev 1.18: Assaf Arkin: Applying Issue 160, added validate activity, validate attribute to assign, simple type tNCNames
+			2005-06-24: Rev 1.19: YIU-OSS: Alex Yiu: fixing minor typo in the Rev 1.18
+			2005-06-28: Rev 1.20: YIU-OSS: Alex Yiu: applying Issue 140 - adding "repeatUntil" activity
+			2005-07-25: Rev 1.21: YIU-OSS: Alex Yiu: Applying Issue 103, 199, 203 and Issue 196
+			2005-08-14: Rev 1.22: curbera-oss: Paco Curbera: Applying Issue 139.1, 147
+			2005-08-20: Rev 1.23: assaf-oss: Assaf Arkin: fixed issues 202, 206, 209, 214 and 132. (this comment is added by alex)
+			2005-08-29: Rev 1.24: YIU-OSS: Alex Yiu: rectify the definition of "forEach" (issue 147) according to the issue 204 by adding "scope" (note: we still need to apply the rest of issue 204.
+			2005-08-30: Rev 1.25: YIU-OSS: Alex Yiu:
+				Apply XSD changes for Issue 190, Issue 136, Issue 213.
+				Apply XSD Changes for Issue 111 and 11.1
+				Apply XSD Changes for Issue 192 by merging wsbpel_msgprop.xsd into this wsbpel_main.xsd
+				XSD Changes in Issue 145 was missing. Re-apply it here.
+			2005-10-15: Rev 1.26: YIU-OSS: Alex Yiu:
+				Apply XSD Changes for issue 92
+			2005-12-05: Rev 1.27: Assaf: In tValidate inlined type for variables attribute.
+			2005-12-11: Rev 1.28: YIU-OSS: Alex Yiu:
+				Fixing XSD to allow: (a) other URI in importType (b) repeatEvery to be used standalone
+				Applied Issue 204 and 6.2
+				2006-02-14: Rev 1.29: Alex Alves: Issue 110
+			2006-02-21: Rev 1.30: YIU-OSS: Alex Yiu:
+				Apply Issue 217: changing "compensate" activity and adding "compensateScope" activity
+			2006-03-07: Rev 1.31: Danny van der Rijn: Action Item 21:
+				Remove WSDL namespace declaration and import
+			2006-03-20: Rev 1.32: YIU-OSS: Alex Yiu: 
+				Making namespace and location optional in tImport
+				(Corresponding to action item #26)
+			2006-03-21: Rev 1.33: YIU-OSS: Alex Yiu: 
+				Removing "iterator" element from "forEach" 
+			2006-03-23: Rev 1.34: YIU-OSS: Alex Yiu:
+				Adding keepSrcElementName to copy
+			2006-04-05: Rev 1.35: YIU-OSS: Alex Yiu:
+				Applying Issue 248: restricting "any" under "extensionActivity" 
+				to "##other" namespace
+			2006-05-02: Rev 1.36: YIU-OSS: Alex Yiu:
+				Applying Issue 237 (dropping "then" wrapper element within "if")
+				Adding "messageExchanges" and "messageExchange" 
+			2006-07-26: Rev 1.37: YIU-OSS: Alex Yiu:
+				Fixing "onEvent" syntax (pointed out by Ron Ten-Hove)
+			2006-07-26: Rev 1.38: YIU-OSS: Alex Yiu:
+				Applying Issue 295
+			2006-07-26: Rev 1.39: YIU-OSS: Alex Yiu:
+				Converting most element declaration from LED to GED 
+			2006-07-26: Rev 1.40: YIU-OSS: Alex Yiu:
+				Apply issue 257, 259, 268, 269 and some misc fix
+			2006-07-27: Rev 1.41: Thomas Schulze:
+				Replaced prefix "bpws" with "bpel"
+				Removed attribute "abstractProcess" from "tProcess"
+				Apply issue 282
+			2006-07-28: Rev 1.42: Alex Yiu
+				Refactor tOnMsgCommon
+				Clarify and refactor tActivityOrCompensateContainer concept 
+				into tFaultHandlerBase and tCompensationAllowedActivityContainer
+			2006-07-28: Rev 1.43: Alex Yiu
+				Re-order element declaration for cosmetic reason
+			2006-07-28: Rev 1.44: Alex Yiu
+				Apply Issue a portion of Issue 294.1: 
+				Spilt "service-ref" into one schema 
+				and "property" and "propertyAlias" into another schema
+			2006-07-31: Rev 1.45: Alex Yiu
+				Rearranging namespace and prefix 
+				to prepare Abstract+Executable BPEL refactoring
+			2006-08-01: Rev 1.46: Alex Yiu
+				Make all types defined in this XSD named instead of anonymous
+			2006-08-02: Rev 1.47: Thomas Schulze
+				Done some formatting / reordering.
+				Remove types tFaultHandlerBase, tCompensationAllowedActivityContainer,
+				tCompensationHandler and tTerminationHandler.
+				Replace all references to the types above with tActivityContainer.
+				Added blockDefault to block restriction, extension and substitution.
+				Adapted comments.
+				Applied Issue 305 and AI 113.
+			2006-08-03: Rev 1.48: Alex Yiu
+				Add minLength restriction to BPELVariableNames type
+				Make two cosmetic to prepare the spinning off of Abstract BPEL Schema:
+				** Add minOccurs="1" to element declaration which is using default minOccurs value
+				** For XSD simple type being used in an attribute declaration, the prefix is
+				changed from "xsd" to "simple". 
+				Additional note: We may need to evaluate this blockDefault change comprehensively
+			2006-08-07: Rev 1.49: Thomas Schulze
+				Minor formatting changes.
+				Removed prefix "simple:", replaced with "xsd:".
 		</xsd:documentation>
 	</xsd:annotation>
 	
@@ -102,6 +206,9 @@
 			<xsd:element ref="rethrow"/>
 			<xsd:element ref="scope"/>
 			<xsd:element ref="sequence"/>
+      <!-- jBPM BPEL addition (begin) -->
+      <xsd:element ref="switch"/>
+      <!-- jBPM BPEL addition (end) -->
 			<xsd:element ref="throw"/>
 			<xsd:element ref="validate"/>
 			<xsd:element ref="wait"/>
@@ -160,7 +267,7 @@
 				<xsd:attribute name="partnerLinkType" type="xsd:QName" use="required"/>
 				<xsd:attribute name="myRole" type="xsd:NCName"/>
 				<xsd:attribute name="partnerRole" type="xsd:NCName"/>
-				<xsd:attribute name="initializePartnerRole" type="tBoolean"/>
+				<xsd:attribute name="initializePartnerRole" type="tBoolean" default="no"/>
 			</xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>
@@ -239,13 +346,8 @@
 	</xsd:complexType>
 	
 	<xsd:simpleType name="QNames">
-		<xsd:restriction>
-			<xsd:simpleType>
 				<xsd:list itemType="xsd:QName"/>
 			</xsd:simpleType>
-			<xsd:minLength value="1"/>
-		</xsd:restriction>
-	</xsd:simpleType>
 	
 	<xsd:element name="faultHandlers" type="tFaultHandlers"/>
 	<xsd:complexType name="tFaultHandlers">
@@ -301,8 +403,8 @@
 	<xsd:complexType name="tEventHandlers">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element onAlarm needs to be a Local Element Declaration, 
-				because there is another onAlarm element defined for the pick activity.
+				Child element onAlarm needs to be a LED, because there is another
+				onAlarm element defined for the pick activity.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -331,8 +433,8 @@
 	<xsd:complexType name="tOnMsgCommon">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
-				because there is another correlations element defined for the invoke activity.
+				Child element correlations needs to be a LED, because there is another
+				correlations element defined for the invoke activity.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -353,8 +455,8 @@
 	<xsd:complexType name="tCorrelations">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlation needs to be a Local Element Declaration, 
-				because there is another correlation element defined for the invoke activity.
+				Child element correlation needs to be a LED, because there is another
+				correlation element defined for the invoke activity.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -498,7 +600,6 @@
 					<xsd:element ref="to" minOccurs="1"/>
 				</xsd:sequence>
 				<xsd:attribute name="keepSrcElementName" type="tBoolean" use="optional" default="no"/>
-				<xsd:attribute name="ignoreMissingFromData" type="tBoolean" use="optional" default="no"/>
 			</xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>
@@ -519,6 +620,8 @@
 		<xsd:attribute name="property" type="xsd:QName"/>
 		<xsd:attribute name="partnerLink" type="xsd:NCName"/>
 		<xsd:attribute name="endpointReference" type="tRoles"/>
+		<!-- SCHEMA-TODO: opaque is an abstract process only construct - remove when splitting up the schemas -->
+		<xsd:attribute name="opaque" type="tBoolean"/>
 		<xsd:anyAttribute namespace="##other" processContents="lax"/>
 	</xsd:complexType>
 	
@@ -570,7 +673,9 @@
 	<xsd:element name="compensate" type="tCompensate"/>
 	<xsd:complexType name="tCompensate">
 		<xsd:complexContent>
-			<xsd:extension base="tActivity"/>
+	    <xsd:extension base="tActivity">
+	      <xsd:attribute name="scope" type="xsd:NCName"></xsd:attribute>
+	    </xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>
 	
@@ -661,7 +766,7 @@
 		<xsd:complexContent>
 			<xsd:extension base="tExtensibleElements">
 				<xsd:sequence>
-					<xsd:element ref="branches" minOccurs="0"/>
+					<xsd:element ref="branches" minOccurs="1"/>
 				</xsd:sequence>
 			</xsd:extension>
 		</xsd:complexContent>
@@ -708,8 +813,8 @@
 	<xsd:complexType name="tInvoke">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
-				because there is another correlations element defined for the non-invoke activities.
+				Child element correlations needs to be a LED, because there is another
+				correlations element defined for the non-invoke activities.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -734,8 +839,8 @@
 	<xsd:complexType name="tCorrelationsWithPattern">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlation needs to be a Local Element Declaration, 
-				because there is another correlation element defined for the non-invoke activities.
+				Child element correlation needs to be a LED, because there is another
+				correlation element defined for the non-invoke activities.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -760,62 +865,46 @@
 			<xsd:enumeration value="request"/>
 			<xsd:enumeration value="response"/>
 			<xsd:enumeration value="request-response"/>
-      <!-- Eclipse compatibility (begin) -->
+      <!-- jBPM BPEL addition (begin) -->
       <xsd:enumeration value="out"/>
       <xsd:enumeration value="in"/>
       <xsd:enumeration value="out-in"/>
-      <!-- Eclipse compatibility (end) -->
+      <!-- jBPM BPEL addition (end) -->
 		</xsd:restriction>
 	</xsd:simpleType>
 	
 	<xsd:element name="fromParts" type="tFromParts"/>
 	<xsd:complexType name="tFromParts">
-		<xsd:complexContent>
-			<xsd:extension base="tExtensibleElements">
 				<xsd:sequence>
 					<xsd:element ref="fromPart" minOccurs="1" maxOccurs="unbounded"/>
 				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
 	</xsd:complexType>
 	
 	<xsd:element name="fromPart" type="tFromPart"/>
 	<xsd:complexType name="tFromPart">
-		<xsd:complexContent>
-			<xsd:extension base="tExtensibleElements">
 				<xsd:attribute name="part" type="xsd:NCName" use="required"/>
 				<xsd:attribute name="toVariable" type="BPELVariableName" use="required"/>
-			</xsd:extension>
-		</xsd:complexContent>
 	</xsd:complexType>
 	
 	<xsd:element name="toParts" type="tToParts"/>
 	<xsd:complexType name="tToParts">
-		<xsd:complexContent>
-			<xsd:extension base="tExtensibleElements">
 				<xsd:sequence>
 					<xsd:element ref="toPart" minOccurs="1" maxOccurs="unbounded"/>
 				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
 	</xsd:complexType>
 	
 	<xsd:element name="toPart" type="tToPart"/>
 	<xsd:complexType name="tToPart">
-		<xsd:complexContent>
-			<xsd:extension base="tExtensibleElements">
 				<xsd:attribute name="part" type="xsd:NCName" use="required"/>
 				<xsd:attribute name="fromVariable" type="BPELVariableName" use="required"/>
-			</xsd:extension>
-		</xsd:complexContent>
 	</xsd:complexType>
 	
 	<xsd:element name="pick" type="tPick"/>
 	<xsd:complexType name="tPick">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element onAlarm needs to be a Local Element Declaration, 
-				because there is another onAlarm element defined for event handlers.
+				Child element onAlarm needs to be a LED, because there is another
+				onAlarm element defined for event handlers.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -855,8 +944,8 @@
 	<xsd:complexType name="tReceive">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
-				because there is another correlations element defined for the invoke activity.
+				Child element correlations needs to be a LED, because there is another
+				correlations element defined for the invoke activity.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -891,8 +980,8 @@
 	<xsd:complexType name="tReply">
 		<xsd:annotation>
 			<xsd:documentation>
-				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
-				because there is another correlations element defined for the invoke activity.
+				Child element correlations needs to be a LED, because there is another
+				correlations element defined for the invoke activity.
 			</xsd:documentation>
 		</xsd:annotation>
 		<xsd:complexContent>
@@ -920,13 +1009,6 @@
 	
 	<xsd:element name="scope" type="tScope"/>
 	<xsd:complexType name="tScope">
-		<xsd:annotation>
-			<xsd:documentation>
-				There is no schema-level default for "exitOnStandardFault"
-				at "scope". Because, it will inherit default from enclosing scope
-				or process.
-			</xsd:documentation>
-		</xsd:annotation>
 		<xsd:complexContent>
 			<xsd:extension base="tActivity">
 				<xsd:sequence>
@@ -942,6 +1024,9 @@
 				</xsd:sequence>
 				<xsd:attribute name="isolated" type="tBoolean" default="no"/>
 				<xsd:attribute name="exitOnStandardFault" type="tBoolean"/>
+				<!-- Note: we need to remove the schema default for "exitOnStandardFault"
+				     at "scope". Because, it will inherit default from enclosing scope
+				     or process. The reasoning is similar to suppressJoinFailure. -->
 			</xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>
@@ -950,7 +1035,7 @@
 		<xsd:annotation>
 			<xsd:documentation>
 				This element can contain all activities including the activities
-				compensate and compensateScope.
+				compensate and compensateScope but not the rethrow activity.
 			</xsd:documentation>
 		</xsd:annotation>
 	</xsd:element>
@@ -959,7 +1044,7 @@
 		<xsd:annotation>
 			<xsd:documentation>
 				This element can contain all activities including the activities
-				compensate and compensateScope.
+				compensate and compensateScope but not the rethrow and throw activity.
 			</xsd:documentation>
 		</xsd:annotation>
 	</xsd:element>
@@ -975,6 +1060,31 @@
 		</xsd:complexContent>
 	</xsd:complexType>
 	
+  <!-- jBPM BPEL addition (begin) -->
+  <xsd:element name="switch" type="tSwitch"/>
+  <xsd:complexType name="tSwitch">
+    <xsd:complexContent>
+      <xsd:extension base="tActivity">
+        <xsd:sequence>
+          <xsd:element name="case" maxOccurs="unbounded">
+            <xsd:complexType>
+              <xsd:complexContent>
+                <xsd:extension base="tExtensibleElements">
+                  <xsd:sequence>
+                    <xsd:element name="condition" type="tBoolean-expr" />
+                    <xsd:group ref="activity"/>
+                  </xsd:sequence>
+                </xsd:extension>
+              </xsd:complexContent>
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="otherwise" type="tActivityContainer" minOccurs="0"/>
+        </xsd:sequence>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <!-- jBPM BPEL addition (end) -->
+
 	<xsd:element name="throw" type="tThrow"/>
 	<xsd:complexType name="tThrow">
 		<xsd:complexContent>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: bpel_application_1_1.xsd
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_definition_1_1.xsd jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_definition_1_1.xsd
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_definition_1_1.xsd	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/bpel_definition_1_1.xsd	2009-02-06 09:17:23.000000000 +0100
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <schema targetNamespace="urn:jbpm.org:bpel-1.1:definition" elementFormDefault="qualified"
-  xmlns:tns="urn:jbpm.org:bpel-1.1:definition" xmlns="http://www.w3.org/2001/XMLSchema">
+  xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:jbpm.org:bpel-1.1:definition"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
 
   <element name="bpelDefinition" type="tns:tBpelDefinition" />
 
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: bpel_deployment_1_1.xsd
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/DatatypeUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/DatatypeUtil.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/DatatypeUtil.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/DatatypeUtil.java	2009-02-06 09:17:23.000000000 +0100
@@ -32,7 +32,7 @@
 /**
  * Data type conversion utilities.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:45:29 $
+ * @version $Revision: 1800 $ $Date: 2007/05/02 23:06:01 $
  */
 public class DatatypeUtil {
 
@@ -128,9 +128,9 @@
       duration = (Duration) value;
     else {
       if (value instanceof Node)
-        duration = Duration.valueOf(toString((Node) value));
+        duration = Duration.parseDuration(toString((Node) value));
       else if (value instanceof String)
-        duration = Duration.valueOf((String) value);
+        duration = Duration.parseDuration((String) value);
       else
         duration = null;
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/Duration.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/Duration.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/Duration.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/Duration.java	2009-02-06 09:17:23.000000000 +0100
@@ -20,58 +20,72 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 /**
- * Duration represents an interval of time. The value space of duration is a six-dimensional space
- * where the coordinates designate the Gregorian year, month, day, hour, minute, and second
- * components defined in <a href="http://www.w3.org/TR/xmlschema-2/#ISO8601">ISO 8601</a>.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:45:29 $
- * @see <a href="http://www.w3.org/TR/xmlschema-2/#duration"> XML Schema Part 2: Datatypes
- * &sect;3.2.6</a>
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:06 $
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#duration"> XML Schema Part 2:
+ *      Datatypes &sect;3.2.6</a>
  */
 public class Duration implements Serializable {
 
   private static final long serialVersionUID = 1L;
 
-  private int years;
-  private int months;
-  private int days;
-  private int hours;
-  private int minutes;
-  private int seconds;
-  private int millis;
+  private short year;
+  private short month;
+  private short day;
+  private short hour;
+  private short minute;
+  private short second;
+  private short millis;
 
   private boolean negative;
 
-  private static final Pattern durationPattern = Pattern.compile("(-)?" // negative sign
-      + "P" // designator
-      + "(?:(\\p{Digit}+)Y)?" // years
-      + "(?:(\\p{Digit}+)M)?" // months
-      + "(?:(\\p{Digit}+)D)?" // days
-      + "(?:T" // time *begin
-      + "(?:(\\p{Digit}+)H)?" // hours
-      + "(?:(\\p{Digit}+)M)?" // minutes
-      + "(?:" // seconds (begin)
-      + "(\\p{Digit}+)" // whole seconds
-      + "(?:\\." // fractional seconds (begin)
-      + "(\\p{Digit}{1,3})" // milliseconds
-      + "\\p{Digit}*" // duration below milliseconds (ignored)
-      + ")?" // fractional seconds (end)
-      + "S)?" // seconds (end)
-      + ")?" // time (end)
-  );
+  private static final Pattern durationPattern = Pattern.compile("(-)?" + // negative
+      // sign
+      "P"
+      + // designator
+      "(?:(\\p{Digit}+)Y)?"
+      + // years
+      "(?:(\\p{Digit}+)M)?"
+      + // months
+      "(?:(\\p{Digit}+)D)?"
+      + // days
+      "(?:T"
+      + // begin-time
+      "(?:(\\p{Digit}+)H)?"
+      + // hours
+      "(?:(\\p{Digit}+)M)?"
+      + // minutes
+      "(?:"
+      + // begin-seconds
+      "(\\p{Digit}+)"
+      + // whole seconds
+      "(?:\\."
+      + // begin-fractional seconds
+      "(\\p{Digit}{1,3})"
+      + // milliseconds
+      "\\p{Digit}*"
+      + // duration below milliseconds
+      ")?"
+      + // end-fractional seconds
+      "S)?"
+      + // end-seconds
+      ")?"); // end-time
 
   public Duration() {
   }
 
-  public Duration(int year, int month, int day, int hour, int minute, int second, int millis) {
-    setYears(year);
-    setMonths(month);
-    setDays(day);
-    setHours(hour);
-    setMinutes(minute);
-    setSeconds(second);
-    setMillis(millis);
+  public Duration(int year, int month, int day, int hour, int minute,
+      int second, int millis) {
+    setYear((short) year);
+    setMonth((short) month);
+    setDay((short) day);
+    setHour((short) hour);
+    setMinute((short) minute);
+    setSecond((short) second);
+    setMillis((short) millis);
   }
 
   public boolean isNegative() {
@@ -82,86 +96,62 @@
     this.negative = negative;
   }
 
-  public int getYears() {
-    return years;
+  public short getYear() {
+    return year;
   }
 
-  public void setYears(int years) {
-    if (years < 0)
-      throw new IllegalArgumentException("years cannot be negative");
-
-    this.years = years;
+  public void setYear(short year) {
+    this.year = year;
   }
 
-  public int getMonths() {
-    return months;
+  public short getMonth() {
+    return month;
   }
 
-  public void setMonths(int months) {
-    if (months < 0)
-      throw new IllegalArgumentException("months cannot be negative");
-
-    this.months = months;
+  public void setMonth(short month) {
+    this.month = month;
   }
 
-  public int getDays() {
-    return days;
+  public short getDay() {
+    return day;
   }
 
-  public void setDays(int days) {
-    if (days < 0)
-      throw new IllegalArgumentException("days cannot be negative");
-
-    this.days = days;
+  public void setDay(short day) {
+    this.day = day;
   }
 
-  public int getHours() {
-    return hours;
+  public short getHour() {
+    return hour;
   }
 
-  public void setHours(int hours) {
-    if (hours < 0)
-      throw new IllegalArgumentException("hours cannot be negative");
-
-    this.hours = hours;
+  public void setHour(short hour) {
+    this.hour = hour;
   }
 
-  public int getMinutes() {
-    return minutes;
+  public short getMinute() {
+    return minute;
   }
 
-  public void setMinutes(int minutes) {
-    if (minutes < 0)
-      throw new IllegalArgumentException("minutes cannot be negative");
-
-    this.minutes = minutes;
+  public void setMinute(short minute) {
+    this.minute = minute;
   }
 
-  public int getSeconds() {
-    return seconds;
+  public short getSecond() {
+    return second;
   }
 
-  public void setSeconds(int seconds) {
-    if (seconds < 0)
-      throw new IllegalArgumentException("seconds cannot be negative");
-
-    this.seconds = seconds;
+  public void setSecond(short second) {
+    this.second = second;
   }
 
-  public int getMillis() {
+  public short getMillis() {
     return millis;
   }
 
-  public void setMillis(int millis) {
-    if (millis < 0)
-      throw new IllegalArgumentException("milliseconds cannot be negative");
-
+  public void setMillis(short millis) {
     this.millis = millis;
   }
 
-  /**
-   * Adds this duration to the given time instant.
-   */
   public void addTo(Date dateTime) {
     Calendar calendar = Calendar.getInstance();
     calendar.setTime(dateTime);
@@ -169,81 +159,67 @@
     dateTime.setTime(calendar.getTimeInMillis());
   }
 
-  /**
-   * Adds this duration to the given calendar.
-   */
   public void addTo(Calendar calendar) {
-    if (negative) {
-      calendar.add(Calendar.YEAR, -years);
-      calendar.add(Calendar.MONTH, -months);
-      calendar.add(Calendar.DAY_OF_MONTH, -days);
-      calendar.add(Calendar.HOUR_OF_DAY, -hours);
-      calendar.add(Calendar.MINUTE, -minutes);
-      calendar.add(Calendar.SECOND, -seconds);
-      calendar.add(Calendar.MILLISECOND, -millis);
-    }
-    else {
-      calendar.add(Calendar.YEAR, years);
-      calendar.add(Calendar.MONTH, months);
-      calendar.add(Calendar.DAY_OF_MONTH, days);
-      calendar.add(Calendar.HOUR_OF_DAY, hours);
-      calendar.add(Calendar.MINUTE, minutes);
-      calendar.add(Calendar.SECOND, seconds);
+    calendar.add(Calendar.YEAR, year);
+    calendar.add(Calendar.MONTH, month);
+    calendar.add(Calendar.DAY_OF_MONTH, day);
+    calendar.add(Calendar.HOUR_OF_DAY, hour);
+    calendar.add(Calendar.MINUTE, minute);
+    calendar.add(Calendar.SECOND, second);
       calendar.add(Calendar.MILLISECOND, millis);
     }
-  }
 
   static final long SECOND = 1000;
   static final long MINUTE = 60 * SECOND;
   static final long HOUR = 60 * MINUTE;
   static final long DAY = 24 * HOUR;
-  static final long YEAR = 365 * DAY + 5 * HOUR + 49 * MINUTE + 12 * SECOND;
-  static final long MONTH = YEAR / 12;
+  static final long WEEK = 7 * DAY;
+  static final long MONTH = 30 * DAY;
+  static final long YEAR = 365 * DAY;
 
   /**
-   * Returns the length of this duration in milliseconds. Because the length of a month or a year
-   * varies, this method assumes that a year is 365.2425 days long and a month is 1/12 of a year.
+   * Returns the length of this duration in milliseconds. The length of a
+   * month/year varies. This method simply assumes a month is 30 days long and a
+   * year is 365 days long.
    * @return the number of milliseconds in this duration
    */
   public long getTimeInMillis() {
     long timeInMillis = millis;
-    timeInMillis += SECOND * seconds;
-    timeInMillis += MINUTE * minutes;
-    timeInMillis += HOUR * hours;
-    timeInMillis += DAY * days;
-    timeInMillis += MONTH * months;
-    timeInMillis += YEAR * years;
+    timeInMillis += SECOND * second;
+    timeInMillis += MINUTE * minute;
+    timeInMillis += HOUR * hour;
+    timeInMillis += DAY * day;
+    timeInMillis += MONTH * month;
+    timeInMillis += YEAR * year;
     return timeInMillis;
   }
 
-  public boolean equals(Object other) {
-    if (this == other)
-      return true;
-    if (!(other instanceof Duration))
-      return false;
-    final Duration that = (Duration) other;
-    return years == that.years
-        && months == that.months
-        && days == that.days
-        && hours == that.hours
-        && minutes == that.minutes
-        && seconds == that.seconds
-        && millis == that.millis
-        && negative == that.negative;
+  public boolean equals(Object obj) {
+    boolean equals = false;
+    if (obj instanceof Duration) {
+      Duration d = (Duration) obj;
+      equals = year == d.year
+          && month == d.month
+          && day == d.day
+          && hour == d.hour
+          && minute == d.minute
+          && second == d.second
+          && millis == d.millis
+          && negative == d.negative;
+    }
+    return equals;
   }
 
   public int hashCode() {
-    final int prime = 31;
-    int result = 1;
-    result = prime * result + years;
-    result = prime * result + months;
-    result = prime * result + days;
-    result = prime * result + hours;
-    result = prime * result + minutes;
-    result = prime * result + seconds;
-    result = prime * result + millis;
-    result = prime * result + (negative ? 1231 : 1237);
-    return result;
+    return new HashCodeBuilder().append(year)
+        .append(month)
+        .append(day)
+        .append(hour)
+        .append(minute)
+        .append(second)
+        .append(millis)
+        .append(negative)
+        .toHashCode();
   }
 
   public String toString() {
@@ -251,41 +227,38 @@
 
     if (negative)
       literal.append('-');
-
     literal.append('P');
 
-    if (years != 0)
-      literal.append(years).append('Y');
-    if (months != 0)
-      literal.append(months).append('M');
-    if (days != 0)
-      literal.append(days).append('D');
-
-    boolean hasHours = hours != 0;
-    boolean hasMinutes = minutes != 0;
-    boolean hasMillis = millis != 0;
-    boolean hasSeconds = hasMillis || seconds != 0;
+    if (year != 0)
+      literal.append(year).append('Y');
+    if (month != 0)
+      literal.append(month).append('M');
+    if (day != 0)
+      literal.append(day).append('D');
 
-    if (hasHours || hasMinutes || hasSeconds) {
+    if (hour != 0 || minute != 0 || second != 0 || millis != 0) {
       literal.append('T');
 
-      if (hasHours)
-        literal.append(hours).append('H');
-      if (hasMinutes)
-        literal.append(minutes).append('M');
-      if (hasSeconds) {
-        literal.append(seconds);
-        if (hasMillis) {
-          literal.append('.');
-          formatMillis(millis, literal);
-        }
+      if (hour != 0)
+        literal.append(hour).append('H');
+      if (minute != 0)
+        literal.append(minute).append('M');
+
+      if (second != 0) {
+        literal.append(second);
+
+        if (millis != 0)
+          literal.append('.').append(formatDecimal(millis, 3));
+
         literal.append('S');
       }
+      else if (millis != 0)
+        literal.append('0').append(formatDecimal(millis, 3)).append('S');
     }
     return literal.toString();
   }
 
-  public static Duration valueOf(String literal) {
+  public static Duration parseDuration(String literal) {
     Matcher matcher = durationPattern.matcher(literal);
     Duration duration = null;
     if (matcher.matches()) {
@@ -296,60 +269,59 @@
       // group 2: years
       String group = matcher.group(2);
       if (group != null)
-        duration.setYears(Integer.parseInt(group));
+        duration.setYear(Short.parseShort(group));
       // group 3: months
       group = matcher.group(3);
       if (group != null)
-        duration.setMonths(Integer.parseInt(group));
+        duration.setMonth(Short.parseShort(group));
       // group 4: days
       group = matcher.group(4);
       if (group != null)
-        duration.setDays(Integer.parseInt(group));
+        duration.setDay(Short.parseShort(group));
       // group 5: hours
       group = matcher.group(5);
       if (group != null)
-        duration.setHours(Integer.parseInt(group));
+        duration.setHour(Short.parseShort(group));
       // group 6: minutes
       group = matcher.group(6);
       if (group != null)
-        duration.setMinutes(Integer.parseInt(group));
+        duration.setMinute(Short.parseShort(group));
       // group 7: seconds
       group = matcher.group(7);
       if (group != null)
-        duration.setSeconds(Integer.parseInt(group));
+        duration.setSecond(Short.parseShort(group));
       // group 8: milliseconds
       group = matcher.group(8);
       if (group != null)
-        duration.setMillis(parseMillis(group));
+        duration.setMillis(parseDecimal(group, 3));
     }
     return duration;
   }
 
-  private static int parseMillis(String literal) {
-    int number = Integer.parseInt(literal);
-    assert number >= 0 : number;
-
-    int digits = literal.length();
-    assert digits < 4 : digits;
-
-    // put trailing zeros
-    if (digits < 3)
-      number *= digits == 1 ? 100 : 10;
+  private static short parseDecimal(String literal, int digitCount) {
+    short number = Short.parseShort(literal);
+
+    for (int i = 0, n = digitCount - literal.length(); i < n; i++)
+      number *= 10;
 
     return number;
   }
 
-  private static void formatMillis(int number, StringBuffer buffer) {
-    assert number >= 0 && number < 1000 : number;
+  private static String formatDecimal(short number, int digitCount) {
+    String literal = Short.toString(number);
+
+    if (literal.length() < digitCount) {
+      StringBuffer buffer = new StringBuffer();
+
+      for (int i = 0, n = digitCount - literal.length(); i < n; i++) {
+        buffer.append('0');
+      }
+      literal = buffer.append(literal).toString();
+    }
 
-    // put leading zeros to complete 3 decimal positions
-    if (number < 100)
-      buffer.append(number < 10 ? "00" : "0");
-
-    // drop trailing zeros
-    if (number % 10 == 0)
-      number /= number % 100 == 0 ? 100 : 10;
+    int i = digitCount;
+    while (--i > 0 && literal.charAt(i) == '0'); // just decrease the index
 
-    buffer.append(number);
+    return literal.substring(0, i + 1);
   }
 }
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: j2ee_web_services_client_1_1.xsd
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/LocalEntityResolver.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/LocalEntityResolver.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/LocalEntityResolver.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/LocalEntityResolver.java	2009-02-06 09:17:23.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:14 $
+ * @version $Revision: 1800 $ $Date: 2007/09/05 09:01:25 $
  */
 class LocalEntityResolver implements EntityResolver {
 
@@ -97,17 +97,9 @@
     entityRegistry.put("-//W3C//DTD XMLSCHEMA 200102//EN", "XMLSchema.dtd");
     entityRegistry.put("datatypes", "datatypes.dtd");
 
-    // xml namespace schema
-    entityRegistry.put("http://www.w3.org/2001/xml.xsd", "xml.xsd");
-
-    // wsdl schema
-    entityRegistry.put("http://schemas.xmlsoap.org/wsdl/", "wsdl.xsd");
-
-    // j2ee schema
+    // j2ee schema documents
     entityRegistry.put("http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd",
         "j2ee_jaxrpc_mapping_1_1.xsd");
-    entityRegistry.put("http://www.ibm.com/webservices/xsd/j2ee_web_services_client_1_1.xsd",
-        "j2ee_web_services_client_1_1.xsd");
 
     return entityRegistry;
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/NodeIterator.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/NodeIterator.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/NodeIterator.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/NodeIterator.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 /**
  * An iterator over the children of a DOM node.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/08/21 01:05:59 $
+ * @version $Revision: 1800 $ $Date: 2006/08/21 01:05:59 $
  */
 public class NodeIterator implements Iterator {
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: plink_1_1.xsd
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: plink_2_0.xsd
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: plnktype_1_1.xsd
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: plnktype_2_0.xsd
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: serviceref_2_0.xsd
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: serviceref.xsd
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: varprop.xsd
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: vprop_2_0.xsd
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util: wsdl_2004-08-24.xsd
Only in jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util: wsdl.xsd
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/XmlUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/XmlUtil.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/util/XmlUtil.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/util/XmlUtil.java	2009-02-06 09:17:23.000000000 +0100
@@ -61,7 +61,7 @@
 /**
  * Utility methods for dealing with JAXP objects.
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:14 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 19:28:29 $
  */
 public class XmlUtil {
 
@@ -106,8 +106,8 @@
         return builder;
       }
       catch (ParserConfigurationException e) {
-        // should not happen
-        throw new AssertionError(e);
+        // cannot happen?
+        throw new Error("could not create document builder", e);
       }
     }
   };
@@ -124,9 +124,9 @@
   }
 
   private static String[] createSchemaSources() {
-    final String[] schemaResources = { "xml.xsd", "wsdl.xsd", "bpel_2_0.xsd",
-        "plnktype_2_0.xsd", "varprop.xsd", "serviceref.xsd", "bpel_1_1.xsd", "plnktype_1_1.xsd",
-        "bpel_definition_1_1.xsd", "bpel_deployment_1_1.xsd", "addressing.xsd" };
+    final String[] schemaResources = { "xml.xsd", "wsdl_2004-08-24.xsd", "bpel_2_0.xsd",
+        "plink_2_0.xsd", "vprop_2_0.xsd", "serviceref_2_0.xsd", "bpel_1_1.xsd", "plink_1_1.xsd",
+        "bpel_definition_1_1.xsd", "bpel_application_1_1.xsd", "addressing.xsd" };
     String[] schemaSources = new String[schemaResources.length];
     for (int i = 0; i < schemaResources.length; i++)
       schemaSources[i] = XmlUtil.class.getResource(schemaResources[i]).toExternalForm();
@@ -399,7 +399,7 @@
     String prefix = getPrefix(namespace, elem);
     if (prefix == null) {
       String givenPrefix = value.getPrefix();
-      prefix = generatePrefix(givenPrefix.length() > 0 ? givenPrefix : QUALIFIED_VALUE_PREFIX, elem);
+      prefix = generatePrefix(elem, givenPrefix.length() > 0 ? givenPrefix : QUALIFIED_VALUE_PREFIX);
       addNamespaceDeclaration(elem, namespace, prefix);
     }
     return prefix + ':' + localName;
@@ -417,7 +417,7 @@
     traceBuffer.append('{').append(namespace).append('}');
 
     String prefix = elem.getPrefix();
-    if (prefix != null && prefix.length() > 0)
+    if (prefix == null || prefix.length() == 0)
       traceBuffer.append(prefix).append(':');
 
     return traceBuffer.append(localName).toString();
@@ -816,13 +816,13 @@
     return DOMUtils.getNamespaceURIFromPrefix(contextNode, prefix);
   }
 
-  public static String generatePrefix(String base, Element contextElem) {
+  public static String generatePrefix(Element contextElem, String prefixBase) {
     // check possible collision with namespace declarations
-    if (!contextElem.hasAttributeNS(BpelConstants.NS_XMLNS, base))
-      return base;
+    if (!contextElem.hasAttributeNS(BpelConstants.NS_XMLNS, prefixBase))
+      return prefixBase;
 
     // collision detected, append a discriminator number
-    StringBuffer prefixBuffer = new StringBuffer(base);
+    StringBuffer prefixBuffer = new StringBuffer(prefixBase);
 
     for (int i = 1; i < Integer.MAX_VALUE; i++) {
       String prefix = prefixBuffer.append(i).toString();
@@ -831,10 +831,10 @@
         return prefix;
 
       // remove appended number
-      prefixBuffer.setLength(base.length());
+      prefixBuffer.setLength(prefixBase.length());
     }
 
-    throw new Error("could not generate prefix from base: " + base);
+    throw new Error();
   }
 
   public static TransformerFactory getTransformerFactory() {
@@ -861,11 +861,8 @@
       }
     }
     catch (TransformerException e) {
-      Throwable cause = e.getCause();
-      if (cause instanceof IOException)
-        throw (IOException) cause;
-      // should not happen
-      throw new AssertionError(e);
+      // cannot happen?
+      throw new Error("could not transform dom node to xml stream", e);
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ValidateReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ValidateReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/ValidateReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/ValidateReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class ValidateReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/WaitReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/WaitReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/WaitReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/WaitReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class WaitReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/WhileReader.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/WhileReader.java
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/WhileReader.java	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/WhileReader.java	2009-02-06 09:17:23.000000000 +0100
@@ -25,7 +25,7 @@
  * Encapsulates the logic to create and connect process elements that constitute
  * the <i>while</i> structure.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/05/31 12:55:12 $
+ * @version $Revision: 1800 $ $Date: 2007/05/31 12:55:12 $
  */
 public class WhileReader extends ActivityReader {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/wsdl-1-1-converter.xslt jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/wsdl-1-1-converter.xslt
--- jpdl-3.2.3.GA/bpel/library/src/main/java/org/jbpm/bpel/xml/wsdl-1-1-converter.xslt	2009-02-06 09:12:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/main/java/org/jbpm/bpel/xml/wsdl-1-1-converter.xslt	2009-02-06 09:17:23.000000000 +0100
@@ -8,9 +8,9 @@
   <xsl:output method="xml" />
 
   <xsl:variable name="plt-old-uri" select="'http://schemas.xmlsoap.org/ws/2003/05/partner-link/'" />
-  <xsl:variable name="plt-new-uri" select="'http://docs.oasis-open.org/wsbpel/2.0/plnktype'" />
+  <xsl:variable name="plt-new-uri" select="'http://schemas.xmlsoap.org/ws/2004/03/partner-link/'" />
   <xsl:variable name="vprop-old-uri" select="'http://schemas.xmlsoap.org/ws/2003/03/business-process/'" />
-  <xsl:variable name="vprop-new-uri" select="'http://docs.oasis-open.org/wsbpel/2.0/varprop'" />
+  <xsl:variable name="vprop-new-uri" select="'http://schemas.xmlsoap.org/ws/2004/03/business-process/property'" />
 
   <!--partnerLinkType role-->
   <xsl:template match="plt11:role">
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/config: log4j.properties
Only in jpdl-3.2.3.GA/bpel/library/src/test/config: log4j.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmActionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmActionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmActionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmActionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,11 +19,10 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:30 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public class AlarmActionDbTest extends AbstractDbTestCase {
 
@@ -36,7 +35,7 @@
     Wait wait = new Wait("wait");
     wait.setAction(alarmAction);
 
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getGlobalScope().setActivity(wait);
   }
 
@@ -85,9 +84,8 @@
   }
 
   private AlarmAction getAlarm(BpelProcessDefinition processDefinition) {
-    Wait wait = (Wait) session.load(Wait.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    Wait wait = (Wait) session.load(Wait.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     return wait.getAlarmAction();
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmExeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmExeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmExeDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/alarm/AlarmExeDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:45:29 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public class AlarmExeDbTest extends AbstractDbTestCase {
 
@@ -63,7 +63,7 @@
     Date dueDate = DatatypeUtil.parseDateTime("2101-04-07").getTime();
     assertEquals(dueDate, timer.getDueDate());
 
-    String repeat = (Duration.valueOf("P3D").getTimeInMillis() / 1000L)
+    String repeat = (Duration.parseDuration("P3D").getTimeInMillis() / 1000L)
         + " seconds";
     assertEquals(repeat, timer.getRepeat());
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/AllDbTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/AllDbTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/AllDbTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/AllDbTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -44,10 +44,8 @@
 import org.jbpm.bpel.graph.struct.FlowDbTest;
 import org.jbpm.bpel.graph.struct.IfDbTest;
 import org.jbpm.bpel.graph.struct.PickDbTest;
-import org.jbpm.bpel.graph.struct.RepeatUntilDbTest;
 import org.jbpm.bpel.graph.struct.SequenceDbTest;
 import org.jbpm.bpel.graph.struct.WhileDbTest;
-import org.jbpm.bpel.integration.catalog.CatalogEntryDbTest;
 import org.jbpm.bpel.integration.def.CorrelationDbTest;
 import org.jbpm.bpel.integration.def.CorrelationSetDefinitionDbTest;
 import org.jbpm.bpel.integration.def.InvokeActionDbTest;
@@ -62,8 +60,7 @@
 import org.jbpm.bpel.persistence.db.type.QNameTypeDbTest;
 import org.jbpm.bpel.sublang.def.ExpressionDbTest;
 import org.jbpm.bpel.sublang.def.JoinConditionDbTest;
-import org.jbpm.bpel.sublang.def.PropertyQueryDbTest;
-import org.jbpm.bpel.sublang.def.VariableQueryDbTest;
+import org.jbpm.bpel.sublang.def.QueryDbTest;
 import org.jbpm.bpel.sublang.xpath.GetTokenIdDbTest;
 import org.jbpm.bpel.variable.def.MessageTypeDbTest;
 import org.jbpm.bpel.variable.def.VariableDefinitionDbTest;
@@ -79,7 +76,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:35 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:13:28 $
  */
 public class AllDbTests {
 
@@ -106,7 +103,6 @@
     suite.addTestSuite(PickDbTest.class);
     suite.addTestSuite(SequenceDbTest.class);
     suite.addTestSuite(WhileDbTest.class);
-    suite.addTestSuite(RepeatUntilDbTest.class);
 
     // scope & handler
     suite.addTestSuite(CatchDbTest.class);
@@ -122,7 +118,7 @@
     suite.addTestSuite(ScopeInstanceDbTest.class);
     suite.addTestSuite(LinkInstanceDbTest.class);
     suite.addTestSuite(ScopeSessionDbTest.class);
-    suite.addTestSuite(BpelGraphSessionDbTest.class);
+    suite.addTest(BpelGraphSessionDbTest.suite());
 
     // variable definition
     suite.addTestSuite(VariableDefinitionDbTest.class);
@@ -138,9 +134,8 @@
 
     // sublang definition
     suite.addTestSuite(ExpressionDbTest.class);
+    suite.addTestSuite(QueryDbTest.class);
     suite.addTestSuite(JoinConditionDbTest.class);
-    suite.addTestSuite(PropertyQueryDbTest.class);
-    suite.addTestSuite(VariableQueryDbTest.class);
 
     // sublang xpath
     suite.addTestSuite(GetTokenIdDbTest.class);
@@ -160,9 +155,6 @@
     suite.addTestSuite(WsdlEndpointReferenceDbTest.class);
     suite.addTest(IntegrationSessionDbTest.suite());
 
-    // integration catalog
-    suite.addTestSuite(CatalogEntryDbTest.class);
-
     // wsdl
     suite.addTestSuite(MessageImplDbTest.class);
     suite.addTestSuite(OperationImplDbTest.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/AllPojoTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/AllPojoTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/AllPojoTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/AllPojoTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -28,11 +28,11 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:14 $
+ * @version $Revision: 1800 $ $Date: 2007/06/18 23:49:21 $
  */
 public class AllPojoTests {
 
-  public static Test suite() {
+  public static Test suite() throws Exception {
     TestSuite suite = new TestSuite("all pojo tests");
 
     suite.addTest(XmlTests.suite());
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel: app
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel: deploy
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/EndpointReferenceDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/EndpointReferenceDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/EndpointReferenceDbTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/EndpointReferenceDbTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:42:00 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:42:00 $
  */
 public abstract class EndpointReferenceDbTestCase extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/SoapEndpointReferenceTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/SoapEndpointReferenceTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/SoapEndpointReferenceTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/SoapEndpointReferenceTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -22,18 +22,18 @@
 
 import org.jbpm.bpel.endpointref.SoapEndpointReference;
 import org.jbpm.bpel.integration.catalog.ServiceCatalog;
-import org.jbpm.bpel.integration.catalog.UrlCatalog;
+import org.jbpm.bpel.integration.catalog.URLCatalog;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:42:00 $
  */
 public abstract class SoapEndpointReferenceTestCase extends TestCase {
 
   private ServiceCatalog catalog;
 
   protected void setUp() throws Exception {
-    UrlCatalog urlCatalog = new UrlCatalog();
+    URLCatalog urlCatalog = new URLCatalog();
     urlCatalog.addLocation(getResource("atm.wsdl"));
     urlCatalog.addLocation(getResource("translator.wsdl"));
     this.catalog = urlCatalog;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:58 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:58 $
  */
 public class WsaEndpointReferenceDbTest extends EndpointReferenceDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsa/WsaEndpointReferenceTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:27 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:27 $
  */
 public class WsaEndpointReferenceTest extends SoapEndpointReferenceTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:59 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:59 $
  */
 public class WsdlEndpointReferenceDbTest extends EndpointReferenceDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/endpointref/wsdl/WsdlEndpointReferenceTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/28 05:41:59 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:59 $
  */
 public class WsdlEndpointReferenceTest extends SoapEndpointReferenceTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/AssignTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/AssignTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/AssignTests.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/AssignTests.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class AssignTests {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromExpressionTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromExpressionTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,8 +22,7 @@
 
 import org.w3c.dom.Element;
 
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.graph.scope.Scope;
@@ -37,7 +36,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class FromExpressionTest extends TestCase {
 
@@ -59,37 +58,40 @@
 
   protected void setUp() throws Exception {
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // element variable 1
     Element elem1 = XmlUtil.parseText(ELEM1_TEXT);
     VariableDefinition var1 = new VariableDefinition();
     var1.setName("var1");
-    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(), elem1.getLocalName())));
+    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(),
+        elem1.getLocalName())));
     scope.addVariable(var1);
     // element variable 2
     Element elem2 = XmlUtil.parseText(ELEM2_TEXT);
     VariableDefinition var2 = new VariableDefinition();
     var2.setName("var2");
-    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(), elem2.getLocalName())));
+    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(),
+        elem2.getLocalName())));
     scope.addVariable(var2);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize global scope
     scope.createInstance(token).initializeData();
     var1.setValue(token, elem1);
     var2.setValue(token, elem2);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   public void testExtract() {
     // expression
     Expression expr = new Expression();
     expr.setText("concat(bpws:getVariableData('var1')/c/@name, 'and', bpws:getVariableData('var2')/c/@name)");
-    expr.setNamespaces(Collections.singleton(new Namespace("bpws", BpelConstants.NS_BPEL_1_1)));
+    expr.setNamespaces(Collections.singleton(new Namespace("bpws",
+        BpelConstants.NS_BPEL_1_1)));
     // from
     from.setExpression(expr);
     // verify extraction
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLinkTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLinkTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLinkTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPartnerLinkTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,17 +14,17 @@
  */
 package org.jbpm.bpel.graph.basic.assign;
 
-import javax.wsdl.Definition;
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
 import junit.framework.TestCase;
 
+import com.ibm.wsdl.PortTypeImpl;
+
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
 import org.jbpm.bpel.endpointref.EndpointReference;
 import org.jbpm.bpel.endpointref.wsa.WsaEndpointReference;
-import org.jbpm.bpel.graph.basic.Assign;
 import org.jbpm.bpel.graph.basic.assign.FromPartnerLink.Reference;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.exe.MockIntegrationService;
@@ -33,15 +33,13 @@
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.wsdl.PartnerLinkType;
 import org.jbpm.bpel.wsdl.PartnerLinkType.Role;
-import org.jbpm.bpel.wsdl.xml.WsdlConstants;
-import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.bpel.wsdl.impl.PartnerLinkTypeImpl;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class FromPartnerLinkTest extends TestCase {
 
@@ -53,69 +51,46 @@
 
   protected void setUp() throws Exception {
     /*
-     * the bpel definition uses the jbpm configuration, so create a context before the definition to
-     * avoid loading another configuration from the default resource
+     * the bpel definition uses the jbpm configuration, so create a context
+     * before the definition to avoid loading another configuration from the
+     * default resource
      */
     jbpmContext = jbpmConfiguration.createJbpmContext();
-
+    // process and global scope
+    BpelProcessDefinition pd = new BpelProcessDefinition();
+    Scope scope = pd.getGlobalScope();
     // port type 1
-    Definition sharedDefinition = WsdlUtil.getSharedDefinition();
-    PortType portType1 = sharedDefinition.createPortType();
-    portType1.setQName(new QName(BpelConstants.NS_EXAMPLES, "pt1"));
-
+    PortType portType1 = new PortTypeImpl();
+    portType1.setQName(new QName("pt1"));
     // port type 2
-    PortType portType2 = sharedDefinition.createPortType();
-    portType2.setQName(new QName(BpelConstants.NS_EXAMPLES, "pt2"));
-
+    PortType portType2 = new PortTypeImpl();
+    portType2.setQName(new QName("pt2"));
     // partner link type
-    PartnerLinkType partnerLinkType = (PartnerLinkType) WsdlUtil.getSharedExtensionRegistry()
-        .createExtension(Definition.class, WsdlConstants.Q_PARTNER_LINK_TYPE);
-    partnerLinkType.setQName(new QName(BpelConstants.NS_EXAMPLES, "plt"));
-
+    PartnerLinkType partnerLinkType = new PartnerLinkTypeImpl();
+    partnerLinkType.setQName(new QName("plt"));
     // role 1
     Role role1 = partnerLinkType.createRole();
     role1.setName("r1");
     role1.setPortType(portType1);
     partnerLinkType.setFirstRole(role1);
-
     // role 2
     Role role2 = partnerLinkType.createRole();
     role2.setName("r2");
     role2.setPortType(portType2);
     partnerLinkType.setSecondRole(role2);
-
     // partner link
     PartnerLinkDefinition partnerLink = new PartnerLinkDefinition();
     partnerLink.setName("pl1");
     partnerLink.setPartnerLinkType(partnerLinkType);
     partnerLink.setMyRole(role1);
     partnerLink.setPartnerRole(role2);
-
+    scope.addPartnerLink(partnerLink);
     // from
     from.setPartnerLink(partnerLink);
-
-    // copy
-    Copy copy = new Copy();
-    copy.setFrom(from);
-
-    // assign
-    Assign assign = new Assign("main");
-    assign.addOperation(copy);
-
-    // process definition
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-
-    // global scope
-    Scope globalScope = processDefinition.getGlobalScope();
-    globalScope.addPartnerLink(partnerLink);
-    globalScope.setActivity(assign);
-
     // instantiate process
-    token = new ProcessInstance(processDefinition).getRootToken();
-
+    token = new ProcessInstance(pd).getRootToken();
     // initialize global scope
-    globalScope.createInstance(token).initializeData();
+    scope.createInstance(token).initializeData();
   }
 
   protected void tearDown() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPropertyTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPropertyTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPropertyTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromPropertyTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,14 +19,11 @@
 
 import junit.framework.TestCase;
 
-import org.jbpm.bpel.graph.basic.Assign;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
-import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.xml.WsdlConstants;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
 import org.jbpm.bpel.xml.BpelConstants;
@@ -37,12 +34,12 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:37 $
  */
 public class FromPropertyTest extends TestCase {
 
-  private FromProperty from = new FromProperty();
   private Token token;
+  private FromProperty from = new FromProperty();
 
   private static final String WSDL_TEXT = "<definitions targetNamespace='http://jbpm.org/bpel/examples'"
       + " xmlns:tns='http://jbpm.org/bpel/examples'"
@@ -71,51 +68,27 @@
       + "</tns:surpriseElement>";
 
   protected void setUp() throws Exception {
-    // process definition
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-
-    // wsdl
+    // process
+    BpelProcessDefinition pd = new BpelProcessDefinition();
+    Scope scope = pd.getGlobalScope();
+    // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = pd.getImportDefinition();
     importDefinition.addImport(WsdlUtil.createImport(def));
     new BpelReader().registerPropertyAliases(importDefinition);
-
-    // message
-    MessageType messageType = importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request"));
-
-    // variable
+    // message variable
     VariableDefinition variable = new VariableDefinition();
     variable.setName("msg");
-    variable.setType(messageType);
-
-    // property
-    Property property = importDefinition.getProperty(new QName(BpelConstants.NS_EXAMPLES,
-        "nameProperty"));
-
-    // from
+    variable.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES, "request")));
     from.setVariable(variable);
-    from.setProperty(property);
-
-    // copy
-    Copy copy = new Copy();
-    copy.setFrom(from);
-
-    // assign
-    Assign assign = new Assign("main");
-    assign.addOperation(copy);
-
-    // global scope
-    Scope globalScope = processDefinition.getGlobalScope();
-    globalScope.addVariable(variable);
-    globalScope.setActivity(assign);
-
+    scope.addVariable(variable);
+    // property
+    from.setProperty(importDefinition.getProperty(new QName(BpelConstants.NS_EXAMPLES,
+        "nameProperty")));
     // instantiate process
-    token = new ProcessInstance(processDefinition).getRootToken();
-
+    token = new ProcessInstance(pd).getRootToken();
     // initialize global scope
-    globalScope.createInstance(token).initializeData();
+    scope.createInstance(token).initializeData();
   }
 
   public void testExtract() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromVariableTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromVariableTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromVariableTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/FromVariableTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,8 +14,7 @@
  */
 package org.jbpm.bpel.graph.basic.assign;
 
-import java.util.Collections;
-import java.util.Set;
+import java.util.HashSet;
 
 import javax.wsdl.Definition;
 import javax.xml.namespace.QName;
@@ -24,15 +23,12 @@
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
 
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.SchemaType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
@@ -45,7 +41,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:37 $
  */
 public class FromVariableTest extends TestCase {
 
@@ -53,8 +49,8 @@
   private MessageValue messageValue;
   private FromVariable from = new FromVariable();
 
-  private VariableDefinition simpleVariable = new VariableDefinition();
-  private VariableDefinition messageVariable = new VariableDefinition();
+  private VariableDefinition simpleVariable;
+  private VariableDefinition messageVariable;
 
   private static final String WSDL_TEXT = "<definitions targetNamespace='http://jbpm.org/bpel/examples'"
       + " xmlns:tns='http://jbpm.org/bpel/examples'"
@@ -71,46 +67,45 @@
       + "  <d amount=\"20\"/>"
       + "  <e>30</e>"
       + "</tns:surpriseElement>";
-  private static final String SIMPLE_VAR_TEXT = "4";
+  private static final String SIMPLE_TEXT = "sakar";
 
   protected void setUp() throws Exception {
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // wsdl description
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = pd.getImportDefinition();
     importDefinition.addImport(WsdlUtil.createImport(def));
     // message variable
+    messageVariable = new VariableDefinition();
     messageVariable.setName("msg");
-    messageVariable.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request")));
+    messageVariable.setType(importDefinition.getMessageType(new QName(
+        BpelConstants.NS_EXAMPLES, "request")));
     scope.addVariable(messageVariable);
     // simple variable
-    simpleVariable.setName("index");
-    simpleVariable.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "int")));
+    simpleVariable = new VariableDefinition();
+    simpleVariable.setName("smp");
+    simpleVariable.setType(new SchemaType(new QName(
+        BpelConstants.NS_XML_SCHEMA, "string")));
     scope.addVariable(simpleVariable);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize global scope
     scope.createInstance(token).initializeData();
-    simpleVariable.setValue(token, SIMPLE_VAR_TEXT);
+    simpleVariable.setValue(token, SIMPLE_TEXT);
     messageValue = (MessageValue) messageVariable.getValueForAssign(token);
   }
 
-  public void testExtractVariable_simple() throws SAXException {
+  public void testExtractVariable_simple() throws Exception {
     // variable
     from.setVariable(simpleVariable);
     // assertion
     Element extractedValue = (Element) from.extract(token);
-    assertEquals(SIMPLE_VAR_TEXT, DatatypeUtil.toString(extractedValue));
+    assertEquals(SIMPLE_TEXT, DatatypeUtil.toString(extractedValue));
   }
 
-  public void testExtractVariable_message() throws SAXException {
+  public void testExtractVariable_message() throws Exception {
     // from
     from.setVariable(messageVariable);
     // instance data
@@ -121,7 +116,7 @@
     assertSame(messageValue, extractedValue);
   }
 
-  public void testExtractPart() throws SAXException {
+  public void testExtractPart() throws Exception {
     // from
     from.setVariable(messageVariable);
     from.setPart("elementPart");
@@ -133,30 +128,14 @@
     assertSame(elementPart, from.extract(token));
   }
 
-  public void testExtractQuery_noContextAccess() throws SAXException {
-    // namespace declarations
-    Set namespaces = Collections.singleton(new Namespace("tns", BpelConstants.NS_EXAMPLES));
-    // query
-    VariableQuery query = new VariableQuery();
-    query.setText("/tns:surpriseElement/c/@name");
-    query.setNamespaces(namespaces);
-    // from
-    from.setVariable(messageVariable);
-    from.setPart("elementPart");
-    from.setQuery(query);
-    // instance data
-    Element partValue = XmlUtil.parseText(ELEM_PART_TEXT);
-    messageValue.setPart("elementPart", partValue);
-    // assertion
-    assertEquals("venus", DatatypeUtil.toString((Attr) from.extract(token)));
-  }
-
-  public void testExtractQuery_contextAccess() throws SAXException {
+  public void testExtractQuery() throws Exception {
     // enclosing element
-    Set namespaces = Collections.singleton(new Namespace("bpel", BpelConstants.NS_BPEL_1_1));
+    HashSet namespaces = new HashSet();
+    namespaces.add(new Namespace("bpws", BpelConstants.NS_BPEL));
+    namespaces.add(new Namespace("tns", BpelConstants.NS_EXAMPLES));
     // query
-    VariableQuery query = new VariableQuery();
-    query.setText("*[position() = bpel:getVariableData('index')]");
+    Query query = new Query();
+    query.setText("c/@name");
     query.setNamespaces(namespaces);
     // from
     from.setVariable(messageVariable);
@@ -166,6 +145,6 @@
     Element partValue = XmlUtil.parseText(ELEM_PART_TEXT);
     messageValue.setPart("elementPart", partValue);
     // assertion
-    assertEquals("30", DatatypeUtil.toString((Element) from.extract(token)));
+    assertEquals("venus", DatatypeUtil.toString((Attr) from.extract(token)));
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToExpressionTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToExpressionTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,8 +22,7 @@
 
 import org.w3c.dom.Element;
 
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.graph.scope.Scope;
@@ -37,7 +36,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class ToExpressionTest extends TestCase {
 
@@ -51,33 +50,35 @@
 
   protected void setUp() throws Exception {
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // element variable
     var1.setName("var1");
     var1.setType(new ElementType(new QName("a")));
     scope.addVariable(var1);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   public void testAssign() {
     // query
     Expression query = new Expression();
     query.setText("$var1/c/@name");
-    query.setNamespaces(Collections.singleton(new Namespace("bpws", BpelConstants.NS_BPEL_1_1)));
+    query.setNamespaces(Collections.singleton(new Namespace("bpws",
+        BpelConstants.NS_BPEL_1_1)));
     // to
     to.setExpression(query);
     // instance data
     to.assign(token, "mars");
     // assertions
-    assertEquals("mars", XmlUtil.getElement((Element) var1.getValue(token), "c").getAttribute(
+    assertEquals("mars",
+        XmlUtil.getElement((Element) var1.getValue(token), "c").getAttribute(
         "name"));
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLinkTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLinkTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLinkTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPartnerLinkTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,29 +14,27 @@
  */
 package org.jbpm.bpel.graph.basic.assign;
 
-import javax.wsdl.Definition;
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
 import junit.framework.TestCase;
 
+import com.ibm.wsdl.PortTypeImpl;
+
 import org.jbpm.bpel.endpointref.EndpointReference;
 import org.jbpm.bpel.endpointref.wsa.WsaEndpointReference;
-import org.jbpm.bpel.graph.basic.Assign;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.wsdl.PartnerLinkType;
 import org.jbpm.bpel.wsdl.PartnerLinkType.Role;
-import org.jbpm.bpel.wsdl.xml.WsdlConstants;
-import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.bpel.wsdl.impl.PartnerLinkTypeImpl;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class ToPartnerLinkTest extends TestCase {
 
@@ -45,63 +43,40 @@
 
   protected void setUp() throws Exception {
     // port type 1
-    Definition sharedDefinition = WsdlUtil.getSharedDefinition();
-    PortType portType1 = sharedDefinition.createPortType();
+    PortType portType1 = new PortTypeImpl();
     portType1.setQName(new QName("pt1"));
-
     // port type 2
-    PortType portType2 = sharedDefinition.createPortType();
+    PortType portType2 = new PortTypeImpl();
     portType2.setQName(new QName("pt2"));
-
     // partner link type
-    PartnerLinkType partnerLinkType = (PartnerLinkType) WsdlUtil.getSharedExtensionRegistry()
-        .createExtension(Definition.class, WsdlConstants.Q_PARTNER_LINK_TYPE);
+    PartnerLinkType partnerLinkType = new PartnerLinkTypeImpl();
     partnerLinkType.setQName(new QName("plt"));
-
     // role 1
     Role role1 = partnerLinkType.createRole();
     role1.setName("r1");
     role1.setPortType(portType1);
     partnerLinkType.setFirstRole(role1);
-
     // role 2
     Role role2 = partnerLinkType.createRole();
     role2.setName("r2");
     role2.setPortType(portType2);
     partnerLinkType.setSecondRole(role2);
-
     // partner link
     PartnerLinkDefinition partnerLink = new PartnerLinkDefinition();
     partnerLink.setName("pl1");
     partnerLink.setPartnerLinkType(partnerLinkType);
     partnerLink.setMyRole(role1);
     partnerLink.setPartnerRole(role2);
-
     // to
     to.setPartnerLink(partnerLink);
-
-    // copy
-    Copy copy = new Copy();
-    copy.setTo(to);
-
-    // assign
-    Assign assign = new Assign("main");
-    assign.addOperation(copy);
-
-    // process definition
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-
-    // global scope
-    Scope globalScope = processDefinition.getGlobalScope();
-    globalScope.addPartnerLink(partnerLink);
-    globalScope.setActivity(assign);
-
+    // process and global scope
+    BpelProcessDefinition pd = new BpelProcessDefinition();
+    Scope scope = pd.getGlobalScope();
+    scope.addPartnerLink(partnerLink);
     // instantiate process
-    token = new ProcessInstance(processDefinition).getRootToken();
-
+    token = new ProcessInstance(pd).getRootToken();
     // initialize global scope
-    globalScope.createInstance(token).initializeData();
+    scope.createInstance(token).initializeData();
   }
 
   public void testAssign() {
@@ -109,7 +84,9 @@
     EndpointReference endpointRef = new WsaEndpointReference();
 
     to.assign(token, endpointRef);
-    assertSame(endpointRef, to.getPartnerLink().getInstance(token).getPartnerReference());
+    assertSame(endpointRef, to.getPartnerLink()
+        .getInstance(token)
+        .getPartnerReference());
   }
 
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPropertyTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPropertyTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPropertyTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToPropertyTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,15 +21,12 @@
 
 import org.w3c.dom.Element;
 
-import org.jbpm.bpel.graph.basic.Assign;
 import org.jbpm.bpel.graph.basic.assign.ToProperty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
-import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.xml.WsdlConstants;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
 import org.jbpm.bpel.xml.BpelConstants;
@@ -39,7 +36,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:37 $
  */
 public class ToPropertyTest extends TestCase {
 
@@ -67,49 +64,24 @@
       + "</definitions>";
 
   protected void setUp() throws Exception {
-    // process definition
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-
-    // wsdl
+    // process and global scope
+    BpelProcessDefinition pd = new BpelProcessDefinition();
+    Scope scope = pd.getGlobalScope();
+    // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = pd.getImportDefinition();
     importDefinition.addImport(WsdlUtil.createImport(def));
     new BpelReader().registerPropertyAliases(importDefinition);
-
-    // message
-    MessageType messageType = importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request"));
-
-    // variable
+    // message variable
     VariableDefinition variable = new VariableDefinition();
     variable.setName("msg");
-    variable.setType(messageType);
-
-    // property
-    Property property = importDefinition.getProperty(new QName(BpelConstants.NS_EXAMPLES,
-        "nameProperty"));
-
-    // to
+    variable.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES, "request")));
     to.setVariable(variable);
-    to.setProperty(property);
-
-    // copy
-    Copy copy = new Copy();
-    copy.setTo(to);
-
-    // assign
-    Assign assign = new Assign("main");
-    assign.addOperation(copy);
-
-    // global scope
-    Scope scope = processDefinition.getGlobalScope();
     scope.addVariable(variable);
-    scope.setActivity(assign);
-
+    // property
+    to.setProperty(importDefinition.getProperty(new QName(BpelConstants.NS_EXAMPLES, "nameProperty")));
     // instantiate process
-    token = new ProcessInstance(processDefinition).getRootToken();
-
+    token = new ProcessInstance(pd).getRootToken();
     // initialize global scope
     scope.createInstance(token).initializeData();
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToVariableTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToVariableTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToVariableTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/assign/ToVariableTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -15,7 +15,6 @@
 package org.jbpm.bpel.graph.basic.assign;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Set;
 
 import javax.wsdl.Definition;
@@ -24,15 +23,12 @@
 import junit.framework.TestCase;
 
 import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
 
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.SchemaType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
@@ -45,7 +41,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:37 $
  */
 public class ToVariableTest extends TestCase {
 
@@ -73,11 +69,8 @@
 
   protected void setUp() throws Exception {
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // message type
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = pd.getImportDefinition();
@@ -85,17 +78,17 @@
     // message variable
     messageVariable = new VariableDefinition();
     messageVariable.setName("msg");
-    messageVariable.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request")));
+    messageVariable.setType(importDefinition.getMessageType(new QName(
+        BpelConstants.NS_EXAMPLES, "request")));
     scope.addVariable(messageVariable);
     // simple variable
     simpleVariable = new VariableDefinition();
-    simpleVariable.setName("index");
-    simpleVariable.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "int")));
+    simpleVariable.setName("smp");
+    simpleVariable.setType(new SchemaType(new QName(
+        BpelConstants.NS_XML_SCHEMA, "string")));
     scope.addVariable(simpleVariable);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize global scope
     scope.createInstance(token).initializeData();
     messageValue = (MessageValue) messageVariable.getValueForAssign(token);
@@ -117,8 +110,8 @@
     to.setPart("elementPart");
     // instance data
     Element sourceElem = XmlUtil.createElement("urn:foo", "sourceElement");
-    sourceElem.appendChild(sourceElem.getOwnerDocument().createElementNS(BpelConstants.NS_EXAMPLES,
-        ELEM_SURPRISE));
+    sourceElem.appendChild(sourceElem.getOwnerDocument().createElementNS(
+        BpelConstants.NS_EXAMPLES, ELEM_SURPRISE));
     to.assign(token, sourceElem);
     // assertions
     Element part = messageValue.getPart("elementPart");
@@ -126,11 +119,12 @@
     assertEquals(ELEM_SURPRISE, part.getLocalName());
   }
 
-  public void testAssignQuery_noContextAccess() {
+  public void testAssignQuery() {
     // namespace declarations
-    Set namespaces = Collections.singleton(new Namespace("tns", BpelConstants.NS_EXAMPLES));
+    Set namespaces = Collections.singleton(new Namespace("tns",
+        BpelConstants.NS_EXAMPLES));
     // query
-    VariableQuery query = new VariableQuery();
+    Query query = new Query();
     query.setText("/tns:surpriseElement/e");
     query.setNamespaces(namespaces);
     // to
@@ -143,33 +137,4 @@
     Element part = messageValue.getPart("elementPart");
     assertEquals("1981", DatatypeUtil.toString(XmlUtil.getElement(part, "e")));
   }
-
-  public void testAssignQuery_contextAccess() throws SAXException {
-    // namespace declarations
-    Set namespaces = new HashSet();
-    namespaces.add(new Namespace("tns", BpelConstants.NS_EXAMPLES));
-    namespaces.add(new Namespace("bpel", BpelConstants.NS_BPEL_1_1));
-    // query
-    VariableQuery query = new VariableQuery();
-    query.setText("/tns:surpriseElement/*[position() = bpel:getVariableData('index')]");
-    query.setNamespaces(namespaces);
-    // to
-    to.setVariable(messageVariable);
-    to.setPart("elementPart");
-    to.setQuery(query);
-    // instance data
-    messageValue.setPart("elementPart", XmlUtil.parseText("<tns:surpriseElement xmlns:tns='"
-        + BpelConstants.NS_EXAMPLES
-        + "'>"
-        + "  <b on=\"true\">true</b>"
-        + "  <c name=\"venus\"/>"
-        + "  <d amount=\"20\"/>"
-        + "  <e>30</e>"
-        + "</tns:surpriseElement>"));
-    simpleVariable.setValue(token, new Integer(4));
-    to.assign(token, "1981");
-    // assertions
-    Element part = messageValue.getPart("elementPart");
-    assertEquals("1981", DatatypeUtil.toString(XmlUtil.getElement(part, "e")));
-  }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/AssignDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/AssignDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/AssignDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/AssignDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -37,7 +37,7 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.impl.PropertyImpl;
@@ -46,7 +46,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:20 $
+ * @version $Revision: 1800 $ $Date: 2007/07/22 05:54:37 $
  */
 public class AssignDbTest extends AbstractActivityDbTestCase {
 
@@ -57,7 +57,7 @@
     variable.setName("RFQ");
     processDefinition.getGlobalScope().addVariable(variable);
     // query
-    VariableQuery query = new VariableQuery();
+    Query query = new Query();
     query.setText("/description");
     // from
     FromVariable from = new FromVariable();
@@ -251,7 +251,7 @@
     variable.setName("RFQ");
     processDefinition.getGlobalScope().addVariable(variable);
     // query
-    VariableQuery query = new VariableQuery();
+    Query query = new Query();
     query.setText("/description");
     // to
     ToVariable to = new ToVariable();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/InvokeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/InvokeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/InvokeDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/InvokeDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:32 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class InvokeDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReceiveDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReceiveDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReceiveDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReceiveDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:32 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class ReceiveDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReplyDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReplyDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReplyDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ReplyDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:32 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class ReplyDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ThrowDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ThrowDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ThrowDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/ThrowDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/03/05 13:10:21 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public class ThrowDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/WaitDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/WaitDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/WaitDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/basic/WaitDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:32 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class WaitDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/AbstractActivityDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/AbstractActivityDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/AbstractActivityDbTestCase.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/AbstractActivityDbTestCase.java	2009-02-06 09:17:21.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:08:03 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:08:03 $
  */
 public abstract class AbstractActivityDbTestCase extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ActivityDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ActivityDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ActivityDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ActivityDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -17,12 +17,12 @@
 import junit.framework.TestCase;
 
 import org.jbpm.bpel.graph.basic.Empty;
-import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.graph.def.Transition;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:37 $
  */
 public class ActivityDefTest extends TestCase {
 
@@ -33,7 +33,7 @@
     activity = new Empty();
     link = new LinkDefinition("testLink");
 
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     pd.getGlobalScope().setActivity(activity);
   }
 
@@ -55,9 +55,11 @@
   }
 
   public void testSuppressJoinFailure() {
+    Scope globalScope = new BpelProcessDefinition().getGlobalScope();
+    globalScope.setActivity(activity);
     assertFalse(activity.suppressJoinFailure());
 
-    activity.getCompositeActivity().setSuppressJoinFailure(Boolean.TRUE);
+    globalScope.setSuppressJoinFailure(Boolean.TRUE);
     assertTrue(activity.suppressJoinFailure());
 
     activity.setSuppressJoinFailure(Boolean.FALSE);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/BpelProcessDefinitionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/BpelProcessDefinitionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/BpelProcessDefinitionDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/BpelProcessDefinitionDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,28 +14,27 @@
  */
 package org.jbpm.bpel.graph.def;
 
+import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:56 $
  */
 public class BpelProcessDefinitionDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-      BpelConstants.NS_EXAMPLES);
-
   public void testGlobalScope() {
-    // cause the global scope to be created
-    processDefinition.getGlobalScope();
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    Scope globalScope = processDefinition.getGlobalScope();
 
     processDefinition = saveAndReload(processDefinition);
+    globalScope = processDefinition.getGlobalScope();
 
-    assertSame(processDefinition, processDefinition.getGlobalScope().getProcessDefinition());
+    assertSame(processDefinition, globalScope.getProcessDefinition());
   }
 
   public void testImports() {
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     ImportDefinition importDefinition = processDefinition.getImportDefinition();
 
     processDefinition = saveAndReload(processDefinition);
@@ -45,6 +44,7 @@
   }
 
   public void testExpressionLanguage() {
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     processDefinition.setExpressionLanguage("xpath");
 
     processDefinition = saveAndReload(processDefinition);
@@ -53,6 +53,7 @@
   }
 
   public void testQueryLanguage() {
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     processDefinition.setQueryLanguage("java");
 
     processDefinition = saveAndReload(processDefinition);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/GraphDefTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/GraphDefTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/GraphDefTests.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/GraphDefTests.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,34 +14,36 @@
  */
 package org.jbpm.bpel.graph.def;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
 import org.jbpm.bpel.graph.scope.ScopeDefTest;
 import org.jbpm.bpel.graph.struct.FlowDefTest;
 import org.jbpm.bpel.graph.struct.IfDefTest;
 import org.jbpm.bpel.graph.struct.PickDefTest;
-import org.jbpm.bpel.graph.struct.RepeatUntilDefTest;
 import org.jbpm.bpel.graph.struct.SequenceDefTest;
 import org.jbpm.bpel.graph.struct.WhileDefTest;
 
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:34 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:06 $
  */
 public class GraphDefTests {
 
   public static Test suite() {
     TestSuite suite = new TestSuite("graph definition tests");
 
+    // structured tests
     suite.addTestSuite(SequenceDefTest.class);
     suite.addTestSuite(WhileDefTest.class);
-    suite.addTestSuite(RepeatUntilDefTest.class);
     suite.addTestSuite(PickDefTest.class);
     suite.addTestSuite(FlowDefTest.class);
     suite.addTestSuite(IfDefTest.class);
     suite.addTestSuite(ScopeDefTest.class);
 
+    // basic activities
+    // TODO
+
     return suite;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ImportDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ImportDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ImportDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/def/ImportDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -17,62 +17,54 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.Import;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 
 public class ImportDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-
-  protected void setUp() throws Exception {
-    super.setUp();
-    /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid opening another context
-     */
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-  }
-
   public void testLocation() {
-    Import _import = new Import();
-    _import.setLocation("location");
-    processDefinition.getImportDefinition().addImport(_import);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    Import anImport = new Import();
+    anImport.setLocation("aLocation");
+    processDefinition.getImportDefinition().addImport(anImport);
 
     processDefinition = saveAndReload(processDefinition);
 
-    _import = (Import) processDefinition.getImportDefinition().getImports().get(0);
-    assertEquals("location", _import.getLocation());
+    anImport = (Import) processDefinition.getImportDefinition().getImports().get(0);
+    assertEquals("aLocation", anImport.getLocation());
   }
 
   public void testNamespace() {
-    Import _import = new Import();
-    _import.setNamespace("http://www.enoughisenough.org");
-    processDefinition.getImportDefinition().addImport(_import);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    Import anImport = new Import();
+    anImport.setNamespace("http://www.enoughisenough.org");
+    processDefinition.getImportDefinition().addImport(anImport);
 
     processDefinition = saveAndReload(processDefinition);
 
-    _import = (Import) processDefinition.getImportDefinition().getImports().get(0);
-    assertEquals("http://www.enoughisenough.org", _import.getNamespace());
+    anImport = (Import) processDefinition.getImportDefinition().getImports().get(0);
+    assertEquals("http://www.enoughisenough.org", anImport.getNamespace());
   }
 
   public void testWsdlType() {
-    Import _import = new Import();
-    _import.setType(Import.Type.WSDL);
-    processDefinition.getImportDefinition().addImport(_import);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    Import anImport = new Import();
+    anImport.setType(Import.Type.WSDL);
+    processDefinition.getImportDefinition().addImport(anImport);
 
     processDefinition = saveAndReload(processDefinition);
 
-    _import = (Import) processDefinition.getImportDefinition().getImports().get(0);
-    assertEquals(Import.Type.WSDL, _import.getType());
+    anImport = (Import) processDefinition.getImportDefinition().getImports().get(0);
+    assertEquals(Import.Type.WSDL, anImport.getType());
   }
 
   public void testSchemaType() {
-    Import _import = new Import();
-    _import.setType(Import.Type.XML_SCHEMA);
-    processDefinition.getImportDefinition().addImport(_import);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    Import anImport = new Import();
+    anImport.setType(Import.Type.XML_SCHEMA);
+    processDefinition.getImportDefinition().addImport(anImport);
 
     processDefinition = saveAndReload(processDefinition);
 
-    _import = (Import) processDefinition.getImportDefinition().getImports().get(0);
-    assertEquals(Import.Type.XML_SCHEMA, _import.getType());
+    anImport = (Import) processDefinition.getImportDefinition().getImports().get(0);
+    assertEquals(Import.Type.XML_SCHEMA, anImport.getType());
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AbstractExeTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AbstractExeTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AbstractExeTestCase.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AbstractExeTestCase.java	2009-02-06 09:17:21.000000000 +0100
@@ -31,7 +31,7 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.CompositeActivity;
 import org.jbpm.bpel.graph.def.LinkDefinition;
-import org.jbpm.bpel.graph.exe.state.EndState;
+import org.jbpm.bpel.graph.exe.state.EndedState;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.graph.struct.Sequence;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
@@ -50,7 +50,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:17 $
  */
 public abstract class AbstractExeTestCase extends TestCase {
 
@@ -240,7 +240,7 @@
   }
 
   protected void assertCompleted(Token token) {
-    assertEquals(EndState.COMPLETED, Scope.getInstance(token).getState());
+    assertEquals(EndedState.COMPLETED, Scope.getInstance(token).getState());
     assertTrue(token.hasEnded());
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ActivityExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ActivityExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ActivityExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ActivityExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -32,7 +32,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:09:17 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:17 $
  */
 public class ActivityExeTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AssignExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AssignExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AssignExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/AssignExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/07/26 08:06:48 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 08:06:48 $
  */
 public class AssignExeTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/EventExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/EventExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/EventExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/EventExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class EventExeTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FaultInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FaultInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FaultInstanceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FaultInstanceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -32,7 +32,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:09:17 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:17 $
  */
 public class FaultInstanceDbTest extends AbstractDbTestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: acyclicGraph.bpel
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: AcyclicGraphTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE1Test.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE1Test.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE1Test.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE1Test.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,26 +14,30 @@
  */
 package org.jbpm.bpel.graph.exe.flow;
 
+import java.io.IOException;
+
 import junit.extensions.TestSetup;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+import org.jbpm.graph.exe.Token;
 
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.exe.AbstractExeTestCase;
 import org.jbpm.bpel.graph.exe.ScopeInstance;
-import org.jbpm.bpel.graph.exe.state.EndState;
+import org.jbpm.bpel.graph.exe.state.EndedState;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.graph.struct.Flow;
 import org.jbpm.bpel.graph.struct.Sequence;
 import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.util.XmlUtil;
-import org.jbpm.graph.exe.Token;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:09 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class DPE1Test extends AbstractExeTestCase {
 
@@ -100,7 +104,7 @@
     assertTrue(startToken.hasEnded());
     ScopeInstance scope = Scope.getInstance(startToken);
     assertEquals(BpelConstants.FAULT_JOIN_FAILURE, scope.getFaultInstance().getName());
-    assertEquals(EndState.FAULTED, scope.getState());
+    assertEquals(EndedState.FAULTED, scope.getState());
   }
 
   public void testInitialFail() throws Exception {
@@ -137,7 +141,7 @@
     assertTrue(startToken.hasEnded());
     ScopeInstance scope = Scope.getInstance(startToken);
     assertEquals(BpelConstants.FAULT_JOIN_FAILURE, scope.getFaultInstance().getName());
-    assertEquals(EndState.FAULTED, scope.getState());
+    assertEquals(EndedState.FAULTED, scope.getState());
   }
 
   /*
@@ -211,15 +215,8 @@
     assertReceiveAndComplete(tokenS, c);
   }
 
-  public static Test suite() {
-    return new Setup();
-  }
-
-  private static class Setup extends TestSetup {
-
-    private Setup() {
-      super(new TestSuite(DPE1Test.class));
-    }
+  public static Test suite() throws SAXException, IOException {
+    return new TestSetup(new TestSuite(DPE1Test.class)) {
 
     protected void setUp() throws Exception {
       flowElem = (Element) XmlUtil.parseResource("dpe1.xml", DPE1Test.class).getNode();
@@ -228,5 +225,6 @@
     protected void tearDown() throws Exception {
       flowElem = null;
     }
+    };
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe1.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe1.xml
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe1.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe1.xml	2009-02-06 09:17:21.000000000 +0100
@@ -1,4 +1,4 @@
-<flow xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+<flow xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/">
   <links>
     <link name="XtoB" />
     <link name="YtoB" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE2Test.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE2Test.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE2Test.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE2Test.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,21 +14,25 @@
  */
 package org.jbpm.bpel.graph.exe.flow;
 
+import java.io.IOException;
+
 import junit.extensions.TestSetup;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+import org.jbpm.graph.exe.Token;
 
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.exe.AbstractExeTestCase;
 import org.jbpm.bpel.graph.struct.Flow;
 import org.jbpm.bpel.xml.util.XmlUtil;
-import org.jbpm.graph.exe.Token;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:14 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class DPE2Test extends AbstractExeTestCase {
 
@@ -148,15 +152,8 @@
     assertReceiveAndComplete(tokenC, c);
   }
 
-  public static Test suite() {
-    return new Setup();
-  }
-
-  private static class Setup extends TestSetup {
-
-    private Setup() {
-      super(new TestSuite(DPE2Test.class));
-    }
+  public static Test suite() throws SAXException, IOException {
+    return new TestSetup(new TestSuite(DPE2Test.class)) {
 
     protected void setUp() throws Exception {
       flowElem = (Element) XmlUtil.parseResource("dpe2.xml", DPE2Test.class).getNode();
@@ -165,5 +162,6 @@
     protected void tearDown() throws Exception {
       flowElem = null;
     }
+    };
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe2.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe2.xml
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe2.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe2.xml	2009-02-06 09:17:21.000000000 +0100
@@ -1,4 +1,4 @@
-<flow xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+<flow xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/">
   <links>
     <link name="AtoB" />
     <link name="BtoC" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE3Test.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE3Test.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE3Test.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/DPE3Test.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,11 +14,14 @@
  */
 package org.jbpm.bpel.graph.exe.flow;
 
+import java.io.IOException;
+
 import junit.extensions.TestSetup;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
 
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.exe.AbstractExeTestCase;
@@ -28,7 +31,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:14 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class DPE3Test extends AbstractExeTestCase {
 
@@ -62,15 +65,8 @@
     assertReceiveAndComplete(tokenC, c);
   }
 
-  public static Test suite() {
-    return new Setup();
-  }
-
-  private static class Setup extends TestSetup {
-
-    private Setup() {
-      super(new TestSuite(DPE3Test.class));
-    }
+  public static Test suite() throws SAXException, IOException {
+    return new TestSetup(new TestSuite(DPE3Test.class)) {
 
     protected void setUp() throws Exception {
       flowElem = (Element) XmlUtil.parseResource("dpe3.xml", DPE3Test.class).getNode();
@@ -79,5 +75,6 @@
     protected void tearDown() throws Exception {
       flowElem = null;
     }
+    };
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe3.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe3.xml
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe3.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow/dpe3.xml	2009-02-06 09:17:21.000000000 +0100
@@ -1,4 +1,4 @@
-<flow xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+<flow xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/">
   <links>
     <link name="AtoB" />
     <link name="AtoC" />
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: flowGraphExample.bpel
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: FlowGraphExampleTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: linkScoping.bpel
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: linkScopingExample.bpel
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: LinkScopingExampleTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/flow: LinkScopingTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FlowExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FlowExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FlowExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/FlowExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:11 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class FlowExeTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/GraphExeTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/GraphExeTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/GraphExeTests.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/GraphExeTests.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,16 +20,16 @@
 import org.jbpm.bpel.graph.exe.flow.DPE1Test;
 import org.jbpm.bpel.graph.exe.flow.DPE2Test;
 import org.jbpm.bpel.graph.exe.flow.DPE3Test;
-import org.jbpm.bpel.graph.exe.flow.AcyclicGraphTest;
-import org.jbpm.bpel.graph.exe.flow.LinkScopingTest;
+import org.jbpm.bpel.graph.exe.flow.FlowGraphExampleTest;
+import org.jbpm.bpel.graph.exe.flow.LinkScopingExampleTest;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:34 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:17:02 $
  */
 public class GraphExeTests {
 
-  public static Test suite() {
+  public static Test suite() throws Exception {
     TestSuite suite = new TestSuite("activity execution tests");
 
     // basic elements
@@ -41,9 +41,7 @@
     suite.addTestSuite(ScopeExeTest.class);
     suite.addTestSuite(SequenceExeTest.class);
     suite.addTestSuite(WhileExeTest.class);
-    suite.addTestSuite(WhileScaleTest.class);
-    suite.addTestSuite(RepeatUntilExeTest.class);
-    suite.addTestSuite(RepeatUntilScaleTest.class);
+    suite.addTestSuite(WhileStackTest.class);
     suite.addTestSuite(PickExeTest.class);
     suite.addTestSuite(FlowExeTest.class);
     suite.addTestSuite(IfExeTest.class);
@@ -53,8 +51,8 @@
     suite.addTest(DPE1Test.suite());
     suite.addTest(DPE2Test.suite());
     suite.addTest(DPE3Test.suite());
-    suite.addTest(AcyclicGraphTest.suite());
-    suite.addTest(LinkScopingTest.suite());
+    suite.addTest(FlowGraphExampleTest.suite());
+    suite.addTest(LinkScopingExampleTest.suite());
     suite.addTestSuite(ControlDependencyTest.class);
 
     // basic activities
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/IfExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/IfExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/IfExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/IfExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class IfExeTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/InitialActivitiesTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/InitialActivitiesTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/InitialActivitiesTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/InitialActivitiesTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:11 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class InitialActivitiesTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:09:17 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:17 $
  */
 public class LinkInstanceDbTest extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/LinkInstanceTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,13 +22,13 @@
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.LinkDefinition;
-import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class LinkInstanceTest extends TestCase {
 
@@ -42,14 +42,16 @@
 
   protected void setUp() {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    token = new ProcessInstance(pd).getRootToken();
+    ProcessDefinition pd = new BpelProcessDefinition();
+    ProcessInstance pi = new ProcessInstance(pd);
+    token = pi.getRootToken();
     target = new Empty("target");
     link = new LinkDefinition(linkName);
     link.createInstance(token);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/MockIntegrationService.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/MockIntegrationService.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/MockIntegrationService.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/MockIntegrationService.java	2009-02-06 09:17:21.000000000 +0100
@@ -35,7 +35,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:06 $
  */
 public class MockIntegrationService implements IntegrationService {
 
@@ -78,16 +78,18 @@
   }
 
   public static void createMark(Object marker, Token token) {
-    token.getProcessInstance().getContextInstance().createVariable(getIdString(marker), "xxx",
-        token);
+    token.getProcessInstance().getContextInstance().createVariable(
+        getIdString(marker), "xxx", token);
   }
 
   public static void deleteMark(Object marker, Token token) {
-    token.getProcessInstance().getContextInstance().deleteVariable(getIdString(marker), token);
+    token.getProcessInstance().getContextInstance().deleteVariable(
+        getIdString(marker), token);
   }
 
   public static boolean hasMark(Object marker, Token token) {
-    return token.getProcessInstance().getContextInstance().hasVariable(getIdString(marker), token);
+    return token.getProcessInstance().getContextInstance().hasVariable(
+        getIdString(marker), token);
   }
 
   public void receive(ReceiveAction receiveAction, Token token, boolean oneShot) {
@@ -122,15 +124,12 @@
     throw new UnsupportedOperationException();
   }
 
-  public void cancelInvocation(InvokeAction invokeAction, Token token) {
-    throw new UnsupportedOperationException();
-  }
-
   public EndpointReference getMyReference(PartnerLinkDefinition partnerLink, Token token) {
     return (EndpointReference) myReferences.get(getIdString(partnerLink));
   }
 
-  public void setMyReference(PartnerLinkDefinition partnerLink, EndpointReference myReference) {
+  public void setMyReference(PartnerLinkDefinition partnerLink,
+      EndpointReference myReference) {
     myReferences.put(getIdString(partnerLink), myReference);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/PickExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/PickExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/PickExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/PickExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:11 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class PickExeTest extends AbstractExeTestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe: RepeatUntilExeTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe: RepeatUntilScaleTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -23,7 +23,7 @@
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.graph.exe.ScopeInstanceIterator;
 import org.jbpm.bpel.graph.exe.state.ActiveState;
-import org.jbpm.bpel.graph.exe.state.EndState;
+import org.jbpm.bpel.graph.exe.state.EndedState;
 import org.jbpm.bpel.graph.scope.Catch;
 import org.jbpm.bpel.graph.scope.OnEvent;
 import org.jbpm.bpel.graph.scope.Scope;
@@ -33,7 +33,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/03/19 02:48:03 $
  */
 public class ScopeExeTest extends AbstractExeTestCase {
 
@@ -84,10 +84,10 @@
     assertEquals(scopeToken, scopeInstance.getToken());
     assertNotNull(scopeInstance);
     assertEquals(scopeInstance.getState(),
-        ActiveState.PRIMARY);
+        ActiveState.PERFORMING_PRIMARY_ACTIVITY);
 
     assertReceiveAndComplete(normalFlowToken, receive);
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
 
     // parent token advanced and completed
     assertCompleted(token);
@@ -127,7 +127,7 @@
     Receive receive = (Receive) scopeActivity.getActivity();
     Token activityToken = scopeInstance.getPrimaryToken();
     receive.messageReceived(receive.getReceiveAction(), activityToken);
-    assertEquals(ActiveState.EVENTS, scopeInstance.getState());
+    assertEquals(ActiveState.COMPLETING_EVENTS, scopeInstance.getState());
 
     // a new message arrives to the first event. It must be rejected
     int beforeEventCount = scopeInstance.getEventTokens().size();
@@ -181,7 +181,7 @@
     receive.messageReceived(receive.getReceiveAction(), activityToken);
 
     // parent token advanced and completed
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
     assertCompleted(token);
   }
 
@@ -210,11 +210,11 @@
     // compensation won't work since persistence is disabled.
     // assertEquals(EndedState.COMPENSATED,
     // ((ScopeInstance)childrenIt.next()).getState());
-    assertEquals(EndState.COMPLETED,
+    assertEquals(EndedState.COMPLETED,
         ((ScopeInstance) childrenIt.next()).getState());
 
     // parent token advanced and completed abnormally
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
     assertTrue(token.hasEnded());
   }
 
@@ -248,7 +248,7 @@
 
     ScopeInstanceIterator childrenIt = new ScopeInstanceIterator(scopeToken);
     assertTrue(childrenIt.hasNext());
-    assertEquals(EndState.COMPLETED,
+    assertEquals(EndedState.COMPLETED,
         ((ScopeInstance) childrenIt.next()).getState());
     assertFalse(childrenIt.hasNext());
 
@@ -260,7 +260,7 @@
     handlerReceive.messageReceived(handlerReceive.getReceiveAction(), handlerToken);
 
     // parent token exited and has ended
-    assertEquals(EndState.EXITED, scopeInstance.getState());
+    assertEquals(EndedState.EXITED, scopeInstance.getState());
     assertTrue(token.hasEnded());
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeInstanceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/ScopeInstanceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -17,7 +17,7 @@
 import javax.xml.namespace.QName;
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.graph.exe.state.EndState;
+import org.jbpm.bpel.graph.exe.state.EndedState;
 import org.jbpm.bpel.graph.scope.Compensate;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:17 $
  */
 public class ScopeInstanceDbTest extends AbstractDbTestCase {
 
@@ -104,12 +104,12 @@
 
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processDefinition.getGlobalScope().createInstance(
-        processInstance.getRootToken()).setState(EndState.COMPLETED);
+        processInstance.getRootToken()).setState(EndedState.COMPLETED);
 
     processInstance = saveAndReload(processInstance);
 
     ScopeInstance scopeInstance = Scope.getInstance(processInstance.getRootToken());
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
   }
 
   public void testEventState() {
@@ -117,11 +117,11 @@
     graphSession.saveProcessDefinition(processDefinition);
 
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
-    processDefinition.getGlobalScope().createEventInstance(processInstance.getRootToken()).setState(EndState.TERMINATED);
+    processDefinition.getGlobalScope().createEventInstance(processInstance.getRootToken()).setState(EndedState.TERMINATED);
 
     processInstance = saveAndReload(processInstance);
 
     ScopeInstance event = Scope.getInstance(processInstance.getRootToken());
-    assertEquals(EndState.TERMINATED, event.getState());
+    assertEquals(EndedState.TERMINATED, event.getState());
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/SequenceExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/SequenceExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/SequenceExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/SequenceExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 00:39:11 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class SequenceExeTest extends AbstractExeTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/AbstractStateTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/AbstractStateTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/AbstractStateTestCase.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/AbstractStateTestCase.java	2009-02-06 09:17:21.000000000 +0100
@@ -23,7 +23,6 @@
 import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.graph.exe.Compensator;
 import org.jbpm.bpel.graph.exe.FaultInstance;
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.graph.exe.ScopeState;
@@ -37,21 +36,21 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:09:33 $
  */
 public abstract class AbstractStateTestCase extends TestCase {
 
-  Token rootToken;
+  Token root;
   ScopeInstance scopeInstance;
-  TestScopeInstance parentInstance;
-  TestScopeInstance activeInstance;
-  TestScopeInstance handlingInstance;
-  TestScopeInstance completedInstance;
-  BpelProcessDefinition processDefinition;
-  Scope scope = new Scope();
-  Scope parentScope = new Scope();
-  LogActivity scopeCompletionLog = new LogActivity();
-  LogActivity handlerLog = new LogActivity();
+  TestScopeInstance parent;
+  TestScopeInstance activeChild;
+  TestScopeInstance handlingChild;
+  TestScopeInstance completedChild;
+  BpelProcessDefinition pd;
+  Scope scope;
+  Scope parentScope;
+  LogActivity scopeCompletionLog;
+  LogActivity handlerLog;
 
   private JbpmContext jbpmContext;
 
@@ -59,87 +58,74 @@
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
-    // active scope
-    Scope activeScope = new Scope("active");
-    activeScope.setActivity(new Empty());
+    pd = new BpelProcessDefinition("process", BpelConstants.NS_EXAMPLES);
 
-    // handling scope
-    Scope handlingScope = new Scope("handling");
-    handlingScope.setActivity(new Empty());
+    Sequence rootSequence = new Sequence();
+    pd.getGlobalScope().setActivity(rootSequence);
 
-    // completed scope
-    Scope completedScope = new Scope("completed");
-    completedScope.setActivity(new Empty());
+    // parent
+    parentScope = new Scope();
+    parentScope.installFaultExceptionHandler();
+    parentScope.setName("parent");
+    rootSequence.addNode(parentScope);
+    scopeCompletionLog = new LogActivity();
+    rootSequence.addNode(scopeCompletionLog);
 
-    // flow
-    Flow flow = new Flow();
-    flow.addNode(activeScope);
-    flow.addNode(handlingScope);
-    flow.addNode(completedScope);
+    // parent instance
+    ProcessInstance pi = new ProcessInstance(pd);
+    root = pi.getRootToken();
+    parent = createScopeInstance(parentScope, root);
+    root.setNode(parentScope);
 
-    // scope
+    // scope definition
+    scope = new Scope();
     scope.installFaultExceptionHandler();
     scope.setName("scope");
-    scope.setActivity(flow);
+    parentScope.addNode(scope);
 
-    // parent scope
-    parentScope.setName("parent");
-    parentScope.installFaultExceptionHandler();
-    parentScope.setActivity(scope);
+    // scope instance
+    Token scopeToken = new Token(root, "scope");
+    scopeInstance = scope.createInstance(scopeToken);
+    scopeInstance.setState(getState());
+    scopeToken.setNode(scope);
 
-    // root sequence
-    Sequence rootSequence = new Sequence();
-    rootSequence.addNode(parentScope);
-    rootSequence.addNode(scopeCompletionLog);
+    // children definition - instances
+    Flow flow = new Flow();
+    scope.setActivity(flow);
 
-    /*
-     * the bpel definition uses the jbpm configuration, so create a context before the definition to
-     * avoid loading another configuration from the default resource
-     */
-    processDefinition = new BpelProcessDefinition("process", BpelConstants.NS_EXAMPLES);
-    processDefinition.getGlobalScope().setActivity(rootSequence);
+    Token activityToken = scopeInstance.getPrimaryToken();
+    activityToken.setNode(flow);
 
-    // process instance
-    ProcessInstance processInstance = new ProcessInstance(processDefinition);
-    rootToken = processInstance.getRootToken();
-
-    // parent scope instance
-    parentInstance = createScopeInstance(parentScope, rootToken);
-    rootToken.setNode(parentScope);
+    Scope activeScope = new Scope("active");
+    activeScope.setActivity(new Empty());
+    flow.addNode(activeScope);
+    Token forkToken = new Token(activityToken, "1");
+    forkToken.setNode(activeScope);
+    Token aChild = new Token(forkToken, "active");
+    activeChild = createScopeInstance(activeScope, aChild);
+    activeChild.setState(ActiveState.PERFORMING_PRIMARY_ACTIVITY);
 
-    // scope instance
-    Token token = new Token(rootToken, scope.getName());
-    token.setNode(scope);
-    scopeInstance = scope.createInstance(token);
-    scopeInstance.setState(getState());
+    Scope handlingScope = new Scope("handling");
+    handlingScope.setActivity(new Empty());
+    flow.addNode(handlingScope);
+    forkToken = new Token(activityToken, "2");
+    forkToken.setNode(handlingScope);
+    aChild = new Token(forkToken, "handling");
+    handlingChild = createScopeInstance(handlingScope, aChild);
+    handlingChild.setState(FaultingState.FAULTING_WITH_HANDLER);
 
-    // flow token
-    Token flowToken = scopeInstance.getPrimaryToken();
-    flowToken.setNode(flow);
-
-    // active token
-    Token concurrentToken = new Token(flowToken, "1");
-    concurrentToken.setNode(activeScope);
-
-    Token scopeToken = new Token(concurrentToken, "active");
-    activeInstance = createScopeInstance(activeScope, scopeToken);
-
-    // handling token
-    concurrentToken = new Token(flowToken, "2");
-    concurrentToken.setNode(handlingScope);
-
-    scopeToken = new Token(concurrentToken, "handling");
-    handlingInstance = createScopeInstance(handlingScope, scopeToken);
-    handlingInstance.setState(FaultingState.EXPLICIT);
-
-    // completed token
-    concurrentToken = new Token(flowToken, "3");
-    concurrentToken.setNode(completedScope);
-
-    scopeToken = new Token(concurrentToken, "completed");
-    scopeToken.end();
-    completedInstance = createScopeInstance(completedScope, scopeToken);
-    completedInstance.setState(EndState.COMPLETED);
+    Scope completedScope = new Scope("completed");
+    completedScope.setActivity(new Empty());
+    flow.addNode(completedScope);
+    forkToken = new Token(activityToken, "3");
+    forkToken.setNode(completedScope);
+    aChild = new Token(forkToken, "completed");
+    completedChild = createScopeInstance(completedScope, aChild);
+    // completed token MUST be null
+    completedChild.getToken().end();
+    completedChild.setState(EndedState.COMPLETED);
+
+    handlerLog = new LogActivity();
   }
 
   protected void tearDown() throws Exception {
@@ -151,7 +137,7 @@
   public void testFaulted() {
     try {
       scopeInstance.faulted(null);
-      fail("faulted cannot be invoked at this state");
+      fail("faulted can't be invoked at this state");
     }
     catch (IllegalStateException e) {
       // expected exception
@@ -161,7 +147,7 @@
   public void testTerminate() {
     try {
       scopeInstance.terminate();
-      fail("terminate cannot be invoked at this state");
+      fail("terminate can't be invoked at this state");
     }
     catch (IllegalStateException e) {
       // expected exception
@@ -171,7 +157,7 @@
   public void testCompleted() {
     try {
       scopeInstance.completed();
-      fail("completed cannot be invoked at this state");
+      fail("completed can't be invoked at this state");
     }
     catch (IllegalStateException e) {
       // expected exception
@@ -181,17 +167,18 @@
   public void testCompensate() {
     try {
       scopeInstance.compensate(null);
-      fail("compensate cannot be invoked at this state");
+      fail("compensate can't be invoked at this state");
     }
     catch (IllegalStateException e) {
       // expected exception
     }
+
   }
 
   public void testChildrenTerminated() {
     try {
       scopeInstance.getState().childrenTerminated(scopeInstance);
-      fail("children terminated cannot be invoked at this state");
+      fail("children terminated can't be invoked at this state");
     }
     catch (IllegalStateException e) {
       // expected exception
@@ -200,15 +187,15 @@
 
   // compensation won't work since it depends on persistence
   void assertChildrenCompensated() {
-    assertNull(activeInstance.compensated);
-    assertNull(handlingInstance.compensated);
-    assertNotNull(completedInstance.compensated);
+    assertNull(activeChild.compensated);
+    assertNull(handlingChild.compensated);
+    assertNotNull(completedChild.compensated);
   }
 
   void assertChildrenTerminated() {
-    assertTrue(activeInstance.terminated);
-    assertTrue(handlingInstance.terminated);
-    assertFalse(completedInstance.terminated);
+    assertTrue(activeChild.terminated);
+    assertTrue(handlingChild.terminated);
+    assertFalse(completedChild.terminated);
   }
 
   static TestScopeInstance createScopeInstance(Scope scope, Token token) {
@@ -220,11 +207,11 @@
 
   static class TestScopeInstance extends ScopeInstance {
 
-    boolean childCompensated;
-    boolean childTerminated;
-    boolean childFaulted;
+    boolean childCompensated = false;
+    boolean childTerminated = false;
+    boolean childFaulted = false;
 
-    boolean terminated;
+    boolean terminated = false;
     Date compensated;
 
     private static final long serialVersionUID = 1L;
@@ -249,14 +236,14 @@
       terminated = true;
     }
 
-    public void compensate(Compensator compensator) {
+    public void compensate() {
       compensated = new Date();
     }
   }
 
   static class LogActivity extends Activity {
 
-    boolean executed;
+    boolean executed = false;
 
     private static final long serialVersionUID = 1L;
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,45 +18,45 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class CompensatingWithHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return CompensatingState.EXPLICIT;
+    return CompensatingState.COMPENSATING_WITH_HANDLER;
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(CompensatingState.TERMINATING_HANDLER,
+    assertEquals(CompensatingState.TERMINATING_COMPENSATION_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(CompensatingState.TERMINATING_HANDLER,
+    assertEquals(CompensatingState.TERMINATING_COMPENSATION_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
-    assertFalse(parentInstance.childFaulted);
+    assertFalse(parent.childFaulted);
   }
 
   public void testCompleted() {
-    scopeInstance.setCompensator(parentInstance);
+    scopeInstance.setCompensator(parent);
     scopeInstance.createHandlerToken();
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPENSATED, scopeInstance.getState());
-    assertTrue(parentInstance.childCompensated);
+    assertEquals(EndedState.COMPENSATED, scopeInstance.getState());
+    assertTrue(parent.childCompensated);
   }
 
   public void testCompletedAtScope() {
-    scopeInstance.setCompensator(parentInstance);
+    scopeInstance.setCompensator(parent);
     scopeInstance.createHandlerToken();
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPENSATED, scopeInstance.getState());
-    assertTrue(parentInstance.childCompensated);
+    assertEquals(EndedState.COMPENSATED, scopeInstance.getState());
+    assertTrue(parent.childCompensated);
   }
 
   public void testChildrenCompensated() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithoutHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithoutHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithoutHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompensatingWithoutHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,39 +18,39 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/29 06:13:41 $
  */
 public class CompensatingWithoutHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return CompensatingState.DEFAULT;
+    return CompensatingState.COMPENSATING_WITHOUT_HANDLER;
   }
 
   public void testChildrenCompensated() {
-    scopeInstance.setCompensator(parentInstance);
+    scopeInstance.setCompensator(parent);
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.COMPENSATED, scopeInstance.getState());
-    assertTrue(parentInstance.childCompensated);
+    assertEquals(EndedState.COMPENSATED, scopeInstance.getState());
+    assertTrue(parent.childCompensated);
   }
 
   public void testChildrenCompensatedAtScope() {
-    scopeInstance.setCompensator(parentInstance);
+    scopeInstance.setCompensator(parent);
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.COMPENSATED, scopeInstance.getState());
-    assertTrue(parentInstance.childCompensated);
+    assertEquals(EndedState.COMPENSATED, scopeInstance.getState());
+    assertTrue(parent.childCompensated);
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
-    assertFalse(parentInstance.childCompensated);
-    assertTrue(parentInstance.childFaulted);
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
+    assertFalse(parent.childCompensated);
+    assertTrue(parent.childFaulted);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletedTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletedTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletedTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletedTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,25 +19,25 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CompletedTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return EndState.COMPLETED;
+    return EndedState.COMPLETED;
   }
 
   public void testCompensate() {
-    scopeInstance.compensate(parentInstance);
+    scopeInstance.compensate(parent);
 
-    assertTrue(parentInstance.childCompensated);
+    assertTrue(parent.childCompensated);
     assertFalse(handlerLog.executed);
     // compensation won't work since persistence is disabled
     /*
      * assertEquals(CompensatingState.COMPENSATING_IMPLICITLY, scope.getState();
      * assertChildrenCompensated();
      */
-    assertEquals(EndState.COMPENSATED, scopeInstance.getState());
+    assertEquals(EndedState.COMPENSATED, scopeInstance.getState());
   }
 
   public void testCompensateWithHandler() {
@@ -47,7 +47,7 @@
 
     scopeInstance.compensate(scopeInstance.getParent());
     assertTrue(handlerLog.executed);
-    assertEquals(CompensatingState.EXPLICIT,
+    assertEquals(CompensatingState.COMPENSATING_WITH_HANDLER,
         scopeInstance.getState());
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletingEventsTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletingEventsTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletingEventsTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/CompletingEventsTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,24 +19,24 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class CompletingEventsTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return ActiveState.EVENTS;
+    return ActiveState.COMPLETING_EVENTS;
   }
 
   public void testCompleted() {
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
   }
 
   public void testCompletedAtScope() {
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
     assertTrue(scopeCompletionLog.executed);
   }
 
@@ -44,7 +44,7 @@
     FaultInstance faultInstance = new FaultInstance();
     scopeInstance.faulted(faultInstance);
 
-    assertEquals(FaultingState.TERMINATING_PRIMARY,
+    assertEquals(FaultingState.TERMINATING_PRIMARY_ACTIVITY,
         scopeInstance.getState());
     assertEquals(faultInstance, scopeInstance.getFaultInstance());
     assertChildrenTerminated();
@@ -53,7 +53,7 @@
   public void testTerminate() {
     scopeInstance.terminate();
 
-    assertEquals(TerminatingState.TERMINATING_PRIMARY,
+    assertEquals(TerminatingState.TERMINATING_PRIMARY_ACTIVITY,
         scopeInstance.getState());
     assertChildrenTerminated();
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,40 +18,40 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class FaultingWithHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return FaultingState.EXPLICIT;
+    return FaultingState.FAULTING_WITH_HANDLER;
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(FaultingState.TERMINATING_HANDLER,
+    assertEquals(FaultingState.TERMINATING_FAULT_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(FaultingState.TERMINATING_HANDLER,
+    assertEquals(FaultingState.TERMINATING_FAULT_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
-    assertFalse(parentInstance.childFaulted);
+    assertFalse(parent.childFaulted);
   }
 
   public void testCompleted() {
     scopeInstance.completed();
 
-    assertEquals(EndState.EXITED, scopeInstance.getState());
+    assertEquals(EndedState.EXITED, scopeInstance.getState());
   }
 
   public void testCompletedAtScope() {
     scopeInstance.completed();
 
-    assertEquals(EndState.EXITED, scopeInstance.getState());
-    assertFalse(parentInstance.childFaulted);
+    assertEquals(EndedState.EXITED, scopeInstance.getState());
+    assertFalse(parent.childFaulted);
     assertTrue(scopeCompletionLog.executed);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithoutHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithoutHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithoutHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/FaultingWithoutHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,36 +18,36 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class FaultingWithoutHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return FaultingState.DEFAULT;
+    return FaultingState.FAULTING_WITHOUT_HANDLER;
   }
 
   public void testChildrenCompensated() {
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testChildrenCompensatedAtScope() {
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
-    assertTrue(parentInstance.childFaulted);
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
+    assertTrue(parent.childFaulted);
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
-    assertTrue(parentInstance.childFaulted);
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
+    assertTrue(parent.childFaulted);
   }
 
   public void testTerminate() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/PerformingPrimaryActivityTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/PerformingPrimaryActivityTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/PerformingPrimaryActivityTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/PerformingPrimaryActivityTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,24 +19,26 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class PerformingPrimaryActivityTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return ActiveState.PRIMARY;
+    return ActiveState.PERFORMING_PRIMARY_ACTIVITY;
   }
 
   public void testCompleted() {
+    scopeInstance.getToken().end();
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
   }
 
   public void testCompletedAtScope() {
+    scopeInstance.getToken().end();
     scopeInstance.completed();
 
-    assertEquals(EndState.COMPLETED, scopeInstance.getState());
+    assertEquals(EndedState.COMPLETED, scopeInstance.getState());
     assertTrue(scopeCompletionLog.executed);
   }
 
@@ -44,7 +46,8 @@
     FaultInstance faultInstance = new FaultInstance();
     scopeInstance.faulted(faultInstance);
 
-    assertEquals(FaultingState.TERMINATING_PRIMARY, scopeInstance.getState());
+    assertEquals(FaultingState.TERMINATING_PRIMARY_ACTIVITY,
+        scopeInstance.getState());
     assertEquals(faultInstance, scopeInstance.getFaultInstance());
     assertChildrenTerminated();
   }
@@ -52,7 +55,8 @@
   public void testTerminate() {
     scopeInstance.terminate();
 
-    assertEquals(TerminatingState.TERMINATING_PRIMARY, scopeInstance.getState());
+    assertEquals(TerminatingState.TERMINATING_PRIMARY_ACTIVITY,
+        scopeInstance.getState());
     assertChildrenTerminated();
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/StateTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/StateTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/StateTests.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/StateTests.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/04 14:35:48 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class StateTests {
 
@@ -29,7 +29,7 @@
     suite.addTestSuite(PerformingPrimaryActivityTest.class);
     suite.addTestSuite(CompletingEventsTest.class);
 
-    suite.addTestSuite(TerminatingPrimaryActivityOnTerminateTest.class);
+    suite.addTestSuite(TerminatingPrimaryActivityOnRequestTest.class);
     suite.addTestSuite(TerminatingWithoutHandlerTest.class);
     suite.addTestSuite(TerminatingWithHandlerTest.class);
     suite.addTestSuite(TerminatingTerminationHandlerTest.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingCompensationHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingCompensationHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingCompensationHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingCompensationHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,25 +18,25 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingCompensationHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return CompensatingState.TERMINATING_HANDLER;
+    return CompensatingState.TERMINATING_COMPENSATION_HANDLER;
   }
 
   public void testChildrenTerminated() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testChildrenTerminatedAtScope() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
-    assertTrue(parentInstance.childFaulted);
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
+    assertTrue(parent.childFaulted);
   }
 
   public void testChildrenCompensated() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingFaultHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingFaultHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingFaultHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingFaultHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,25 +18,25 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingFaultHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return FaultingState.TERMINATING_HANDLER;
+    return FaultingState.TERMINATING_FAULT_HANDLER;
   }
 
   public void testChildrenTerminated() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testChildrenTerminatedAtScope() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
-    assertTrue(parentInstance.childFaulted);
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
+    assertTrue(parent.childFaulted);
   }
 
   public void testChildrenCompensated() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingPrimaryActivityOnFaultTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingPrimaryActivityOnFaultTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingPrimaryActivityOnFaultTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingPrimaryActivityOnFaultTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,13 +22,13 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingPrimaryActivityOnFaultTest extends
     AbstractStateTestCase {
 
   public ScopeState getState() {
-    return FaultingState.TERMINATING_PRIMARY;
+    return FaultingState.TERMINATING_PRIMARY_ACTIVITY;
   }
 
   public void testChildrenTerminated() {
@@ -38,7 +38,7 @@
     // assertEquals(FaultingState.FAULTING_IMPLICITLY, scope.getState());
     // has to be terminated since compensation is disabled when persistence is
     // not available
-    assertEquals(EndState.FAULTED, scopeInstance.getState());
+    assertEquals(EndedState.FAULTED, scopeInstance.getState());
   }
 
   public void testChildrenTerminatedWithHandler() {
@@ -52,7 +52,7 @@
 
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(FaultingState.EXPLICIT, scopeInstance.getState());
+    assertEquals(FaultingState.FAULTING_WITH_HANDLER, scopeInstance.getState());
     assertTrue(this.handlerLog.executed);
   }
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state: TerminatingPrimaryActivityOnRequestTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state: TerminatingPrimaryActivityOnTerminateTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingTerminationHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingTerminationHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingTerminationHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingTerminationHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,25 +18,25 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingTerminationHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return TerminatingState.TERMINATING_HANDLER;
+    return TerminatingState.TERMINATING_TERMINATION_HANDLER;
   }
 
   public void testChildrenTerminated() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
   }
 
   public void testChildrenTerminatedAtScope() {
     scopeInstance.getState().childrenTerminated(scopeInstance);
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
-    assertTrue(parentInstance.childTerminated);
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
+    assertTrue(parent.childTerminated);
   }
 
   public void testChildrenCompensated() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,40 +18,40 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingWithHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return TerminatingState.EXPLICIT;
+    return TerminatingState.TERMINATING_WITH_HANDLER;
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(TerminatingState.TERMINATING_HANDLER,
+    assertEquals(TerminatingState.TERMINATING_TERMINATION_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(TerminatingState.TERMINATING_HANDLER,
+    assertEquals(TerminatingState.TERMINATING_TERMINATION_HANDLER,
         scopeInstance.getState());
     assertChildrenTerminated();
-    assertFalse(parentInstance.childTerminated);
+    assertFalse(parent.childTerminated);
   }
 
   public void testCompleted() {
     scopeInstance.completed();
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
   }
 
   public void testCompletedAtScope() {
     scopeInstance.completed();
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
-    assertTrue(parentInstance.childTerminated);
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
+    assertTrue(parent.childTerminated);
   }
 
   public void testChildrenCompensated() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithoutHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithoutHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithoutHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/state/TerminatingWithoutHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,35 +18,35 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:43:07 $
+ * @version $Revision: 1800 $ $Date: 2006/10/06 01:52:29 $
  */
 public class TerminatingWithoutHandlerTest extends AbstractStateTestCase {
 
   public ScopeState getState() {
-    return TerminatingState.DEFAULT;
+    return TerminatingState.TERMINATING_WITHOUT_HANDLER;
   }
 
   public void testChildrenCompensated() {
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
   }
 
   public void testChildrenCompensatedAtScope() {
     scopeInstance.getState().childrenCompensated(scopeInstance);
 
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
-    assertTrue(parentInstance.childTerminated);
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
+    assertTrue(parent.childTerminated);
   }
 
   public void testFaulted() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
   }
 
   public void testFaultedAtScope() {
     scopeInstance.faulted(null);
-    assertEquals(EndState.TERMINATED, scopeInstance.getState());
-    assertTrue(parentInstance.childTerminated);
+    assertEquals(EndedState.TERMINATED, scopeInstance.getState());
+    assertTrue(parent.childTerminated);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/StructuredActivityTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/StructuredActivityTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/StructuredActivityTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/StructuredActivityTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class StructuredActivityTest extends ActivityExeTest {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml	2009-02-06 09:17:21.000000000 +0100
@@ -19,8 +19,7 @@
   <string name="resource.evaluator.factories" value="org/jbpm/bpel/sublang/exe/evaluator.factories.xml" />
   <string name="resource.expression.functions" value="org/jbpm/bpel/sublang/xpath/expression.functions.xml" />
   <string name="resource.join.condition.functions" value="org/jbpm/bpel/sublang/xpath/join.condition.functions.xml" />
-  <string name="resource.property.query.functions" value="org/jbpm/bpel/sublang/xpath/property.query.functions.xml" />
-  <string name="resource.variable.query.functions" value="org/jbpm/bpel/sublang/xpath/expression.functions.xml" />
+  <string name="resource.query.functions" value="org/jbpm/bpel/sublang/xpath/query.functions.xml" />
 
   <!-- configuration resources in test suite -->
   <string name="resource.varmapping" value="org/jbpm/bpel/graph/exe/varmapping.xml" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/WhileExeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/WhileExeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/WhileExeTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe/WhileExeTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -26,22 +26,24 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:34 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:36 $
  */
 public class WhileExeTest extends AbstractExeTestCase {
 
-  private VariableDefinition variable = new VariableDefinition();
-  private While _while;
-  private Receive receive;
+  VariableDefinition condition;
+  While _while;
+  Receive receive;
 
-  protected void setUp() throws Exception {
+  public void setUp() throws Exception {
     super.setUp();
 
-    variable.setName("condition");
-    variable.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "boolean")));
-    scope.addVariable(variable);
+    condition = new VariableDefinition();
+    condition.setName("condition");
+    condition.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA,
+        "boolean")));
+    scope.addVariable(condition);
 
-    final String xml = "<while name='while'>"
+    final String xml = "<while>"
         + " <condition>$condition</condition>"
         + " <receive name='receive' partnerLink='aPartner' operation='o'/>"
         + "</while>";
@@ -54,25 +56,21 @@
 
   public void testFalseCondition() {
     Token normalPath = prepareInner();
-    variable.setValue(normalPath, Boolean.FALSE);
+    condition.setValue(normalPath, Boolean.FALSE);
     firstActivity.leave(new ExecutionContext(normalPath));
 
-    // receive is never executed
     assertReceiveDisabled(normalPath, receive);
-    // token completes
     assertCompleted(normalPath);
   }
 
   public void testTrueCondition() {
     Token normalPath = prepareInner();
-    variable.setValue(normalPath, Boolean.TRUE);
+    condition.setValue(normalPath, Boolean.TRUE);
     firstActivity.leave(new ExecutionContext(normalPath));
-
-    // token loops back to receive activity after reception
+    // execute receive again, test that token returns to the same activity.
     assertReceiveAndAdvance(normalPath, receive, receive);
-    // set condition result to false
-    variable.setValue(normalPath, Boolean.FALSE);
-    // token completes after reception
+    // set condition to false and finish cycle
+    condition.setValue(normalPath, Boolean.FALSE);
     assertReceiveAndComplete(normalPath, receive);
   }
 }
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/exe: WhileScaleTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/exe: WhileStackTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/AbstractHandlerDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/AbstractHandlerDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/AbstractHandlerDbTestCase.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/AbstractHandlerDbTestCase.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:10:06 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:10:06 $
  */
 public abstract class AbstractHandlerDbTestCase extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchAllDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchAllDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchAllDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchAllDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CatchAllDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CatchDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/06/09 23:36:38 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:38 $
  */
 public class CatchDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CompensateDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateScopeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateScopeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateScopeDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensateScopeDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,11 +20,10 @@
 import org.jbpm.bpel.graph.scope.CompensateScope;
 import org.jbpm.bpel.graph.scope.Handler;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CompensateScopeDbTest extends AbstractActivityDbTestCase {
 
@@ -37,8 +36,7 @@
     Handler handler = new Handler();
     handler.setActivity(compensateScope);
 
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     Scope global = processDefinition.getGlobalScope();
     global.setCompensationHandler(handler);
     global.setActivity(inner);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensationHandlerDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensationHandlerDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensationHandlerDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/CompensationHandlerDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CompensationHandlerDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnAlarmDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnAlarmDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnAlarmDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnAlarmDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class OnAlarmDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnEventDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnEventDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnEventDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/OnEventDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class OnEventDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:33 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:33 $
  */
 public class ScopeDbTest extends AbstractActivityDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/ScopeDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -33,7 +33,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:54 $
  */
 public class ScopeDefTest extends TestCase {
 
@@ -46,11 +46,11 @@
   Catch catchNameElement = new Catch();
   Handler catchAll = new Handler();
 
-  static final QName NON_MATCHING_NAME = new QName(BpelConstants.NS_EXAMPLES, "unexpected");
+  static final QName NON_MATCHING_NAME = new QName(BpelConstants.NS_EXAMPLES,
+      "unexpected");
 
-  protected void setUp() {
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
+  public void setUp() {
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     ImportDefinition importDefinition = processDefinition.getImportDefinition();
 
     scope = new Scope();
@@ -72,18 +72,19 @@
     scope.addCatch(catchElement);
 
     /*
-     * handlers with faultName have priority over handlers without faultName in the case of a fault
-     * with a matching faultName; add handler with faultName later to verify this
+     * handlers with faultName have priority over handlers without faultName in
+     * the case of a fault with a matching faultName; add handler with faultName
+     * later to verify this
      */
     catchNameElement.setFaultName(faultName);
     catchNameElement.setFaultVariable(elementVariable);
     scope.addCatch(catchNameElement);
 
     /*
-     * handlers with a faultVariable of message type have priority over handlers with a
-     * faultVariable of type element in the case of a fault with a matching message that contains a
-     * single part defined by a matching element; add handlers with a message type later to verify
-     * this
+     * handlers with a faultVariable of message type have priority over handlers
+     * with a faultVariable of type element in the case of a fault with a
+     * matching message that contains a single part defined by a matching
+     * element; add handlers with a message type later to verify this
      */
     Part part = new PartImpl();
     part.setName("aPart");
@@ -103,8 +104,9 @@
     scope.addCatch(catchMessage);
 
     /*
-     * handlers with faultName have priority over handlers without faultName in the case of a fault
-     * with a matching faultName; add handler with faultName later to verify this
+     * handlers with faultName have priority over handlers without faultName in
+     * the case of a fault with a matching faultName; add handler with faultName
+     * later to verify this
      */
     catchNameMessage.setFaultName(faultName);
     catchNameMessage.setFaultVariable(messageVariable);
@@ -114,15 +116,18 @@
   /* In the case of faults thrown with no associated data: */
 
   /*
-   * If there is a catch activity with a matching faultName value that does not specify a
-   * faultVariable attribute then the fault is passed to the identified catch activity
+   * If there is a catch activity with a matching faultName value that does not
+   * specify a faultVariable attribute then the fault is passed to the
+   * identified catch activity
    */
   public void test_faultNoData_catchName() {
-    assertSame(catchName, scope.selectFaultHandler(catchName.getFaultName(), null));
+    assertSame(catchName, scope.selectFaultHandler(catchName.getFaultName(),
+        null));
   }
 
   /*
-   * Otherwise if there is a catchAll handler then the fault is passed to the catchAll handler
+   * Otherwise if there is a catchAll handler then the fault is passed to the
+   * catchAll handler
    */
   public void test_faultNoData_catchAll() {
     scope.setCatchAll(catchAll);
@@ -137,25 +142,28 @@
   /* In the case of faults thrown with associated data: */
 
   /*
-   * If there is a catch activity with a matching faultName value that has a faultVariable or
-   * faultMessageType whose type matches the type of the fault data then the fault is passed to the
-   * identified catch activity
+   * If there is a catch activity with a matching faultName value that has a
+   * faultVariable or faultMessageType whose type matches the type of the fault
+   * data then the fault is passed to the identified catch activity
    */
   public void test_faultMessage_catchNameMessage() {
-    assertSame(catchNameMessage, scope.selectFaultHandler(catchNameMessage.getFaultName(),
-        catchNameMessage.getFaultVariable().getType()));
+    assertSame(catchNameMessage, scope.selectFaultHandler(
+        catchNameMessage.getFaultName(), catchNameMessage.getFaultVariable()
+            .getType()));
   }
 
   public void test_faultElement_catchNameElement() {
-    assertSame(catchNameElement, scope.selectFaultHandler(catchNameElement.getFaultName(),
-        catchNameElement.getFaultVariable().getType()));
+    assertSame(catchNameElement, scope.selectFaultHandler(
+        catchNameElement.getFaultName(), catchNameElement.getFaultVariable()
+            .getType()));
   }
 
   /*
-   * Otherwise if the fault data is a WSDL message type where the message contains a single part
-   * defined by an element and there exists a catch activity with a matching faultName value that
-   * has a faultVariable whose type matches the type of the element used to define the part then the
-   * fault is passed to the identified catch activity
+   * Otherwise if the fault data is a WSDL message type where the message
+   * contains a single part defined by an element and there exists a catch
+   * activity with a matching faultName value that has a faultVariable whose
+   * type matches the type of the element used to define the part then the fault
+   * is passed to the identified catch activity
    */
   public void test_faultMessage_catchNameElement() {
     // part
@@ -167,24 +175,24 @@
     message.setQName(NON_MATCHING_NAME);
     message.addPart(part);
 
-    assertSame(catchNameElement, scope.selectFaultHandler(catchNameMessage.getFaultName(),
-        new MessageType(message)));
+    assertSame(catchNameElement, scope.selectFaultHandler(
+        catchNameMessage.getFaultName(), new MessageType(message)));
   }
 
   /*
-   * If there is a catch activity with a matching faultName value that does not specify a
-   * faultVariable or faultMessageType value then the fault is passed to the identified catch
-   * activity
+   * If there is a catch activity with a matching faultName value that does not
+   * specify a faultVariable or faultMessageType value then the fault is passed
+   * to the identified catch activity
    */
   public void test_faultMessage_catchName() {
-    assertSame(catchName, scope.selectFaultHandler(catchName.getFaultName(), new ElementType(
-        NON_MATCHING_NAME)));
+    assertSame(catchName, scope.selectFaultHandler(catchName.getFaultName(),
+        new ElementType(NON_MATCHING_NAME)));
   }
 
   /*
-   * Otherwise if there is a catch activity without a faultName attribute that has a faultVariable
-   * or faultMessageType whose type matches the type of the fault data then the fault is passed to
-   * the identified catch activity
+   * Otherwise if there is a catch activity without a faultName attribute that
+   * has a faultVariable or faultMessageType whose type matches the type of the
+   * fault data then the fault is passed to the identified catch activity
    */
   public void test_faultMessage_catchMessage() {
     assertSame(catchMessage, scope.selectFaultHandler(NON_MATCHING_NAME,
@@ -197,10 +205,11 @@
   }
 
   /*
-   * Otherwise if the fault data is a WSDL message type where the message contains a single part
-   * defined by an element and there exists a catch activity without a faultName attribute that has
-   * a faultVariable whose type matches the type of the element used to define the part then the
-   * fault is passed to the identified catch activity
+   * Otherwise if the fault data is a WSDL message type where the message
+   * contains a single part defined by an element and there exists a catch
+   * activity without a faultName attribute that has a faultVariable whose type
+   * matches the type of the element used to define the part then the fault is
+   * passed to the identified catch activity
    */
   public void test_faultMessage_catchElement() {
     // element part
@@ -220,7 +229,8 @@
   }
 
   /*
-   * Otherwise if there is a catchAll handler then the fault is passed to the catchAll handler
+   * Otherwise if there is a catchAll handler then the fault is passed to the
+   * catchAll handler
    */
   public void test_faultMessage_catchAll() {
     scope.setCatchAll(catchAll);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/TerminationHandlerDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/TerminationHandlerDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/TerminationHandlerDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/scope/TerminationHandlerDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class TerminationHandlerDbTest extends AbstractHandlerDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,27 +20,13 @@
 import org.jbpm.bpel.graph.def.LinkDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:37 $
  */
 public class FlowDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private Flow flow = new Flow("parent");
-
-  protected void setUp() throws Exception {
-    super.setUp();
-    /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid creating another context
-     */
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getGlobalScope().setActivity(flow);
-  }
-
   public void testLinks() {
     Expression transitionCondition = new Expression();
     transitionCondition.setText("$condition");
@@ -54,14 +40,17 @@
     activity.addTarget(a);
     activity.addSource(b);
 
+    Flow flow = new Flow("parent");
     flow.addNode(activity);
     flow.addLink(b);
     flow.addLink(a);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(flow);
+
     processDefinition = saveAndReload(processDefinition);
-    flow = (Flow) session.load(Flow.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    flow = (Flow) session.load(Flow.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     activity = (Activity) flow.getNode("linked");
     assertEquals(2, flow.getLinks().size());
 
@@ -75,10 +64,14 @@
   }
 
   public void testDelimiters() {
+    Flow flow = new Flow("parent");
+
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(flow);
+
     processDefinition = saveAndReload(processDefinition);
-    flow = (Flow) session.load(Flow.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    flow = (Flow) session.load(Flow.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     Activity begin = flow.getBegin();
     Activity end = flow.getEnd();
 
@@ -88,17 +81,23 @@
 
   public void testConnections() {
     Activity activity = new Empty("activity");
+
+    Flow flow = new Flow("parent");
     flow.addNode(activity);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(flow);
+
     processDefinition = saveAndReload(processDefinition);
-    flow = (Flow) session.load(Flow.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    flow = (Flow) session.load(Flow.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     activity = (Activity) flow.getNode("activity");
     Activity begin = flow.getBegin();
     Activity end = flow.getEnd();
 
-    assertTrue(begin.getLeavingTransitions().contains(activity.getDefaultArrivingTransition()));
-    assertTrue(end.getArrivingTransitions().contains(activity.getDefaultLeavingTransition()));
+    assertTrue(begin.getLeavingTransitions().contains(
+        activity.getDefaultArrivingTransition()));
+    assertTrue(end.getArrivingTransitions().contains(
+        activity.getDefaultLeavingTransition()));
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/FlowDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class FlowDefTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,40 +19,29 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:37 $
  */
 public class IfDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private If _if = new If("parent");
-
-  protected void setUp() throws Exception {
-    super.setUp();
-    /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid creating another context
-     */
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getGlobalScope().setActivity(_if);
-  }
-
   public void testBranch() {
     Activity activity = new Empty("activity");
 
     Expression condition = new Expression();
     condition.setText("$condition");
 
+    If _if = new If("parent");
     _if.addNode(activity);
     _if.setCondition(activity, condition);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_if);
+
     processDefinition = saveAndReload(processDefinition);
-    _if = (If) session.load(If.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _if = (If) session.load(If.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     activity = (Activity) _if.getNode("activity");
 
     assertEquals("$condition", _if.getCondition(activity).getText());
@@ -62,13 +51,16 @@
   public void testElse() {
     Activity _else = new Empty("else");
 
+    If _if = new If("parent");
     _if.addNode(_else);
     _if.setElse(_else);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_if);
+
     processDefinition = saveAndReload(processDefinition);
-    _if = (If) session.load(If.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _if = (If) session.load(If.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     _else = _if.getElse();
 
     assertEquals("else", _else.getName());
@@ -76,10 +68,14 @@
   }
 
   public void testDelimiters() {
+    If _if = new If("parent");
+
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().addNode(_if);
+
     processDefinition = saveAndReload(processDefinition);
-    _if = (If) session.load(If.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _if = (If) session.load(If.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     Activity begin = _if.getBegin();
     Activity end = _if.getEnd();
 
@@ -91,18 +87,23 @@
     Activity activity = new Empty("activity");
     Expression condition = new Expression();
 
+    If _if = new If("parent");
     _if.addNode(activity);
     _if.setCondition(activity, condition);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_if);
+
     processDefinition = saveAndReload(processDefinition);
-    _if = (If) session.load(If.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _if = (If) session.load(If.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     activity = (Activity) _if.getNode("activity");
     Activity begin = _if.getBegin();
     Activity end = _if.getEnd();
 
-    assertTrue(begin.getLeavingTransitions().contains(activity.getDefaultArrivingTransition()));
-    assertTrue(end.getArrivingTransitions().contains(activity.getDefaultLeavingTransition()));
+    assertTrue(begin.getLeavingTransitions().contains(
+        activity.getDefaultArrivingTransition()));
+    assertTrue(end.getArrivingTransitions().contains(
+        activity.getDefaultLeavingTransition()));
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/IfDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class IfDefTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -23,20 +23,19 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.integration.def.ReceiveAction;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:05 $
  */
 public class PickDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private Pick pick = new Pick(PICK_NAME);
+  BpelProcessDefinition processDefinition;
+  Pick pick = new Pick(PICK_NAME);
 
-  private static final String PICK_NAME = "p";
-  private static final String ONMESSAGE_NAME = "om";
-  private static final String ONALARM_NAME = "oa";
+  static final String PICK_NAME = "p";
+  static final String ONMESSAGE_NAME = "om";
+  static final String ONALARM_NAME = "oa";
 
   protected void setUp() throws Exception {
     super.setUp();
@@ -48,7 +47,7 @@
     pick.addNode(onAlarmActivity);
 
     // process, create after opening jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getGlobalScope().setActivity(pick);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/PickDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/07/02 23:55:05 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:05 $
  */
 public class PickDefTest extends TestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct: RepeatUntilDbTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct: RepeatUntilDefTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,36 +20,28 @@
 import org.jbpm.bpel.graph.def.Activity;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.graph.def.Transition;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:37 $
  */
 public class SequenceDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private Sequence sequence = new Sequence("parent");
-
-  protected void setUp() throws Exception {
-    super.setUp();
-    // process, create after opening jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getGlobalScope().setActivity(sequence);
-  }
-
   public void testActivities() {
     Activity first = new Empty("first");
     Activity second = new Empty("second");
 
+    Sequence sequence = new Sequence("parent");
     sequence.addNode(first);
     sequence.addNode(second);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(sequence);
+
     processDefinition = saveAndReload(processDefinition);
-    sequence = (Sequence) session.load(Sequence.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    sequence = (Sequence) session.load(Sequence.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     List nodes = sequence.getNodes();
     first = (Activity) nodes.get(0);
     second = (Activity) nodes.get(1);
@@ -60,10 +52,14 @@
   }
 
   public void testDelimiters() {
+    Sequence sequence = new Sequence("parent");
+
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(sequence);
+
     processDefinition = saveAndReload(processDefinition);
-    sequence = (Sequence) session.load(Sequence.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    sequence = (Sequence) session.load(Sequence.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     Activity begin = sequence.getBegin();
     Activity end = sequence.getEnd();
 
@@ -75,13 +71,16 @@
     Activity first = new Empty("first");
     Activity last = new Empty("second");
 
+    Sequence sequence = new Sequence("parent");
     sequence.addNode(first);
     sequence.addNode(last);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(sequence);
+
     processDefinition = saveAndReload(processDefinition);
-    sequence = (Sequence) session.load(Sequence.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    sequence = (Sequence) session.load(Sequence.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     first = (Activity) sequence.getNode("first");
     last = (Activity) sequence.getNode("second");
 
@@ -91,7 +90,8 @@
     Transition to = (Transition) end.getArrivingTransitions().iterator().next();
 
     assertEquals(from, first.getDefaultArrivingTransition());
-    assertEquals(first.getDefaultLeavingTransition(), last.getDefaultArrivingTransition());
+    assertEquals(first.getDefaultLeavingTransition(),
+        last.getDefaultArrivingTransition());
     assertEquals(to, last.getDefaultLeavingTransition());
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/SequenceDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class SequenceDefTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,46 +19,39 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:34 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:37 $
  */
 public class WhileDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private While _while = new While("parent");
-
-  protected void setUp() throws Exception {
-    super.setUp();
-    /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid creating another context
-     */
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getGlobalScope().setActivity(_while);
-  }
-
   public void testCondition() {
     Expression condition = new Expression();
     condition.setText("false()");
 
+    While _while = new While("parent");
     _while.setCondition(condition);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_while);
+
     processDefinition = saveAndReload(processDefinition);
-    _while = (While) session.load(While.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _while = (While) session.load(While.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
 
     assertEquals("false()", _while.getCondition().getText());
   }
 
   public void testDelimiters() {
+    While _while = new While("parent");
+
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_while);
+
     processDefinition = saveAndReload(processDefinition);
-    _while = (While) session.load(While.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _while = (While) session.load(While.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     Activity begin = _while.getBegin();
     Activity end = _while.getEnd();
 
@@ -68,12 +61,16 @@
 
   public void testConnections() {
     Activity activity = new Empty("activity");
+
+    While _while = new While("parent");
     _while.addNode(activity);
 
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+    processDefinition.getGlobalScope().setActivity(_while);
+
     processDefinition = saveAndReload(processDefinition);
-    _while = (While) session.load(While.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    _while = (While) session.load(While.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     activity = (Activity) _while.getNode("activity");
 
     Activity begin = _while.getBegin();
@@ -82,9 +79,14 @@
 
     assertSame(_while, loop.getCompositeActivity());
 
-    assertTrue(begin.isConnected(loop));
-    assertTrue(loop.isConnected(activity));
-    assertTrue(activity.isConnected(loop));
-    assertTrue(loop.isConnected(end));
+    assertSame(loop, begin.getDefaultLeavingTransition().getTo());
+    assertSame(loop, end.getDefaultArrivingTransition().getFrom());
+
+    assertTrue(loop.getArrivingTransitions().contains(
+        activity.getDefaultLeavingTransition()));
+    assertTrue(loop.getLeavingTransitions().contains(
+        activity.getDefaultArrivingTransition()));
+    assertTrue(loop.getArrivingTransitions().contains(
+        activity.getDefaultLeavingTransition()));
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDefTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDefTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDefTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/graph/struct/WhileDefTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -14,26 +14,26 @@
  */
 package org.jbpm.bpel.graph.struct;
 
-import java.util.List;
+import java.util.Collection;
 
 import junit.framework.TestCase;
 
 import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.Activity;
-import org.jbpm.bpel.graph.struct.RepetitiveActivity.Loop;
+import org.jbpm.bpel.graph.struct.While;
 import org.jbpm.bpel.sublang.def.Expression;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:34 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class WhileDefTest extends TestCase {
 
-  private While _while;
-  private Activity child;
-  private Activity otherChild;
+  While _while;
+  Activity child;
+  Activity otherChild;
 
-  protected void setUp() {
+  public void setUp() {
     _while = new While();
     child = new Empty("first");
     otherChild = new Empty("second");
@@ -42,6 +42,7 @@
   public void testAddNode() {
     _while.addNode(child);
     assertConnected(child);
+    assertEquals(_while, child.getCompositeActivity());
   }
 
   public void testAddNodeOverride() {
@@ -66,23 +67,22 @@
   }
 
   private void assertConnected(Activity activity) {
-    Loop loop = _while.getLoop();
-    assertTrue(_while.getBegin().isConnected(loop));
-    assertTrue(loop.isConnected(activity));
-    assertTrue(activity.isConnected(loop));
-    assertTrue(loop.isConnected(_while.getEnd()));
-
-    assertSame(_while, activity.getCompositeActivity());
-
-    List nodes = _while.getNodes();
-    assertEquals(1, nodes.size());
-    assertSame(activity, nodes.get(0));
+    Collection transitions = _while.getLoop().getLeavingTransitions();
+    assertTrue(transitions.contains(activity.getDefaultArrivingTransition()));
+
+    transitions = _while.getLoop().getArrivingTransitions();
+    assertTrue(transitions.contains(activity.getDefaultLeavingTransition()));
+
+    assertEquals(_while, activity.getCompositeActivity());
+    assertEquals(1, _while.getNodes().size());
   }
 
   private void assertDisconnected(Activity activity) {
-    // verify activity has no incoming / outgoing transitions
+    // validate that removed activity doesn't have incoming / outgoing
+    // transitions
     assertEquals(0, activity.getArrivingTransitions().size());
     assertEquals(0, activity.getLeavingTransitions().size());
     assertEquals(null, activity.getCompositeActivity());
   }
+
 }
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/catalog: CatalogEntryDbTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/catalog: UrlCatalogTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/catalog: URLCatalogTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/client: SoapCallerTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/client: SoapClientTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,11 +24,10 @@
 import org.jbpm.bpel.integration.def.Correlations;
 import org.jbpm.bpel.integration.def.ReceiveAction;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:23 $
+ * @version $Revision: 1800 $ $Date: 2007/03/15 11:46:36 $
  */
 public class CorrelationDbTest extends AbstractDbTestCase {
 
@@ -58,7 +57,7 @@
     pick.addNode(activity);
     pick.setOnMessage(activity, receiveAction);
 
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     Scope globalScope = processDefinition.getGlobalScope();
     globalScope.addCorrelationSet(set);
     globalScope.setActivity(pick);
@@ -97,9 +96,8 @@
   }
 
   private Correlation getCorrelation() {
-    Pick pick = (Pick) session.load(Pick.class, new Long(processDefinition.getGlobalScope()
-        .getActivity()
-        .getId()));
+    Pick pick = (Pick) session.load(Pick.class, new Long(
+        processDefinition.getGlobalScope().getActivity().getId()));
     ReceiveAction receptor = (ReceiveAction) pick.getOnMessages().get(0);
     return receptor.getCorrelations().getCorrelation(CSET_NAME);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationSetDefinitionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationSetDefinitionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationSetDefinitionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/CorrelationSetDefinitionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -20,11 +20,10 @@
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.wsdl.Property;
 import org.jbpm.bpel.wsdl.impl.PropertyImpl;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:23 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:51 $
  */
 public class CorrelationSetDefinitionDbTest extends AbstractDbTestCase {
 
@@ -37,7 +36,7 @@
     csDefinition = new CorrelationSetDefinition();
     csDefinition.setName("cs");
     // process
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getGlobalScope().addCorrelationSet(csDefinition);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -25,11 +25,10 @@
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:23 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class InvokeActionDbTest extends AbstractDbTestCase {
 
@@ -44,7 +43,7 @@
     Invoke invoke = new Invoke("ivk");
     invoke.setAction(invokeAction);
 
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getGlobalScope().setActivity(invoke);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/InvokeActionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -14,6 +14,8 @@
  */
 package org.jbpm.bpel.integration.def;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
 import java.util.Map;
 import java.util.Random;
 
@@ -24,27 +26,27 @@
 
 import junit.framework.Test;
 
+import org.jboss.test.ws.JBossWSTestSetup;
 import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
-import org.jbpm.bpel.deploy.PartnerLinkDescriptor;
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor;
-import org.jbpm.bpel.deploy.PartnerRoleDescriptor.InitiateMode;
+import org.jbpm.bpel.app.AppDescriptor;
+import org.jbpm.bpel.app.AppPartnerLink;
+import org.jbpm.bpel.app.AppPartnerRole;
+import org.jbpm.bpel.app.AppPartnerRole.InitiateMode;
 import org.jbpm.bpel.graph.basic.Invoke;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.exe.BpelFaultException;
 import org.jbpm.bpel.graph.exe.FaultInstance;
 import org.jbpm.bpel.graph.exe.ScopeInstance;
 import org.jbpm.bpel.graph.struct.Sequence;
-import org.jbpm.bpel.integration.catalog.UrlCatalog;
+import org.jbpm.bpel.integration.catalog.URLCatalog;
 import org.jbpm.bpel.integration.exe.CorrelationSetInstance;
 import org.jbpm.bpel.integration.jms.IntegrationControl;
 import org.jbpm.bpel.integration.jms.IntegrationControlHelper;
 import org.jbpm.bpel.integration.jms.JmsIntegrationServiceFactory;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.tools.ModuleDeployTestSetup;
 import org.jbpm.bpel.variable.exe.MessageValue;
-import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.BpelReader;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
 import org.jbpm.bpel.xml.util.XmlUtil;
@@ -53,22 +55,25 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class InvokeActionTest extends AbstractDbTestCase {
 
   private BpelProcessDefinition processDefinition;
   private Token token;
+
   private IntegrationControl integrationControl;
 
   private static DOMSource processSource;
 
+  private static final String PARTNER_LINK_HANDLE = "translator";
+
   protected void setUp() throws Exception {
     // set up db
     super.setUp();
 
     // create process definition
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     // read bpel
     BpelReader bpelReader = new BpelReader();
     bpelReader.read(processDefinition, processSource);
@@ -86,42 +91,38 @@
     scopeInstance.initializeData();
 
     // service catalog
-    UrlCatalog catalog = new UrlCatalog();
+    URLCatalog catalog = new URLCatalog();
     catalog.addLocation("http://localhost:8080/translator/text?wsdl");
     // partner role descriptor
-    PartnerRoleDescriptor partnerRole = new PartnerRoleDescriptor();
+    AppPartnerRole partnerRole = new AppPartnerRole();
     partnerRole.setInitiateMode(InitiateMode.PULL);
     // partner link descriptor
-    PartnerLinkDescriptor partnerLink = new PartnerLinkDescriptor();
+    AppPartnerLink partnerLink = new AppPartnerLink();
     partnerLink.setName("translator");
     partnerLink.setPartnerRole(partnerRole);
     // app descriptor
-    DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
-    deploymentDescriptor.setName(processDefinition.getName());
-    deploymentDescriptor.setServiceCatalog(catalog);
-    deploymentDescriptor.addPartnerLink(partnerLink);
+    AppDescriptor appDescriptor = new AppDescriptor();
+    appDescriptor.setName(processDefinition.getName());
+    appDescriptor.setServiceCatalog(catalog);
+    appDescriptor.addPartnerLink(partnerLink);
 
     // link jms administered objects
     InitialContext initialContext = new InitialContext();
-    try {
-      initialContext.rebind("pl", new LinkRef("queue/testQueue"));
-      initialContext.rebind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
-          "ConnectionFactory"));
+    initialContext.bind(PARTNER_LINK_HANDLE, new LinkRef("queue/testQueue"));
+    initialContext.bind(IntegrationControl.CONNECTION_FACTORY_NAME,
+        new LinkRef("ConnectionFactory"));
 
       // configure relation service factory
-      integrationControl = JmsIntegrationServiceFactory.getConfigurationInstance(jbpmConfiguration)
+    integrationControl = JmsIntegrationServiceFactory.getInstance(jbpmConfiguration)
           .getIntegrationControl(processDefinition);
-      integrationControl.setDeploymentDescriptor(deploymentDescriptor);
+    integrationControl.setAppDescriptor(appDescriptor);
       IntegrationControlHelper.setUp(integrationControl, jbpmContext);
 
       // unlink jms administered objects
-      initialContext.unbind("pl");
+    initialContext.unbind(PARTNER_LINK_HANDLE);
       initialContext.unbind(IntegrationControl.CONNECTION_FACTORY_NAME);
-    }
-    finally {
       initialContext.close();
     }
-  }
 
   protected void tearDown() throws Exception {
     // finalize relation service factory
@@ -218,25 +219,8 @@
     }
   }
 
-  public static Test suite() {
-    return new Setup();
-  }
-
-  private static class Setup extends ModuleDeployTestSetup {
-
-    private Setup() {
-      super(InvokeActionTest.class, InvokeActionTest.class.getResource("translator.war")
-          .toExternalForm());
-    }
-
-    protected void setUp() throws Exception {
-      super.setUp();
+  public static Test suite() throws SAXException, IOException, URISyntaxException {
       processSource = XmlUtil.parseResource("translatorClient.bpel", InvokeActionTest.class);
-    }
-
-    protected void tearDown() throws Exception {
-      processSource = null;
-      super.tearDown();
-    }
+    return JBossWSTestSetup.newTestSetup(InvokeActionTest.class, "translator.war");
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/PartnerLinkDefinitionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/PartnerLinkDefinitionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/PartnerLinkDefinitionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/PartnerLinkDefinitionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -14,93 +14,83 @@
  */
 package org.jbpm.bpel.integration.def;
 
-import javax.wsdl.Definition;
-import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
+import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.wsdl.PartnerLinkType;
-import org.jbpm.bpel.wsdl.PartnerLinkType.Role;
-import org.jbpm.bpel.wsdl.xml.WsdlConstants;
-import org.jbpm.bpel.wsdl.xml.WsdlUtil;
+import org.jbpm.bpel.wsdl.impl.PartnerLinkTypeImpl;
 import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:19 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:51 $
  */
 public class PartnerLinkDefinitionDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private PartnerLinkType partnerLinkType;
-  private PartnerLinkDefinition partnerLink;
-
-  private static final QName TYPE_NAME = new QName(BpelConstants.NS_EXAMPLES, "plt");
-  private static final String PARTNER_LINK_NAME = "pl";
-  private static final String FIRST_ROLE_NAME = "first";
-  private static final String SECOND_ROLE_NAME = "second";
+  BpelProcessDefinition process;
+  PartnerLinkType partnerLinkType = new PartnerLinkTypeImpl();
+  PartnerLinkDefinition partnerLink;
+
+  static final QName TYPE_NAME = new QName(BpelConstants.NS_EXAMPLES, "plt");
+  static final String PARTNER_LINK_NAME = "pl";
 
   protected void setUp() throws Exception {
     super.setUp();
-    // port type
-    PortType portType = WsdlUtil.getSharedDefinition().createPortType();
-    portType.setQName(new QName(BpelConstants.NS_EXAMPLES, "pt"));
+    // process, create after opening jbpm context
+    process = new BpelProcessDefinition();
     // partner link type
-    partnerLinkType = (PartnerLinkType) WsdlUtil.getSharedExtensionRegistry().createExtension(
-        Definition.class, WsdlConstants.Q_PARTNER_LINK_TYPE);
     partnerLinkType.setQName(TYPE_NAME);
-    // first role
-    Role role = partnerLinkType.createRole();
-    role.setName(FIRST_ROLE_NAME);
-    role.setPortType(portType);
-    partnerLinkType.setFirstRole(role);
-    // second role
-    role = partnerLinkType.createRole();
-    role.setName(SECOND_ROLE_NAME);
-    role.setPortType(portType);
-    partnerLinkType.setSecondRole(role);
-    // process, create after opening jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getImportDefinition().addPartnerLinkType(partnerLinkType);
+    process.getImportDefinition().addPartnerLinkType(partnerLinkType);
     // partner link
     partnerLink = new PartnerLinkDefinition();
     partnerLink.setName(PARTNER_LINK_NAME);
     partnerLink.setPartnerLinkType(partnerLinkType);
-    processDefinition.getGlobalScope().addPartnerLink(partnerLink);
+    process.getGlobalScope().addPartnerLink(partnerLink);
   }
 
   public void testName() {
-    processDefinition = saveAndReload(processDefinition);
-    partnerLink = processDefinition.getGlobalScope().getPartnerLink(PARTNER_LINK_NAME);
-
-    assertEquals(PARTNER_LINK_NAME, partnerLink.getName());
+    process = saveAndReload(process);
+    assertEquals(PARTNER_LINK_NAME, getPartnerLinkDefinition().getName());
   }
 
   public void testPartnerLinkType() {
-    processDefinition = saveAndReload(processDefinition);
-    partnerLink = processDefinition.getGlobalScope().getPartnerLink(PARTNER_LINK_NAME);
-    partnerLinkType = partnerLink.getPartnerLinkType();
-
-    assertEquals(TYPE_NAME, partnerLinkType.getQName());
+    process = saveAndReload(process);
+    assertEquals(TYPE_NAME, getPartnerLinkDefinition().getPartnerLinkType()
+        .getQName());
   }
 
   public void testPartnerRole() {
+    // role
+    PartnerLinkType.Role partnerRole = new PartnerLinkTypeImpl.RoleImpl();
+    partnerRole.setName("partner");
+    // partner link type
+    partnerLinkType.setSecondRole(partnerRole);
     // partner link
-    partnerLink.setPartnerRole(partnerLinkType.getSecondRole());
+    partnerLink.setPartnerRole(partnerRole);
 
-    processDefinition = saveAndReload(processDefinition);
-    partnerLink = processDefinition.getGlobalScope().getPartnerLink(PARTNER_LINK_NAME);
+    process = saveAndReload(process);
 
-    assertEquals(SECOND_ROLE_NAME, partnerLink.getPartnerRole().getName());
+    assertEquals("partner", getPartnerLinkDefinition().getPartnerRole()
+        .getName());
   }
 
   public void testMyRole() {
-    partnerLink.setMyRole(partnerLinkType.getFirstRole());
+    // role
+    PartnerLinkType.Role myRole = new PartnerLinkTypeImpl.RoleImpl();
+    myRole.setName("myself");
+    // partner link type
+    partnerLinkType.setSecondRole(myRole);
+    // partner link
+    partnerLink.setMyRole(myRole);
 
-    processDefinition = saveAndReload(processDefinition);
-    partnerLink = processDefinition.getGlobalScope().getPartnerLink(PARTNER_LINK_NAME);
+    process = saveAndReload(process);
+
+    assertEquals("myself", getPartnerLinkDefinition().getMyRole().getName());
+  }
 
-    assertEquals(FIRST_ROLE_NAME, partnerLink.getMyRole().getName());
+  private PartnerLinkDefinition getPartnerLinkDefinition() {
+    return process.getGlobalScope().getPartnerLink(PARTNER_LINK_NAME);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReceiveActionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReceiveActionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReceiveActionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReceiveActionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,11 +24,10 @@
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:23 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:38 $
  */
 public class ReceiveActionDbTest extends AbstractDbTestCase {
 
@@ -43,7 +42,7 @@
     Receive receive = new Receive(RECEIVE_NAME);
     receive.setAction(receiveAction);
     // process, create after opening jbpm context
-    process = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    process = new BpelProcessDefinition();
     process.getGlobalScope().setActivity(receive);
   }
 
@@ -125,7 +124,8 @@
     receiveAction = getReceiveAction(process);
 
     // verify the retrieved objects
-    assertEquals(process.getGlobalScope().getActivity(), receiveAction.getInboundMessageActivity());
+    assertEquals(process.getGlobalScope().getActivity(),
+        receiveAction.getInboundMessageActivity());
   }
 
   public void testMessageExchange() {
@@ -141,9 +141,8 @@
   }
 
   private ReceiveAction getReceiveAction(BpelProcessDefinition process) {
-    Receive receive = (Receive) session.load(Receive.class, new Long(process.getGlobalScope()
-        .getActivity()
-        .getId()));
+    Receive receive = (Receive) session.load(Receive.class, new Long(
+        process.getGlobalScope().getActivity().getId()));
     return receive.getReceiveAction();
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,11 +24,10 @@
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:23 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:38 $
  */
 public class ReplyActionDbTest extends AbstractDbTestCase {
 
@@ -41,7 +40,7 @@
     Reply reply = new Reply("reply");
     reply.setAction(replyAction);
     // process, create after opening jbpm context
-    process = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    process = new BpelProcessDefinition();
     process.getGlobalScope().setActivity(reply);
   }
 
@@ -144,9 +143,8 @@
   }
 
   private ReplyAction getReplyAction(BpelProcessDefinition process) {
-    Reply reply = (Reply) session.load(Reply.class, new Long(process.getGlobalScope()
-        .getActivity()
-        .getId()));
+    Reply reply = (Reply) session.load(Reply.class, new Long(
+        process.getGlobalScope().getActivity().getId()));
     return reply.getReplyAction();
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/ReplyActionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -29,7 +29,7 @@
 import org.w3c.dom.Element;
 import org.xml.sax.InputSource;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.basic.Reply;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
@@ -55,7 +55,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class ReplyActionTest extends AbstractDbTestCase {
 
@@ -148,13 +148,14 @@
       + "   messageExchange='swing' faultName='def:flt'/>"
       + " </sequence>"
       + "</process>";
+  private static final String PARTNER_LINK_HANDLE = "pl";
 
   protected void setUp() throws Exception {
     // set up db
     super.setUp();
 
     // create process definition
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     BpelReader bpelReader = new BpelReader();
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
@@ -176,26 +177,24 @@
     scopeInstance.initializeData();
 
     // app descriptor
-    DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
-    deploymentDescriptor.setName(processDefinition.getName());
-    deploymentDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
+    AppDescriptor appDescriptor = new AppDescriptor();
+    appDescriptor.setName(processDefinition.getName());
+    appDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
 
     InitialContext initialContext = new InitialContext();
     try {
       // link jms administered objects
-      initialContext.rebind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
+      initialContext.bind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
           "ConnectionFactory"));
-      initialContext.rebind("pl", new LinkRef("queue/testQueue"));
 
       // configure relation context
-      integrationControl = JmsIntegrationServiceFactory.getConfigurationInstance(jbpmConfiguration)
+      integrationControl = JmsIntegrationServiceFactory.getInstance(jbpmConfiguration)
           .getIntegrationControl(processDefinition);
-      integrationControl.setDeploymentDescriptor(deploymentDescriptor);
+      integrationControl.setAppDescriptor(appDescriptor);
       IntegrationControlHelper.setUp(integrationControl, jbpmContext);
 
       // unlink jms administered objects
       initialContext.unbind(IntegrationControl.CONNECTION_FACTORY_NAME);
-      initialContext.unbind("pl");
     }
     finally {
       initialContext.close();
@@ -203,7 +202,7 @@
 
     // retrieve the partner link destination
     PartnerLinkDefinition partnerLink = processDefinition.getGlobalScope().getPartnerLink(
-        "pl");
+        PARTNER_LINK_HANDLE);
     portDestination = integrationControl.getPartnerLinkEntry(partnerLink).getDestination();
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.bpel
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.bpel	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.bpel	2009-02-06 09:17:22.000000000 +0100
@@ -1,6 +1,6 @@
 <process name="translatorClient" targetNamespace="http://example.org/translator/client"
   xmlns:tns="http://example.org/translator/client" xmlns:def="http://example.com/translator"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+  xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/">
 
   <import namespace="http://example.org/translator/client" location="translatorClient.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.wsdl	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/def/translatorClient.wsdl	2009-02-06 09:17:22.000000000 +0100
@@ -1,8 +1,8 @@
 <definitions targetNamespace="http://example.org/translator/client"
   xmlns:tns="http://example.org/translator/client" xmlns:def="http://example.com/translator"
   xmlns:sns="http://example.com/translator/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
 
   <import namespace="http://example.com/translator"
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetInstanceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetInstanceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:10:31 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:10:31 $
  */
 public class CorrelationSetInstanceDbTest extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/CorrelationSetTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -38,7 +38,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:29 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:35 $
  */
 public class CorrelationSetTest extends TestCase {
 
@@ -48,8 +48,7 @@
   private static final String WSDL_TEXT = "<definitions targetNamespace='http://jbpm.org/bpel/examples'"
       + " xmlns:tns='http://jbpm.org/bpel/examples'"
       + " xmlns:xsd='http://www.w3.org/2001/XMLSchema'"
-      + " xmlns:vprop='"
-      + WsdlConstants.NS_VPROP
+      + " xmlns:vprop='" + WsdlConstants.NS_VPROP
       + "' xmlns='http://schemas.xmlsoap.org/wsdl/'>"
       + "  <message name='request'>"
       + "    <part name='simplePart' type='xsd:string'/>"
@@ -70,8 +69,10 @@
       + "  <d amount=\"20\"/>"
       + "  <e>30</e>"
       + "</tns:surpriseElement>";
-  private static final QName Q_NAME_PROP = new QName(BpelConstants.NS_EXAMPLES, "nameProperty");
-  private static final QName Q_ID_PROP = new QName(BpelConstants.NS_EXAMPLES, "idProperty");
+  private static final QName Q_NAME_PROP = new QName(BpelConstants.NS_EXAMPLES,
+      "nameProperty");
+  private static final QName Q_ID_PROP = new QName(BpelConstants.NS_EXAMPLES,
+      "idProperty");
 
   public CorrelationSetTest(String name) {
     super(name);
@@ -80,14 +81,13 @@
   protected void setUp() throws Exception {
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = new ImportDefinition();
+    importDefinition.setProcessDefinition(new BpelProcessDefinition());
     importDefinition.addImport(WsdlUtil.createImport(def));
     new BpelReader().registerPropertyAliases(importDefinition);
     // message type
-    MessageType type = importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request"));
+    MessageType type = importDefinition.getMessageType(new QName(
+        BpelConstants.NS_EXAMPLES, "request"));
     // message value
     messageValue = new MessageValue(type);
     // correlation set
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/PartnerLinkInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/PartnerLinkInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/PartnerLinkInstanceDbTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/exe/PartnerLinkInstanceDbTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -34,7 +34,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:10:31 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:10:31 $
  */
 public class PartnerLinkInstanceDbTest extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/IntegrationTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/IntegrationTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/IntegrationTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/IntegrationTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,18 +19,18 @@
 
 import org.jbpm.bpel.endpointref.wsa.WsaEndpointReferenceTest;
 import org.jbpm.bpel.endpointref.wsdl.WsdlEndpointReferenceTest;
-import org.jbpm.bpel.integration.catalog.UrlCatalogTest;
+import org.jbpm.bpel.integration.catalog.URLCatalogTest;
 import org.jbpm.bpel.integration.exe.CorrelationSetTest;
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:27 $
+ * @version $Revision: 1800 $ $Date: 2007/01/22 17:27:03 $
  */
 public class IntegrationTests {
 
   public static Test suite() {
     TestSuite suite = new TestSuite("integration tests");
-    suite.addTestSuite(UrlCatalogTest.class);
+    suite.addTestSuite(URLCatalogTest.class);
     suite.addTestSuite(CorrelationSetTest.class);
     suite.addTestSuite(WsaEndpointReferenceTest.class);
     suite.addTestSuite(WsdlEndpointReferenceTest.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/AbstractListenerTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/AbstractListenerTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/AbstractListenerTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/AbstractListenerTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -31,7 +31,7 @@
 import org.w3c.dom.Element;
 import org.xml.sax.InputSource;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
 import org.jbpm.bpel.graph.basic.Receive;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.integration.def.CorrelationSetDefinition;
@@ -55,7 +55,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:54 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public abstract class AbstractListenerTestCase extends AbstractDbTestCase {
 
@@ -137,14 +137,12 @@
     super.setUp();
 
     // create process definition
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     processDefinition.getImportDefinition().addImport(WsdlUtil.createImport(def));
     // read bpel
-    BpelReader bpelReader = new BpelReader();
-    bpelReader.read(processDefinition, new InputSource(new StringReader(BPEL_TEXT)));
-    assertEquals(0, bpelReader.getProblemHandler().getProblemCount());
+    new BpelReader().read(processDefinition, new InputSource(new StringReader(BPEL_TEXT)));
 
     // get the receiver
     Receive receive = (Receive) processDefinition.getGlobalScope().getActivity();
@@ -159,26 +157,24 @@
     newTransaction();
 
     // create application descriptor
-    DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
-    deploymentDescriptor.setName(processDefinition.getName());
-    deploymentDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
+    AppDescriptor appDescriptor = new AppDescriptor();
+    appDescriptor.setName(processDefinition.getName());
+    appDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
 
     InitialContext initialContext = new InitialContext();
     try {
       // link jms administered objects
       initialContext.bind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
           "ConnectionFactory"));
-      initialContext.rebind("pl", new LinkRef("queue/testQueue"));
 
       // configure relation service factory
-      integrationControl = JmsIntegrationServiceFactory.getConfigurationInstance(jbpmConfiguration)
+      integrationControl = JmsIntegrationServiceFactory.getInstance(jbpmConfiguration)
           .getIntegrationControl(processDefinition);
-      integrationControl.setDeploymentDescriptor(deploymentDescriptor);
+      integrationControl.setAppDescriptor(appDescriptor);
       IntegrationControlHelper.setUp(integrationControl, jbpmContext);
 
       // unlink jms administered objects
       initialContext.unbind(IntegrationControl.CONNECTION_FACTORY_NAME);
-      initialContext.unbind("pl");
     }
     finally {
       initialContext.close();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/IntegrationControlHelper.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/IntegrationControlHelper.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/IntegrationControlHelper.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/IntegrationControlHelper.java	2009-02-06 09:17:22.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:30 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:10 $
  */
 public class IntegrationControlHelper {
 
@@ -32,7 +32,7 @@
     InitialContext initialContext = new InitialContext();
     try {
       integrationControl.buildPartnerLinkEntries(initialContext,
-          integrationControl.getDeploymentDescriptor().findProcessDefinition(jbpmContext));
+          integrationControl.getAppDescriptor().findProcessDefinition(jbpmContext));
       integrationControl.openJmsConnection(initialContext);
     }
     finally {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/RequestListenerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/RequestListenerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/RequestListenerTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/RequestListenerTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:20:32 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class RequestListenerTest extends AbstractListenerTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/StartListenerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/StartListenerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/StartListenerTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/jms/StartListenerTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:19 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:32 $
  */
 public class StartListenerTest extends AbstractListenerTestCase {
 
@@ -45,7 +45,8 @@
   }
 
   protected void openListener() throws JMSException {
-    startListener = new StartListener(processDefinition, receiveAction, integrationControl);
+    startListener = new StartListener(processDefinition, receiveAction, integrationControl,
+        jmsSession);
     startListener.open();
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/server/SoapHandlerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/server/SoapHandlerTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/server/SoapHandlerTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/server/SoapHandlerTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -43,7 +43,7 @@
 
 import com.ibm.wsdl.Constants;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
 import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
@@ -68,12 +68,12 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:18:55 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:20:33 $
  */
 public class SoapHandlerTest extends AbstractDbTestCase {
 
   private IntegrationControl integrationControl;
-  private Definition definition;
+  private Definition def;
   private long rpcPartnerLinkId;
   private long docPartnerLinkId;
 
@@ -92,6 +92,7 @@
       + "' xmlns='"
       + Constants.NS_URI_WSDL
       + "'>"
+      + "\n"
       + "  <message name='rpcRequest'>"
       + "    <part name='simplePart' type='xsd:string'/>"
       + "    <part name='complexPart' type='tns:complexType'/>"
@@ -122,6 +123,7 @@
       + "      <output message='tns:docResponse'/>"
       + "    </operation>"
       + "  </portType>"
+      + "\n"
       + "  <plnk:partnerLinkType name='plt'>"
       + "    <plnk:role name='r1'>"
       + "      <plnk:portType name='tns:rpcPt'/>"
@@ -140,6 +142,7 @@
       + "    query='/tns:requestElement/c/@name' />"
       + "  <bpws:propertyAlias propertyName='tns:idProperty' messageType='tns:docRequest' part='elementPart'"
       + "    query='/tns:requestElement/e' />"
+      + "\n"
       + "  <binding name='rpcB' type='tns:rpcPt'>"
       + "    <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />"
       + "    <operation name='op'>"
@@ -196,11 +199,11 @@
     // create bpel definition
     BpelProcessDefinition processDefinition = new BpelProcessDefinition("testProcess", BpelConstants.NS_EXAMPLES);
 
-    definition = WsdlUtil.getFactory()
+    def = WsdlUtil.getFactory()
         .newWSDLReader()
         .readWSDL("", WsdlConverterTest.transform(WSDL_TEXT));
     ImportDefinition importDefinition = processDefinition.getImportDefinition();
-    importDefinition.addImport(WsdlUtil.createImport(definition));
+    importDefinition.addImport(WsdlUtil.createImport(def));
     new BpelReader().registerPropertyAliases(importDefinition);
 
     // partner link type
@@ -232,28 +235,24 @@
     docPartnerLinkId = docPartnerLink.getId();
 
     // create application descriptor
-    DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
-    deploymentDescriptor.setName(processDefinition.getName());
+    AppDescriptor appDescriptor = new AppDescriptor();
+    appDescriptor.setName(processDefinition.getName());
 
     InitialContext initialContext = new InitialContext();
     try {
       // link jms administered objects
-      initialContext.rebind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
+      initialContext.bind(IntegrationControl.CONNECTION_FACTORY_NAME, new LinkRef(
           "ConnectionFactory"));
-      initialContext.rebind("rpcPl", new LinkRef("queue/testQueue"));
-      initialContext.rebind("docPl", new LinkRef("queue/testQueue"));
 
       // configure relation context
-      integrationControl = JmsIntegrationServiceFactory.getConfigurationInstance(jbpmConfiguration)
+      integrationControl = JmsIntegrationServiceFactory.getInstance(jbpmConfiguration)
           .getIntegrationControl(processDefinition);
-      integrationControl.setDeploymentDescriptor(deploymentDescriptor);
+      integrationControl.setAppDescriptor(appDescriptor);
       // bind port entries and lookup destinations
       IntegrationControlHelper.setUp(integrationControl, jbpmContext);
 
       // unlink jms administered objects
       initialContext.unbind(IntegrationControl.CONNECTION_FACTORY_NAME);
-      initialContext.unbind("rpcPl");
-      initialContext.unbind("docPl");
     }
     finally {
       initialContext.close();
@@ -488,15 +487,15 @@
     return createHandler(DOC_PORT);
   }
 
-  public void testReceiveResponse_output_rpc() throws Exception {
+  public void testReceiveResponse_rpc() throws Exception {
     // prepare messaging objects
     Connection connection = integrationControl.getJmsConnection();
     Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
     try {
-      Destination replyTo = integrationControl.getIntegrationServiceFactory().getResponseDestination();
+      Destination replyTo = integrationControl.getIntegrationServiceFactory().getReplyDestination();
       MessageProducer producer = session.createProducer(replyTo);
       // create parts map
-      Map responseParts = createOutputRpcParts();
+      Map responseParts = createRpcResponseParts();
       // send message to queue
       ObjectMessage jmsResponse = session.createObjectMessage((Serializable) responseParts);
       // use current time in place of the request id
@@ -506,7 +505,7 @@
 
       // receive the above message
       SoapHandler soapHandler = createRpcHandler();
-      jmsResponse = soapHandler.receiveResponse(session, replyTo, requestId, jbpmContext);
+      jmsResponse = soapHandler.receiveResponse(session, replyTo, requestId);
       responseParts = (Map) jmsResponse.getObject();
 
       // simple part
@@ -534,7 +533,7 @@
     }
   }
 
-  private static Map createOutputRpcParts() throws Exception {
+  private static Map createRpcResponseParts() throws Exception {
     // create content
     // simple
     Element simpleElem = XmlUtil.parseText("<intPart>2020</intPart>");
@@ -550,15 +549,15 @@
     return responseParts;
   }
 
-  public void testReceiveResponse_output_doc() throws Exception {
+  public void testReceiveResponse_doc() throws Exception {
     // prepare messaging objects
     Connection connection = integrationControl.getJmsConnection();
     Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
     try {
-      Destination replyTo = integrationControl.getIntegrationServiceFactory().getResponseDestination();
+      Destination replyTo = integrationControl.getIntegrationServiceFactory().getReplyDestination();
       MessageProducer producer = session.createProducer(replyTo);
       // create parts map
-      Map responseParts = createOutputDocParts();
+      Map responseParts = createDocResponseParts();
       // send message to queue
       ObjectMessage jmsResponse = session.createObjectMessage((Serializable) responseParts);
       // use current time in place of the request id
@@ -568,7 +567,7 @@
 
       // receive the above message
       SoapHandler soapHandler = createRpcHandler();
-      jmsResponse = soapHandler.receiveResponse(session, replyTo, requestId, jbpmContext);
+      jmsResponse = soapHandler.receiveResponse(session, replyTo, requestId);
       responseParts = (Map) jmsResponse.getObject();
 
       // element part
@@ -589,7 +588,7 @@
     }
   }
 
-  private static Map createOutputDocParts() throws Exception {
+  private static Map createDocResponseParts() throws Exception {
     // create content
     Element elem = XmlUtil.parseText("<tns:responseElement attributeOne='hi' attributeTwo='ho' xmlns:tns='"
         + BpelConstants.NS_EXAMPLES
@@ -601,8 +600,8 @@
     return Collections.singletonMap("elementPart", elem);
   }
 
-  public void testWriteOutput_saaj_rpc() throws Exception {
-    SOAPMessage soapMessage = writeRpcOutput();
+  public void testWriteResponse_rpc_saaj() throws Exception {
+    SOAPMessage soapMessage = writeRpcResponse();
 
     // soap body
     SOAPBody bodyElem = soapMessage.getSOAPBody();
@@ -627,8 +626,8 @@
     assertEquals("ones", two.getValue());
   }
 
-  public void testWriteOutput_dom_rpc() throws Exception {
-    SOAPMessage soapMessage = writeRpcOutput();
+  public void testWriteResponse_rpc_xml() throws Exception {
+    SOAPMessage soapMessage = writeRpcResponse();
 
     Element envelopeElem = writeAndRead(soapMessage);
     // soap body
@@ -653,17 +652,17 @@
     assertEquals("ones", DatatypeUtil.toString(two));
   }
 
-  private SOAPMessage writeRpcOutput() throws Exception {
+  private SOAPMessage writeRpcResponse() throws Exception {
     SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
-    Map outputParts = createOutputRpcParts();
+    Map responseParts = createRpcResponseParts();
 
     SoapHandler soapHandler = createRpcHandler();
-    soapHandler.writeOutput("op", soapMessage, outputParts);
+    soapHandler.writeResponse("op", soapMessage, responseParts);
     return soapMessage;
   }
 
-  public void testWriteOutput_saaj_doc() throws Exception {
-    SOAPMessage soapMessage = writeDocOutput();
+  public void testWriteResponse_doc_saaj() throws Exception {
+    SOAPMessage soapMessage = writeDocResponse();
 
     // soap body
     SOAPBody bodyElem = soapMessage.getSOAPBody();
@@ -681,8 +680,8 @@
     assertEquals("ones", two.getValue());
   }
 
-  public void testWriteOutput_dom_doc() throws Exception {
-    SOAPMessage soapMessage = writeDocOutput();
+  public void testWriteResponse_doc_xml() throws Exception {
+    SOAPMessage soapMessage = writeDocResponse();
 
     Element envelopeElem = writeAndRead(soapMessage);
     // soap body
@@ -700,12 +699,12 @@
     assertEquals("ones", DatatypeUtil.toString(two));
   }
 
-  private SOAPMessage writeDocOutput() throws Exception {
+  private SOAPMessage writeDocResponse() throws Exception {
     SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
-    Map responseParts = createOutputDocParts();
+    Map responseParts = createDocResponseParts();
 
     SoapHandler soapHandler = createDocHandler();
-    soapHandler.writeOutput("op", soapMessage, responseParts);
+    soapHandler.writeResponse("op", soapMessage, responseParts);
     return soapMessage;
   }
 
@@ -748,7 +747,7 @@
     assertEquals("unknown problem", DatatypeUtil.toString(description));
   }
 
-  public void testWriteFault_dom() throws Exception {
+  public void testWriteFault_xml() throws Exception {
     SOAPMessage soapMessage = writeFault();
 
     Element envelope = writeAndRead(soapMessage);
@@ -774,7 +773,7 @@
   }
 
   private SoapHandler createHandler(String portName) {
-    Port port = definition.getService(Q_SERVICE).getPort(portName);
+    Port port = def.getService(Q_SERVICE).getPort(portName);
     return new SoapHandler(integrationControl, Q_SERVICE, port);
   }
 
@@ -796,7 +795,7 @@
     Map faultParts = Collections.singletonMap("faultPart", faultElem);
 
     SoapHandler soapHandler = createRpcHandler();
-    soapHandler.writeFault("op", soapMessage, "flt", faultParts, faultException);
+    soapHandler.writeFault("op", soapMessage, faultException, "flt", faultParts);
     return soapMessage;
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/ServerTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/ServerTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/ServerTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/ServerTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -17,7 +17,7 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jbpm.bpel.integration.client.SoapCallerTest;
+import org.jbpm.bpel.integration.client.SoapClientTest;
 import org.jbpm.bpel.integration.def.InvokeActionTest;
 import org.jbpm.bpel.integration.def.ReplyActionTest;
 import org.jbpm.bpel.integration.jms.RequestListenerTest;
@@ -27,17 +27,17 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/01/30 07:19:06 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:04 $
  */
 public class ServerTests {
 
-  public static Test suite() {
+  public static Test suite() throws Exception {
     TestSuite suite = new TestSuite("server tests");
     suite.addTestSuite(SoapHandlerTest.class);
     suite.addTestSuite(RequestListenerTest.class);
     suite.addTestSuite(StartListenerTest.class);
     suite.addTestSuite(ReplyActionTest.class);
-    suite.addTest(SoapCallerTest.suite());
+    suite.addTest(SoapClientTest.suite());
     suite.addTest(InvokeActionTest.suite());
     suite.addTestSuite(SoapUtilTest.class);
     return suite;
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/soap/SoapUtilTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/soap/SoapUtilTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/integration/soap/SoapUtilTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/integration/soap/SoapUtilTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -41,7 +41,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:15 $
+ * @version $Revision: 1800 $ $Date: 2007/08/02 18:56:28 $
  */
 public class SoapUtilTest extends TestCase {
 
@@ -533,6 +533,8 @@
   public void testCopy_domSoap_qualifiedNoPrefix() throws Exception {
     String xml = "<soapenv:Envelope xmlns:soapenv='"
         + SOAPConstants.URI_NS_SOAP_ENVELOPE
+        + "' xmlns:xsi='"
+        + BpelConstants.NS_XML_SCHEMA_INSTANCE
         + "'>"
         + " <soapenv:Body>"
         + "  <response xmlns='"
@@ -543,9 +545,7 @@
         + "    <branch>140</branch>"
         + "    <capital>10419.18</capital>"
         + "    <status>1</status>"
-        + "    <transaction xmlns:xsi='"
-        + BpelConstants.NS_XML_SCHEMA_INSTANCE
-        + "' xsi:nil='true'/>"
+        + "    <transaction xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/>"
         + "   </return>"
         + "  </response>"
         + " </soapenv:Body>"
@@ -560,8 +560,14 @@
     target = XmlUtilTest.writeAndRead(target);
 
     // namespaces
+    assertEquals(BpelConstants.NS_XML_SCHEMA_INSTANCE, target.getAttributeNS(
+        BpelConstants.NS_XMLNS, "xsi"));
     assertEquals(SOAPConstants.URI_NS_SOAP_ENVELOPE, target.getAttributeNS(BpelConstants.NS_XMLNS,
         "soapenv"));
+    assertEquals("", target.getAttributeNS(BpelConstants.NS_XMLNS, "xmlns"));
+
+    // attributes (there are no attributes other than the above namespace declarations)
+    assertEquals(2, target.getAttributes().getLength());
 
     // child elements
     Element returnElem = XmlUtil.getElement(target, BpelConstants.NS_EXAMPLES, "return");
@@ -570,6 +576,9 @@
     assertEquals(BpelConstants.NS_EXAMPLES, returnElem.getAttributeNS(BpelConstants.NS_XMLNS,
         "xmlns"));
 
+    // attributes
+    assertEquals(1, returnElem.getAttributes().getLength());
+
     // child elements
     assertEquals("0.0", DatatypeUtil.toString(XmlUtil.getElement(returnElem,
         BpelConstants.NS_EXAMPLES, "amount")));
@@ -580,15 +589,7 @@
     assertEquals("1", DatatypeUtil.toString(XmlUtil.getElement(returnElem,
         BpelConstants.NS_EXAMPLES, "status")));
 
-    Element transactionElem = XmlUtil.getElement(returnElem, BpelConstants.NS_EXAMPLES,
-        "transaction");
-
-    // namespaces
-    assertEquals(BpelConstants.NS_XML_SCHEMA_INSTANCE, transactionElem.getAttributeNS(
-        BpelConstants.NS_XMLNS, "xsi"));
-
-    // attributes
-    assertEquals("true",
-        transactionElem.getAttributeNS(BpelConstants.NS_XML_SCHEMA_INSTANCE, "nil"));
+    Element transaction = XmlUtil.getElement(returnElem, BpelConstants.NS_EXAMPLES, "transaction");
+    assertEquals("true", transaction.getAttributeNS(BpelConstants.NS_XML_SCHEMA_INSTANCE, "nil"));
   }
 }
Binary files jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/archiveSample.zip and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/archiveSample.zip differ
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/BpelArchiveParserTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/BpelArchiveParserTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/BpelArchiveParserTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/BpelArchiveParserTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -33,19 +33,20 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/06/04 23:16:40 $
  */
 public class BpelArchiveParserTest extends TestCase {
 
-  private BpelArchiveParser archiveParser = new BpelArchiveParser();
+  private BpelArchiveParser bpelArchiveParser = new BpelArchiveParser();
   private BpelProcessDefinition processDefinition;
 
   private JbpmContext jbpmContext;
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating
-     * the process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating the process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
@@ -60,7 +61,7 @@
     ProcessArchive archive = createProcessArchive("archiveSample.zip");
     // parse process definition
     processDefinition.setLocation("processSample.bpel");
-    archiveParser.readFromArchive(archive, processDefinition);
+    bpelArchiveParser.readFromArchive(archive, processDefinition);
     // problem count
     assertTrue(archive.getProblems().isEmpty());
     // process name
@@ -87,7 +88,7 @@
     processDefinition.getImportDefinition().addImport(_import);
     // parse process definition
     processDefinition.setLocation("bpel/processSample-1_1.bpel");
-    archiveParser.readFromArchive(archive, processDefinition);
+    bpelArchiveParser.readFromArchive(archive, processDefinition);
     // problem count
     assertTrue(archive.getProblems().isEmpty());
     // process name
@@ -107,7 +108,7 @@
     ProcessArchive archive = createProcessArchive("archiveSample-masterWsdl.zip");
     // parse process definition
     processDefinition.setLocation("bpel/processSample-1_1.bpel");
-    archiveParser.readFromArchive(archive, processDefinition);
+    bpelArchiveParser.readFromArchive(archive, processDefinition);
     // problem count
     assertTrue(archive.getProblems().isEmpty());
     // process name
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par: DefDescriptorArchiveParserTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par: DescriptorArchiveParserTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/FileArchiveParserTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/FileArchiveParserTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/FileArchiveParserTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/FileArchiveParserTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -17,26 +17,26 @@
 import java.io.InputStream;
 import java.util.zip.ZipInputStream;
 
-import junit.framework.TestCase;
-
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.file.def.FileDefinition;
 import org.jbpm.jpdl.par.FileArchiveParser;
 import org.jbpm.jpdl.par.ProcessArchive;
 
+import junit.framework.TestCase;
+
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:35:40 $
  */
 public class FileArchiveParserTest extends TestCase {
 
-  private FileArchiveParser archiveParser = new FileArchiveParser();
-  private BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+  private FileArchiveParser fileArchiveParser = new FileArchiveParser();
 
   public void testReadFromArchive() throws Exception {
     ProcessArchive archive = createProcessArchive("archiveSample.zip");
     // read archive
-    archiveParser.readFromArchive(archive, processDefinition);
+    BpelProcessDefinition processDefinition = (BpelProcessDefinition) fileArchiveParser.readFromArchive(
+        archive, new BpelProcessDefinition());
     assertTrue(archive.getProblems().isEmpty());
     // verify files
     FileDefinition fileDefinition = processDefinition.getFileDefinition();
@@ -51,7 +51,8 @@
   public void testReadFromArchive_1_1() throws Exception {
     ProcessArchive archive = createProcessArchive("archiveSample-1_1.zip");
     // read archive
-    archiveParser.readFromArchive(archive, processDefinition);
+    BpelProcessDefinition processDefinition = (BpelProcessDefinition) fileArchiveParser.readFromArchive(
+        archive, new BpelProcessDefinition());
     assertTrue(archive.getProblems().isEmpty());
     // verify files
     FileDefinition fileDefinition = processDefinition.getFileDefinition();
@@ -67,7 +68,8 @@
   public void testReadFromArchive_masterWsdl() throws Exception {
     ProcessArchive archive = createProcessArchive("archiveSample-masterWsdl.zip");
     // read archive
-    archiveParser.readFromArchive(archive, processDefinition);
+    BpelProcessDefinition processDefinition = (BpelProcessDefinition) fileArchiveParser.readFromArchive(
+        archive, new BpelProcessDefinition());
     assertTrue(archive.getProblems().isEmpty());
     // verify files
     FileDefinition fileDefinition = processDefinition.getFileDefinition();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/ProcessArchiveTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/ProcessArchiveTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/par/ProcessArchiveTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/par/ProcessArchiveTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -33,7 +33,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/07/20 22:35:40 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 22:35:40 $
  */
 public class ProcessArchiveTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/AbstractDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/AbstractDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/AbstractDbTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/AbstractDbTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -37,7 +37,6 @@
 import org.jbpm.job.Job;
 import org.jbpm.job.executor.JobExecutor;
 import org.jbpm.logging.log.ProcessLog;
-import org.jbpm.persistence.db.DbPersistenceService;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 
 public class AbstractDbTestCase extends TestCase {
@@ -263,7 +262,7 @@
     jobSession = jbpmContext.getJobSession();
     contextSession = jbpmContext.getContextSession();
 
-    bpelGraphSession = BpelGraphSession.getContextInstance(jbpmContext);
+    bpelGraphSession = BpelGraphSession.getInstance(jbpmContext);
   }
 
   protected void resetMembers() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/BpelGraphSessionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/BpelGraphSessionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/BpelGraphSessionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/BpelGraphSessionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -14,73 +14,89 @@
  */
 package org.jbpm.bpel.persistence.db;
 
-import java.util.List;
+import javax.xml.transform.dom.DOMSource;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestSuite;
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.bpel.xml.BpelReader;
+import org.jbpm.bpel.xml.util.XmlUtil;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:30 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:46:35 $
  */
 public class BpelGraphSessionDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition a1;
-  private BpelProcessDefinition a2;
-  private BpelProcessDefinition b1;
+  private int version;
+
+  private static DOMSource processSource;
+
+  private static final String PROCESS_NAME = "integrationSession";
 
   protected void setUp() throws Exception {
     super.setUp();
 
-    a1 = new BpelProcessDefinition("a", BpelConstants.NS_EXAMPLES);
-    a2 = new BpelProcessDefinition("a", BpelConstants.NS_EXAMPLES);
-    b1 = new BpelProcessDefinition("b", BpelConstants.NS_VENDOR);
-
-    bpelGraphSession.deployProcessDefinition(a1);
-    bpelGraphSession.deployProcessDefinition(a2);
-    bpelGraphSession.deployProcessDefinition(b1);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
+
+    BpelReader bpelReader = new BpelReader();
+    bpelReader.read(processDefinition, processSource);
+    assertEquals(0, bpelReader.getProblemHandler().getProblemCount());
+
+    bpelGraphSession.deployProcessDefinition(processDefinition);
+    version = processDefinition.getVersion();
   }
 
   public void testFindLatestProcessDefinition() {
     BpelProcessDefinition processDefinition = bpelGraphSession.findLatestProcessDefinition(
-        a2.getName(), a2.getTargetNamespace());
+        PROCESS_NAME, BpelConstants.NS_EXAMPLES);
 
-    assertEquals(a2.getVersion(), processDefinition.getVersion());
+    assertEquals(version, processDefinition.getVersion());
   }
 
   public void testFindLatestProcessDefinition_anyNamespace() {
     BpelProcessDefinition processDefinition = bpelGraphSession.findLatestProcessDefinition(
-        a2.getName(), null);
-
-    assertEquals(a2.getVersion(), processDefinition.getVersion());
-  }
-
-  public void testFindLatestProcessDefinitions() {
-    List processDefinitions = bpelGraphSession.findLatestProcessDefinitions();
+        PROCESS_NAME, null);
 
-    assertFalse(processDefinitions.contains(a1));
-    assertTrue(processDefinitions.contains(a2));
-    assertTrue(processDefinitions.contains(b1));
+    assertEquals(version, processDefinition.getVersion());
   }
 
   public void testFindProcessDefinition() {
-    BpelProcessDefinition processDefinition = bpelGraphSession.findProcessDefinition(a1.getName(),
-        a1.getTargetNamespace(), a1.getVersion());
+    BpelProcessDefinition processDefinition = bpelGraphSession.findProcessDefinition(PROCESS_NAME,
+        BpelConstants.NS_EXAMPLES, version);
 
-    assertEquals(a1.getVersion(), processDefinition.getVersion());
+    assertEquals(version, processDefinition.getVersion());
   }
 
   public void testFindProcessDefinition_anyNamespace() {
-    BpelProcessDefinition processDefinition = bpelGraphSession.findProcessDefinition(a1.getName(),
-        null, a1.getVersion());
+    BpelProcessDefinition processDefinition = bpelGraphSession.findProcessDefinition(PROCESS_NAME,
+        null, version);
 
-    assertEquals(a1.getVersion(), processDefinition.getVersion());
+    assertEquals(version, processDefinition.getVersion());
   }
 
   public void testDeployProcessDefinition() {
-    BpelProcessDefinition b2 = new BpelProcessDefinition(b1.getName(), b1.getTargetNamespace());
-    bpelGraphSession.deployProcessDefinition(b2);
+    BpelProcessDefinition processDefinition = bpelGraphSession.findLatestProcessDefinition(
+        PROCESS_NAME, BpelConstants.NS_EXAMPLES);
+    bpelGraphSession.deployProcessDefinition(processDefinition);
+
+    assertEquals(version + 1, processDefinition.getVersion());
+  }
+
+  public static Test suite() {
+    return new TestSetup(new TestSuite(BpelGraphSessionDbTest.class)) {
 
-    assertEquals(b1.getVersion() + 1, b2.getVersion());
+      protected void setUp() throws Exception {
+        processSource = XmlUtil.parseResource("integrationSession.bpel",
+            BpelGraphSessionDbTest.class);
+      }
+
+      protected void tearDown() throws Exception {
+        processSource = null;
+      }
+    };
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.bpel
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.bpel	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.bpel	2009-02-06 09:17:22.000000000 +0100
@@ -1,19 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <process name="integrationSession" targetNamespace="http://jbpm.org/bpel/examples"
-  xmlns:def="http://manufacturing.org/wsdl/purchase"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+  xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:def="http://manufacturing.org/wsdl/purchase">
   <import namespace="http://manufacturing.org/wsdl/purchase" location="integrationSession.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/" />
   <partnerLinks>
-    <partnerLink name="schedulingPL" partnerLinkType="def:schedulingLT"
-      partnerRole="schedulingRequester" myRole="schedulingService" />
+    <partnerLink name="schedulingPL" partnerLinkType="def:schedulingLT" partnerRole="schedulingRequester"
+      myRole="schedulingService" />
   </partnerLinks>
   <variables>
     <variable name="schedule" messageType="def:scheduleMessage" />
   </variables>
   <eventHandlers>
-    <onEvent partnerLink="schedulingPL" operation="cancelScheduling" variable="cancellation"
-      messageType="def:scheduleMessage">
+    <onEvent partnerLink="schedulingPL" operation="cancelScheduling" 
+      variable="cancellation" messageType="def:scheduleMessage">
       <scope>
         <empty />
       </scope>
@@ -28,7 +27,6 @@
         <empty />
       </onMessage>
     </pick>
-    <receive name="r" partnerLink="schedulingPL" operation="returnScheduleTicket"
-      variable="schedule" />
+    <receive name="r" partnerLink="schedulingPL" operation="returnScheduleTicket" variable="schedule" />
   </sequence>
 </process>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/IntegrationSessionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/IntegrationSessionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/IntegrationSessionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/IntegrationSessionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -39,7 +39,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:15 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:11 $
  */
 public class IntegrationSessionDbTest extends AbstractDbTestCase {
 
@@ -94,7 +94,7 @@
     onMsgToken.setNode(onMsgActivity);
 
     jbpmContext.save(processInstance);
-    integrationSession = IntegrationSession.getContextInstance(jbpmContext);
+    integrationSession = IntegrationSession.getInstance(jbpmContext);
   }
 
   public void testFindReceiveTokens() {
@@ -154,14 +154,7 @@
   }
 
   public static Test suite() {
-    return new Setup();
-  }
-
-  private static class Setup extends TestSetup {
-
-    private Setup() {
-      super(new TestSuite(IntegrationSessionDbTest.class));
-    }
+    return new TestSetup(new TestSuite(IntegrationSessionDbTest.class)) {
 
     protected void setUp() throws Exception {
       processSource = XmlUtil.parseResource("integrationSession.bpel",
@@ -171,5 +164,6 @@
     protected void tearDown() throws Exception {
       processSource = null;
     }
+    };
   }
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.wsdl	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/integrationSession.wsdl	2009-02-06 09:17:22.000000000 +0100
@@ -2,7 +2,10 @@
 <definitions name="portTypeRelationships"
   targetNamespace="http://manufacturing.org/wsdl/purchase" 
   xmlns:tns="http://manufacturing.org/wsdl/purchase" 
-  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"   
+  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/
+                      http://schemas.xmlsoap.org/ws/2004/03/partner-link/ http://schemas.xmlsoap.org/ws/2004/03/partner-link/"  
   xmlns="http://schemas.xmlsoap.org/wsdl/">
   <plnk:partnerLinkType name="schedulingLT">
     <plnk:role name="schedulingService" portType="tns:schedulingPT"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/ScopeSessionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/ScopeSessionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/ScopeSessionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/ScopeSessionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -17,7 +17,7 @@
 import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.exe.ScopeInstance;
-import org.jbpm.bpel.graph.exe.state.EndState;
+import org.jbpm.bpel.graph.exe.state.EndedState;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.graph.struct.Sequence;
 import org.jbpm.bpel.xml.BpelConstants;
@@ -93,7 +93,7 @@
     globalScope.setActivity(rootSequence);
 
     // save the definition
-    jbpmContext.getGraphSession().saveProcessDefinition(processDefinition);
+    bpelGraphSession.deployProcessDefinition(processDefinition);
 
     // create a process instance
     processInstance = new ProcessInstance(processDefinition);
@@ -130,23 +130,23 @@
 
   public void testNextChildToCompensate() throws Exception {
     // completion order is T1: A.2, B.1, T2: A.1.1, T3: A.1
-    a2.setState(EndState.COMPLETED);
+    a2.setState(EndedState.COMPLETED);
     a2.getToken().end();
 
-    b1.setState(EndState.COMPLETED);
+    b1.setState(EndedState.COMPLETED);
     b1.getToken().end();
 
     Thread.sleep(SCOPE_COMPLETION_DELAY);
-    a11.setState(EndState.COMPLETED);
+    a11.setState(EndedState.COMPLETED);
     a11.getToken().end();
 
     Thread.sleep(SCOPE_COMPLETION_DELAY);
-    a1.setState(EndState.COMPLETED);
+    a1.setState(EndedState.COMPLETED);
     a1.getToken().end();
 
     // save the process instance
     processInstance = saveAndReload(processInstance);
-    ScopeSession scopeSession = ScopeSession.getContextInstance(jbpmContext);
+    ScopeSession scopeSession = ScopeSession.getInstance(jbpmContext);
 
     // our compensation follows the strict reverse order of completion
     assertEquals("A.1", scopeSession.nextChildToCompensate(root).getDefinition().getName());
@@ -160,23 +160,23 @@
 
   public void testNextScopeToCompensate() throws Exception {
     // completion order is T1: A.2, B.1, T2: A.1.1 T3: A.1
-    a2.setState(EndState.COMPLETED);
+    a2.setState(EndedState.COMPLETED);
     a2.getToken().end();
 
-    b1.setState(EndState.COMPLETED);
+    b1.setState(EndedState.COMPLETED);
     b1.getToken().end();
 
     Thread.sleep(SCOPE_COMPLETION_DELAY);
-    a11.setState(EndState.COMPLETED);
+    a11.setState(EndedState.COMPLETED);
     a11.getToken().end();
 
     Thread.sleep(SCOPE_COMPLETION_DELAY);
-    a1.setState(EndState.COMPLETED);
+    a1.setState(EndedState.COMPLETED);
     a1.getToken().end();
 
     // save the process instance
     processInstance = saveAndReload(processInstance);
-    ScopeSession scopeSession = ScopeSession.getContextInstance(jbpmContext);
+    ScopeSession scopeSession = ScopeSession.getInstance(jbpmContext);
 
     assertEquals("A.1", scopeSession.nextScopeToCompensate(processInstance, root.getDefinition())
         .getDefinition()
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/type/QNameTypeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/type/QNameTypeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/type/QNameTypeDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/persistence/db/type/QNameTypeDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/07/02 23:55:09 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:09 $
  */
 public class QNameTypeDbTest extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/ExpressionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/ExpressionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/ExpressionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/ExpressionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/05 13:10:21 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public class ExpressionDbTest extends SnippetDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/JoinConditionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/JoinConditionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/JoinConditionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/JoinConditionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/05 13:10:21 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public class JoinConditionDbTest extends SnippetDbTestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def: PropertyQueryDbTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def: QueryDbTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/SnippetDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/SnippetDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/SnippetDbTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/def/SnippetDbTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -20,11 +20,10 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:31 $
+ * @version $Revision: 1800 $ $Date: 2007/03/05 13:10:21 $
  */
 public abstract class SnippetDbTestCase extends AbstractDbTestCase {
 
@@ -33,8 +32,7 @@
 
   protected void setUp() throws Exception {
     super.setUp();
-    // process, create after opening a jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     snippet = createSnippet(processDefinition);
   }
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/def: VariableQueryDbTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/BooleanExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/BooleanExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/BooleanExpressionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/BooleanExpressionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,11 +24,10 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.graph.struct.If;
 import org.jbpm.bpel.sublang.def.Expression;
 import org.jbpm.bpel.variable.def.ElementType;
 import org.jbpm.bpel.variable.def.SchemaType;
@@ -41,7 +40,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class BooleanExpressionTest extends TestCase {
 
@@ -68,43 +67,47 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new If();
-    scope.setActivity(primary);
     // element variable 1
     Element elem1 = XmlUtil.parseText(ELEM1_TEXT);
     VariableDefinition var1 = new VariableDefinition();
     var1.setName("var1");
-    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(), elem1.getLocalName())));
+    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(),
+        elem1.getLocalName())));
     scope.addVariable(var1);
     // element variable 2
     Element elem2 = XmlUtil.parseText(ELEM2_TEXT);
     VariableDefinition var2 = new VariableDefinition();
     var2.setName("var2");
-    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(), elem2.getLocalName())));
+    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(),
+        elem2.getLocalName())));
     scope.addVariable(var2);
     // simple variable
     VariableDefinition simple = new VariableDefinition();
     simple.setName("simple");
-    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "boolean")));
+    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA,
+        "boolean")));
     scope.addVariable(simple);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     var1.setValue(token, elem1);
     var2.setValue(token, elem2);
     simple.setValue(token, Boolean.TRUE);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   protected void tearDown() throws Exception {
@@ -222,9 +225,10 @@
 
   public void testAnd() {
     /*
-     * the odd-looking comparison with 'true' is there because it inspects the text content of a
-     * node, whereas the boolean() function, called when an implicit conversion to boolean is
-     * required, tests for the presence of a node
+     * the odd-looking comparison with 'true' is there because it inspects the
+     * text content of a node, whereas the boolean() function, called when an
+     * implicit conversion to boolean is required, tests for the presence of a
+     * node
      */
     assertTrue(eval("$var1/b = 'true' and $var1/b/@on = 'true'"));
     assertFalse(eval("$var1/b = 'true' and $var2/b = 'true'"));
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DeadlineExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DeadlineExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DeadlineExpressionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DeadlineExpressionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -25,8 +25,7 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Wait;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.sublang.def.Expression;
@@ -41,7 +40,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class DeadlineExpressionTest extends TestCase {
 
@@ -56,36 +55,39 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Wait();
-    scope.setActivity(primary);
     // element variable
     Element elem1 = XmlUtil.parseText(ELEM_TEXT);
     VariableDefinition var1 = new VariableDefinition();
     var1.setName("var1");
-    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(), elem1.getLocalName())));
+    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(),
+        elem1.getLocalName())));
     scope.addVariable(var1);
     // simple variable
     VariableDefinition simple = new VariableDefinition();
     simple.setName("simple");
-    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "dateTime")));
+    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA,
+        "dateTime")));
     scope.addVariable(simple);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     var1.setValue(token, elem1);
     simple.setValue(token, "1999-12-31T23:59:45");
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   protected void tearDown() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DurationExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DurationExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DurationExpressionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/DurationExpressionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -22,8 +22,7 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Wait;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.sublang.def.Expression;
@@ -39,7 +38,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class DurationExpressionTest extends TestCase {
 
@@ -54,36 +53,39 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Wait();
-    scope.setActivity(primary);
     // element variable
     Element elem1 = XmlUtil.parseText(ELEM_TEXT);
     VariableDefinition var1 = new VariableDefinition();
     var1.setName("var1");
-    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(), elem1.getLocalName())));
+    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(),
+        elem1.getLocalName())));
     scope.addVariable(var1);
     // simple variable
     VariableDefinition simple = new VariableDefinition();
     simple.setName("simple");
-    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "duration")));
+    simple.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA,
+        "duration")));
     scope.addVariable(simple);
     // instantiate process
     token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     var1.setValue(token, elem1);
     simple.setValue(token, "PT28H35M140.7S");
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   protected void tearDown() throws Exception {
@@ -98,7 +100,8 @@
   }
 
   public void testAttributeExtraction() {
-    assertEquals(new Duration(12, 75, 60, 0, 0, 0, 0), eval("$var1/b/@interval"));
+    assertEquals(new Duration(12, 75, 60, 0, 0, 0, 0),
+        eval("$var1/b/@interval"));
   }
 
   public void testContentExtraction() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/GeneralExpressionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/GeneralExpressionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/GeneralExpressionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/GeneralExpressionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -25,14 +25,12 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
 import org.jbpm.bpel.sublang.def.Expression;
 import org.jbpm.bpel.variable.def.ElementType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
-import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
 import org.jbpm.bpel.xml.util.XmlUtil;
 import org.jbpm.graph.exe.ProcessInstance;
@@ -40,7 +38,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class GeneralExpressionTest extends TestCase {
 
@@ -63,37 +61,39 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
-    // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    // process and token
+    BpelProcessDefinition pd = new BpelProcessDefinition();
+    token = new ProcessInstance(pd).getRootToken();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // element variable 1
     Element elem1 = XmlUtil.parseText(ELEM1_TEXT);
     VariableDefinition var1 = new VariableDefinition();
     var1.setName("var1");
-    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(), elem1.getLocalName())));
+    var1.setType(new ElementType(new QName(elem1.getNamespaceURI(),
+        elem1.getLocalName())));
     scope.addVariable(var1);
     // element variable 2
     Element elem2 = XmlUtil.parseText(ELEM2_TEXT);
     VariableDefinition var2 = new VariableDefinition();
     var2.setName("var2");
-    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(), elem2.getLocalName())));
+    var2.setType(new ElementType(new QName(elem2.getNamespaceURI(),
+        elem2.getLocalName())));
     scope.addVariable(var2);
-    // instantiate process
-    token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     var1.setValue(token, elem1);
     var2.setValue(token, elem2);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
   }
 
   protected void tearDown() throws Exception {
@@ -126,7 +126,8 @@
   }
 
   public void testStringFunction() {
-    assertEquals("venusandmars", eval("concat($var1/c/@name, 'and', $var2/c/@name)"));
+    assertEquals("venusandmars",
+        eval("concat($var1/c/@name, 'and', $var2/c/@name)"));
   }
 
   public void testNumberFunction() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/JoinConditionTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/JoinConditionTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/JoinConditionTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/JoinConditionTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -35,7 +35,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class JoinConditionTest extends TestCase {
 
@@ -49,14 +49,15 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and context
-    ProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    ProcessDefinition pd = new BpelProcessDefinition();
     ProcessInstance pi = new ProcessInstance(pd);
     token = pi.getRootToken();
 
@@ -73,7 +74,8 @@
     thirdLink = new LinkDefinition("l3").createInstance(token);
 
     // enclosing element
-    namespaces = Collections.singleton(new Namespace("bpws", BpelConstants.NS_BPEL_1_1));
+    namespaces = Collections.singleton(new Namespace("bpws",
+        BpelConstants.NS_BPEL_1_1));
   }
 
   protected void tearDown() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/VariableAccessTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/VariableAccessTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/VariableAccessTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/exe/VariableAccessTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -27,8 +27,7 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.def.Namespace;
@@ -47,7 +46,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:36 $
  */
 public class VariableAccessTest extends TestCase {
 
@@ -86,19 +85,15 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
-    // process and global scope
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
-    Scope scope = processDefinition.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
+    // process
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     // wsdl description
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = processDefinition.getImportDefinition();
@@ -115,10 +110,15 @@
     messageDefinition.setName("msg");
     messageDefinition.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
         "request")));
+    // declare the variable in the global scope
+    Scope scope = processDefinition.getGlobalScope();
     scope.addVariable(messageDefinition);
     // instantiate process
     token = new ProcessInstance(processDefinition).getRootToken();
-    token.setNode(primary);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
     // variable instance
     messageDefinition.createInstance(token);
     messageValue = (MessageValue) messageDefinition.getValueForAssign(token);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/SublangTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/SublangTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/SublangTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/SublangTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:13:28 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:13:28 $
  */
 public class SublangTests {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetLinkStatusTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -25,14 +25,13 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.LinkDefinition;
 import org.jbpm.bpel.graph.exe.LinkInstance;
-import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class GetLinkStatusTest extends TestCase {
 
@@ -46,14 +45,15 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and context
-    ProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    ProcessDefinition pd = new BpelProcessDefinition();
     ProcessInstance pi = new ProcessInstance(pd);
     Token rootToken = pi.getRootToken();
 
@@ -82,14 +82,17 @@
   }
 
   public void testEvaluatePositiveLink() throws Exception {
-    assertSame(positive.getStatus(), GetLinkStatusFunction.evaluate("positive", context));
+    assertSame(positive.getStatus(), GetLinkStatusFunction.evaluate("positive",
+        context));
   }
 
   public void testEvaluateNegativeLink() throws Exception {
-    assertSame(negative.getStatus(), GetLinkStatusFunction.evaluate("negative", context));
+    assertSame(negative.getStatus(), GetLinkStatusFunction.evaluate("negative",
+        context));
   }
 
   public void testEvaluateUnsetLink() throws Exception {
-    assertSame(unset.getStatus(), GetLinkStatusFunction.evaluate("unset", context));
+    assertSame(unset.getStatus(), GetLinkStatusFunction.evaluate("unset",
+        context));
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetTokenIdDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetTokenIdDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetTokenIdDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetTokenIdDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/08/08 11:13:28 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:13:28 $
  */
 public class GetTokenIdDbTest extends AbstractDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariableDataTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariableDataTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariableDataTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariableDataTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -30,11 +30,12 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
+import org.jbpm.bpel.sublang.xpath.GetVariableDataFunction;
+import org.jbpm.bpel.sublang.xpath.TokenVariableContext;
 import org.jbpm.bpel.variable.def.SchemaType;
 import org.jbpm.bpel.variable.def.VariableDefinition;
 import org.jbpm.bpel.variable.exe.MessageValue;
@@ -47,7 +48,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:36 $
  */
 public class GetVariableDataTest extends TestCase {
 
@@ -74,18 +75,16 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
-    // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    // process and token
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // wsdl description
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = pd.getImportDefinition();
@@ -93,21 +92,25 @@
     // variable definition
     VariableDefinition messageVariable = new VariableDefinition();
     messageVariable.setName("msg");
-    messageVariable.setType(importDefinition.getMessageType(new QName(BpelConstants.NS_EXAMPLES,
-        "request")));
+    messageVariable.setType(importDefinition.getMessageType(new QName(
+        BpelConstants.NS_EXAMPLES, "request")));
     scope.addVariable(messageVariable);
     // simple variable
     VariableDefinition simpleVariable = new VariableDefinition();
     simpleVariable.setName("simple");
-    simpleVariable.setType(new SchemaType(new QName(BpelConstants.NS_XML_SCHEMA, "boolean")));
+    simpleVariable.setType(new SchemaType(new QName(
+        BpelConstants.NS_XML_SCHEMA, "boolean")));
     scope.addVariable(simpleVariable);
     // instantiate process
     Token token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     simpleVariable.setValue(token, Boolean.TRUE);
     messageValue = (MessageValue) messageVariable.getValueForAssign(token);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
     // namespace declarations
     Map namespaceDeclarations = def.getNamespaces();
     namespaceDeclarations.remove("");
@@ -123,18 +126,21 @@
   }
 
   public void testEvaluateVariable() throws FunctionCallException {
-    Element simpleValue = (Element) GetVariableDataFunction.evaluate("simple", context);
+    Element simpleValue = (Element) GetVariableDataFunction.evaluate("simple",
+        context);
     assertEquals("true", DatatypeUtil.toString(simpleValue));
   }
 
   public void testEvaluateSimplePart() throws FunctionCallException {
     Element simplePart = messageValue.getPartForAssign("simplePart");
-    assertSame(simplePart, GetVariableDataFunction.evaluate("msg", "simplePart", context));
+    assertSame(simplePart, GetVariableDataFunction.evaluate("msg",
+        "simplePart", context));
   }
 
   public void testEvaluateElementPart() throws FunctionCallException {
     Element elementPart = messageValue.getPartForAssign("elementPart");
-    assertSame(elementPart, GetVariableDataFunction.evaluate("msg", "elementPart", context));
+    assertSame(elementPart, GetVariableDataFunction.evaluate("msg",
+        "elementPart", context));
   }
 
   public void testEvaluateAttributeLocation() throws Exception {
@@ -151,8 +157,8 @@
     Element partValue = XmlUtil.parseText(ELEM_PART_TEXT);
     messageValue.setPart("elementPart", partValue);
     Element e = XmlUtil.getElement(messageValue.getPart("elementPart"), "e");
-    Object data = GetVariableDataFunction.evaluate("msg", "elementPart", "/tns:surpriseElement/e",
-        context);
+    Object data = GetVariableDataFunction.evaluate("msg", "elementPart",
+        "/tns:surpriseElement/e", context);
     assertSame(e, data);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/sublang/xpath/GetVariablePropertyTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -30,8 +30,7 @@
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
-import org.jbpm.bpel.graph.basic.Assign;
-import org.jbpm.bpel.graph.def.Activity;
+import org.jbpm.bpel.graph.basic.Empty;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
@@ -47,7 +46,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:25 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:36 $
  */
 public class GetVariablePropertyTest extends TestCase {
 
@@ -78,18 +77,16 @@
 
   protected void setUp() throws Exception {
     /*
-     * the process definition accesses the jbpm configuration, so create a context before creating a
-     * process definition to avoid loading another configuration from the default resource
+     * the process definition accesses the jbpm configuration, so create a
+     * context before creating a process definition to avoid loading another
+     * configuration from the default resource
      */
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/bpel/graph/exe/test.jbpm.cfg.xml");
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     // process and global scope
-    BpelProcessDefinition pd = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     Scope scope = pd.getGlobalScope();
-    // primary activity
-    Activity primary = new Assign();
-    scope.setActivity(primary);
     // wsdl description
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = pd.getImportDefinition();
@@ -104,10 +101,13 @@
     scope.addVariable(messageVariable);
     // instantiate process
     Token token = new ProcessInstance(pd).getRootToken();
-    token.setNode(primary);
     // initialize variables
     scope.createInstance(token).initializeData();
     messageValue = (MessageValue) messageVariable.getValueForAssign(token);
+    // provide a way to the variable definition
+    Empty activity = new Empty();
+    scope.addNode(activity);
+    token.setNode(activity);
     // namespace declarations
     Map namespaceDeclarations = def.getNamespaces();
     namespaceDeclarations.remove("");
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/MessageTypeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/MessageTypeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/MessageTypeDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/MessageTypeDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:40 $
  */
 public class MessageTypeDbTest extends AbstractDbTestCase {
 
@@ -60,7 +60,7 @@
   protected void setUp() throws Exception {
     super.setUp();
     // process, create after opening jbpm context
-    process = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    process = new BpelProcessDefinition();
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     ImportDefinition importDefinition = process.getImportDefinition();
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/VariableDefinitionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/VariableDefinitionDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/VariableDefinitionDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/VariableDefinitionDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -28,7 +28,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:40 $
  */
 public class VariableDefinitionDbTest extends AbstractDbTestCase {
 
@@ -42,7 +42,7 @@
     // variable
     variable.setName(VARIABLE_NAME);
     // process, create after opening jbpm context
-    process = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    process = new BpelProcessDefinition();
     process.getGlobalScope().addVariable(variable);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/XmlTypeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/XmlTypeDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/def/XmlTypeDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/def/XmlTypeDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:28 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:13 $
  */
 public class XmlTypeDbTest extends AbstractDbTestCase {
 
@@ -38,7 +38,7 @@
   protected void setUp() throws Exception {
     super.setUp();
     // process, create after opening jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    processDefinition = new BpelProcessDefinition();
     // variable type
     type = processDefinition.getImportDefinition().getSchemaType(TYPE_NAME);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementInstanceDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementInstanceDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementInstanceDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,20 +19,18 @@
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
-import org.jbpm.bpel.xml.BpelConstants;
 import org.jbpm.bpel.xml.util.XmlUtil;
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.exe.ProcessInstance;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class ElementInstanceDbTest extends AbstractDbTestCase {
 
   public void testValue() throws SAXException {
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     graphSession.saveProcessDefinition(processDefinition);
 
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementValueDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementValueDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementValueDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/ElementValueDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -25,7 +25,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:19 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:05 $
  */
 public class ElementValueDbTest extends XmlValueDbTestCase {
 
@@ -40,8 +40,9 @@
 
   protected void update(Element variableValue) {
     variableValue.setAttribute(ATTR_NAME, ATTR_VALUE);
+    String prefix = XmlUtil.getPrefix(BpelConstants.NS_EXAMPLES, variableValue);
     Element childElem = variableValue.getOwnerDocument().createElementNS(BpelConstants.NS_EXAMPLES,
-        CHILD_LOCALNAME);
+        prefix + ':' + CHILD_LOCALNAME);
     variableValue.appendChild(childElem);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -34,7 +34,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public class MessageValueDbTest extends AbstractDbTestCase {
 
@@ -55,8 +55,7 @@
   protected void setUp() throws Exception {
     super.setUp();
     // process, create after opening the jbpm context
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     // message
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/MessageValueTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -34,7 +34,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:41 $
  */
 public class MessageValueTest extends TestCase {
 
@@ -70,11 +70,10 @@
   private static final QName Q_ID_PROP = new QName(BpelConstants.NS_EXAMPLES, "idProperty");
 
   protected void setUp() throws Exception {
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = new ImportDefinition();
+    importDefinition.setProcessDefinition(new BpelProcessDefinition());
     importDefinition.addImport(WsdlUtil.createImport(def));
     new BpelReader().registerPropertyAliases(importDefinition);
     // message type
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/SchemaValueDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/SchemaValueDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/SchemaValueDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/SchemaValueDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/05/03 12:25:52 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:52 $
  */
 public class SchemaValueDbTest extends XmlValueDbTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/XmlValueDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/XmlValueDbTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/XmlValueDbTestCase.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/variable/exe/XmlValueDbTestCase.java	2009-02-06 09:17:22.000000000 +0100
@@ -26,7 +26,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:26 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:39:12 $
  */
 public abstract class XmlValueDbTestCase extends AbstractDbTestCase {
 
@@ -41,8 +41,7 @@
     // set up db stuff
     super.setUp();
     // process, create after opening the jbpm context
-    BpelProcessDefinition processDefinition = new BpelProcessDefinition("pd",
-        BpelConstants.NS_EXAMPLES);
+    BpelProcessDefinition processDefinition = new BpelProcessDefinition();
     // schema type
     VariableType type = getVariableType(processDefinition.getImportDefinition());
     // variable
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/MessageImplDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/MessageImplDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/MessageImplDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/MessageImplDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,22 +24,15 @@
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.variable.def.MessageType;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:31 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:35 $
  */
 public class MessageImplDbTest extends AbstractDbTestCase {
 
   BpelProcessDefinition processDefinition;
 
-  protected void setUp() throws Exception {
-    super.setUp();
-    // process, create after opening a jbpm context
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-  }
-
   public void testQName() {
     Definition definition = WsdlUtil.getFactory().newDefinition();
 
@@ -54,6 +47,7 @@
     _import.setNamespace("namespace");
     _import.setDocument(definition);
 
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getImportDefinition().addImport(_import);
 
     // message type is created when queried the first time
@@ -86,6 +80,7 @@
     _import.setNamespace("namespace");
     _import.setDocument(definition);
 
+    processDefinition = new BpelProcessDefinition();
     processDefinition.getImportDefinition().addImport(_import);
 
     // the message type is created when queried for the first time
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/OperationImplDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/OperationImplDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/OperationImplDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/OperationImplDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -27,21 +27,20 @@
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:31 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:35 $
  */
 public class OperationImplDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private Message message;
-  private Operation operation;
-
-  private static final QName MESSAGE_NAME = new QName("msg");
-  private static final QName PORT_TYPE_NAME = new QName("pt");
-  private static final String OPERATION_NAME = "op";
+  BpelProcessDefinition process;
+  Message message;
+  Operation operation;
+
+  static final QName MESSAGE_NAME = new QName("msg");
+  static final QName PORT_TYPE_NAME = new QName("pt");
+  static final String OPERATION_NAME = "op";
 
   protected void setUp() throws Exception {
     super.setUp();
@@ -58,16 +57,16 @@
     portType.setQName(PORT_TYPE_NAME);
     portType.addOperation(operation);
     // process
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    process = new BpelProcessDefinition();
+    ImportDefinition importDefinition = process.getImportDefinition();
     importDefinition.addMessage(message);
     importDefinition.addPortType(portType);
   }
 
   public void testName() {
     // save the objects and load them back
-    processDefinition = saveAndReload(processDefinition);
-    operation = getOperation(processDefinition);
+    process = saveAndReload(process);
+    operation = getOperation(process);
     // verify the retrieved objects
     assertEquals(OPERATION_NAME, operation.getName());
   }
@@ -79,8 +78,8 @@
     input.setMessage(message);
     operation.setInput(input);
     // save the objects and load them back
-    processDefinition = saveAndReload(processDefinition);
-    operation = getOperation(processDefinition);
+    process = saveAndReload(process);
+    operation = getOperation(process);
     input = operation.getInput();
     // verify the retrieved objects
     assertEquals("userSession", input.getName());
@@ -94,8 +93,8 @@
     output.setMessage(message);
     operation.setOutput(output);
     // save the objects and load them back
-    processDefinition = saveAndReload(processDefinition);
-    operation = getOperation(processDefinition);
+    process = saveAndReload(process);
+    operation = getOperation(process);
     output = operation.getOutput();
     // verify the retrieved objects
     assertEquals("balance", output.getName());
@@ -109,8 +108,8 @@
     fault.setMessage(message);
     operation.addFault(fault);
     // save the objects and load them back
-    processDefinition = saveAndReload(processDefinition);
-    operation = getOperation(processDefinition);
+    process = saveAndReload(process);
+    operation = getOperation(process);
     fault = operation.getFault("errorNumber");
     // verify the retrieved objects
     assertEquals("errorNumber", fault.getName());
@@ -118,7 +117,7 @@
   }
 
   static Operation getOperation(BpelProcessDefinition process) {
-    return process.getImportDefinition().getPortType(PORT_TYPE_NAME).getOperation(OPERATION_NAME,
-        null, null);
+    return process.getImportDefinition().getPortType(PORT_TYPE_NAME).getOperation(
+        OPERATION_NAME, null, null);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImplDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImplDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImplDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PartnerLinkTypeImplDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -14,67 +14,59 @@
  */
 package org.jbpm.bpel.wsdl.impl;
 
-import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.wsdl.PartnerLinkType;
-import org.jbpm.bpel.wsdl.xml.WsdlUtil;
-import org.jbpm.bpel.xml.BpelConstants;
+import org.jbpm.bpel.wsdl.impl.PartnerLinkTypeImpl.RoleImpl;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:20 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:51 $
  */
 public class PartnerLinkTypeImplDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private PartnerLinkType partnerLinkType;
-
-  private static final QName TYPE_NAME = new QName("plt");
+  BpelProcessDefinition processDefinition;
+  PartnerLinkTypeImpl plinkType;
+  QName plinkTypeName = new QName("rfqPLT");
 
   protected void setUp() throws Exception {
     super.setUp();
-    // port type
-    PortType portType = WsdlUtil.getSharedDefinition().createPortType();
-    portType.setQName(new QName(BpelConstants.NS_EXAMPLES, "pt"));
-    // partner link type
-    partnerLinkType = new PartnerLinkTypeImpl();
-    partnerLinkType.setQName(TYPE_NAME);
-    // first role
-    PartnerLinkType.Role role = new PartnerLinkTypeImpl.RoleImpl();
-    role.setName("first");
-    role.setPortType(portType);
-    partnerLinkType.setFirstRole(role);
-    // second role
-    role = new PartnerLinkTypeImpl.RoleImpl();
-    role.setName("second");
-    role.setPortType(portType);
-    partnerLinkType.setSecondRole(role);
-    // process definition
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
-    processDefinition.getImportDefinition().addPartnerLinkType(partnerLinkType);
+    processDefinition = new BpelProcessDefinition();
+    plinkType = new PartnerLinkTypeImpl();
+    plinkType.setQName(plinkTypeName);
+    processDefinition.getImportDefinition().addPartnerLinkType(plinkType);
   }
 
   public void testQName() {
     processDefinition = saveAndReload(processDefinition);
-    partnerLinkType = processDefinition.getImportDefinition().getPartnerLinkType(TYPE_NAME);
 
-    assertEquals(TYPE_NAME, partnerLinkType.getQName());
+    assertNotNull(getPartnerLinkType().getQName());
   }
 
   public void testFirstRole() {
+    PartnerLinkTypeImpl.RoleImpl role = new PartnerLinkTypeImpl.RoleImpl();
+    plinkType.setFirstRole(role);
+    role.setName("first");
+
     processDefinition = saveAndReload(processDefinition);
-    partnerLinkType = processDefinition.getImportDefinition().getPartnerLinkType(TYPE_NAME);
 
-    assertEquals("first", partnerLinkType.getFirstRole().getName());
+    assertEquals("first", getPartnerLinkType().getFirstRole().getName());
   }
 
   public void testSecondRole() {
+    PartnerLinkTypeImpl.RoleImpl role = new PartnerLinkTypeImpl.RoleImpl();
+    role.setName("second");
+    plinkType.setSecondRole(role);
+
     processDefinition = saveAndReload(processDefinition);
-    partnerLinkType = processDefinition.getImportDefinition().getPartnerLinkType(TYPE_NAME);
 
-    assertEquals("second", partnerLinkType.getSecondRole().getName());
+    role = (RoleImpl) getPartnerLinkType().getSecondRole();
+    assertEquals("second", role.getName());
+  }
+
+  private PartnerLinkType getPartnerLinkType() {
+    return processDefinition.getImportDefinition().getPartnerLinkType(plinkTypeName);
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PropertyImplDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PropertyImplDbTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PropertyImplDbTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/impl/PropertyImplDbTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -19,43 +19,46 @@
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.persistence.db.AbstractDbTestCase;
 import org.jbpm.bpel.wsdl.Property;
-import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/11/02 16:46:20 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:51 $
  */
 public class PropertyImplDbTest extends AbstractDbTestCase {
 
-  private BpelProcessDefinition processDefinition;
-  private Property property;
-
-  private static final QName PROPERTY_NAME = new QName("p");
+  BpelProcessDefinition processDefinition;
+  PropertyImpl property;
 
   protected void setUp() throws Exception {
     super.setUp();
-    // property
+    processDefinition = new BpelProcessDefinition();
     property = new PropertyImpl();
-    property.setQName(PROPERTY_NAME);
-    // process definition
-    processDefinition = new BpelProcessDefinition("pd", BpelConstants.NS_EXAMPLES);
+    property.setQName(new QName("aQName"));
+    property.setElementType(new QName("aElementType"));
     processDefinition.getImportDefinition().addProperty(property);
   }
 
   public void testQName() {
     processDefinition = saveAndReload(processDefinition);
-    property = processDefinition.getImportDefinition().getProperty(PROPERTY_NAME);
 
-    assertEquals(PROPERTY_NAME, property.getQName());
+    assertNotNull(getProperty().getQName());
+  }
+
+  public void testElementType() {
+    processDefinition = saveAndReload(processDefinition);
+
+    assertNotNull(getProperty().getElementType());
   }
 
   public void testType() {
-    QName type = new QName("t");
-    property.setType(type);
+    property.setType(new QName("aType"));
 
     processDefinition = saveAndReload(processDefinition);
-    property = processDefinition.getImportDefinition().getProperty(PROPERTY_NAME);
 
-    assertEquals(type, property.getType());
+    assertNotNull(getProperty().getType());
+  }
+
+  private Property getProperty() {
+    return processDefinition.getImportDefinition().getProperty(new QName("aQName"));
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/WsdlTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/WsdlTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/WsdlTests.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/WsdlTests.java	2009-02-06 09:17:22.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/06/09 23:36:39 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:39 $
  */
 public class WsdlTests {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/partnerLinkTypeSample.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/partnerLinkTypeSample.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/partnerLinkTypeSample.wsdl	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/partnerLinkTypeSample.wsdl	2009-02-06 09:17:22.000000000 +0100
@@ -3,7 +3,7 @@
   xmlns:def="http://manufacturing.org/wsdl/purchase" 
   xmlns:sns="http://manufacturing.org/xsd/purchase" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" 
+  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" 
   xmlns="http://schemas.xmlsoap.org/wsdl/">
   <message name="InvMessage">
     <part name="IVC" type="sns:Invoice"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PartnerLinkTypeTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/06/09 23:36:38 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:38 $
  */
 public class PartnerLinkTypeTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertyAliasSample.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertyAliasSample.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertyAliasSample.wsdl	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertyAliasSample.wsdl	2009-02-06 09:17:22.000000000 +0100
@@ -5,7 +5,7 @@
  xmlns:cor="http://example.com/supplyCorrelation.wsdl" 
  xmlns:def="http://manufacturing.org/wsdl/purchase" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
- xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" 
+ xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property" 
  xmlns:po="http://example.com/po.xsd"
  xmlns="http://schemas.xmlsoap.org/wsdl/">
   <import namespace="http://manufacturing.org/wsdl/purchase" location="partnerLinkTypeSample.wsdl"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyAliasTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyAliasTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyAliasTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyAliasTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,13 +24,13 @@
 import junit.framework.TestCase;
 
 import org.jbpm.bpel.graph.def.Namespace;
-import org.jbpm.bpel.sublang.def.PropertyQuery;
+import org.jbpm.bpel.sublang.def.Query;
 import org.jbpm.bpel.wsdl.PropertyAlias;
 import org.jbpm.bpel.xml.BpelConstants;
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:17 $
+ * @version $Revision: 1800 $ $Date: 2007/06/18 23:49:21 $
  */
 public class PropertyAliasTest extends TestCase {
 
@@ -55,7 +55,7 @@
     assertEquals(new QName(NS_PUR, "POMessage"), alias.getMessage().getQName());
     assertEquals("purchaseOrder", alias.getPart());
     // query
-    PropertyQuery query = alias.getQuery();
+    Query query = alias.getQuery();
     assertEquals("CID", query.getText());
     assertEquals(namespaces, query.getNamespaces());
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertySample.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertySample.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertySample.wsdl	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/propertySample.wsdl	2009-02-06 09:17:22.000000000 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions name="properties" 
   targetNamespace="http://example.com/supplyCorrelation.wsdl" 
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" 
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
   xmlns="http://schemas.xmlsoap.org/wsdl/">
   <vprop:property name="customerID" type="xsd:string"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyTest.java	2009-02-06 09:12:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/wsdl/xml/PropertyTest.java	2009-02-06 09:17:22.000000000 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/06/09 23:36:38 $
+ * @version $Revision: 1800 $ $Date: 2007/06/09 23:36:38 $
  */
 public class PropertyTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/AbstractReaderTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/AbstractReaderTestCase.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/AbstractReaderTestCase.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/AbstractReaderTestCase.java	2009-02-06 09:17:21.000000000 +0100
@@ -41,14 +41,14 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/08/08 11:14:32 $
  */
 public abstract class AbstractReaderTestCase extends TestCase {
 
   protected BpelReader reader;
-  protected BpelProcessDefinition processDefinition;
+  protected BpelProcessDefinition pd;
   protected TestScope scope;
-  protected PartnerLinkDefinition partnerLink;
+  protected PartnerLinkDefinition pLink;
   protected Operation operation;
   protected PortType partnerPortType;
   protected PortType myPortType;
@@ -105,9 +105,9 @@
     jbpmContext = jbpmConfiguration.createJbpmContext();
 
     reader = new BpelReader();
-    processDefinition = new BpelProcessDefinition();
+    pd = new BpelProcessDefinition("testPD", BpelConstants.NS_EXAMPLES);
     scope = new TestScope();
-    processDefinition.addNode(scope);
+    pd.addNode(scope);
   }
 
   protected void tearDown() throws Exception {
@@ -118,7 +118,7 @@
     // read wsdl
     Definition def = WsdlUtil.readText(WSDL_TEXT);
     // set up importDefinition
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = pd.getImportDefinition();
     importDefinition.addImport(WsdlUtil.createImport(def));
     reader.registerPropertyAliases(importDefinition);
     // partner link types & port types
@@ -137,11 +137,11 @@
     messageVariable.setType(importDefinition.getMessageType(new QName(NS_TNS, "aQName")));
     scope.addVariable(messageVariable);
     // partner link
-    partnerLink = new PartnerLinkDefinition();
-    partnerLink.setName("aPartner");
-    partnerLink.setPartnerLinkType(plinkType);
-    partnerLink.setMyRole(plinkType.getSecondRole());
-    scope.addPartnerLink(partnerLink);
+    pLink = new PartnerLinkDefinition();
+    pLink.setName("aPartner");
+    pLink.setPartnerLinkType(plinkType);
+    pLink.setMyRole(plinkType.getSecondRole());
+    scope.addPartnerLink(pLink);
   }
 
   protected Element parseAsBpelElement(String text) throws SAXException {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ActivityReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ActivityReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ActivityReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ActivityReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -26,13 +26,13 @@
  * Tests the parsing of standard attributes and elements into a bpel activity using <empty>
  * elements.
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/06/11 13:39:34 $
  */
 public class ActivityReaderTest extends AbstractReaderTestCase {
 
   public void testProcessDefinition() throws Exception {
     Activity activity = readActivity("<empty/>");
-    assertEquals(processDefinition, activity.getProcessDefinition());
+    assertEquals(pd, activity.getProcessDefinition());
   }
 
   public void testSuperState() throws Exception {
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: AppDescriptorReaderTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: AppDescriptorWriterTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/AssignReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/AssignReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/AssignReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/AssignReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -36,12 +36,12 @@
 import org.jbpm.bpel.graph.def.Namespace;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.sublang.def.Expression;
-import org.jbpm.bpel.sublang.def.VariableQuery;
+import org.jbpm.bpel.sublang.def.Query;
 
 /**
  * @author Juan Cantú
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2007/09/12 23:20:21 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 08:19:37 $
  */
 public class AssignReaderTest extends AbstractReaderTestCase {
 
@@ -109,7 +109,7 @@
     // part
     assertEquals("p", from.getPart());
     // query
-    VariableQuery query = from.getQuery();
+    Query query = from.getQuery();
     assertEquals("q", query.getText());
     Set namespaces = query.getNamespaces();
     assertTrue(namespaces.contains(new Namespace("a", "urn:a")));
@@ -275,7 +275,7 @@
     // part
     assertEquals("p", to.getPart());
     // query
-    VariableQuery query = to.getQuery();
+    Query query = to.getQuery();
     assertEquals("q", query.getText());
     Set namespaces = query.getNamespaces();
     assertTrue(namespaces.contains(new Namespace("a", "urn:a")));
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: bpelApplicationSample.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelConverterTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelConverterTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelConverterTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelConverterTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -36,7 +36,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class BpelConverterTest extends TestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: bpelDeploymentSample.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/BpelReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -41,7 +41,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/07/20 21:52:31 $
  */
 public class BpelReaderTest extends AbstractReaderTestCase {
 
@@ -51,84 +51,84 @@
   }
 
   public void testReadUrl() throws Exception {
-    BpelProcessDefinition sampleProcess = new BpelProcessDefinition();
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     // read bpel
     String resourceURI = getClass().getResource("processSample.bpel").toString();
-    reader.read(sampleProcess, new InputSource(resourceURI));
+    reader.read(pd, new InputSource(resourceURI));
     // assertions
     assertEquals(0, reader.getProblemHandler().getProblemCount());
-    assertEquals(1, sampleProcess.getImportDefinition().getImports().size());
+    assertEquals(1, pd.getImportDefinition().getImports().size());
   }
 
   public void testReadUrl_1_1() throws Exception {
-    BpelProcessDefinition sampleProcess = new BpelProcessDefinition();
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     // add wsdl document
     Import _import = new Import();
     _import.setNamespace("http://manufacturing.org/wsdl/purchase");
     _import.setLocation(getClass().getResource("partnerLinkTypeSample-1_1.wsdl").toString());
     _import.setType(Import.Type.WSDL);
     reader.readImportWsdlDefinition(_import, new ProcessWsdlLocator(ProcessWsdlLocator.EMPTY_URI));
-    sampleProcess.getImportDefinition().addImport(_import);
+    pd.getImportDefinition().addImport(_import);
     // read bpel
     InputSource input = new InputSource(getClass().getResource("processSample-1_1.bpel").toString());
-    reader.read(sampleProcess, input);
+    reader.read(pd, input);
     // assertions
     assertEquals(0, reader.getProblemHandler().getProblemCount());
-    assertEquals(1, sampleProcess.getImportDefinition().getImports().size());
+    assertEquals(1, pd.getImportDefinition().getImports().size());
   }
 
   public void testReadUrl_masterWsdl() throws Exception {
-    BpelProcessDefinition sampleProcess = new BpelProcessDefinition();
+    BpelProcessDefinition pd = new BpelProcessDefinition();
     // read bpel
     String resourceURI = getClass().getResource("processSample-1_1.bpel").toString();
-    reader.read(sampleProcess, new InputSource(resourceURI));
+    reader.read(pd, new InputSource(resourceURI));
     // assertions
     assertEquals(0, reader.getProblemHandler().getProblemCount());
-    assertEquals(1, sampleProcess.getImportDefinition().getImports().size());
+    assertEquals(1, pd.getImportDefinition().getImports().size());
   }
 
   public void testQueryLanguage() throws Exception {
     String xml = "<pd queryLanguage='ql'>"
         + "<receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    assertEquals("ql", processDefinition.getQueryLanguage());
+    assertEquals("ql", pd.getQueryLanguage());
   }
 
   public void testExpressionLanguage() throws Exception {
     String xml = "<pd expressionLanguage='el'>"
         + "<receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    assertEquals("el", processDefinition.getExpressionLanguage());
+    assertEquals("el", pd.getExpressionLanguage());
   }
 
   public void testSuppressJoinFailureYes() throws Exception {
     String xml = "<pd suppressJoinFailure='yes'>"
         + "<receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    assertTrue(processDefinition.getGlobalScope().getSuppressJoinFailure().booleanValue());
+    assertTrue(pd.getGlobalScope().getSuppressJoinFailure().booleanValue());
   }
 
   public void testSuppressJoinFailureNo() throws Exception {
     String xml = "<pd suppressJoinFailure='no'>"
         + "<receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    assertFalse(processDefinition.getGlobalScope().getSuppressJoinFailure().booleanValue());
+    assertFalse(pd.getGlobalScope().getSuppressJoinFailure().booleanValue());
   }
 
   public void testSuppressJoinFailureDefault() throws Exception {
     String xml = "<pd><receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    assertFalse(processDefinition.getGlobalScope().getSuppressJoinFailure().booleanValue());
+    assertFalse(pd.getGlobalScope().getSuppressJoinFailure().booleanValue());
   }
 
   public void testScopeDefinition() throws Exception {
     String xml = "<pd><receive partnerLink='aPartner' operation='o' variable='iv'/></pd>";
     readProcess(xml);
-    List processNodes = processDefinition.getNodes();
+    List processNodes = pd.getNodes();
     assertEquals(1, processNodes.size());
-    Scope scope = processDefinition.getGlobalScope();
+    Scope scope = pd.getGlobalScope();
     assertEquals(processNodes.get(0), scope);
-    assertEquals(processDefinition, scope.getProcessDefinition());
+    assertEquals(pd, scope.getProcessDefinition());
     assertEquals(1, scope.getNodes().size());
   }
 
@@ -145,7 +145,7 @@
         + " <empty/>"
         + "</pd>";
     readProcess(xml);
-    Scope globalScope = processDefinition.getGlobalScope();
+    Scope globalScope = pd.getGlobalScope();
     // fault handler exists
     List faultHandlers = globalScope.getFaultHandlers();
     assertEquals(1, faultHandlers.size());
@@ -164,7 +164,7 @@
         + " <empty/>"
         + "</pd>";
     readProcess(xml);
-    Scope globalScope = processDefinition.getGlobalScope();
+    Scope globalScope = pd.getGlobalScope();
     // fault handler exists
     List faultHandlers = globalScope.getFaultHandlers();
     assertEquals(1, faultHandlers.size());
@@ -186,7 +186,7 @@
         + " <empty/>"
         + "</pd>";
     readProcess(xml);
-    Scope globalScope = processDefinition.getGlobalScope();
+    Scope globalScope = pd.getGlobalScope();
     // fault handler exists
     List faultHandlers = globalScope.getFaultHandlers();
     assertEquals(1, faultHandlers.size());
@@ -247,9 +247,9 @@
         + " <receive partnerLink='aPartner' operation='o' variable='iv'/>"
         + "</pd>";
     readProcess(xml);
-    Activity root = processDefinition.getGlobalScope().getActivity();
+    Activity root = pd.getGlobalScope().getActivity();
     assertTrue(root instanceof Receive);
-    assertSame(processDefinition, root.getProcessDefinition());
+    assertSame(pd, root.getProcessDefinition());
   }
 
   // Receiver
@@ -258,7 +258,7 @@
   public void testReceiverPartnerLink() throws Exception {
     String xml = "<rcvr partnerLink='aPartner' operation='o' variable='iv'/>";
     ReceiveAction receiveAction = readReceiveAction(xml);
-    assertEquals(partnerLink, receiveAction.getPartnerLink());
+    assertEquals(pLink, receiveAction.getPartnerLink());
   }
 
   public void testReceiverPortType() throws Exception {
@@ -398,8 +398,8 @@
 
   private void readProcess(String xml) throws Exception {
     Element element = parseAsBpelElement(xml);
-    reader.readProcessAttributes(element, processDefinition);
-    reader.readScope(element, processDefinition.getGlobalScope());
+    reader.readProcessAttributes(element, pd);
+    reader.readScope(element, pd.getGlobalScope());
   }
 
   private Map readVariables(String xml) throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class CompensateReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateScopeReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateScopeReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateScopeReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CompensateScopeReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -22,7 +22,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class CompensateScopeReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CorrelationsReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CorrelationsReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/CorrelationsReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/CorrelationsReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class CorrelationsReaderTest extends AbstractReaderTestCase {
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: DefDescriptorReaderTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: DefinitionDescriptorReaderTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: DeploymentDescriptorReaderTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: DeploymentDescriptorWriterTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/FlowReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/FlowReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/FlowReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/FlowReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,7 +19,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class FlowReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/IfReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/IfReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/IfReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/IfReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 11:19:17 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 11:19:17 $
  */
 public class IfReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ImportReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ImportReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ImportReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ImportReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/05/03 12:25:53 $
  */
 public class ImportReaderTest extends AbstractReaderTestCase {
 
@@ -38,7 +38,7 @@
         + " <receive partnerLink='aPartner' operation='o'/>"
         + "</process>";
     readImports(xml);
-    assertNotNull(processDefinition.getImportDefinition().getPartnerLinkType(
+    assertNotNull(pd.getImportDefinition().getPartnerLinkType(
         new QName(NS_TNS, "schedulingLT")));
   }
 
@@ -49,7 +49,7 @@
         + " <receive partnerLink='aPartner' operation='o'/>"
         + "</process>";
     readImports(xml);
-    assertNotNull(processDefinition.getImportDefinition().getPortType(
+    assertNotNull(pd.getImportDefinition().getPortType(
         new QName(NS_TNS, "schedulingCallbackPT")));
   }
 
@@ -60,7 +60,7 @@
         + " <receive partnerLink='aPartner' operation='o'/>"
         + "</process>";
     readImports(xml);
-    assertNotNull(processDefinition.getImportDefinition().getMessageType(
+    assertNotNull(pd.getImportDefinition().getMessageType(
         new QName(NS_TNS, "scheduleMessage")));
   }
 
@@ -71,7 +71,7 @@
         + " <receive partnerLink='aPartner' operation='o'/>"
         + "</process>";
     readImports(xml);
-    assertNotNull(processDefinition.getImportDefinition().getProperty(
+    assertNotNull(pd.getImportDefinition().getProperty(
         new QName(NS_TNS, "orderNumber")));
   }
 
@@ -82,7 +82,7 @@
         + " <receive partnerLink='aPartner' operation='o'/>"
         + "</process>";
     readImports(xml);
-    MessageType messageType = processDefinition.getImportDefinition().getMessageType(
+    MessageType messageType = pd.getImportDefinition().getMessageType(
         new QName(NS_TNS, "POMessage"));
     Map propertyAliases = messageType.getPropertyAliases();
     assertEquals(2, propertyAliases.size());
@@ -98,7 +98,7 @@
 
   private void readImports(String xml) throws Exception {
     Element bpelElem = parseAsBpelElement(xml);
-    ImportDefinition importDefinition = processDefinition.getImportDefinition();
+    ImportDefinition importDefinition = pd.getImportDefinition();
     String classURI = ImportReaderTest.class.getResource("processSample.bpel")
         .toString();
     ProcessWsdlLocator locator = new ProcessWsdlLocator(new URI(classURI));
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/InvokeReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/InvokeReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/InvokeReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/InvokeReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -29,7 +29,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 00:36:14 $
  */
 public class InvokeReaderTest extends AbstractReaderTestCase {
 
@@ -51,7 +51,7 @@
     Invoke invoke = (Invoke) readActivity(xml);
 
     InvokeAction invokeAction = (InvokeAction) invoke.getAction();
-    assertEquals(partnerLink, invokeAction.getPartnerLink());
+    assertEquals(pLink, invokeAction.getPartnerLink());
   }
 
   public void testPortType() throws SAXException {
@@ -172,6 +172,6 @@
     assertNotNull(scope.getCatchAll());
 
     InvokeAction invokeAction = (InvokeAction) scope.getActivity().getAction();
-    assertEquals(partnerLink, invokeAction.getPartnerLink());
+    assertEquals(pLink, invokeAction.getPartnerLink());
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/PartnerLinkReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/PartnerLinkReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/PartnerLinkReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/PartnerLinkReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantu
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class PartnerLinkReaderTest extends AbstractReaderTestCase {
 
@@ -57,6 +57,6 @@
   private PartnerLinkDefinition parsePartnerLink(String xml) throws Exception {
     Element element = parseAsBpelElement(xml);
     return (PartnerLinkDefinition) reader.readPartnerLinks(element,
-        processDefinition.getGlobalScope()).get("pl");
+        pd.getGlobalScope()).get("pl");
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/partnerLinkTypeSample.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/partnerLinkTypeSample.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/partnerLinkTypeSample.wsdl	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/partnerLinkTypeSample.wsdl	2009-02-06 09:17:21.000000000 +0100
@@ -2,7 +2,10 @@
 <definitions name="portTypeRelationships"
   targetNamespace="http://manufacturing.org/wsdl/purchase" 
   xmlns:tns="http://manufacturing.org/wsdl/purchase" 
-  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"  
+  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/
+                      http://schemas.xmlsoap.org/ws/2004/03/partner-link/ http://schemas.xmlsoap.org/ws/2004/03/partner-link/"  
   xmlns="http://schemas.xmlsoap.org/wsdl/">
   <plnk:partnerLinkType name="schedulingLT">
     <plnk:role name="schedulingService" portType="tns:schedulingPT"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/PickReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/PickReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/PickReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/PickReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -30,7 +30,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/07/02 23:55:08 $
  */
 public class PickReaderTest extends AbstractReaderTestCase {
 
@@ -150,7 +150,7 @@
     ReceiveAction receiveAction = (ReceiveAction) pick.getOnMessages()
         .iterator()
         .next();
-    assertEquals(partnerLink, receiveAction.getPartnerLink());
+    assertEquals(pLink, receiveAction.getPartnerLink());
   }
 
   public void testOnMessagePortType() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/processSample.bpel jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/processSample.bpel
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/processSample.bpel	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/processSample.bpel	2009-02-06 09:17:21.000000000 +0100
@@ -1,8 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <process name="sampleProcess" 
   targetNamespace="http://acme.com/ws-bp/purchase" 
+  xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2004/03/business-process/
+    http://schemas.xmlsoap.org/ws/2004/03/business-process/"
   xmlns:def="http://manufacturing.org/wsdl/purchase"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" >
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/" >
   <import namespace="http://manufacturing.org/wsdl/purchase"
     location="partnerLinkTypeSample.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/propertyAliasSample.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/propertyAliasSample.wsdl
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/propertyAliasSample.wsdl	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/propertyAliasSample.wsdl	2009-02-06 09:17:21.000000000 +0100
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions name="correlatedMessages" targetNamespace="http://manufacturing.org/wsdl/purchase"
   xmlns:tns="http://manufacturing.org/wsdl/purchase"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
+  xmlns:vprop="http://schemas.xmlsoap.org/ws/2004/03/business-process/property"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"
   xmlns="http://schemas.xmlsoap.org/wsdl/">
   <vprop:property name="orderNumber" type="xsd:int" />
   <vprop:property name="invoiceId" type="xsd:int" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ReceiveReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ReceiveReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ReceiveReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ReceiveReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/22 13:32:55 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class ReceiveReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/RepeatUntilReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/RepeatUntilReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/RepeatUntilReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/RepeatUntilReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -15,24 +15,34 @@
 package org.jbpm.bpel.xml;
 
 import org.jbpm.bpel.graph.def.Activity;
-import org.jbpm.bpel.graph.struct.RepeatUntil;
+import org.jbpm.bpel.graph.struct.While;
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:35 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:32:39 $
  */
 public class RepeatUntilReaderTest extends AbstractReaderTestCase {
 
   public void testActivity() throws Exception {
-    String xml = "<repeatUntil><empty name='again'/><condition>$c</condition></repeatUntil>";
-    RepeatUntil repeatUntil = (RepeatUntil) readActivity(xml);
-    Activity activity = (Activity) repeatUntil.getNode("again");
-    assertEquals(repeatUntil, activity.getCompositeActivity());
+    String xml = "<repeatUntil>"
+        + " <empty name='first'/>"
+        + "<condition>$c</condition>"
+        + "</repeatUntil>";
+    While _while = (While) readActivity(xml);
+    // while activity must evaluate condition after executing activity
+    assertFalse(_while.getEvaluateFirst());
+
+    Activity activity = (Activity) _while.getNode("first");
+    assertNotNull(activity);
+    assertEquals(_while, activity.getCompositeActivity());
   }
 
   public void testCondition() throws Exception {
-    String xml = "<repeatUntil><empty/><condition>$c</condition></repeatUntil>";
-    RepeatUntil repeatUntil = (RepeatUntil) readActivity(xml);
-    assertEquals("$c", repeatUntil.getCondition().getText());
+    String xml = "<repeatUntil>"
+        + " <empty name='first'/>"
+        + "<condition>$c</condition>"
+        + "</repeatUntil>";
+    While _while = (While) readActivity(xml);
+    assertEquals("$c", _while.getCondition().getText());
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ReplyReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ReplyReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ReplyReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ReplyReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -27,7 +27,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/10/13 02:53:24 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class ReplyReaderTest extends AbstractReaderTestCase {
 
@@ -39,7 +39,7 @@
   public void testPartnerLink() throws Exception {
     String xml = "<reply partnerLink='aPartner' operation='o' variable='iv'/>";
     Reply reply = (Reply) readActivity(xml);
-    assertEquals(partnerLink, ((ReplyAction) reply.getAction()).getPartnerLink());
+    assertEquals(pLink, ((ReplyAction) reply.getAction()).getPartnerLink());
   }
 
   public void testPortType() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ScopeReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ScopeReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ScopeReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ScopeReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -40,7 +40,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/03/16 00:04:38 $
+ * @version $Revision: 1800 $ $Date: 2007/03/16 00:04:38 $
  */
 public class ScopeReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/SequenceReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/SequenceReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/SequenceReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/SequenceReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/07/26 11:19:17 $
+ * @version $Revision: 1800 $ $Date: 2007/07/26 11:19:17 $
  */
 public class SequenceReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/SwitchReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/SwitchReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/SwitchReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/SwitchReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/02/19 18:32:39 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:32:39 $
  */
 public class SwitchReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ThrowReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ThrowReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ThrowReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ThrowReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/02/19 18:32:39 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:32:39 $
  */
 public class ThrowReaderTest extends AbstractReaderTestCase {
 
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: UrlCatalogReaderTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: URLCatalogReaderTest.java
Only in jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml: UrlCatalogWriterTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml: URLCatalogWriterTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/util/DurationTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/util/DurationTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/util/DurationTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/util/DurationTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -20,7 +20,7 @@
 
 /**
  * @author Alejandro Guízar
- * @version $Revision: 1238 $ $Date: 2008/02/01 05:45:29 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:07 $
  */
 public class DurationTest extends TestCase {
 
@@ -34,17 +34,17 @@
 
   public void testParseFull() {
     String literal = "P8Y12M20DT15H45M30.05S";
-    assertEquals(fullDuration, Duration.valueOf(literal));
+    assertEquals(fullDuration, Duration.parseDuration(literal));
   }
 
   public void testParseDate() {
     String literal = "P12Y75M60D";
-    assertEquals(dateDuration, Duration.valueOf(literal));
+    assertEquals(dateDuration, Duration.parseDuration(literal));
   }
 
   public void testParseTime() {
     String literal = "PT28H35M140.7S";
-    assertEquals(timeDuration, Duration.valueOf(literal));
+    assertEquals(timeDuration, Duration.parseDuration(literal));
   }
 
   public void testFormatFull() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/util/XmlUtilTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/util/XmlUtilTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/util/XmlUtilTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/util/XmlUtilTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -31,7 +31,7 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class XmlUtilTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ValidateReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ValidateReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/ValidateReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/ValidateReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -21,7 +21,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2006/09/27 03:53:01 $
+ * @version $Revision: 1800 $ $Date: 2006/09/27 03:53:01 $
  */
 public class ValidateReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WaitReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WaitReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WaitReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WaitReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -18,7 +18,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/02/19 18:32:39 $
+ * @version $Revision: 1800 $ $Date: 2007/02/19 18:32:39 $
  */
 public class WaitReaderTest extends AbstractReaderTestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WhileReaderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WhileReaderTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WhileReaderTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WhileReaderTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -19,19 +19,28 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/01/30 08:15:35 $
+ * @version $Revision: 1800 $ $Date: 2007/03/22 13:32:55 $
  */
 public class WhileReaderTest extends AbstractReaderTestCase {
 
   public void testActivity() throws Exception {
-    String xml = "<while><condition>$c</condition><empty name='looped'/></while>";
+    String xml = "<while>"
+        + "<condition>$c</condition>"
+        + "	<empty name='whileActivity'/>"
+        + "</while>";
     While _while = (While) readActivity(xml);
-    Activity activity = (Activity) _while.getNode("looped");
+    // the while activity must evaluate its condition before running its child
+    assertTrue(_while.getEvaluateFirst());
+    Activity activity = (Activity) _while.getNode("whileActivity");
+    assertNotNull(activity);
     assertEquals(_while, activity.getCompositeActivity());
   }
 
   public void testCondition() throws Exception {
-    String xml = "<while><condition>$c</condition><empty /></while>";
+    String xml = "<while>"
+        + "<condition>$c</condition>"
+        + "	<empty name='first'/>"
+        + "</while>";
     While _while = (While) readActivity(xml);
     assertEquals("$c", _while.getCondition().getText());
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WsdlConverterTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WsdlConverterTest.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/WsdlConverterTest.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/WsdlConverterTest.java	2009-02-06 09:17:21.000000000 +0100
@@ -42,7 +42,7 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/09/04 06:42:26 $
+ * @version $Revision: 1800 $ $Date: 2007/09/04 06:42:26 $
  */
 public class WsdlConverterTest extends TestCase {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/XmlTests.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/XmlTests.java
--- jpdl-3.2.3.GA/bpel/library/src/test/java/org/jbpm/bpel/xml/XmlTests.java	2009-02-06 09:12:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/library/src/test/java/org/jbpm/bpel/xml/XmlTests.java	2009-02-06 09:17:21.000000000 +0100
@@ -17,9 +17,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jbpm.bpel.deploy.ScopeMatcherTest;
+import org.jbpm.bpel.app.ScopeMatcherTest;
 import org.jbpm.bpel.par.BpelArchiveParserTest;
-import org.jbpm.bpel.par.DescriptorArchiveParserTest;
+import org.jbpm.bpel.par.DefDescriptorArchiveParserTest;
 import org.jbpm.bpel.par.FileArchiveParserTest;
 import org.jbpm.bpel.par.ProcessArchiveTest;
 import org.jbpm.bpel.xml.util.DurationTest;
@@ -27,11 +27,11 @@
 
 /**
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:03:13 $
+ * @version $Revision: 1800 $ $Date: 2007/08/28 05:41:59 $
  */
 public class XmlTests {
 
-  public static Test suite() {
+  public static Test suite() throws Exception {
     TestSuite suite = new TestSuite("xml tests");
 
     // process
@@ -65,16 +65,16 @@
     suite.addTestSuite(WsdlConverterTest.class);
 
     // application descriptor tests
-    suite.addTestSuite(DeploymentDescriptorReaderTest.class);
-    suite.addTestSuite(DeploymentDescriptorWriterTest.class);
-    suite.addTestSuite(UrlCatalogReaderTest.class);
-    suite.addTestSuite(UrlCatalogWriterTest.class);
+    suite.addTestSuite(AppDescriptorReaderTest.class);
+    suite.addTestSuite(AppDescriptorWriterTest.class);
+    suite.addTestSuite(URLCatalogReaderTest.class);
+    suite.addTestSuite(URLCatalogWriterTest.class);
     suite.addTest(ScopeMatcherTest.suite());
 
     // process archive tests
-    suite.addTestSuite(DefinitionDescriptorReaderTest.class);
+    suite.addTestSuite(DefDescriptorReaderTest.class);
     suite.addTestSuite(BpelArchiveParserTest.class);
-    suite.addTestSuite(DescriptorArchiveParserTest.class);
+    suite.addTestSuite(DefDescriptorArchiveParserTest.class);
     suite.addTestSuite(FileArchiveParserTest.class);
     suite.addTestSuite(ProcessArchiveTest.class);
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/service/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/build.xml
--- jpdl-3.2.3.GA/bpel/service/build.xml	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -12,11 +12,13 @@
   <import file="${jbpm.root}/build/base.project.build.xml" />
 
   <target name="compile.dependencies" depends="define.libs.classpath">
-    <ant antfile="${jbpm.root}/bpel/console/build.xml" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/container/build.xml" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" target="create.config" inheritall="no" />
-    <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" target="package.ejb" inheritall="no" />
-
+    <ant antfile="${jbpm.root}/bpel/tools/build.xml" target="install.jar" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/jbossws4ee/build.xml" target="install.jar" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/jbossws10/build.xml" target="install.jar" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/jbossws12/build.xml" target="install.jar" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/console/build.xml" target="install.war" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/enterprise/build.xml" target="install.ejb" inheritall="no" />
+    <ant antfile="${jbpm.root}/bpel/library/build.xml" target="install.config" inheritall="no" />
     <path id="compile.classpath">
       <path refid="libs.classpath" />
       <path location="${lib.jbpm.jpdl.jar.local}" />
@@ -35,34 +37,135 @@
     </manifest>
   </target>
 
-  <target name="package.sar" depends="compile, create.manifest">
+  <target name="create.config">
+    <mkdir dir="target/config" />
+    <unjar dest="target/config" src="${lib.jbpm.bpel.config.local}" />
+
+    <!-- use data source instead of jdbc connection -->
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[JDBC connection properties (begin) -->]]></replacetoken>
+      <replacevalue><![CDATA[JDBC connection properties (begin) ===]]></replacevalue>
+    </replace>
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[<!-- JDBC connection properties (end)]]></replacetoken>
+      <replacevalue><![CDATA[==== JDBC connection properties (end)]]></replacevalue>
+    </replace>
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[DataSource properties (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[DataSource properties (begin) -->]]></replacevalue>
+    </replace>
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[==== DataSource properties (end)]]></replacetoken>
+      <replacevalue><![CDATA[<!-- DataSource properties (end)]]></replacevalue>
+    </replace>
+
+    <!-- include identity mappings -->
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[identity mappings (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[identity mappings (begin) -->]]></replacevalue>
+    </replace>
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[==== identity mappings (end)]]></replacetoken>
+      <replacevalue><![CDATA[<!-- identity mappings (end)]]></replacevalue>
+    </replace>
+
+    <!-- use enterprise instead of standard services -->
+    <replace file="target/config/jbpm.cfg.xml">
+      <replacetoken><![CDATA[Standard services (begin) -->]]></replacetoken>
+      <replacevalue><![CDATA[Standard services (begin) ===]]></replacevalue>
+    </replace>
+    <replace file="target/config/jbpm.cfg.xml">
+      <replacetoken><![CDATA[<!-- Standard services (end)]]></replacetoken>
+      <replacevalue><![CDATA[==== Standard services (end)]]></replacevalue>
+    </replace>
+    <replace file="target/config/jbpm.cfg.xml">
+      <replacetoken><![CDATA[Enterprise services (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[Enterprise services (begin) -->]]></replacevalue>
+    </replace>
+    <replace file="target/config/jbpm.cfg.xml">
+      <replacetoken><![CDATA[==== Enterprise services (end)]]></replacetoken>
+      <replacevalue><![CDATA[<!-- Enterprise services (end)]]></replacevalue>
+    </replace>
+
+    <!-- use mysql instead of hsql
+    <replace file="target/config/hibernate.bpel.cfg.xml">
+      <replacetoken><![CDATA[org.hibernate.dialect.HSQLDialect]]></replacetoken>
+      <replacevalue><![CDATA[org.hibernate.dialect.MySQLInnoDBDialect]]></replacevalue>
+    </replace>
+    -->
+
+  </target>
+
+  <target name="determine.ws.library">
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws4ee.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.0.2" />
+        <equals arg1="${jboss.version}" arg2="4.0.3" />
+        <equals arg1="${jboss.version}" arg2="4.0.3SP1" />
+        <equals arg1="${jboss.version}" arg2="4.0.3.SP1" />
+      </or>
+    </condition>
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws10.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.0.4.GA" />
+        <equals arg1="${jboss.version}" arg2="4.0.5.GA" />
+      </or>
+    </condition>
+    <condition property="lib.jbpm.bpel.ws.jar.local" value="${lib.jbpm.bpel.jbossws12.jar.local}">
+      <or>
+        <equals arg1="${jboss.version}" arg2="4.2.0.CR1" />
+        <equals arg1="${jboss.version}" arg2="4.2.0.CR2" />
+        <equals arg1="${jboss.version}" arg2="4.2.0.GA" />
+      </or>
+    </condition>
+    <fail unless="lib.jbpm.bpel.ws.jar.local">Unknown JBoss AS version: ${jboss.version}</fail>
+    <echo level="info">Using WS stack integration library ${lib.jbpm.bpel.ws.jar.local}</echo>
+  </target>
+
+  <target name="package.sar"
+          depends="compile, determine.ws.library, create.config, create.manifest">
+
     <!-- build service archive -->
     <jar destfile="${lib.jbpm.bpel.sar.target}" manifest="target/META-INF/MANIFEST.MF">
-      <!-- modules -->
-      <fileset file="${lib.jbpm.bpel.console.local}" />
-      <fileset file="${jbpm.root}/bpel/enterprise/target/jbpm-bpel-enterprise.jar" />
       <!-- libraries -->
-      <fileset dir="${local.repository}/${lib.jbpm.bpel.dir}">
-        <include name="${lib.jbpm.bpel.jar.file}" />
-        <include name="${lib.jbpm.bpel.container.jar.file}" />
-      </fileset>
-      <fileset file="${jbpm.root}/bpel/enterprise/target/${lib.jbpm.bpel.config.file}" />
-      <!-- dependencies -->
-      <fileset file="${lib.commons.lang.local}" />
-      <fileset file="${lib.jaxen.local}" />
       <fileset file="${lib.jbpm.jpdl.jar.local}" />
       <fileset file="${lib.jbpm.identity.jar.local}" />
-      <fileset file="src/main/resources/jbpm-jmx.jar" />
-      <!-- resources -->
-      <metainf file="src/main/resources/META-INF/jboss-service.xml" />
+      <fileset file="${lib.jbpm.jboss.jar.local}" />
+      <fileset file="${lib.jbpm.bpel.jar.local}" />
+      <fileset file="${lib.jbpm.bpel.ws.jar.local}" />
+      <fileset file="${lib.commons.lang.local}" />
+      <fileset file="${lib.jaxen.local}" />
+
+      <!-- web console -->
+      <fileset file="${lib.jbpm.bpel.war.local}" />
+
+      <!-- configuration files -->
+	    <fileset dir="src/main/resources">
+	      <include name="META-INF/jboss-service.xml" />
+	      <include name="hsql-bpel-ds.xml" />
+	    </fileset>
+	    <fileset dir="target/config">
+	      <include name="jbpm.cfg.xml" />
+	      <include name="hibernate.bpel.cfg.xml" />
+	    </fileset>
     </jar>
   </target>
 
   <target name="install.sar"
           depends="package.sar"
-          description="install jbpm bpel service to local repository">
+          description="install ${lib.jbpm.bpel.sar.file} to local repository">
     <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
     <copy file="${lib.jbpm.bpel.sar.target}" todir="${local.repository}/${lib.jbpm.bpel.dir}" />
   </target>
 
+  <target name="deploy.jboss" depends="install.sar" description="deploy jbpm bpel service to jboss">
+    <copy todir="${jboss.home}/server/${jboss.server}/deploy">
+      <!-- service -->
+      <fileset file="${lib.jbpm.bpel.sar.local}" />
+
+      <!-- enterprise beans -->
+  		<fileset file="${lib.jbpm.bpel.enterprise.local}" />
+    </copy>
+  </target>
+
 </project>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/service/src/main/resources/hsql-bpel-ds.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/hsql-bpel-ds.xml
--- jpdl-3.2.3.GA/bpel/service/src/main/resources/hsql-bpel-ds.xml	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/hsql-bpel-ds.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!-- $Revision: 1238 $ $Date: 2007/07/20 22:47:53 $ -->
+<!-- $Revision: 1800 $ $Date: 2007/07/20 22:47:53 $ -->
 
 <datasources>
 
Only in jpdl-3.2.3.GA/bpel/service/src/main/resources: jbpm-jmx.jar
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/service/src/main/resources/META-INF/jboss-service.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/META-INF/jboss-service.xml
--- jpdl-3.2.3.GA/bpel/service/src/main/resources/META-INF/jboss-service.xml	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/META-INF/jboss-service.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,13 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <server>
-  <mbean code="org.jbpm.jmx.JbpmService" name="jboss.jbpm:name=JbpmBpel,service=JbpmService"
+  <mbean code="org.jbpm.jmx.JbpmService" 
+         name="jboss.jbpm:name=JbpmBpel,service=JbpmService"
     description="jBPM BPEL Service">
     <attribute name="JndiName">java:/jbpm/Configuration</attribute>
-    <depends>jboss.web:service=WebServer</depends>
-    <depends>jboss.ejb:service=EJBDeployer</depends>
-    <depends>jboss.ejb:service=EJBTimerService</depends>
-    <depends>jboss.mq:service=DestinationManager</depends>
-    <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+    <depends>jboss.jca:service=DataSourceBinding,name=jbpm/DataSource</depends>
   </mbean>
 </server>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/service/src/main/resources/mysql-bpel-ds.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/mysql-bpel-ds.xml
--- jpdl-3.2.3.GA/bpel/service/src/main/resources/mysql-bpel-ds.xml	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/service/src/main/resources/mysql-bpel-ds.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!-- $Revision: 1238 $ $Date: 2007/07/20 22:47:53 $ -->
+<!-- $Revision: 1800 $ $Date: 2007/07/20 22:47:53 $ -->
 
 <datasources>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/build.xml
--- jpdl-3.2.3.GA/bpel/tools/build.xml	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -20,8 +20,6 @@
       <path refid="libs.classpath" />
       <pathelement location="${lib.jbpm.jpdl.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.jar.local}" />
-      <pathelement location="${jwsdp.home}/jaxrpc/lib/jaxrpc-spi.jar" />
-      <pathelement location="${jwsdp.home}/jaxrpc/lib/jaxrpc-impl.jar" />
     </path>
   </target>
 
@@ -47,12 +45,16 @@
       <pathelement location="${lib.jbpm.bpel.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.tools.jar.local}" />
       <pathelement location="${lib.jbpm.bpel.config.local}" />
+      <pathelement location="target/test.classes" />
+      <pathelement location="${jbpm.root}/bpel/library/src/test/config" />
+    </path>
+    <path id="wscompile.classpath">
+      <pathelement location="${jwsdp.home}/jaxrpc/lib/jaxrpc-api.jar" />
       <pathelement location="${jwsdp.home}/jaxrpc/lib/jaxrpc-spi.jar" />
       <pathelement location="${jwsdp.home}/jaxrpc/lib/jaxrpc-impl.jar" />
       <pathelement location="${java.home}/../lib/tools.jar" />
-      <pathelement location="target/test.classes" />
-      <pathelement location="${jbpm.root}/bpel/library/src/test/config" />
     </path>
+    <property name="wscompile.class.path" refid="wscompile.classpath" />
   </target>
 
   <target name="create.manifest">
@@ -86,8 +88,9 @@
     <delete dir="target/test.results" />
     <mkdir dir="target/test.results/xml" />
 
-    <junit printsummary="yes" fork="yes" forkmode="once">
+    <junit printsummary="yes" fork="yes" forkmode="once" showoutput="yes">
       <classpath refid="${test.classpath}" />
+      <sysproperty key="wscompile.class.path" path="${wscompile.class.path}" />
       <formatter type="xml" />
       <batchtest todir="target/test.results/xml">
         <fileset dir="target/test.classes" includes="**/*Test.class" />
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: AdministrationTask.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: DBSchemaTask.java
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: DeploymentTask.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: DeployProcessTask.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: GenerateWebModuleTask.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: GenerateWsdlServiceTask.java
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: PostTask.java
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: RegistrationTask.java
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ant: WsdlServiceTask.java
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools: DeploymentException.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/FileUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/FileUtil.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/FileUtil.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/FileUtil.java	2009-02-06 09:17:20.000000000 +0100
@@ -15,33 +15,32 @@
 package org.jbpm.bpel.tools;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.channels.FileChannel;
-import java.nio.charset.Charset;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
 /**
  * A collection of utility methods on {@linkplain File files}.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/05 05:37:34 $
+ * @version $Revision: 1800 $ $Date: 2007/09/05 08:25:10 $
  */
 public class FileUtil {
 
+  private static ThreadLocal transferBufferLocal = new ThreadLocal() {
+
+    protected Object initialValue() {
+      return new byte[512];
+    }
+  };
+
   // suppress default constructor, ensuring non-instantiability
   private FileUtil() {
   }
 
   /**
-   * The default temporary file path, provided by the <code>java.io.tmpdir</code> system property.
+   * The default temp file path, provided by the <code>java.io.tmpdir</code> system property.
    */
   public static final File TEMPORARY_DIRECTORY = new File(System.getProperty("java.io.tmpdir"));
 
@@ -51,150 +50,61 @@
   public static final File CURRENT_DIRECTORY = new File(System.getProperty("user.dir"));
 
   /**
-   * Returns the default charset of this virtual machine. The default charset is determined by
-   * examining the <code>file.encoding</code> system property. If there is no such property, the
-   * actual mechanism used to obtain the default charset is unspecified.
-   */
-  public static final Charset DEFAULT_CHARSET = getDefaultCharset();
-
-  private static Charset getDefaultCharset() {
-    String charsetName;
-    try {
-      // examine the de facto system property
-      charsetName = System.getProperty("file.encoding");
-    }
-    catch (SecurityException e) {
-      charsetName = null;
-    }
-    if (charsetName == null) {
-      // take the long route
-      charsetName = new InputStreamReader(System.in).getEncoding();
-    }
-    return Charset.forName(charsetName);
-  }
-
-  /**
-   * Copies data from one file to another.
-   * @param toFile the file to which data will be written
-   * @param fromFile the file from which data will be read
-   * @throws IOException if an I/O error occurs
-   */
-  public static void copy(File toFile, File fromFile) throws IOException {
-    FileChannel source = new FileInputStream(fromFile).getChannel();
-    try {
-      FileChannel sink = new FileOutputStream(toFile).getChannel();
-      try {
-        for (long position = 0, size = source.size(); position < size;)
-          position += source.transferTo(position, size - position, sink);
-      }
-      finally {
-        sink.close();
-      }
-    }
-    finally {
-      source.close();
-    }
-  }
-
-  /**
-   * Copies files that satisfy the specified filter from one directory to another.
-   * @param toDir the directory to which files will be written
-   * @param fromDir the directory from which files will be read
-   * @param filter a file filter
-   * @throws IOException if an I/O error occurs
-   */
-  public static void copy(File toDir, File fromDir, FileFilter filter) throws IOException {
-    if (!toDir.exists() && !toDir.mkdir())
-      throw new IOException("directory making failed: " + toDir);
-
-    File[] files = fromDir.listFiles(filter);
-    if (files == null)
-      throw new IOException("file listing failed: " + fromDir);
-
-    // copy files in the directory
-    for (int i = 0; i < files.length; i++) {
-      File fromFile = files[i];
-      File toFile = new File(toDir, fromFile.getName());
-
-      if (fromFile.isDirectory())
-        copy(toFile, fromFile, filter);
-      else
-        copy(toFile, fromFile);
-    }
-  }
-
-  /**
-   * Cleans the given file or directory from the file system. If <code>path</code> is a directory,
-   * then the files it contains are recursively deleted. After deleting <code>path</code>, an
-   * attempt is made to purge empty parent directories.
-   * @param path the file or directory to clean
-   * @return <code>true</code> if and only if <code>path</code> is successfully deleted;
+   * Recursively deletes the contents of the given directory.
+   * @param dir the directory to delete; if <code>dir</code> does not denote a directory, then
+   * this method performs no deletion
+   * @return <code>true</code> if and only if the directory is completely deleted;
    * <code>false</code> otherwise
    */
-  public static boolean clean(File path) {
-    // delete any child files
-    if (path.isDirectory())
-      deleteFiles(path);
+  public static boolean deleteDirectory(File dir) {
+    File[] files = dir.listFiles();
 
-    // delete target
-    if (!path.delete())
+    if (files == null) {
+      // dir is NOT a directory, or I/O error
       return false;
-
-    // purge empty parent directories
-    for (File parentDir = path.getParentFile(); parentDir != null; parentDir = parentDir.getParentFile()) {
-      if (!parentDir.delete())
-        break;
     }
 
-    return true;
-  }
-
-  private static void deleteFiles(File dir) {
-    File[] files = dir.listFiles();
-    if (files == null)
-      return; // I/O error
-
     // delete files in the directory
     for (int i = 0; i < files.length; i++) {
       File file = files[i];
 
-      // delete any child files
+      // TODO break on the first failed deletion?
       if (file.isDirectory())
-        deleteFiles(file);
-
+        deleteDirectory(file);
+      else
       file.delete();
     }
+
+    // lastly, delete the directory itself
+    return dir.delete();
   }
 
   /**
-   * Adds the contents of the given file or directory to the zip stream. If <code>path</code> is a
+   * Adds the contents of the given file or directory to the zip stream. If the argument is a
    * directory, then the files it contains are recursively zipped, preserving the relative path
    * hierarchy. The given prefix is prepended to the name of the file or directory to construct the
-   * zip entry name.
+   * name of the zip entry.
    * @param path the file or directory to zip
-   * @param sink the stream where data is written
+   * @param zipOut the stream where data is written
    * @param prefix the zip entry prefix
    * @throws IOException if an I/O error occurs
    */
-  public static void zip(File path, ZipOutputStream sink, String prefix) throws IOException {
-    byte[] buffer = new byte[512];
-
+  public static void zip(File path, ZipOutputStream zipOut, String prefix) throws IOException {
     if (path.isDirectory())
-      zipDirectory(path, sink, prefix, buffer);
+      zipDirectory(path, zipOut, prefix);
     else
-      zipFile(path, sink, prefix, buffer);
+      zipFile(path, zipOut, prefix);
   }
 
   /**
    * Recursively adds the contents of the given directory to the zip stream. The given prefix is
    * prepended to the directory name.
    * @param dir the directory to zip
-   * @param sink the stream where data is written
+   * @param zipOut the stream where data is written
    * @param prefix the zip entry prefix
-   * @param buffer a byte array for efficient data transfer
    * @throws IOException if an I/O error occurs
    */
-  private static void zipDirectory(File dir, ZipOutputStream sink, String prefix, byte[] buffer)
+  private static void zipDirectory(File dir, ZipOutputStream zipOut, String prefix)
       throws IOException {
     File[] files = dir.listFiles();
     if (files == null)
@@ -205,80 +115,34 @@
       File file = files[i];
 
       if (file.isDirectory())
-        zipDirectory(file, sink, prefix + WebModuleBuilder.SEPARATOR + file.getName(), buffer);
+        zipDirectory(file, zipOut, prefix + WebModuleBuilder.SEPARATOR + file.getName());
       else
-        zipFile(file, sink, prefix, buffer);
+        zipFile(file, zipOut, prefix);
     }
   }
 
   /**
    * Adds the content of the given file to the zip stream. The given prefix is prepended to the file
    * name.
-   * @param file the file to zip
-   * @param sink the stream where data is written
+   * @param dir the file to zip
+   * @param zipOut the stream where data is written
    * @param prefix the zip entry prefix
-   * @param buffer a byte array for efficient data transfer
    * @throws IOException if an I/O error occurs
    */
-  private static void zipFile(File file, ZipOutputStream sink, String prefix, byte[] buffer)
-      throws IOException {
+  private static void zipFile(File file, ZipOutputStream zipOut, String prefix) throws IOException {
     InputStream fileSource = new FileInputStream(file);
     try {
-      sink.putNextEntry(new ZipEntry(prefix + WebModuleBuilder.SEPARATOR + file.getName()));
+      zipOut.putNextEntry(new ZipEntry(prefix + WebModuleBuilder.SEPARATOR + file.getName()));
 
-      // transfer bytes from the file to the archive using the given buffer
-      for (int length; (length = fileSource.read(buffer)) != -1;)
-        sink.write(buffer, 0, length);
+      // transfer bytes from the file to the archive using our thread local byte buffer
+      byte[] transferBuffer = (byte[]) transferBufferLocal.get();
+      for (int length; (length = fileSource.read(transferBuffer)) > 0;)
+        zipOut.write(transferBuffer, 0, length);
 
-      sink.closeEntry();
+      zipOut.closeEntry();
     }
     finally {
       fileSource.close();
     }
   }
-
-  /**
-   * Creates an empty directory in the default temporary-file directory, using the given prefix and
-   * suffix to generate its name.
-   * @param prefix the prefix to be used in generating the directory's name; must be at least three
-   * characters long
-   * @param suffix the suffix to be used in generating the directory's name; may be
-   * <code>null</code>, in which case the suffix <code>.tmp</code> will be used
-   * @return an abstract pathname denoting a newly-created empty directory
-   * @throws IOException if the directory could not be created
-   */
-  public static File makeTempDirectory(String prefix, String suffix) throws IOException {
-    File dir = File.createTempFile(prefix, suffix);
-
-    // delete temp file
-    if (!dir.delete())
-      throw new IOException("could not delete temporary file: " + dir);
-
-    // make temp directory
-    if (!dir.mkdir())
-      throw new IOException("could not make temporary directory: " + dir);
-
-    return dir;
-  }
-
-  /**
-   * Converts the URL of the specified resource into an abstract pathname.
-   * @param c class to be used to find the resource
-   * @param resource name of the desired resource
-   * @return the abstract pathname denoted by the specified resource
-   * @throws IllegalArgumentException if the URL of the specified resource does not adhere to the
-   * <code>file</code> scheme
-   */
-  public static File toFile(Class c, String resource) {
-    URL resourceUrl = c.getResource(resource);
-    if (resourceUrl == null)
-      return null;
-    try {
-      return new File(new URI(resourceUrl.toExternalForm()));
-    }
-    catch (URISyntaxException e) {
-      // should not happen
-      throw new AssertionError(e);
-    }
-  }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/JavaMappingTool.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/JavaMappingTool.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/JavaMappingTool.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/JavaMappingTool.java	2009-02-06 09:17:20.000000000 +0100
@@ -22,7 +22,7 @@
  * Contract for tools that generate the Java representation of the services described in a WSDL
  * document.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/05 05:37:34 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public interface JavaMappingTool {
 
@@ -33,8 +33,8 @@
   public void setWsdlFile(File wsdlFile);
 
   /**
-   * Specifies the package of the generated classes.
-   * @param packageName the package of the generated classes
+   * Specifies the package of generated classes.
+   * @param packageName the generated classes package
    */
   public void setPackageName(String packageName);
 
@@ -50,15 +50,11 @@
    */
   public void setClassesDirectory(File classesDirectory);
 
-  /**
-   * Sets the {@linkplain ProblemHandler problem handler} to be used for reporting errors present in
-   * the WSDL document to be read, or detected while generating the Java representation.
-   * @param problemHandler the problem handler to be used for reporting errors
-   */
   public void setProblemHandler(ProblemHandler problemHandler);
 
   /**
-   * Generates the Java representation of the services described in the WSDL file.
+   * Generates the {@linkplain #setJaxrpcMappingFile(File) Java representation} of the services
+   * described in the {@linkplain #setWsdlFile(File) WSDL file}.
    */
   public void generateJavaMapping();
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/JBossModuleDeployer.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/JBossModuleDeployer.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/JBossModuleDeployer.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/JBossModuleDeployer.java	2009-02-06 09:17:20.000000000 +0100
@@ -40,44 +40,23 @@
 
   private static final String MAIN_DEPLOYER = "jboss.system:service=MainDeployer";
 
-  public void deploy(URL url) throws DeploymentException {
-    try {
+  public void deploy(URL url) throws NamingException, JMException, IOException {
       MBeanServerConnection server = getServer();
       server.invoke(new ObjectName(MAIN_DEPLOYER), "redeploy", new Object[] { url },
           new String[] { "java.net.URL" });
     }
-    catch (NamingException e) {
-      throw new DeploymentException("could not retrieve mbean server connection", e);
-    }
-    catch (JMException e) {
-      throw new DeploymentException("redeploy operation failed on: " + MAIN_DEPLOYER, e);
-    }
-    catch (IOException e) {
-      throw new DeploymentException("communication with mbean server failed", e);
-    }
-  }
 
-  public void undeploy(URL url) throws DeploymentException {
-    try {
+  public void undeploy(URL url) throws NamingException, JMException, IOException {
       MBeanServerConnection server = getServer();
       server.invoke(new ObjectName(MAIN_DEPLOYER), "undeploy", new Object[] { url },
           new String[] { "java.net.URL" });
     }
-    catch (NamingException e) {
-      throw new DeploymentException("could not retrieve mbean server connection", e);
-    }
-    catch (JMException e) {
-      throw new DeploymentException("redeploy operation failed on: " + MAIN_DEPLOYER, e);
-    }
-    catch (IOException e) {
-      throw new DeploymentException("communication with mbean server failed", e);
-    }
-  }
 
   private MBeanServerConnection getServer() throws NamingException {
     InitialContext iniCtx = new InitialContext();
     try {
-      return (MBeanServerConnection) iniCtx.lookup("jmx/invoker/RMIAdaptor");
+      MBeanServerConnection server = (MBeanServerConnection) iniCtx.lookup("jmx/invoker/RMIAdaptor");
+      return server;
     }
     finally {
       iniCtx.close();
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools: LogOutputStream.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployer.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployer.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployer.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployer.java	2009-02-06 09:17:20.000000000 +0100
@@ -34,10 +34,10 @@
   /**
    * Deploy the given archive
    */
-  void deploy(URL archive) throws DeploymentException;
+  void deploy(URL archive) throws Exception;
 
   /**
    * Undeploy the given archive
    */
-  void undeploy(URL archive) throws DeploymentException;
+  void undeploy(URL archive) throws Exception;
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployHelper.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployHelper.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployHelper.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/ModuleDeployHelper.java	2009-02-06 09:17:20.000000000 +0100
@@ -36,19 +36,17 @@
   private static final String DEFAULT_TARGET_SERVER = "jboss";
 
   /**
-   * Deploys the given archive.
-   * @throws DeploymentException if deployment fails
+   * Deploy the given archive
    */
-  public void deploy(String archive) throws DeploymentException {
+  public void deploy(String archive) throws Exception {
     URL url = getArchiveURL(archive);
     getDeployer().deploy(url);
   }
 
   /**
-   * Undeploys the given archive.
-   * @throws DeploymentException if undeployment fails
+   * Undeploy the given archive
    */
-  public void undeploy(String archive) throws DeploymentException {
+  public void undeploy(String archive) throws Exception {
     URL url = getArchiveURL(archive);
     getDeployer().undeploy(url);
   }
@@ -73,25 +71,19 @@
   }
 
   /** Try to discover the URL for the deployment archive */
-  private URL getArchiveURL(String archive) {
+  public URL getArchiveURL(String archive) throws MalformedURLException {
     URL url;
     try {
       url = new URL(archive);
     }
     catch (MalformedURLException ignore) {
       File file = new File(archive);
-      if (file.exists()) {
-        try {
+      if (file.exists())
           url = file.toURL();
-        }
-        catch (MalformedURLException e) {
-          throw new IllegalArgumentException("could not parse as url: " + archive);
-        }
-      }
       else {
-        url = Thread.currentThread().getContextClassLoader().getResource(archive);
+        url = getClass().getClassLoader().getResource(archive);
         if (url == null)
-          throw new IllegalArgumentException("could not obtain url for: " + archive);
+          throw new IllegalArgumentException("Cannot obtain URL for archive: " + archive);
       }
     }
     return url;
Only in jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools: ModuleDeployTestSetup.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools: ProcessDeployer.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebAppDescriptorTool.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebAppDescriptorTool.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebAppDescriptorTool.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebAppDescriptorTool.java	2009-02-06 09:17:20.000000000 +0100
@@ -27,6 +27,7 @@
 import org.xml.sax.SAXException;
 
 import org.jbpm.bpel.integration.server.IntegrationConfigurator;
+import org.jbpm.bpel.integration.server.IntegrationConsoleServlet;
 import org.jbpm.bpel.xml.ProblemCounter;
 import org.jbpm.bpel.xml.ProblemHandler;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
@@ -36,12 +37,12 @@
 /**
  * Generates the web application deployment descriptor.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:14:00 $
+ * @version $Revision: 1800 $ $Date: 2007/09/11 06:06:18 $
  */
 public class WebAppDescriptorTool {
 
-  private File webServicesDescriptorFile = WebServicesDescriptorTool.DEFAULT_WEB_SERVICES_FILE;
-  private File webAppDescriptorFile = DEFAULT_WEB_APP_FILE;
+  private File webServicesDescriptorFile = WebServicesDescriptorTool.DEFAULT_WEB_SERVICES_DESCRIPTOR_FILE;
+  private File webAppDescriptorFile = DEFAULT_WEB_APP_DESCRIPTOR_FILE;
 
   private ProblemHandler problemHandler = new ProblemCounter();
 
@@ -59,8 +60,7 @@
   static final String SERVLET_VERSION = "2.4";
   static final String INTEGRATION_CONSOLE_NAME = "integrationConsole";
 
-  static final String DEFAULT_WEB_APP_FILE_NAME = "web.xml";
-  static final File DEFAULT_WEB_APP_FILE = new File(DEFAULT_WEB_APP_FILE_NAME);
+  private static final File DEFAULT_WEB_APP_DESCRIPTOR_FILE = new File("web.xml");
 
   private static final Log log = LogFactory.getLog(WebAppDescriptorTool.class);
 
@@ -79,7 +79,6 @@
   public void setWebServicesDescriptorFile(File webServicesDescriptorFile) {
     if (webServicesDescriptorFile == null)
       throw new IllegalArgumentException("web services descriptor file cannot be null");
-
     this.webServicesDescriptorFile = webServicesDescriptorFile;
   }
 
@@ -98,7 +97,6 @@
   public void setWebAppDescriptorFile(File webAppDescriptorFile) {
     if (webAppDescriptorFile == null)
       throw new IllegalArgumentException("web app descriptor file cannot be null");
-
     this.webAppDescriptorFile = webAppDescriptorFile;
   }
 
@@ -134,13 +132,16 @@
     // integration configurator listener
     generateIntegrationConfiguratorListener(webAppElem);
 
+    // integration console servlet
+    generateIntegrationConsoleServlet(webAppElem);
+
     try {
       XmlUtil.writeFile(webAppElem, webAppDescriptorFile);
-      log.debug("wrote web application descriptor: " + webAppDescriptorFile.getName());
+      log.info("wrote web application descriptor: " + webAppDescriptorFile);
     }
     catch (IOException e) {
       problemHandler.add(new Problem(Problem.LEVEL_ERROR,
-          "could not write web application descriptor: " + webAppDescriptorFile, e));
+          "could not write web application descriptor", e));
     }
   }
 
@@ -222,7 +223,7 @@
   protected String generateUrlPattern(String servletName) {
     if (servletName.endsWith("Servlet"))
       servletName = servletName.substring(0, servletName.length() - "Servlet".length());
-    return '/' + servletName;
+    return servletName;
   }
 
   protected void generateIntegrationConfiguratorListener(Element webAppElem) {
@@ -237,4 +238,8 @@
     XmlUtil.setStringValue(listenerClassElem, IntegrationConfigurator.class.getName());
     listenerElem.appendChild(listenerClassElem);
   }
+
+  protected void generateIntegrationConsoleServlet(Element webAppElem) {
+    generateServlet(webAppElem, INTEGRATION_CONSOLE_NAME, IntegrationConsoleServlet.class.getName());
+  }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebModuleBuilder.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebModuleBuilder.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebModuleBuilder.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebModuleBuilder.java	2009-02-06 09:17:20.000000000 +0100
@@ -3,15 +3,11 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.xml.ProblemCounter;
 import org.jbpm.bpel.xml.ProblemHandler;
@@ -20,47 +16,34 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/06/12 08:51:51 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WebModuleBuilder {
 
-  private File moduleFile = DEFAULT_MODULE_FILE;
-  private String packagePrefix = DEFAULT_PACKAGE_PREFIX;
+  private File outputDirectory = FileUtil.TEMPORARY_DIRECTORY;
+  private String moduleName;
+  private String packagePrefix = "org.example";
   private ProblemHandler problemHandler = new ProblemCounter();
 
-  private String modulePrefix;
-  private File workDirectory;
-
-  private static final String DEFAULT_PACKAGE_PREFIX = WscompileTool.DEFAULT_PACKAGE_NAME;
-  private static final File DEFAULT_MODULE_FILE = new File("module.war");
-
   static final String DIR_WSDL = "wsdl";
   static final String DIR_WEB_INF = "WEB-INF";
   static final String DIR_CLASSES = "classes";
   static final char SEPARATOR = '/'; // use File.separatorChar instead?
 
-  private static final Log log = LogFactory.getLog(WebModuleBuilder.class);
-
-  public File getModuleFile() {
-    return moduleFile;
+  public File getOutputDirectory() {
+    return outputDirectory;
   }
 
-  public void setModuleFile(File moduleFile) {
-    if (moduleFile == null)
-      throw new IllegalArgumentException("module file cannot be null");
-
-    this.moduleFile = moduleFile;
+  public void setOutputDirectory(File outputDirectory) {
+    this.outputDirectory = outputDirectory;
   }
 
-  public String getPackagePrefix() {
-    return packagePrefix;
+  public String getModuleName() {
+    return moduleName;
   }
 
-  public void setPackagePrefix(String packagePrefix) {
-    if (packagePrefix == null)
-      throw new IllegalArgumentException("package prefix cannot be null");
-
-    this.packagePrefix = packagePrefix;
+  public void setModuleName(String moduleName) {
+    this.moduleName = moduleName;
   }
 
   public ProblemHandler getProblemHandler() {
@@ -74,261 +57,140 @@
     this.problemHandler = problemHandler;
   }
 
-  public void buildModule(BpelProcessDefinition processDefinition) {
-    modulePrefix = moduleFile.getName();
-    int dotIndex = modulePrefix.indexOf('.');
-    if (dotIndex != -1)
-      modulePrefix = modulePrefix.substring(0, dotIndex);
-
-    try {
-      buildModuleImpl(processDefinition);
-      log.info("packaged web module: " + moduleFile.getName());
-    }
-    catch (IOException e) {
-      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not build web module", e));
-    }
-  }
+  public void generateWebModule(BpelProcessDefinition processDefinition) {
+    if (moduleName == null)
+      moduleName = toLowerCaseJavaIdentifier(processDefinition.getName());
 
-  private void buildModuleImpl(BpelProcessDefinition processDefinition) throws IOException {
-    workDirectory = makeWorkDirectory();
-    try {
-      FileDefinition fileDefinition = processDefinition.getFileDefinition();
-      if (!hasDirectory(fileDefinition, DIR_WEB_INF + SEPARATOR + DIR_WSDL)) {
-        callWsdlServiceTool(processDefinition);
+    callWsdlServiceGenerator(processDefinition);
         if (problemHandler.getProblemCount() > 0)
           return;
-      }
-      if (!hasDirectory(fileDefinition, DIR_WEB_INF + SEPARATOR + DIR_CLASSES)) {
-        callJavaMappingTool();
-        if (problemHandler.getProblemCount() > 0)
-          return;
-      }
-      if (!fileDefinition.hasFile(DIR_WEB_INF
-          + SEPARATOR
-          + WebServicesDescriptorTool.DEFAULT_WEB_SERVICES_FILE_NAME)) {
-        callWebServicesDescriptorTool();
-        if (problemHandler.getProblemCount() > 0)
-          return;
-      }
-      if (!fileDefinition.hasFile(DIR_WEB_INF
-          + SEPARATOR
-          + WebAppDescriptorTool.DEFAULT_WEB_APP_FILE_NAME)) {
-        callWebAppDescriptorTool();
+
+    callJavaMappingGenerator();
         if (problemHandler.getProblemCount() > 0)
           return;
-      }
-      writeUserProvidedFiles(fileDefinition);
-      packFiles();
-    }
-    finally {
-      FileUtil.clean(workDirectory);
-    }
-  }
 
-  private static boolean hasDirectory(FileDefinition fileDefinition, String directory) {
-    for (Iterator i = fileDefinition.getBytesMap().keySet().iterator(); i.hasNext();) {
-      String fileName = (String) i.next();
-      if (fileName.startsWith(directory))
-        return true;
-    }
-    return false;
-  }
-
-  protected String generateModuleName(BpelProcessDefinition processDefinition) {
-    return toLowerCaseJavaIdentifier(processDefinition.getName());
-  }
-
-  private static String toLowerCaseJavaIdentifier(String name) {
-    final int length = name.length();
-    char[] identifierBuffer = new char[length];
-
-    // first character
-    int i;
-    for (i = 0; i < length; i++) {
-      char ch = name.charAt(i);
-      if (Character.isJavaIdentifierStart(ch)) {
-        identifierBuffer[0] = Character.toLowerCase(ch);
-        break;
+    try {
+      assembleWebModule(processDefinition);
       }
+    catch (IOException e) {
+      Problem problem = new Problem(Problem.LEVEL_ERROR, "web module assembly failed", e);
+      problemHandler.add(problem);
     }
-
-    // next characters
-    int k = 1;
-    for (i++; i < length; i++) {
-      char ch = name.charAt(i);
-      if (Character.isJavaIdentifierPart(ch))
-        identifierBuffer[k++] = Character.toLowerCase(ch);
     }
 
-    return new String(identifierBuffer, 0, k);
+  protected File getWebDirectory() {
+    return new File(outputDirectory, "web");
   }
 
-  protected File makeWorkDirectory() throws IOException {
-    return FileUtil.makeTempDirectory(modulePrefix, ".war");
+  protected File getClassesDirectory() {
+    File classesDirectory = new File(outputDirectory, DIR_CLASSES);
+    classesDirectory.mkdir();
+    return classesDirectory;
   }
 
   protected File getWsdlDirectory() {
-    return new File(workDirectory, DIR_WSDL);
+    return new File(getWebDirectory(), DIR_WSDL);
   }
 
   protected String getWsdlBindingFilesPrefix() {
-    return modulePrefix + '-' + WsdlServiceTool.DEFAULT_BINDING_FILES_PREFIX + '-';
+    return moduleName + "-binding-";
   }
 
   protected String getWsdlServiceFileName() {
-    return modulePrefix + '-' + WsdlServiceTool.DEFAULT_SERVICE_FILE_NAME;
-  }
-
-  protected File getDeploymentDescriptorFile() {
-    return new File(getClassesDirectory(), DeploymentDescriptor.FILE_NAME);
-  }
-
-  protected File getJaxrpcMappingFile() {
-    return new File(workDirectory, modulePrefix + "-mapping.xml");
-  }
-
-  protected File getClassesDirectory() {
-    return new File(workDirectory, DIR_CLASSES);
+    return moduleName + "-service.wsdl";
   }
 
-  protected File getWebServicesDescriptorFile() {
-    return new File(workDirectory, WebServicesDescriptorTool.DEFAULT_WEB_SERVICES_FILE_NAME);
+  protected File getJaxRpcMappingFile() {
+    return new File(getWebDirectory(), "jaxrpc-mapping.xml");
   }
 
-  protected File getWebAppDescriptorFile() {
-    return new File(workDirectory, WebAppDescriptorTool.DEFAULT_WEB_APP_FILE_NAME);
+  protected File getWebModuleFile() {
+    return new File(outputDirectory, moduleName + ".war");
   }
 
-  protected void callWsdlServiceTool(BpelProcessDefinition processDefinition) throws IOException {
-    // make output directories
-    File wsdlDirectory = getWsdlDirectory();
-    wsdlDirectory.mkdirs();
-
-    File deploymentDescriptorFile = getDeploymentDescriptorFile();
-    deploymentDescriptorFile.getParentFile().mkdirs();
-
-    // configure tool
+  protected void callWsdlServiceGenerator(BpelProcessDefinition processDefinition) {
     WsdlServiceTool tool = new WsdlServiceTool();
-    tool.setWsdlDirectory(wsdlDirectory);
+    tool.setWsdlDirectory(getWsdlDirectory());
     tool.setBindingFilesPrefix(getWsdlBindingFilesPrefix());
     tool.setServiceFileName(getWsdlServiceFileName());
-    tool.setDeploymentDescriptorFile(deploymentDescriptorFile);
     tool.setProblemHandler(problemHandler);
 
-    // run tool
     tool.generateWsdlService(processDefinition);
-
-    // copy xml schema documents
-    FileDefinition fileDefinition = processDefinition.getFileDefinition();
-    for (Iterator i = fileDefinition.getBytesMap().entrySet().iterator(); i.hasNext();) {
-      Map.Entry fileEntry = (Map.Entry) i.next();
-
-      String fileName = (String) fileEntry.getKey();
-      if (!fileName.endsWith(".xsd"))
-        continue; // not an xml schema document, skip it
-
-      byte[] fileData = (byte[]) fileEntry.getValue();
-      File file = new File(wsdlDirectory, fileName);
-      writeFile(file, fileData);
-      log.debug("wrote xml schema: " + file.getName());
     }
-  }
-
-  private static void writeFile(File file, byte[] data) throws IOException {
-   // create parent directory if it does not exist
-    File parentDir = file.getParentFile();
-    if (parentDir != null)
-      parentDir.mkdirs(); 
 
-    // write data to file
-    OutputStream fileSink = new FileOutputStream(file);
-    try {
-      fileSink.write(data);
-    }
-    finally {
-      fileSink.close();
-    }
-  }
-
-  protected void callJavaMappingTool() {
-    // make output directories
-    File jaxrpcMappingFile = getJaxrpcMappingFile();
-    jaxrpcMappingFile.getParentFile().mkdirs();
-
-    File classesDirectory = getClassesDirectory();
-    classesDirectory.mkdirs();
-
-    // configure tool
+  protected void callJavaMappingGenerator() {
     JavaMappingTool tool = new WscompileTool();
     tool.setWsdlFile(new File(getWsdlDirectory(), getWsdlServiceFileName()));
     tool.setPackageName(generateJavaMappingPackage());
-    tool.setJaxrpcMappingFile(jaxrpcMappingFile);
-    tool.setClassesDirectory(classesDirectory);
+    tool.setJaxrpcMappingFile(getJaxRpcMappingFile());
+    tool.setClassesDirectory(getClassesDirectory());
     tool.setProblemHandler(problemHandler);
 
-    // run tool
     tool.generateJavaMapping();
   }
 
   protected String generateJavaMappingPackage() {
-    return packagePrefix + '.' + modulePrefix;
+    return packagePrefix + '.' + moduleName;
   }
 
-  protected void callWebServicesDescriptorTool() {
-    // make output directory
-    File webServicesDescriptorFile = getWebServicesDescriptorFile();
-    webServicesDescriptorFile.getParentFile().mkdirs();
-
-    // configure tool
-    WebServicesDescriptorTool tool = new WebServicesDescriptorTool();
-    tool.setWsdlFile(new File(getWsdlDirectory(), getWsdlServiceFileName()));
-    tool.setJaxrpcMappingFile(getJaxrpcMappingFile());
-    tool.setWebServicesDescriptorFile(webServicesDescriptorFile);
-    tool.setProblemHandler(problemHandler);
+  private static String toLowerCaseJavaIdentifier(String name) {
+    int i;
+    final int n = name.length();
+    char[] identifierBuffer = new char[n];
 
-    // run tool
-    tool.generateWebServicesDescriptor();
+    // first character
+    for (i = 0; i < n; i++) {
+      char ch = name.charAt(i);
+      if (Character.isJavaIdentifierStart(ch)) {
+        identifierBuffer[0] = Character.toLowerCase(ch);
+        break;
+      }
   }
 
-  protected void callWebAppDescriptorTool() {
-    // make output directory
-    File webAppDescriptorFile = getWebAppDescriptorFile();
-    webAppDescriptorFile.getParentFile().mkdirs();
-
-    // configure tool
-    WebAppDescriptorTool tool = new WebAppDescriptorTool();
-    tool.setWebServicesDescriptorFile(getWebServicesDescriptorFile());
-    tool.setWebAppDescriptorFile(getWebAppDescriptorFile());
+    // next characters
+    int k = 1;
+    for (i++; i < n; i++) {
+      char ch = name.charAt(i);
+      if (Character.isJavaIdentifierPart(ch))
+        identifierBuffer[k++] = Character.toLowerCase(ch);
+    }
 
-    // run tool
-    tool.generateWebAppDescriptor();
+    return new String(identifierBuffer, 0, k);
   }
 
-  protected void writeUserProvidedFiles(FileDefinition fileDefinition) throws IOException {
-    for (Iterator i = fileDefinition.getBytesMap().entrySet().iterator(); i.hasNext();) {
-      Map.Entry fileEntry = (Map.Entry) i.next();
+  protected void assembleWebModule(BpelProcessDefinition processDefinition) throws IOException {
+    ZipOutputStream moduleOut = new ZipOutputStream(new FileOutputStream(getWebModuleFile()));
+    try {
+      addGeneratedFiles(moduleOut);
+      addUserProvidedFiles(moduleOut, processDefinition);
+    }
+    finally {
+      moduleOut.close();
+    }
+  }
 
-      String fileName = (String) fileEntry.getKey();
-      if (!fileName.startsWith(DIR_WEB_INF))
-        continue; // not a web module artifact, skip it
+  protected void addGeneratedFiles(ZipOutputStream moduleOut) throws IOException {
+    FileUtil.zip(getWebDirectory(), moduleOut, DIR_WEB_INF);
+    FileUtil.zip(getClassesDirectory(), moduleOut, DIR_WEB_INF + SEPARATOR + DIR_CLASSES);
+  }
 
-      byte[] fileData = (byte[]) fileEntry.getValue();
-      if (fileData == null)
-        continue; // directory, skip it
+  protected void addUserProvidedFiles(ZipOutputStream moduleOut,
+      BpelProcessDefinition processDefinition) throws IOException {
+    FileDefinition fileDefinition = processDefinition.getFileDefinition();
 
-      File file = new File(workDirectory, fileName.substring(DIR_WEB_INF.length() + 1));
-      writeFile(file, fileData);
-      log.info("wrote user-provided artifact: " + file.getName());
-    }
-  }
+    for (Iterator i = fileDefinition.getBytesMap().entrySet().iterator(); i.hasNext();) {
+      Map.Entry entry = (Map.Entry) i.next();
+      String fileName = (String) entry.getKey();
 
-  private void packFiles() throws IOException {
-    ZipOutputStream moduleSink = new ZipOutputStream(new FileOutputStream(moduleFile));
-    try {
-      FileUtil.zip(workDirectory, moduleSink, DIR_WEB_INF);
+      if (fileName.startsWith(DIR_WEB_INF)) {
+        byte[] fileContent = (byte[]) entry.getValue();
+        if (fileContent == null)
+          continue; // this entry denotes a directory, skip it
+
+        moduleOut.putNextEntry(new ZipEntry(fileName));
+        moduleOut.write(fileContent);
+        moduleOut.closeEntry();
     }
-    finally {
-      moduleSink.close();
     }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebServicesDescriptorTool.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebServicesDescriptorTool.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebServicesDescriptorTool.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WebServicesDescriptorTool.java	2009-02-06 09:17:20.000000000 +0100
@@ -42,13 +42,13 @@
 /**
  * Generates the web services deployment descriptor.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/29 10:14:00 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WebServicesDescriptorTool {
 
   private File wsdlFile = WscompileTool.DEFAULT_WSDL_FILE;
   private File jaxrpcMappingFile = WscompileTool.DEFAULT_JAXRPC_MAPPING_FILE;
-  private File webServicesDescriptorFile = DEFAULT_WEB_SERVICES_FILE;
+  private File webServicesDescriptorFile = DEFAULT_WEB_SERVICES_DESCRIPTOR_FILE;
 
   private ProblemHandler problemHandler = new ProblemCounter();
 
@@ -75,8 +75,7 @@
   private static final String ELEM_WSDL_BINDING = "wsdl-binding";
   private static final String ELEM_WSDL_PORT_TYPE = "wsdl-port-type";
 
-  static final String DEFAULT_WEB_SERVICES_FILE_NAME = "webservices.xml";
-  static final File DEFAULT_WEB_SERVICES_FILE = new File(DEFAULT_WEB_SERVICES_FILE_NAME);
+  static final File DEFAULT_WEB_SERVICES_DESCRIPTOR_FILE = new File("webservices.xml");
 
   private static final Log log = LogFactory.getLog(WebServicesDescriptorTool.class);
 
@@ -95,7 +94,6 @@
   public void setWsdlFile(File wsdlFile) {
     if (wsdlFile == null)
       throw new IllegalArgumentException("wsdl file cannot be null");
-
     this.wsdlFile = wsdlFile;
   }
 
@@ -114,7 +112,6 @@
   public void setJaxrpcMappingFile(File jaxrpcMappingFile) {
     if (jaxrpcMappingFile == null)
       throw new IllegalArgumentException("jax-rpc mapping file cannot be null");
-
     this.jaxrpcMappingFile = jaxrpcMappingFile;
   }
 
@@ -133,7 +130,6 @@
   public void setWebServicesDescriptorFile(File descriptorFile) {
     if (descriptorFile == null)
       throw new IllegalArgumentException("descriptor file cannot be null");
-
     this.webServicesDescriptorFile = descriptorFile;
   }
 
@@ -144,7 +140,6 @@
   public void setProblemHandler(ProblemHandler problemHandler) {
     if (problemHandler == null)
       throw new IllegalArgumentException("problem handler cannot be null");
-
     this.problemHandler = problemHandler;
   }
 
@@ -177,11 +172,11 @@
 
     try {
       XmlUtil.writeFile(webservicesElem, webServicesDescriptorFile);
-      log.debug("wrote web services descriptor: " + webServicesDescriptorFile.getName());
+      log.info("wrote web services descriptor: " + webServicesDescriptorFile);
     }
     catch (IOException e) {
-      problemHandler.add(new Problem(Problem.LEVEL_ERROR,
-          "could not write web services descriptor: " + webServicesDescriptorFile, e));
+      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not write webservices descriptor",
+          e));
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WscompileTool.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WscompileTool.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WscompileTool.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WscompileTool.java	2009-02-06 09:17:20.000000000 +0100
@@ -14,24 +14,17 @@
  */
 package org.jbpm.bpel.tools;
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.JarURLConnection;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.security.CodeSource;
-
-import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPMessage;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import com.sun.xml.rpc.tools.wscompile.CompileTool;
-
 import org.jbpm.bpel.xml.ProblemCounter;
 import org.jbpm.bpel.xml.ProblemHandler;
 import org.jbpm.bpel.xml.util.XmlUtil;
@@ -40,10 +33,11 @@
 /**
  * Adapter for the <code>wscompile</code> tool, part of the Java Web Services Development Pack.
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/05 05:37:34 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WscompileTool implements JavaMappingTool {
 
+  private String command = DEFAULT_COMMAND;
   private String packageName = DEFAULT_PACKAGE_NAME;
   private File wsdlFile = DEFAULT_WSDL_FILE;
 
@@ -58,7 +52,8 @@
   static final String ATTR_LOCATION = "location";
   static final String ATTR_PACKAGE_NAME = "packageName";
 
-  static final String DEFAULT_PACKAGE_NAME = "org.tempuri";
+  static final String DEFAULT_COMMAND = getDefaultCommand();
+  static final String DEFAULT_PACKAGE_NAME = "org.example";
   static final File DEFAULT_WSDL_FILE = new File(WsdlServiceTool.DEFAULT_WSDL_DIRECTORY,
       WsdlServiceTool.DEFAULT_SERVICE_FILE_NAME);
 
@@ -68,7 +63,24 @@
   private static final Log log = LogFactory.getLog(WscompileTool.class);
 
   /**
+   * Returns the command used to invoke the <code>wscompile</code> tool.
+   * @return the <code>wscompile</code> command
+   */
+  public String getCommand() {
+    return command;
+  }
+
+  /**
+   * Sets the command used to invoke the <code>wscompile</code> tool.
+   * @param command the <code>wscompile</code> command
+   */
+  public void setCommand(String command) {
+    this.command = command;
+  }
+
+  /**
    * Returns the input WSDL file.
+   * @return the input WSDL file
    */
   public File getWsdlFile() {
     return wsdlFile;
@@ -77,12 +89,12 @@
   public void setWsdlFile(File wsdlFile) {
     if (wsdlFile == null)
       throw new IllegalArgumentException("wsdl file cannot be null");
-
     this.wsdlFile = wsdlFile;
   }
 
   /**
-   * Returns the package of the generated classes.
+   * Returns the package of generated classes.
+   * @return the generated classes package
    */
   public String getPackageName() {
     return packageName;
@@ -91,12 +103,12 @@
   public void setPackageName(String packageName) {
     if (packageName == null)
       throw new IllegalArgumentException("package name cannot be null");
-
     this.packageName = packageName;
   }
 
   /**
    * Returns where to place generated classes.
+   * @return the generated classes directory
    */
   public File getClassesDirectory() {
     return classesDirectory;
@@ -105,12 +117,12 @@
   public void setClassesDirectory(File classesDirectory) {
     if (classesDirectory == null)
       throw new IllegalArgumentException("classes directory cannot be null");
-
     this.classesDirectory = classesDirectory;
   }
 
   /**
    * Returns where to write the JAX-RPC mapping file.
+   * @return the JAX-RPC mapping file
    */
   public File getJaxrpcMappingFile() {
     return jaxrpcMappingFile;
@@ -119,13 +131,9 @@
   public void setJaxrpcMappingFile(File jaxrpcMappingFile) {
     if (jaxrpcMappingFile == null)
       throw new IllegalArgumentException("jax-rpc mapping file cannot be null");
-
     this.jaxrpcMappingFile = jaxrpcMappingFile;
   }
 
-  /**
-   * Returns the problem handler to be used for reporting errors.
-   */
   public ProblemHandler getProblemHandler() {
     return problemHandler;
   }
@@ -133,166 +141,148 @@
   public void setProblemHandler(ProblemHandler problemHandler) {
     if (problemHandler == null)
       throw new IllegalArgumentException("problem handler cannot be null");
-
     this.problemHandler = problemHandler;
   }
 
   public void generateJavaMapping() {
-    Document configurationDoc = generateConfiguration();
     try {
-      generateJavaMappingImpl(configurationDoc);
-    }
-    catch (IOException e) {
-      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not write configuration file", e));
-    }
-  }
-
-  private void generateJavaMappingImpl(Document configurationDoc) throws IOException {
+      Document configurationDocument = generateConfiguration();
     File configurationFile = File.createTempFile("wscompile", ".xml");
     try {
-      XmlUtil.writeFile(configurationDoc, configurationFile);
-      log.debug("wrote configuration: " + configurationFile.getName());
-
+        // write configuration document to file
+        XmlUtil.writeFile(configurationDocument, configurationFile);
+        log.info("wrote wscompile configuration: " + configurationFile);
+        // invoke tool
       callWscompile(configurationFile);
     }
     finally {
       configurationFile.delete();
     }
   }
+    catch (IOException e) {
+      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "", e));
+    }
+  }
 
-  /**
-   * Generates the configuration file read by the <code>wscompile</code> tool. Said file contains
-   * information that describes the web service.
-   * @return the configuration file read by <code>wscompile</code>, as a DOM tree
-   */
   protected Document generateConfiguration() {
-    Document configurationDoc = XmlUtil.createDocument();
+    Document configurationDocument = XmlUtil.createDocument();
 
     // configuration
-    Element configuration = configurationDoc.createElementNS(NS_WSCOMPILE, ELEM_CONFIGURATION);
+    Element configuration = configurationDocument.createElementNS(NS_WSCOMPILE, ELEM_CONFIGURATION);
     XmlUtil.addNamespaceDeclaration(configuration, NS_WSCOMPILE);
 
     // wsdl
-    Element wsdl = configurationDoc.createElementNS(NS_WSCOMPILE, ELEM_WSDL);
+    Element wsdl = configurationDocument.createElementNS(NS_WSCOMPILE, ELEM_WSDL);
     wsdl.setAttribute(ATTR_LOCATION, getWsdlFile().getAbsolutePath());
     wsdl.setAttribute(ATTR_PACKAGE_NAME, packageName);
 
     // assemble document
-    configurationDoc.appendChild(configuration);
+    configurationDocument.appendChild(configuration);
     configuration.appendChild(wsdl);
 
-    return configurationDoc;
+    return configurationDocument;
   }
 
-  /**
-   * Runs the <code>wscompile</code> tool, which obtains information that describes the web
-   * service from the given configuration file.
-   * @param configurationFile the configuration file read by <code>wscompile</code>
-   */
-  protected void callWscompile(File configurationFile) {
+  protected void callWscompile(File configurationFile) throws IOException {
+    // Wscompile wscompile = new Wscompile();
     String[] args = new String[10];
-    int i = 0;
+    args[0] = command;
 
-    // read a WSDL file, generate the service endpoint interface
-    args[i++] = "-import";
+    // wscompile.setImport(true);
+    args[1] = "-import";
 
-    // do not generate RPC structures
-    args[i++] = "-f:norpcstructures";
+    // wscompile.setFeatures("norpcstructures,wsi");
+    args[2] = "-f:norpcstructures";
+    args[3] = "-f:wsi";
+
+    // wscompile.setBase(getClassesDirectory());
+    args[4] = "-d";
+    args[5] = classesDirectory.getAbsolutePath();
+    // ensure directory exists
+    classesDirectory.mkdirs();
 
-    // enable WSI-Basic Profile features
-    args[i++] = "-f:wsi";
+    // wscompile.setMapping(new File(getWebDirectory(), "jaxrpc-mapping.xml"));
+    args[6] = "-mapping";
+    args[7] = jaxrpcMappingFile.getAbsolutePath();
 
-    // specify where to find input class files
-    args[i++] = "-cp";
-    args[i++] = formatClasspath();
+    // wscompile.setVerbose(true);
+    args[8] = "-verbose";
 
-    // specify where to place generated output files
-    args[i++] = "-d";
-    args[i++] = classesDirectory.getAbsolutePath();
-    // ensure classes directory exists
-    classesDirectory.mkdirs();
+    // wscompile.setConfig(getJavaMappingConfigurationFile());
+    args[9] = configurationFile.getAbsolutePath();
 
-    // generate a J2EE mapping.xml file
-    args[i++] = "-mapping";
-    args[i++] = jaxrpcMappingFile.getAbsolutePath();
-
-    // the tool reads a configuration file, which specifies a WSDL file
-    args[i++] = configurationFile.getAbsolutePath();
+    /*
+     * the input and error streams are read in separate threads because wscompile may intermix
+     * writes to the output stream with writes to the error stream; if only one thread read both
+     * streams, it might block on the wrong stream
+     */
+    final Process wscompile = Runtime.getRuntime().exec(args, null,
+        configurationFile.getParentFile());
+
+    // read the error stream in separate thread
+    // make sure to start the new thread before the current thread reads the input stream
+    new Thread() {
 
-    LogOutputStream out = new LogOutputStream(log);
+      public void run() {
     try {
-      CompileTool tool = new CompileTool(out, "wscompile");
-      if (tool.run(args))
-        log.debug("wrote jax-rpc mapping file: " + jaxrpcMappingFile.getName());
-      else
-        problemHandler.add(new Problem(Problem.LEVEL_ERROR, "java mapping generation failed"));
+          logError(wscompile.getErrorStream());
     }
-    finally {
-      out.close();
+        catch (IOException e) {
+          problemHandler.add(new Problem(Problem.LEVEL_WARNING, "wscompile error pipe broken", e));
     }
   }
+    }.start();
 
-  private static String formatClasspath() {
-    // include the jax-rpc and saaj classes in the classpath
-    String jaxrpcLocation = getLocation(Service.class);
-    String saajLocation = getLocation(SOAPMessage.class);
-    String classpath = jaxrpcLocation != null ? (saajLocation != null ? jaxrpcLocation
-        + File.pathSeparator
-        + saajLocation : jaxrpcLocation) : (saajLocation != null ? saajLocation : "");
-    log.debug("using classpath: " + classpath);
-    return classpath;
+    // read the input stream
+    try {
+      logInfo(wscompile.getInputStream());
   }
-
-  /**
-   * Gets the directory, JAR file or remote URL from which the given class was loaded.
-   * @param c the class to be located
-   * @return the location from which the class was loaded, or <code>null</code> if the origin of
-   * the class is unknown
-   */
-  private static String getLocation(Class c) {
-    CodeSource codeSource = c.getProtectionDomain().getCodeSource();
-    if (codeSource == null) {
-      /*
-       * The code source of a domain may be null. This is the case for classes included in the Java
-       * platform. For example, the javax.xml.soap package is part of Java SE 6. Not much more can
-       * be done here, so we just tell the caller the location is unknown.
-       * 
-       * Thanks to Bernd Ruecker of Camunda GmbH for catching this one.
-       */
-      return null;
+    catch (IOException e) {
+      problemHandler.add(new Problem(Problem.LEVEL_WARNING, "wscompile input pipe broken", e));
     }
-    URL url = codeSource.getLocation();
 
-    if ("jar".equals(url.getProtocol())) {
       try {
-        JarURLConnection urlConnection = (JarURLConnection) url.openConnection();
-        url = urlConnection.getJarFileURL();
+      int code = wscompile.waitFor();
+      if (code == 0)
+        log.info("wscompile succeeded");
+      else
+        problemHandler.add(new Problem(Problem.LEVEL_ERROR, "wscompile failed: code=" + code));
       }
-      catch (IOException e) {
-        log.debug("could not open connection to " + url, e);
+    catch (InterruptedException e) {
+      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "wscompile got interrupted"));
       }
     }
 
-    if (!"file".equals(url.getProtocol()))
-      return url.toString();
+  private static String getDefaultCommand() {
+    return System.getProperty("os.name").toLowerCase().indexOf("windows") == -1 ? "wscompile.sh"
+        : "wscompile.bat";
+  }
 
-    String fileName = url.getFile();
+  private static void logInfo(InputStream infoStream) throws IOException {
     try {
-      fileName = URLDecoder.decode(fileName, "UTF-8");
+      BufferedReader reader = new BufferedReader(new InputStreamReader(infoStream));
+      for (String line = reader.readLine(); line != null; line = reader.readLine())
+        log.info(line);
     }
-    catch (UnsupportedEncodingException e) {
-      log.debug("UTF-8 not supported", e);
+    finally {
+      infoStream.close();
     }
-    return new File(fileName).getAbsolutePath();
   }
 
-  /**
-   * Cleans the JAX-RPC {@linkplain #getJaxrpcMappingFile() mapping file} and the
-   * {@linkplain #getClassesDirectory() classes directory} referenced by this tool.
-   */
-  public void clean() {
+  private static void logError(InputStream errorStream) throws IOException {
+    try {
+      BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream));
+      for (String line = reader.readLine(); line != null; line = reader.readLine())
+        log.error(line);
+    }
+    finally {
+      errorStream.close();
+    }
+  }
+
+  public void deleteGeneratedFiles() {
     // recursively delete classes directory
-    if (FileUtil.clean(classesDirectory))
+    if (FileUtil.deleteDirectory(classesDirectory))
       log.info("deleted: " + classesDirectory);
     // delete mapping file
     if (jaxrpcMappingFile.delete())
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WsdlServiceTool.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WsdlServiceTool.java
--- jpdl-3.2.3.GA/bpel/tools/src/main/java/org/jbpm/bpel/tools/WsdlServiceTool.java	2009-02-06 09:12:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/main/java/org/jbpm/bpel/tools/WsdlServiceTool.java	2009-02-06 09:17:20.000000000 +0100
@@ -20,7 +20,7 @@
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -59,22 +59,20 @@
 import com.ibm.wsdl.Constants;
 import com.ibm.wsdl.extensions.soap.SOAPConstants;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
-import org.jbpm.bpel.deploy.MyRoleDescriptor;
-import org.jbpm.bpel.deploy.PartnerLinkDescriptor;
-import org.jbpm.bpel.deploy.ScopeDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
+import org.jbpm.bpel.app.AppMyRole;
+import org.jbpm.bpel.app.AppPartnerLink;
+import org.jbpm.bpel.app.AppScope;
 import org.jbpm.bpel.graph.def.AbstractBpelVisitor;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.bpel.graph.def.ImportDefinition;
 import org.jbpm.bpel.graph.scope.Scope;
-import org.jbpm.bpel.integration.catalog.CentralCatalog;
-import org.jbpm.bpel.integration.catalog.ServiceCatalog;
 import org.jbpm.bpel.integration.def.PartnerLinkDefinition;
 import org.jbpm.bpel.integration.soap.SoapBindConstants;
 import org.jbpm.bpel.wsdl.PartnerLinkType.Role;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
+import org.jbpm.bpel.xml.AppDescriptorWriter;
 import org.jbpm.bpel.xml.BpelConstants;
-import org.jbpm.bpel.xml.DeploymentDescriptorWriter;
 import org.jbpm.bpel.xml.ProblemCounter;
 import org.jbpm.bpel.xml.ProblemHandler;
 import org.jbpm.bpel.xml.util.XmlUtil;
@@ -84,7 +82,7 @@
  * Generates WSDL binding and service definitions.
  * @author Alejandro Guízar
  * @author Juan Cantú
- * @version $Revision: 1238 $ $Date: 2008/02/05 05:37:34 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WsdlServiceTool {
 
@@ -92,7 +90,8 @@
   private String bindingFilesPrefix = DEFAULT_BINDING_FILES_PREFIX;
   private String bindingFilesSuffix = DEFAULT_BINDING_FILES_SUFFIX;
   private String serviceFileName = DEFAULT_SERVICE_FILE_NAME;
-  private File deploymentDescriptorFile = DEFAULT_DEPLOYMENT_DESCRIPTOR_FILE;
+
+  private File appDescriptorFile = DEFAULT_APP_DESCRIPTOR_FILE;
 
   private ProblemHandler problemHandler = new ProblemCounter();
 
@@ -100,7 +99,8 @@
   static final String DEFAULT_BINDING_FILES_PREFIX = "binding";
   static final String DEFAULT_BINDING_FILES_SUFFIX = ".wsdl";
   static final String DEFAULT_SERVICE_FILE_NAME = "service.wsdl";
-  static final File DEFAULT_DEPLOYMENT_DESCRIPTOR_FILE = new File(DeploymentDescriptor.FILE_NAME);
+
+  static final File DEFAULT_APP_DESCRIPTOR_FILE = new File("bpel-application.xml");
 
   private static final String ADDRESS_LOCATION_URI = "REPLACE_WITH_ACTUAL_URI";
 
@@ -189,16 +189,16 @@
    * Returns where to write the application descriptor.
    * @return the application descriptor file
    */
-  public File getDeploymentDescriptorFile() {
-    return deploymentDescriptorFile;
+  public File getAppDescriptorFile() {
+    return appDescriptorFile;
   }
 
   /**
    * Specifies where to write the application descriptor.
-   * @param deploymentDescriptorFile the application descriptor file
+   * @param appDescriptorFile the application descriptor file
    */
-  public void setDeploymentDescriptorFile(File deploymentDescriptorFile) {
-    this.deploymentDescriptorFile = deploymentDescriptorFile;
+  public void setAppDescriptorFile(File appDescriptorFile) {
+    this.appDescriptorFile = appDescriptorFile;
   }
 
   public ProblemHandler getProblemHandler() {
@@ -213,89 +213,65 @@
   }
 
   public void generateWsdlService(BpelProcessDefinition process) {
-    // generate the binding and service documents
-    ServiceDefinitionBuilder serviceDefinitionBuilder = new ServiceDefinitionBuilder();
-    serviceDefinitionBuilder.visit(process);
-
-    // write required interface files
     WSDLWriter wsdlWriter = WsdlUtil.getFactory().newWSDLWriter();
 
-    Map interfaceFiles = serviceDefinitionBuilder.getInterfaceFiles();
-    for (Iterator i = interfaceFiles.entrySet().iterator(); i.hasNext();) {
-      Map.Entry interfaceEntry = (Map.Entry) i.next();
-      File interfaceFile = (File) interfaceEntry.getKey();
-      Definition interfaceDefinition = (Definition) interfaceEntry.getValue();
-
-      // write interface file
-      try {
-        WsdlUtil.writeFile(interfaceFile, interfaceDefinition, wsdlWriter);
-        log.debug("wrote interface definition: " + interfaceFile.getName());
-      }
-      catch (WSDLException e) {
-        problemHandler.add(new Problem(Problem.LEVEL_ERROR,
-            "could not write interface definition: " + interfaceFile, e));
-      }
-    }
+    // generate the binding and service documents
+    ServiceDefinitionBuilder serviceDefinitionBuilder = new ServiceDefinitionBuilder(wsdlWriter);
+    serviceDefinitionBuilder.visit(process);
+    Definition serviceDefinition = serviceDefinitionBuilder.getServiceDefinition();
 
-    // write binding files
+    // write the binding files
     StringBuffer bindingFileNameBuffer = new StringBuffer(bindingFilesPrefix);
     int bindingCount = 0;
 
-    Definition serviceDefinition = serviceDefinitionBuilder.getServiceDefinition();
     for (Iterator i = serviceDefinition.getImports().values().iterator(); i.hasNext();) {
       List bindingImports = (List) i.next();
       assert bindingImports.size() == 1 : bindingImports.size();
 
+      Import bindingImport = (Import) bindingImports.get(0);
+
       // format binding filename
       bindingFileNameBuffer.setLength(bindingFilesPrefix.length());
       String bindingFileName = bindingFileNameBuffer.append(++bindingCount).append(
           bindingFilesSuffix).toString();
-
-      // fill import location
-      Import bindingImport = (Import) bindingImports.get(0);
       bindingImport.setLocationURI(bindingFileName);
 
-      // write binding file
-      File bindingFile = new File(wsdlDirectory, bindingFileName);
+      // write the binding wsdl to the output dir
       try {
-        WsdlUtil.writeFile(bindingFile, bindingImport.getDefinition(), wsdlWriter);
-        log.debug("wrote binding definition: " + bindingFile.getName());
+        WsdlUtil.writeFile(new File(wsdlDirectory, bindingFileName), bindingImport.getDefinition(),
+            wsdlWriter);
+        log.info("wrote binding definition: " + bindingFileName);
       }
       catch (WSDLException e) {
         problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not write binding definition: "
-            + bindingFile, e));
+            + bindingFileName, e));
+        return;
       }
     }
 
-    // write service file
-    File serviceFile = new File(wsdlDirectory, serviceFileName);
+    // write the service wsdl to the output dir
     try {
-      WsdlUtil.writeFile(serviceFile, serviceDefinition, wsdlWriter);
-      log.debug("wrote service definition: " + serviceFile.getName());
+      WsdlUtil.writeFile(new File(wsdlDirectory, serviceFileName), serviceDefinition, wsdlWriter);
+      log.info("wrote service definition: " + serviceFileName);
     }
     catch (WSDLException e) {
       problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not write service definition: "
-          + serviceFile, e));
+          + serviceFileName, e));
+      return;
     }
 
-    // write deployment descriptor, if requested
-    if (deploymentDescriptorFile != null) {
-      DeploymentDescriptor deploymentDescriptor = serviceDefinitionBuilder.getDeploymentDescriptor();
-
-      // transform descriptor to xml format
-      Element descriptorElem = XmlUtil.createElement(BpelConstants.NS_DEPLOYMENT_DESCRIPTOR,
-          BpelConstants.ELEM_BPEL_DEPLOYMENT);
-      DeploymentDescriptorWriter.getInstance().write(deploymentDescriptor, descriptorElem);
+    // write the app descriptor to the output dir
+    Element descriptorElem = XmlUtil.createElement(BpelConstants.NS_APP_DESCRIPTOR,
+        BpelConstants.ELEM_BPEL_APPLICATION);
+    AppDescriptorWriter.getInstance().write(serviceDefinitionBuilder.getAppDescriptor(),
+        descriptorElem);
 
-      // write descriptor file
       try {
-        XmlUtil.writeFile(descriptorElem, deploymentDescriptorFile);
-        log.debug("wrote deployment descriptor: " + deploymentDescriptorFile.getName());
+      XmlUtil.writeFile(descriptorElem, appDescriptorFile);
       }
       catch (IOException e) {
-        problemHandler.add(new Problem(Problem.LEVEL_ERROR,
-            "could not write deployment descriptor: " + deploymentDescriptorFile, e));
-      }
+      problemHandler.add(new Problem(Problem.LEVEL_ERROR, "could not write app descriptor: "
+          + appDescriptorFile, e));
     }
   }
 
@@ -308,22 +284,20 @@
     return def;
   }
 
-  protected Definition generateServiceDefinition(BpelProcessDefinition processDefinition) {
-    return createDefinition(processDefinition.getTargetNamespace());
+  protected Definition generateServiceDefinition(BpelProcessDefinition process) {
+    return createDefinition(process.getTargetNamespace());
   }
 
-  protected String generateServiceLocalName(BpelProcessDefinition processDefinition,
+  protected String generateServiceLocalName(BpelProcessDefinition process,
       Definition serviceDefinition) {
-    return processDefinition.getName() + "Service";
+    return process.getName() + "Service";
   }
 
-  protected DeploymentDescriptor generateDeploymentDescriptor(
-      BpelProcessDefinition processDefinition) {
-    DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
-    deploymentDescriptor.setName(processDefinition.getName());
-    deploymentDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
-    deploymentDescriptor.setVersion(new Integer(processDefinition.getVersion()));
-    return deploymentDescriptor;
+  protected AppDescriptor generateDeploymentDescriptor(BpelProcessDefinition processDefinition) {
+    AppDescriptor appDescriptor = new AppDescriptor();
+    appDescriptor.setName(processDefinition.getName());
+    appDescriptor.setTargetNamespace(processDefinition.getTargetNamespace());
+    return appDescriptor;
   }
 
   private static Definition getBindingDefinition(Definition serviceDefinition,
@@ -393,8 +367,9 @@
     binding.addExtensibilityElement(soapBinding);
 
     // operations
-    for (Iterator i = portType.getOperations().iterator(); i.hasNext();) {
-      Operation operation = (Operation) i.next();
+    Iterator operationIt = portType.getOperations().iterator();
+    while (operationIt.hasNext()) {
+      Operation operation = (Operation) operationIt.next();
       BindingOperation bindingOperation = generateBindingOperation(operation, bindingDefinition,
           style);
       binding.addBindingOperation(bindingOperation);
@@ -416,8 +391,9 @@
      * BP 1.2 R2203: An rpc-literal binding MUST refer, in its soapbind:body element(s), only to
      * wsdl:part element(s) that have been defined using the type attribute
      */
-    for (Iterator i = portType.getOperations().iterator(); i.hasNext();) {
-      Operation operation = (Operation) i.next();
+    Iterator operationIt = portType.getOperations().iterator();
+    while (operationIt.hasNext()) {
+      Operation operation = (Operation) operationIt.next();
 
       // input message
       Input input = operation.getInput();
@@ -433,8 +409,9 @@
   }
 
   private static boolean containsTypePart(Message message) {
-    for (Iterator i = message.getParts().values().iterator(); i.hasNext();) {
-      Part part = (Part) i.next();
+    Iterator partIt = message.getParts().values().iterator();
+    while (partIt.hasNext()) {
+      Part part = (Part) partIt.next();
       if (part.getTypeName() != null)
         return true;
     }
@@ -465,8 +442,9 @@
       bindOperation.setBindingOutput(bindOutput);
 
       // faults
-      for (Iterator i = operation.getFaults().values().iterator(); i.hasNext();) {
-        Fault fault = (Fault) i.next();
+      Iterator faultIt = operation.getFaults().values().iterator();
+      while (faultIt.hasNext()) {
+        Fault fault = (Fault) faultIt.next();
         BindingFault bindFault = generateBindingFault(fault, bindingDefinition);
         bindOperation.addBindingFault(bindFault);
       }
@@ -502,8 +480,9 @@
       soapBody.setNamespaceURI(generateRpcBodyNamespace(input, bindingDefinition));
       soapBody.setParts(getRpcBodyPartNames(input.getMessage()));
     }
-    else
+    else {
       soapBody.setParts(getDocumentBodyPartNames(input.getMessage()));
+    }
 
     // binding input
     BindingInput bindInput = bindingDefinition.createBindingInput();
@@ -522,8 +501,9 @@
      * wsdl:part element(s) that have been defined using the type attribute
      */
     Map parts = message.getParts();
-    for (Iterator i = parts.values().iterator(); i.hasNext();) {
-      Part part = (Part) i.next();
+    Iterator partIt = parts.values().iterator();
+    while (partIt.hasNext()) {
+      Part part = (Part) partIt.next();
       if (part.getTypeName() != null)
         partNames.add(part.getName());
     }
@@ -553,8 +533,9 @@
      * 
      * Corollary: the first element part is to be listed in the parts attribute
      */
-    for (Iterator i = parts.values().iterator(); i.hasNext();) {
-      Part part = (Part) i.next();
+    Iterator partIt = parts.values().iterator();
+    while (partIt.hasNext()) {
+      Part part = (Part) partIt.next();
       if (part.getElementName() != null)
         return Collections.singletonList(part.getName());
     }
@@ -571,8 +552,9 @@
       soapBody.setNamespaceURI(generateRpcBodyNamespace(output, bindingDefinition));
       soapBody.setParts(getRpcBodyPartNames(output.getMessage()));
     }
-    else
+    else {
       soapBody.setParts(getDocumentBodyPartNames(output.getMessage()));
+    }
 
     // binding output
     BindingOutput bindOutput = bindingDefinition.createBindingOutput();
@@ -634,9 +616,9 @@
     return port;
   }
 
-  private static String generateName(String base, Set existingNames) {
-    StringBuffer nameBuffer = new StringBuffer(base);
-    int baseLength = base.length();
+  private static String generateName(String baseText, Set existingNames) {
+    StringBuffer nameBuffer = new StringBuffer(baseText);
+    int baseLength = baseText.length();
     for (int i = 2; i < Integer.MAX_VALUE; i++) {
       // append a natural number to the base text
       String altName = nameBuffer.append(i).toString();
@@ -648,31 +630,27 @@
       // remove appended number
       nameBuffer.setLength(baseLength);
     }
-    throw new Error("could not generate name from base: " + base);
+    throw new RuntimeException("could not generate name: base=" + baseText);
   }
 
-  protected PartnerLinkDescriptor generatePartnerLinkDescriptor(PartnerLinkDefinition partnerLink,
+  protected AppPartnerLink generatePartnerLinkDescriptor(PartnerLinkDefinition partnerLink,
       Service service, Port port) {
-    MyRoleDescriptor myRoleDescriptor = new MyRoleDescriptor();
-    myRoleDescriptor.setService(service.getQName());
-    myRoleDescriptor.setPort(port.getName());
-
-    PartnerLinkDescriptor partnerLinkDescriptor = new PartnerLinkDescriptor();
-    partnerLinkDescriptor.setName(partnerLink.getName());
-    partnerLinkDescriptor.setMyRole(myRoleDescriptor);
-    return partnerLinkDescriptor;
-  }
-
-  protected ServiceCatalog generateServiceCatalog(DeploymentDescriptor deploymentDescriptor) {
-    return CentralCatalog.getConfigurationInstance();
+    AppMyRole appMyRole = new AppMyRole();
+    appMyRole.setService(service.getQName());
+    appMyRole.setPort(port.getName());
+
+    AppPartnerLink appPartnerLink = new AppPartnerLink();
+    appPartnerLink.setName(partnerLink.getName());
+    appPartnerLink.setMyRole(appMyRole);
+    return appPartnerLink;
   }
 
   public void deleteGeneratedFiles() {
     // recursively delete wsdl files
     deleteWsdlFile(new File(wsdlDirectory, serviceFileName));
-    // delete deployment descriptor
-    if (FileUtil.clean(deploymentDescriptorFile))
-      log.info("deleted: " + deploymentDescriptorFile);
+    // delete descriptor
+    if (appDescriptorFile.delete())
+      log.info("deleted: " + appDescriptorFile);
   }
 
   private static void deleteWsdlFile(File file) {
@@ -686,7 +664,7 @@
     }
 
     // delete the current file first
-    if (FileUtil.clean(file))
+    if (file.delete())
       log.info("deleted: " + file);
 
     // deal with imported files
@@ -695,23 +673,23 @@
 
       for (Iterator i = importList.iterator(); i.hasNext();) {
         javax.wsdl.Import _import = (javax.wsdl.Import) i.next();
-        deleteSourceWsdlFile(_import.getDefinition());
+        deleteFromFileSystem(_import.getDefinition());
       }
     }
   }
 
-  private static void deleteSourceWsdlFile(Definition def) {
-    String baseLocation = def.getDocumentBaseURI();
+  private static void deleteFromFileSystem(Definition def) {
+    String location = def.getDocumentBaseURI();
     try {
-      URI baseUri = new URI(baseLocation);
+      URI uri = new URI(location);
 
       // easy way out: not a file
-      if (!"file".equalsIgnoreCase(baseUri.getScheme()))
+      if (!"file".equalsIgnoreCase(uri.getScheme()))
         return;
 
       // delete the base file first
-      File file = new File(baseUri);
-      if (FileUtil.clean(file))
+      File file = new File(uri);
+      if (file.delete())
         log.info("deleted: " + file);
 
       // deal with imported files
@@ -720,12 +698,12 @@
 
         for (Iterator i = importList.iterator(); i.hasNext();) {
           javax.wsdl.Import _import = (javax.wsdl.Import) i.next();
-          deleteSourceWsdlFile(_import.getDefinition());
+          deleteFromFileSystem(_import.getDefinition());
         }
       }
     }
     catch (URISyntaxException e) {
-      log.debug("document base is not a valid uri: " + baseLocation, e);
+      log.debug("document base is not a valid uri: " + location, e);
     }
   }
 
@@ -734,13 +712,18 @@
     private Definition serviceDefinition;
     private Service service;
 
-    private DeploymentDescriptor deploymentDescriptor;
-    private ScopeDescriptor topmostScopeDescriptor;
+    private AppDescriptor appDescriptor;
+    private AppScope topAppScope;
 
     private URI processLocationUri;
     private ImportDefinition importDefinition;
 
-    private final Map interfaceFiles = new HashMap();
+    private final WSDLWriter wsdlWriter;
+    private final Set writtenInterfaceFiles = new HashSet();
+
+    ServiceDefinitionBuilder(WSDLWriter wsdlWriter) {
+      this.wsdlWriter = wsdlWriter;
+    }
 
     public void visit(BpelProcessDefinition processDefinition) {
       // enclosing definition
@@ -766,39 +749,35 @@
         processLocationUri = new URI(processLocation);
       }
       catch (URISyntaxException e) {
-        problemHandler.add(new Problem(Problem.LEVEL_WARNING, "process location is not a uri: "
+        problemHandler.add(new Problem(Problem.LEVEL_WARNING, "process location is not an uri: "
             + processLocation, e));
         processLocationUri = URI.create("");
       }
 
       // app descriptor
-      deploymentDescriptor = generateDeploymentDescriptor(processDefinition);
-      topmostScopeDescriptor = deploymentDescriptor;
+      appDescriptor = generateDeploymentDescriptor(processDefinition);
+      topAppScope = appDescriptor;
 
       // propagate visit
-      propagate(processDefinition.getGlobalScope());
-
-      // service catalog
-      ServiceCatalog serviceCatalog = generateServiceCatalog(deploymentDescriptor);
-      deploymentDescriptor.setServiceCatalog(serviceCatalog);
+      visitInternal(processDefinition.getGlobalScope());
     }
 
     public void visit(Scope scope) {
-      ScopeDescriptor scopeDescriptor = new ScopeDescriptor();
-      scopeDescriptor.setName(scope.getName());
+      AppScope appScope = new AppScope();
+      appScope.setName(scope.getName());
 
-      ScopeDescriptor parentScopeDescriptor = topmostScopeDescriptor;
-      parentScopeDescriptor.addScope(scopeDescriptor);
+      AppScope parentAppScope = topAppScope;
+      parentAppScope.addScope(appScope);
 
-      // push scope to stack
-      topmostScopeDescriptor = scopeDescriptor;
+      // add stack frame
+      topAppScope = appScope;
       // propagate visit
-      propagate(scope);
-      // pop scope from stack
-      topmostScopeDescriptor = parentScopeDescriptor;
+      visitInternal(scope);
+      // remove stack frame
+      topAppScope = parentAppScope;
     }
 
-    private void propagate(Scope scope) {
+    private void visitInternal(Scope scope) {
       for (Iterator i = scope.getPartnerLinks().values().iterator(); i.hasNext();) {
         PartnerLinkDefinition partnerLink = (PartnerLinkDefinition) i.next();
         try {
@@ -813,16 +792,12 @@
       scope.getActivity().accept(this);
     }
 
-    Map getInterfaceFiles() {
-      return interfaceFiles;
-    }
-
     Definition getServiceDefinition() {
       return serviceDefinition;
     }
 
-    DeploymentDescriptor getDeploymentDescriptor() {
-      return deploymentDescriptor;
+    AppDescriptor getAppDescriptor() {
+      return appDescriptor;
     }
 
     private void visit(PartnerLinkDefinition partnerLink) throws WSDLException {
@@ -862,7 +837,7 @@
         bindingDefinition.addImport(interfaceImport);
 
         // write interface definition, if read from a relative location
-        addInterfaceDefinition(interfaceImport, wsdlDirectory);
+        writeInterfaceDefinition(interfaceImport, wsdlDirectory);
       }
 
       // binding
@@ -882,41 +857,45 @@
       service.addPort(port);
 
       // partner link in app descriptor
-      topmostScopeDescriptor.addPartnerLink(generatePartnerLinkDescriptor(partnerLink, service,
-          port));
+      topAppScope.addPartnerLink(generatePartnerLinkDescriptor(partnerLink, service, port));
     }
 
-    private void addInterfaceDefinition(Import _import, File baseDirectory) throws WSDLException {
-      String location = _import.getLocationURI();
+    private void writeInterfaceDefinition(Import _import, File baseDirectory) throws WSDLException {
+      String importLocation = _import.getLocationURI();
 
-      try {
         // if location is absolute, there is no need to write a copy
-        if (new URI(location).isAbsolute())
+      try {
+        if (new URI(importLocation).isAbsolute())
           return;
       }
       catch (URISyntaxException e) {
         problemHandler.add(new Problem(Problem.LEVEL_WARNING,
-            "import location is not a valid uri: " + location, e));
-        // fall through, try and write the file
+            "import location is not a valid uri: " + importLocation, e));
+        // fall through, give a chance to write the file
       }
 
-      // place the definition in a location relative to the base directory
-      File importFile = new File(baseDirectory, location);
+      // write the interface wsdl file to the output directory
+      Definition interfaceDefinition = _import.getDefinition();
+      File interfaceFile = new File(baseDirectory, importLocation);
 
-      // check the existing files to suppress duplicates
-      if (!interfaceFiles.containsKey(importFile)) {
-        Definition definition = _import.getDefinition();
-        interfaceFiles.put(importFile, definition);
+      if (!writtenInterfaceFiles.contains(interfaceFile)) {
+        WsdlUtil.writeFile(interfaceFile, interfaceDefinition, wsdlWriter);
+        writtenInterfaceFiles.add(interfaceFile);
+
+        log.info("wrote interface definition: locationUri="
+            + importLocation
+            + ", basePath="
+            + baseDirectory);
+      }
 
-        // add imported documents as well
-        baseDirectory = importFile.getParentFile();
-        for (Iterator l = definition.getImports().values().iterator(); l.hasNext();) {
+      // deal with imported documents
+      baseDirectory = interfaceFile.getParentFile();
+      for (Iterator l = interfaceDefinition.getImports().values().iterator(); l.hasNext();) {
           List imports = (List) l.next();
 
           for (int i = 0, n = imports.size(); i < n; i++) {
-            Import recursiveImport = (Import) imports.get(i);
-            addInterfaceDefinition(recursiveImport, baseDirectory);
-          }
+          _import = (Import) imports.get(i);
+          writeInterfaceDefinition(_import, baseDirectory);
         }
       }
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding1.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding1.wsdl
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding1.wsdl	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding1.wsdl	2009-02-06 09:17:20.000000000 +0100
@@ -1,20 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
-  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
-
-  <import namespace="urn:samples:atm" location="interface/rpc.wsdl" />
-
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  <import namespace="urn:samples:atm" location="interface/rpc.wsdl">
+    </import>
   <binding name="atmBinding" type="tns:atm">
-
     <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
-
     <operation name="logon">
       <soap:operation soapAction="urn:samples:atm#logon" />
       <input>
         <soap:body use="literal" namespace="urn:samples:atm" />
       </input>
     </operation>
-
     <operation name="deposit">
       <soap:operation soapAction="urn:samples:atm#deposit" />
       <input>
@@ -24,7 +19,6 @@
         <soap:body use="literal" namespace="urn:samples:atm" />
       </output>
     </operation>
-
     <operation name="withdraw">
       <soap:operation soapAction="urn:samples:atm#withdraw" />
       <input>
@@ -37,7 +31,5 @@
         <soap:fault name="notEnoughFunds" use="literal" />
       </fault>
     </operation>
-
   </binding>
-
 </definitions>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding2.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding2.wsdl
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding2.wsdl	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/binding2.wsdl	2009-02-06 09:17:20.000000000 +0100
@@ -1,14 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="http://jbpm.org/examples/trip/"
-  xmlns:tns="http://jbpm.org/examples/trip/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
-
-  <import namespace="http://jbpm.org/examples/trip/" location="interface/doc.wsdl" />
-
+<definitions targetNamespace="http://jbpm.org/examples/trip/" xmlns:tns="http://jbpm.org/examples/trip/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  <import namespace="http://jbpm.org/examples/trip/" location="interface/doc.wsdl">
+    </import>
   <binding name="TravelAgentBinding" type="tns:TravelAgent">
-
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
-
     <operation name="purchaseTrip">
       <soap:operation soapAction="http://jbpm.org/examples/trip/#purchaseTrip" />
       <input>
@@ -18,7 +13,5 @@
         <soap:body use="literal" />
       </output>
     </operation>
-
   </binding>
-
 </definitions>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools: hello-process.zip
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools: hello.war
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/ModuleDeployerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/ModuleDeployerTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/ModuleDeployerTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/ModuleDeployerTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -14,50 +14,55 @@
  */
 package org.jbpm.bpel.tools;
 
+import java.io.File;
 import java.net.HttpURLConnection;
 import java.net.URL;
 
+import junit.framework.Test;
 import junit.framework.TestCase;
+import junit.framework.TestSuite;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/12 00:49:37 $
+ * @version $Revision: 1800 $ $Date: 2007/06/05 20:50:18 $
  */
 public class ModuleDeployerTest extends TestCase {
 
   private ModuleDeployHelper deployHelper = new ModuleDeployHelper();
-  private URL remoteUrl;
+  private URL moduleLocator;
 
-  private static final String moduleLocation = ModuleDeployerTest.class.getResource("module.war")
-      .toExternalForm();
+  private static final String modulePath = ModuleDeployerTest.class.getResource("hello.war")
+      .getPath();
 
   protected void setUp() throws Exception {
-    remoteUrl = new URL("http://localhost:8080/module/text?wsdl");
+    moduleLocator = new URL("http://localhost:8080/hello/greeter");
 
     // deploy module
-    deployHelper.deploy(moduleLocation);
+    deployHelper.deploy(modulePath);
   }
 
   public void testDeploy() throws Exception {
     // verify web service is available
-    HttpURLConnection httpConnection = (HttpURLConnection) remoteUrl.openConnection();
+    HttpURLConnection httpConnection = (HttpURLConnection) moduleLocator.openConnection();
     try {
-      assertEquals(HttpURLConnection.HTTP_OK, httpConnection.getResponseCode());
+      // web services bound to SOAP over HTTP require the POST method
+      // however, getting a 405 confirms the service is active
+      assertEquals(HttpURLConnection.HTTP_BAD_METHOD, httpConnection.getResponseCode());
     }
     finally {
       httpConnection.disconnect();
     }
 
     // undeploy module
-    deployHelper.undeploy(moduleLocation);
+    deployHelper.undeploy(modulePath);
   }
 
   public void testUndeploy() throws Exception {
     // undeploy module
-    deployHelper.undeploy(moduleLocation);
+    deployHelper.undeploy(modulePath);
 
     // verify web application is unavailable
-    HttpURLConnection httpConnection = (HttpURLConnection) remoteUrl.openConnection();
+    HttpURLConnection httpConnection = (HttpURLConnection) moduleLocator.openConnection();
     try {
       assertEquals(HttpURLConnection.HTTP_NOT_FOUND, httpConnection.getResponseCode());
     }
@@ -65,4 +70,13 @@
       httpConnection.disconnect();
     }
   }
+
+  public static Test suite() {
+    // deploy process
+    File processFile = new File(ModuleDeployerTest.class.getResource("hello-process.zip").getPath());
+    ProcessDeployer processDeployer = new ProcessDeployer();
+    processDeployer.deployProcess(processFile);
+
+    return new TestSuite(ModuleDeployerTest.class);
+  }
 }
Only in jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools: module.war
Only in jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools: process.zip
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/service.wsdl jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/service.wsdl
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/service.wsdl	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/service.wsdl	2009-02-06 09:17:20.000000000 +0100
@@ -1,21 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:atmProcess" xmlns:tns="urn:samples:atmProcess"
-  xmlns:bindingNS3="http://jbpm.org/examples/trip/" xmlns:bindingNS2="urn:samples:atm"
-  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
-
-  <import namespace="urn:samples:atm" location="binding1.wsdl" />
-  <import namespace="http://jbpm.org/examples/trip/" location="binding2.wsdl" />
-
+<definitions targetNamespace="urn:samples:atmProcess" xmlns:tns="urn:samples:atmProcess" xmlns:bindingNS3="http://jbpm.org/examples/trip/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:bindingNS2="urn:samples:atm" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  <import namespace="urn:samples:atm" location="binding1.wsdl">
+    </import>
+  <import namespace="http://jbpm.org/examples/trip/" location="binding2.wsdl">
+    </import>
   <service name="atmService">
-
     <port name="agentPort" binding="bindingNS3:TravelAgentBinding">
       <soap:address location="REPLACE_WITH_ACTUAL_URI" />
     </port>
-
     <port name="frontPort" binding="bindingNS2:atmBinding">
       <soap:address location="REPLACE_WITH_ACTUAL_URI" />
     </port>
-
   </service>
-
 </definitions>
Only in jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools: ToolTests.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebAppDescriptorToolTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebAppDescriptorToolTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebAppDescriptorToolTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebAppDescriptorToolTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -19,21 +19,22 @@
 
 import javax.xml.parsers.DocumentBuilder;
 
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 import org.jbpm.bpel.integration.server.IntegrationConfigurator;
+import org.jbpm.bpel.integration.server.IntegrationConsoleServlet;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
 import org.jbpm.bpel.xml.util.XmlUtil;
 
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/25 13:07:08 $
+ * @version $Revision: 1800 $ $Date: 2007/09/11 06:06:18 $
  */
 public class WebAppDescriptorToolTest extends TestCase {
 
@@ -62,7 +63,8 @@
           WebServicesDescriptorTool.ELEM_PORT_COMPONENT); p.hasNext(); p.next())
         servletCount++;
     }
-    assertEquals(servletCount, XmlUtil.countElements(webAppElem, NS_J2EE,
+    // the integration console counts, too
+    assertEquals(++servletCount, XmlUtil.countElements(webAppElem, NS_J2EE,
         WebAppDescriptorTool.ELEM_SERVLET));
 
     // servlet mapping
@@ -108,7 +110,7 @@
         // url pattern
         Element urlPatternElem = XmlUtil.getElement(servletMappingElem, NS_J2EE,
             WebAppDescriptorTool.ELEM_URL_PATTERN);
-        assertEquals('/' + servletName.substring(0, servletName.length() - "Servlet".length()),
+        assertEquals(servletName.substring(0, servletName.length() - "Servlet".length()),
             DatatypeUtil.toString(urlPatternElem));
       }
     }
@@ -148,6 +150,27 @@
     assertEquals(IntegrationConfigurator.class.getName(), DatatypeUtil.toString(listenerClassElem));
   }
 
+  public void testGenerateIntegrationConsoleServlet() {
+    Element webAppElem = webAppDoc.getDocumentElement();
+
+    // servlet
+    String servletName = WebAppDescriptorTool.INTEGRATION_CONSOLE_NAME;
+    Element servletElem = findServlet(webAppElem, servletName);
+
+    // servlet class
+    Element servletClassElem = XmlUtil.getElement(servletElem, NS_J2EE,
+        WebAppDescriptorTool.ELEM_SERVLET_CLASS);
+    assertEquals(IntegrationConsoleServlet.class.getName(), DatatypeUtil.toString(servletClassElem));
+
+    // servlet mapping
+    Element servletMappingElem = findServletMapping(webAppElem, servletName);
+
+    // url pattern
+    Element urlPatternElem = XmlUtil.getElement(servletMappingElem, NS_J2EE,
+        WebAppDescriptorTool.ELEM_URL_PATTERN);
+    assertEquals(servletName, DatatypeUtil.toString(urlPatternElem));
+  }
+
   public static Test suite() {
     return new Setup();
   }
@@ -160,7 +183,8 @@
 
     protected void setUp() throws Exception {
       DocumentBuilder documentBuilder = XmlUtil.getDocumentBuilder();
-      File webServicesFile = FileUtil.toFile(WebAppDescriptorToolTest.class, "webservices.xml");
+      File webServicesFile = new File(WebAppDescriptorTool.class.getResource("webservices.xml")
+          .getPath());
       webServicesDoc = documentBuilder.parse(webServicesFile);
 
       tool.setWebServicesDescriptorFile(webServicesFile);
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebModuleBuilderTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebModuleBuilderTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebModuleBuilderTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebModuleBuilderTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -14,8 +14,11 @@
  */
 package org.jbpm.bpel.tools;
 
+import java.io.File;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
@@ -26,96 +29,146 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.jbpm.JbpmConfiguration;
+import org.jbpm.JbpmContext;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
 import org.jbpm.jpdl.par.ProcessArchive;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:51 $
+ * @version $Revision: 1800 $ $Date: 2007/09/05 08:25:11 $
  */
 public class WebModuleBuilderTest extends TestCase {
 
-  private static WebModuleBuilder moduleBuilder;
-  private static ZipFile moduleZip;
+  private static File outputDirectory = new File(System.getProperty("java.io.tmpdir"),
+      "WebModuleGenerator");
+  private static BpelProcessDefinition processDefinition;
+  private static WebModuleBuilder builder;
+
+  public void testCallWsdlServiceGenerator() {
+    // service file
+    File wsdlDirectory = builder.getWsdlDirectory();
+    File serviceFile = new File(wsdlDirectory, builder.getWsdlServiceFileName());
+    assertTrue(serviceFile.exists());
+
+    // binding files
+    final String bindingFilesPrefix = builder.getWsdlBindingFilesPrefix();
+    final String bindingFilesSuffix = ".wsdl";
+
+    File[] bindingFiles = wsdlDirectory.listFiles(new PrefixSuffixFilter(bindingFilesPrefix,
+        bindingFilesSuffix));
+    assertEquals(1, bindingFiles.length);
+  }
 
-  public void testGeneratedFiles() throws IOException {
-    String wsdlPath = WebModuleBuilder.DIR_WEB_INF
-        + WebModuleBuilder.SEPARATOR
-        + WebModuleBuilder.DIR_WSDL
-        + WebModuleBuilder.SEPARATOR;
+  public void testCallJavaMappingGenerator() {
+    // jax-rpc mapping file
+    File mappingFile = builder.getJaxRpcMappingFile();
+    assertTrue(mappingFile.exists());
 
-    // wsdl service file
-    String serviceEntry = wsdlPath + moduleBuilder.getWsdlServiceFileName();
-    assertNotNull(moduleZip.getEntry(serviceEntry));
-
-    // wsdl binding files
-    String bindingEntryPrefix = wsdlPath + moduleBuilder.getWsdlBindingFilesPrefix();
-    int bindingCount = 0;
-    for (Enumeration e = moduleZip.entries(); e.hasMoreElements();) {
-      ZipEntry entry = (ZipEntry) e.nextElement();
-      if (entry.getName().startsWith(bindingEntryPrefix))
-        bindingCount++;
-    }
-    assertEquals(1, bindingCount);
-
-    // xml schema files
-    int schemaCount = 0;
-    for (Enumeration e = moduleZip.entries(); e.hasMoreElements();) {
-      ZipEntry entry = (ZipEntry) e.nextElement();
-      String entryName = entry.getName();
-      if (entryName.startsWith(wsdlPath) && entryName.endsWith(".xsd"))
-        schemaCount++;
+    // generated classes
+    File classesDirectory = builder.getClassesDirectory();
+    String[] packageSegments = builder.generateJavaMappingPackage().split("\\.");
+    for (int i = 0; i < packageSegments.length; i++) {
+      classesDirectory = new File(classesDirectory, packageSegments[i]);
+      assertTrue(classesDirectory.exists());
+    }
+    assertEquals(3, classesDirectory.list().length);
     }
-    assertEquals(1, schemaCount);
 
-    // deployment descriptor file
-    String deploymentDescriptorEntry = WebModuleBuilder.DIR_WEB_INF
-        + WebModuleBuilder.SEPARATOR
-        + WebModuleBuilder.DIR_CLASSES
-        + WebModuleBuilder.SEPARATOR
-        + moduleBuilder.getDeploymentDescriptorFile().getName();
-    assertNotNull(moduleZip.getEntry(deploymentDescriptorEntry));
+  public void testAddGeneratedFiles() throws IOException {
+    ZipFile webModule = new ZipFile(builder.getWebModuleFile());
+
+    try {
+      // wsdl files
+      File wsdlDirectory = builder.getWsdlDirectory();
+      StringBuffer wsdlPathBuffer = new StringBuffer().append(WebModuleBuilder.DIR_WEB_INF).append(
+          WebModuleBuilder.SEPARATOR).append(wsdlDirectory.getName()).append(
+          WebModuleBuilder.SEPARATOR);
+      final int wsdlPathBaseLength = wsdlPathBuffer.length();
+
+      // service file
+      String serviceEntry = wsdlPathBuffer.append(builder.getWsdlServiceFileName()).toString();
+      assertNotNull(webModule.getEntry(serviceEntry));
+
+      // binding files
+      final String bindingFilesPrefix = builder.getWsdlBindingFilesPrefix();
+      final String bindingFilesSuffix = ".wsdl";
+
+      File[] bindingFiles = wsdlDirectory.listFiles(new PrefixSuffixFilter(bindingFilesPrefix,
+          bindingFilesSuffix));
+
+      for (int i = 0; i < bindingFiles.length; i++) {
+        wsdlPathBuffer.setLength(wsdlPathBaseLength);
+        String bindingEntry = wsdlPathBuffer.append(bindingFiles[i].getName()).toString();
+        assertNotNull(webModule.getEntry(bindingEntry));
+      }
 
     // jax-rpc mapping file
-    String jaxrpcMappingEntry = WebModuleBuilder.DIR_WEB_INF
+      String jaxRpcMappingEntry = WebModuleBuilder.DIR_WEB_INF
         + WebModuleBuilder.SEPARATOR
-        + moduleBuilder.getJaxrpcMappingFile().getName();
-    assertNotNull(moduleZip.getEntry(jaxrpcMappingEntry));
+          + builder.getJaxRpcMappingFile().getName();
+      assertNotNull(webModule.getEntry(jaxRpcMappingEntry));
 
     // classes
     String classesPath = WebModuleBuilder.DIR_WEB_INF
         + WebModuleBuilder.SEPARATOR
         + WebModuleBuilder.DIR_CLASSES
         + WebModuleBuilder.SEPARATOR
-        + moduleBuilder.generateJavaMappingPackage().replace('.', WebModuleBuilder.SEPARATOR);
+          + builder.generateJavaMappingPackage().replace('.', WebModuleBuilder.SEPARATOR);
     int classCount = 0;
-    for (Enumeration entries = moduleZip.entries(); entries.hasMoreElements();) {
+      for (Enumeration entries = webModule.entries(); entries.hasMoreElements();) {
       ZipEntry entry = (ZipEntry) entries.nextElement();
-      String entryName = entry.getName();
-      if (entryName.startsWith(classesPath) && entryName.endsWith(".class"))
+        if (entry.getName().startsWith(classesPath))
         classCount++;
     }
-    assertEquals(12, classCount);
+      assertEquals(3, classCount);
+    }
+    finally {
+      webModule.close();
+    }
+  }
+
+  public void testAddUserProvidedFiles() throws IOException {
+    ZipFile webModule = new ZipFile(builder.getWebModuleFile());
 
-    // web services deployment descriptor
+    // web.xml
+    String webEntry = WebModuleBuilder.DIR_WEB_INF + WebModuleBuilder.SEPARATOR + "web.xml";
+    assertNotNull(webModule.getEntry(webEntry));
+
+    // webservices.xml
     String webservicesEntry = WebModuleBuilder.DIR_WEB_INF
         + WebModuleBuilder.SEPARATOR
-        + moduleBuilder.getWebServicesDescriptorFile().getName();
-    assertNotNull(moduleZip.getEntry(webservicesEntry));
-  }
+        + "webservices.xml";
+    assertNotNull(webModule.getEntry(webservicesEntry));
 
-  public void testUserProvidedFiles() throws IOException {
-    // web app deployment descriptor
-    String webEntry = WebModuleBuilder.DIR_WEB_INF
+    // bpel-application.xml
+    String bpelApplicationEntry = WebModuleBuilder.DIR_WEB_INF
         + WebModuleBuilder.SEPARATOR
-        + moduleBuilder.getWebAppDescriptorFile().getName();
-    assertNotNull(moduleZip.getEntry(webEntry));
+        + "classes"
+        + WebModuleBuilder.SEPARATOR
+        + "bpel-application.xml";
+    assertNotNull(webModule.getEntry(bpelApplicationEntry));
   }
 
   public static Test suite() {
     return new Setup();
   }
 
+  private static class PrefixSuffixFilter implements FilenameFilter {
+
+    private final String ext;
+    private final String base;
+
+    PrefixSuffixFilter(String base, String ext) {
+      this.ext = ext;
+      this.base = base;
+    }
+
+    public boolean accept(File dir, String name) {
+      return name.startsWith(base) && name.endsWith(ext);
+    }
+  }
+
   private static class Setup extends TestSetup {
 
     Setup() {
@@ -124,28 +177,43 @@
 
     protected void setUp() throws Exception {
       // build process archive
-      InputStream processStream = WebModuleBuilderTest.class.getResourceAsStream("process.zip");
+      URL processLocation = WebModuleBuilderTest.class.getResource("hello-process.zip");
+      assertNotNull(processLocation);
+
+      ProcessArchive processArchive;
+      InputStream processStream = processLocation.openStream();
       try {
-        // load process archive
-        ProcessArchive processArchive = new ProcessArchive(new ZipInputStream(processStream));
-        // read process definition
-        BpelProcessDefinition processDefinition = (BpelProcessDefinition) processArchive.parseProcessDefinition();
-        // call web module generator
-        moduleBuilder = new WebModuleBuilder();
-        moduleBuilder.buildModule(processDefinition);
-        assertEquals(0, moduleBuilder.getProblemHandler().getProblemCount());
-        // read module file
-        moduleZip = new ZipFile(moduleBuilder.getModuleFile());
+        processArchive = new ProcessArchive(new ZipInputStream(processStream));
       }
       finally {
         processStream.close();
       }
+
+      // read process definition
+      JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
+      try {
+        processDefinition = (BpelProcessDefinition) processArchive.parseProcessDefinition();
+      }
+      finally {
+        jbpmContext.close();
+      }
+
+      // prepare output directory
+      if (outputDirectory.exists())
+        FileUtil.deleteDirectory(outputDirectory);
+
+      outputDirectory.mkdir();
+
+      // call web module generator
+      builder = new WebModuleBuilder();
+      builder.setOutputDirectory(outputDirectory);
+      builder.generateWebModule(processDefinition);
+      assertEquals(0, builder.getProblemHandler().getProblemCount());
     }
 
     protected void tearDown() throws Exception {
-      moduleZip.close();
-      // comment if you want to see the generated file
-      moduleBuilder.getModuleFile().delete();
+      // comment if you want to see the generated files
+      FileUtil.deleteDirectory(outputDirectory);
     }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebServicesDescriptorToolTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebServicesDescriptorToolTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebServicesDescriptorToolTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WebServicesDescriptorToolTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -20,6 +20,7 @@
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.Service;
+import javax.wsdl.factory.WSDLFactory;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 
@@ -32,26 +33,25 @@
 import org.w3c.dom.Element;
 
 import org.jbpm.bpel.integration.server.SoapHandler;
-import org.jbpm.bpel.wsdl.xml.WsdlUtil;
 import org.jbpm.bpel.xml.util.DatatypeUtil;
 import org.jbpm.bpel.xml.util.XmlUtil;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/11/06 22:06:25 $
+ * @version $Revision: 1800 $ $Date: 2007/09/11 06:06:18 $
  */
 public class WebServicesDescriptorToolTest extends TestCase {
 
   private static WebServicesDescriptorTool tool = new WebServicesDescriptorTool();
 
-  private static Definition serviceDefinition;
-  private static Document webServicesDoc;
+  private static Definition serviceDef;
+  private static Document webservicesDoc;
   private static Document jaxrpcMappingDoc;
 
   private static final String NS_J2EE = WebServicesDescriptorTool.NS_J2EE;
 
   public void testGenerateWebservicesDescriptor() {
-    Element webservicesElem = webServicesDoc.getDocumentElement();
+    Element webservicesElem = webservicesDoc.getDocumentElement();
     assertEquals(NS_J2EE, webservicesElem.getNamespaceURI());
     assertEquals(WebServicesDescriptorTool.ELEM_WEBSERVICES, webservicesElem.getLocalName());
 
@@ -60,13 +60,13 @@
         webservicesElem.getAttribute(WebServicesDescriptorTool.ATTR_VERSION));
 
     // webservice descriptions
-    assertEquals(serviceDefinition.getServices().size(), XmlUtil.countElements(webservicesElem,
-        NS_J2EE, WebServicesDescriptorTool.ELEM_WEBSERVICE_DESCRIPTION));
+    assertEquals(serviceDef.getServices().size(), XmlUtil.countElements(webservicesElem, NS_J2EE,
+        WebServicesDescriptorTool.ELEM_WEBSERVICE_DESCRIPTION));
   }
 
   public void testGenerateWebserviceDescription() {
-    Service service = (Service) serviceDefinition.getServices().values().iterator().next();
-    Element descriptionElem = XmlUtil.getElement(webServicesDoc.getDocumentElement(), NS_J2EE,
+    Service service = (Service) serviceDef.getServices().values().iterator().next();
+    Element descriptionElem = XmlUtil.getElement(webservicesDoc.getDocumentElement(), NS_J2EE,
         WebServicesDescriptorTool.ELEM_WEBSERVICE_DESCRIPTION);
 
     // webservice description name
@@ -92,9 +92,9 @@
   }
 
   public void testGeneratePortComponent() {
-    Service service = (Service) serviceDefinition.getServices().values().iterator().next();
+    Service service = (Service) serviceDef.getServices().values().iterator().next();
     Element jaxrpcMappingElem = jaxrpcMappingDoc.getDocumentElement();
-    Element descriptionElem = XmlUtil.getElement(webServicesDoc.getDocumentElement(), NS_J2EE,
+    Element descriptionElem = XmlUtil.getElement(webservicesDoc.getDocumentElement(), NS_J2EE,
         WebServicesDescriptorTool.ELEM_WEBSERVICE_DESCRIPTION);
 
     for (Iterator i = XmlUtil.getElements(descriptionElem, NS_J2EE,
@@ -161,23 +161,26 @@
     }
 
     protected void setUp() throws Exception {
-      File wsdlFile = FileUtil.toFile(WebServicesDescriptorToolTest.class, "service.wsdl");
-      serviceDefinition = WsdlUtil.getFactory().newWSDLReader().readWSDL(wsdlFile.getPath());
+      File wsdlFile = getResourceFile("service.wsdl");
+      serviceDef = WSDLFactory.newInstance().newWSDLReader().readWSDL(wsdlFile.getPath());
 
       DocumentBuilder documentBuilder = XmlUtil.getDocumentBuilder();
-      File jaxrpcMappingFile = FileUtil.toFile(WebServicesDescriptorToolTest.class,
-          "jaxrpc-mapping.xml");
+      File jaxrpcMappingFile = getResourceFile("jaxrpc-mapping.xml");
       jaxrpcMappingDoc = documentBuilder.parse(jaxrpcMappingFile);
 
       tool.setWsdlFile(wsdlFile);
       tool.setJaxrpcMappingFile(jaxrpcMappingFile);
       tool.generateWebServicesDescriptor();
 
-      webServicesDoc = documentBuilder.parse(tool.getWebServicesDescriptorFile());
+      webservicesDoc = documentBuilder.parse(tool.getWebServicesDescriptorFile());
     }
 
     protected void tearDown() throws Exception {
       tool.getWebServicesDescriptorFile().delete();
     }
   }
+
+  private static File getResourceFile(String resource) {
+    return new File(WebServicesDescriptorTool.class.getResource(resource).getPath());
+  }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WscompileToolTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WscompileToolTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WscompileToolTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WscompileToolTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -27,14 +27,14 @@
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2008/02/05 05:37:34 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WscompileToolTest extends TestCase {
 
   private WscompileTool tool = new WscompileTool();
 
   protected void setUp() throws Exception {
-    tool.setWsdlFile(FileUtil.toFile(getClass(), "service.wsdl"));
+    tool.setWsdlFile(new File(WscompileToolTest.class.getResource("service.wsdl").getPath()));
   }
 
   public void testGenerateJavaMappingConfiguration() throws SAXException, IOException {
@@ -69,7 +69,6 @@
     }
     assertEquals(13, classesDirectory.list().length);
 
-    // comment out if you want to examine the generated files
-    tool.clean();
+    tool.deleteGeneratedFiles();
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WsdlServiceToolTest.java jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WsdlServiceToolTest.java
--- jpdl-3.2.3.GA/bpel/tools/src/test/java/org/jbpm/bpel/tools/WsdlServiceToolTest.java	2009-02-06 09:12:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/tools/src/test/java/org/jbpm/bpel/tools/WsdlServiceToolTest.java	2009-02-06 09:17:20.000000000 +0100
@@ -15,7 +15,7 @@
 package org.jbpm.bpel.tools;
 
 import java.io.File;
-import java.net.URL;
+import java.io.FilenameFilter;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -35,6 +35,7 @@
 import javax.wsdl.extensions.soap.SOAPBody;
 import javax.wsdl.extensions.soap.SOAPFault;
 import javax.wsdl.extensions.soap.SOAPOperation;
+import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 
 import junit.extensions.TestSetup;
@@ -46,36 +47,35 @@
 
 import com.ibm.wsdl.extensions.soap.SOAPConstants;
 
-import org.jbpm.bpel.deploy.DeploymentDescriptor;
-import org.jbpm.bpel.deploy.MyRoleDescriptor;
-import org.jbpm.bpel.deploy.PartnerLinkDescriptor;
+import org.jbpm.bpel.app.AppDescriptor;
+import org.jbpm.bpel.app.AppMyRole;
+import org.jbpm.bpel.app.AppPartnerLink;
 import org.jbpm.bpel.graph.def.BpelProcessDefinition;
-import org.jbpm.bpel.integration.catalog.CentralCatalog;
 import org.jbpm.bpel.integration.soap.SoapBindConstants;
 import org.jbpm.bpel.wsdl.xml.WsdlUtil;
+import org.jbpm.bpel.xml.AppDescriptorReader;
 import org.jbpm.bpel.xml.BpelReader;
-import org.jbpm.bpel.xml.DeploymentDescriptorReader;
 
 /**
  * @author Alejandro Guizar
- * @version $Revision: 1238 $ $Date: 2007/10/17 22:02:51 $
+ * @version $Revision: 1800 $ $Date: 2007/09/10 23:44:45 $
  */
 public class WsdlServiceToolTest extends TestCase {
 
   private static WsdlServiceTool tool = new WsdlServiceTool();
 
-  private static Map bindingDefinitions = new HashMap();
-  private static Definition serviceDefinition;
-  private static DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
+  private static Map bindingDefs = new HashMap();
+  private static Definition serviceDef;
+  private static AppDescriptor appDescriptor = new AppDescriptor();
 
   private static final String NS_ATM_FRONT = "urn:samples:atm";
   private static final String NS_ATM_PROCESS = "urn:samples:atmProcess";
   private static final String NS_TRAVEL_AGENT = "http://jbpm.org/examples/trip/";
 
   public void testGenerateBindingDefinitions() {
-    assertEquals(2, bindingDefinitions.size());
-    assertTrue(bindingDefinitions.containsKey(NS_ATM_FRONT));
-    assertTrue(bindingDefinitions.containsKey(NS_TRAVEL_AGENT));
+    assertEquals(2, bindingDefs.size());
+    assertTrue(bindingDefs.containsKey(NS_ATM_FRONT));
+    assertTrue(bindingDefs.containsKey(NS_TRAVEL_AGENT));
   }
 
   public void testGenerateBindingDefinition_rpc() {
@@ -253,8 +253,8 @@
   }
 
   public void testGenerateServiceDefinition() {
-    assertEquals(NS_ATM_PROCESS, serviceDefinition.getTargetNamespace());
-    List bindingImps = serviceDefinition.getImports(NS_ATM_FRONT);
+    assertEquals(NS_ATM_PROCESS, serviceDef.getTargetNamespace());
+    List bindingImps = serviceDef.getImports(NS_ATM_FRONT);
     assertEquals(1, bindingImps.size());
     Import bindingImp = (Import) bindingImps.get(0);
     assertEquals(NS_ATM_FRONT, bindingImp.getNamespaceURI());
@@ -291,34 +291,28 @@
   }
 
   public void testGenerateDeploymentDescriptor() {
-    assertEquals("atm", deploymentDescriptor.getName());
-    assertEquals(NS_ATM_PROCESS, deploymentDescriptor.getTargetNamespace());
-    assertNull(deploymentDescriptor.getVersion());
+    assertEquals("atm", appDescriptor.getName());
+    assertEquals(NS_ATM_PROCESS, appDescriptor.getTargetNamespace());
+    assertNull(appDescriptor.getVersion());
   }
 
   public void testGeneratePartnerLinkDescriptor_rpc() {
-    PartnerLinkDescriptor partnerLink = (PartnerLinkDescriptor) deploymentDescriptor.getPartnerLinks()
-        .get("frontEnd");
-    MyRoleDescriptor myRole = partnerLink.getMyRole();
+    AppPartnerLink partnerLink = (AppPartnerLink) appDescriptor.getPartnerLinks().get("frontEnd");
+    AppMyRole myRole = partnerLink.getMyRole();
     assertEquals(new QName(NS_ATM_PROCESS, "atmService"), myRole.getService());
     assertEquals("frontPort", myRole.getPort());
   }
 
   public void testGeneratePartnerLinkDescriptor_doc() {
-    PartnerLinkDescriptor partnerLink = (PartnerLinkDescriptor) deploymentDescriptor.getPartnerLinks()
+    AppPartnerLink partnerLink = (AppPartnerLink) appDescriptor.getPartnerLinks()
         .get("travelAgent");
-    MyRoleDescriptor myRole = partnerLink.getMyRole();
+    AppMyRole myRole = partnerLink.getMyRole();
     assertEquals(new QName(NS_ATM_PROCESS, "atmService"), myRole.getService());
     assertEquals("agentPort", myRole.getPort());
   }
 
-  public void testGenerateServiceCatalogs() {
-    CentralCatalog centralCatalog = CentralCatalog.getConfigurationInstance();
-    assertSame(centralCatalog, deploymentDescriptor.getServiceCatalog());
-  }
-
   private Definition getRpcBindingDefinition() {
-    return (Definition) bindingDefinitions.get(NS_ATM_FRONT);
+    return (Definition) bindingDefs.get(NS_ATM_FRONT);
   }
 
   private Binding getRpcBinding() {
@@ -326,7 +320,7 @@
   }
 
   private Definition getDocBindingDefinition() {
-    return (Definition) bindingDefinitions.get(NS_TRAVEL_AGENT);
+    return (Definition) bindingDefs.get(NS_TRAVEL_AGENT);
   }
 
   private Binding getDocBinding() {
@@ -334,7 +328,7 @@
   }
 
   private Service getProcessService() {
-    return serviceDefinition.getService(new QName(NS_ATM_PROCESS, "atmService"));
+    return serviceDef.getService(new QName(NS_ATM_PROCESS, "atmService"));
   }
 
   public static Test suite() {
@@ -351,35 +345,41 @@
       BpelProcessDefinition processDefinition = new BpelProcessDefinition();
 
       // read bpel
-      URL processUrl = WsdlServiceToolTest.class.getResource("process.bpel");
+      String processLocation = WsdlServiceToolTest.class.getResource("process.bpel")
+          .toExternalForm();
       BpelReader bpelReader = new BpelReader();
-      bpelReader.read(processDefinition, new InputSource(processUrl.toExternalForm()));
+      bpelReader.read(processDefinition, new InputSource(processLocation));
       assertEquals(0, bpelReader.getProblemHandler().getProblemCount());
 
       // generate the binding and service documents
       tool.generateWsdlService(processDefinition);
 
-      // read the service definition
-      File serviceFile = new File(tool.getWsdlDirectory(), tool.getServiceFileName());
-      serviceDefinition = WsdlUtil.getFactory().newWSDLReader().readWSDL(serviceFile.getPath());
-
-      // get the binding definitions
-      for (Iterator l = serviceDefinition.getImports().values().iterator(); l.hasNext();) {
-        List importList = (List) l.next();
-        for (int i = 0, n = importList.size(); i < n; i++) {
-          Import _import = (Import) importList.get(i);
-          bindingDefinitions.put(_import.getNamespaceURI(), _import.getDefinition());
-        }
+      // read the binding definitions
+      File wsdlDir = tool.getWsdlDirectory();
+      File[] bindingFiles = wsdlDir.listFiles(new FilenameFilter() {
+
+        public boolean accept(File dir, String name) {
+          return name.startsWith(tool.getBindingFilesPrefix())
+              && name.endsWith(tool.getBindingFilesSuffix());
+        }
+      });
+      WSDLReader wsdlReader = WsdlUtil.getFactory().newWSDLReader();
+
+      for (int i = 0; i < bindingFiles.length; i++) {
+        Definition bindingDef = wsdlReader.readWSDL(bindingFiles[i].getPath());
+        bindingDefs.put(bindingDef.getTargetNamespace(), bindingDef);
       }
 
-      // read the deployment descriptor
-      File deploymentDescriptorFile = tool.getDeploymentDescriptorFile();
-      new DeploymentDescriptorReader().read(deploymentDescriptor, new InputSource(
-          deploymentDescriptorFile.getPath()));
+      // read the service definition
+      File serviceFile = new File(wsdlDir, tool.getServiceFileName());
+      serviceDef = wsdlReader.readWSDL(serviceFile.getPath());
+
+      // read the application descriptor
+      File appDescriptorFile = tool.getAppDescriptorFile();
+      new AppDescriptorReader().read(appDescriptor, new InputSource(appDescriptorFile.getPath()));
     }
 
     protected void tearDown() throws Exception {
-      // comment if you want to see the generated files
       tool.deleteGeneratedFiles();
     }
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/build.xml
--- jpdl-3.2.3.GA/bpel/userguide/build.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,51 +1,55 @@
-<project name="jbpm.bpel.userguide" default="install">
+<project name="jbpm.bpel.userguide" default="install" basedir=".">
 
+  <!-- project specific properties -->
   <property name="jbpm.root" value="../.." />
 
+  <!-- properties files -->
   <property file="${user.home}/jbpm/build.properties" />
   <property file="${jbpm.root}/build/profiles/${profile}.profile.properties" />
   <property file="${jbpm.root}/build/build.properties" />
 
+  <!-- import base project build file -->
   <import file="${jbpm.root}/build/base.project.build.xml" />
 
-  <property name="build.dir" value="target" />
+  <!-- project specific targets -->
+
+  <property name="build.dir" value="${basedir}/target/userguide" />
   <property name="pdf.name" value="jbpm-bpel.pdf" />
   <import file="${docbook.support.dir}/docbook-support/support.xml" />
 
   <target name="get.docbook.support">
-    <ant antfile="${jbpm.root}/build/build.xml" target="get.docbook.support" />
+    <ant antfile="../../build/build.xml" target="get.docbook.support" />
   </target>
 
-  <target name="generate" unless="userguide.uptodate">
-    <antcall target="clean" />
-    <antcall target="get.docbook.support" />
+  <target name="generate" depends="clean, get.docbook.support">
+    <mkdir dir="en/images" />
     <antcall target="lang.all">
       <param name="lang" value="en" />
     </antcall>
   </target>
 
-  <target name="package">
-    <uptodate property="userguide.uptodate" targetfile="target/en/pdf/${pdf.name}">
-      <srcfiles dir="en" />
-    </uptodate>
-    <antcall target="generate" />
-    <zip destfile="${lib.jbpm.bpel.userguide.target}">
-      <fileset dir="target/en" />
-    </zip>
-  </target>
-
-  <target name="install" depends="package">
-    <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
-    <copy todir="${local.repository}/${lib.jbpm.bpel.dir}"
-          file="${lib.jbpm.bpel.userguide.target}" />
-  </target>
-
   <target name="generate.html.only"
           depends="get.docbook.support"
-          description="creates the html docs only">
+          description="creates the html docs only and opens a browser">
+    <mkdir dir="en/images" />
     <antcall target="lang.dochtml">
       <param name="lang" value="en" />
     </antcall>
+    <exec executable="C:/Program Files/Internet Explorer/IEXPLORE.EXE"
+          os="Windows XP,Windows 2000,Windows 98">
+      <arg value="file://${basedir}/target/userguide/en/html/index.html" />
+    </exec>
+  </target>
+
+  <target name="package" depends="all.doc">
+    <zip zipfile="${lib.jbpm.bpel.javadoc.target}">
+      <fileset dir="target/userguide/en" />
+    </zip>
+  </target>
+
+  <target name="install" depends="package">
+    <mkdir dir="${local.repository}/${lib.jbpm.bpel.dir}" />
+    <copy todir="${local.repository}/${lib.jbpm.bpel.dir}" file="${lib.jbpm.bpel.javadoc.target}" />
   </target>
 
 </project>
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmAccountLoop.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmAccountMenu.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmAccountOps.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmAccountUnit.png
Binary files jpdl-3.2.3.GA/bpel/userguide/en/images/atmConnection.png and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images/atmConnection.png differ
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: atmCustomerSession.png
Binary files jpdl-3.2.3.GA/bpel/userguide/en/images/atmMain.png and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images/atmMain.png differ
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmNamePrompt.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmParticipants.png
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: atm.png
Binary files jpdl-3.2.3.GA/bpel/userguide/en/images/atmStatus.png and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images/atmStatus.png differ
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: atmTerminalConnected.png
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: atmTerminalDisconnected.png
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: atmTerminalLoggingOn.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmTicket.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmWelcomeScreen.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: atmWithdraw.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: console.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: database.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: helloEndpoints.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: helloMain.png
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: hello.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: partners.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: processes.png
Binary files jpdl-3.2.3.GA/bpel/userguide/en/images/purchase.png and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images/purchase.png differ
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: tripDateNotReached.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: tripEndpoints.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: tripMain.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: tripPartners.png
Only in jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images: trip.png
Only in jpdl-3.2.3.GA/bpel/userguide/en/images: tripPredate.png
Binary files jpdl-3.2.3.GA/bpel/userguide/en/images/tripPurchase.png and jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/images/tripPurchase.png differ
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/master.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/master.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/master.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/master.xml	2009-02-06 09:17:20.000000000 +0100
@@ -1,18 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
-  "../../../jpdl/userguide/dtd/docbookx.dtd" [
+  "file:/C:/dev/jbossas/trunk/docbook-support/support/docbook-dtd/docbookx.dtd" [
   <!ENTITY overview SYSTEM "modules/overview.xml">
   <!ENTITY introduction SYSTEM "modules/introduction.xml">
   <!ENTITY gettingStarted SYSTEM "modules/gettingStarted.xml">
   <!ENTITY tutorial SYSTEM "modules/tutorial.xml">
   <!ENTITY helloExample SYSTEM "modules/helloExample.xml">
+<!ENTITY atmExample SYSTEM "modules/atmExample.xml">
   <!ENTITY purchaseExample SYSTEM "modules/purchaseExample.xml">
   <!ENTITY tripExample SYSTEM "modules/tripExample.xml">
-  <!ENTITY atmExample SYSTEM "modules/atmExample.xml">
-  <!ENTITY loanExample SYSTEM "modules/loanExample.xml">
-  <!ENTITY nextLine " Â«">
-  <!ENTITY version "1.1.1">
+<!ENTITY nextLine "&lt;-">
   ]>
 
 <book lang="en">
@@ -20,7 +18,7 @@
   <bookinfo>
     <title>JBoss jBPM</title>
     <subtitle>WS-BPEL Runtime User Guide</subtitle>
-    <releaseinfo>Version &version;</releaseinfo>
+    <releaseinfo>Version: 1.1.GA</releaseinfo>
   </bookinfo>
 
   <toc />
@@ -35,12 +33,10 @@
 
   &helloExample;
 
-  &tripExample;
+  &atmExample;
 
   &purchaseExample;
 
-  &atmExample;
-
-  &loanExample;
+  &tripExample;
 
 </book>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/atmExample.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/atmExample.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/atmExample.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/atmExample.xml	2009-02-06 09:17:20.000000000 +0100
@@ -10,7 +10,7 @@
     <listitem><para>Connect to the server</para></listitem>
     <listitem><para>Log a customer on</para></listitem>
     <listitem><para>Query the state of the session</para></listitem>
-    <listitem><para>Obtain the account balance</para></listitem>
+    <listitem><para>Obtain the acount balance</para></listitem>
     <listitem><para>Withdraw and deposit funds</para></listitem>
     <listitem><para>Log the customer off</para></listitem>
     <listitem><para>Disconnect from the server</para></listitem>
@@ -24,14 +24,14 @@
     
   <figure id="tutorial.atm.participants">
     <title>Participants of the ATM process</title>
-    <mediaobject><imageobject><imagedata align="center" fileref="images/atmParticipants.png"
-      width="5.81in" depth="1.90in" scalefit="0"/></imageobject></mediaobject>
+    <mediaobject>
+      <imageobject><imagedata align="center" fileref="images/atm.png"/></imageobject>
+    </mediaobject>
   </figure>
   
-  <para>Initially, the teller machine connects to the front end service. Inside the bank, 
+  <para>On startup, the teller machine connects to the front end service. Inside the bank, 
     the front end contacts the ticket issuer module to generate a number that uniquely
-    identifies the teller. Subsequent message exchanges with the bank indicate the ticket
-    number.</para>
+    identifies the teller. Subsequent exchanges with the bank indicate the ticket number.</para>
     
   <para>When an account holder comes and authenticates him or herself, the teller asks the 
     front end to initiate a customer session. The front end resorts to the account system for
@@ -44,7 +44,7 @@
   <para>The front end contacts the account system as required to ensure the balance is accurate.
     Even tough the account system allows negative balances for the sake of other credit operations,
     ATMs do not dispense cash on credit. The front end must ensure enough funds exist and reject
-    withdrawals that would result in a negative balance.</para>
+    withdrawings that would result in a negative balance.</para>
     
   <section id="tutorial.atm.def">
     
@@ -54,211 +54,163 @@
     
       <title>Create the BPEL document</title>
     
-      <para>First of all, an explanation of the top level elements. The partner link <varname>
-        atm</varname> represents the relationship between a teller machine and the process.
-        The process plays the <emphasis>FrontEnd</emphasis> role, as the attribute <literal>
-        myRole</literal> indicates. Similarly, <varname>ticket</varname> links the process to 
-        the ticket issuer service, which assumes the <emphasis>TicketIssuer</emphasis> role. 
-        Account operations are available through the <varname>account</varname> partner link. 
-        Neither <varname>ticket</varname> nor <varname>account</varname> place any responsibility
-        on the process, hence they specify <literal>partnerRole</literal> but not <literal>
-        myRole</literal>.</para>
-        
-      <para>The variables <varname>connected</varname> and <varname>logged</varname> are
-        status flags. The <varname>atm</varname> correlation set distinguishes ATMs from each 
-        other based on the ticket number property.</para>
-
-      <programlisting><![CDATA[<process name="AtmFrontEnd" targetNamespace="http://jbpm.org/examples/atm"
-  xmlns:acc="http://jbpm.org/examples/account" xmlns:atm="http://jbpm.org/examples/atm"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="atm.wsdl"
-    namespace="http://jbpm.org/examples/atm" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/frontend.wsdl"
-    namespace="http://jbpm.org/examples/atm" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/ticket.wsdl"
-    namespace="http://jbpm.org/examples/ticket" />
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="interface/account.wsdl"
-    namespace="http://jbpm.org/examples/account" />
+      <para>We will start with the process-level definitions. The <varname>atm</varname> 
+        partner link represents the relationship between a teller machine and the process.
+        The process assumes the <emphasis>FrontEnd</emphasis> role; the ATM has no explicit role.
+        The <varname>ticket</varname> definition links the process to the ticket issuer service.
+        The ticket issuer plays the <emphasis>TicketIssuer</emphasis> role, while the process 
+        assumes no functions. Account system operations are available to the process through the
+        <varname>account</varname> partner link. Again, no responsibility is placed on the process.
+        </para>
+        
+      <para>The variables <varname>connectReq</varname>, <varname>ticketReq</varname> and <varname>
+        ticketMsg</varname> hold messages exchanged with partners. In turn, <varname>connected
+        </varname> and <varname>logged</varname> are status flags. The <varname>atm</varname> 
+        correlation set distinguishes ATMs from each other through the ticket number property.
+        </para>
+
+      <programlisting><![CDATA[<process name="AtmFrontEnd" targetNamespace="urn:samples:atm"
+  xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
+  xmlns:tns="urn:samples:atm" xmlns:atm="urn:samples:atm" xmlns:typ="urn:samples:atm:types"
+  xmlns:tic="urn:samples:ticket" xmlns:acc="urn:samples:account" 
+  xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
+   http://schemas.xmlsoap.org/ws/2003/03/business-process/">
 
   <partnerLinks>
-    <partnerLink myRole="FrontEnd" name="atm" partnerLinkType="atm:Atm-Front">
-      <documentation>relationship with the ATM</documentation>
-    </partnerLink>
+    <!-- relationship with the ATM -->
+    <partnerLink name="atm" partnerLinkType="tns:Atm-Front" myRole="FrontEnd" />
+    <!-- relationship with the ticket issuer -->
+    <partnerLink name="ticket" partnerLinkType="tns:Front-Ticket" 
+      partnerRole="TicketIssuer" />
+    <!-- relationship with the account system -->
+    <partnerLink name="account" partnerLinkType="tns:Front-Account" 
+      partnerRole="AccountSystem" />
   </partnerLinks>
 
   <variables>
-    <variable name="connected" type="xsd:boolean">
-      <documentation>ATM connection flag</documentation>
-    </variable>
-    <variable name="logged" type="xsd:boolean">
-      <documentation>customer access flag</documentation>
-    </variable>
-    <variable messageType="tic:ticketMessage" name="ticketMsg">
-      <documentation>ticket number wrapper</documentation>
-    </variable>
+    <!-- ATM connection request -->
+    <variable name="connectReq" messageType="atm:connectRequest" />
+    <!-- ticket creation request -->
+    <variable name="ticketReq" messageType="tic:ticketRequest" />
+    <!-- ticket number wrapper -->
+    <variable name="ticketMsg" messageType="tic:ticketMessage" />
+    <!-- ATM connection flag -->
+    <variable name="connected" type="xsd:boolean" />
+    <!-- customer session flag -->
+    <variable name="logged" type="xsd:boolean" />
   </variables>
 
   <correlationSets>
-    <correlationSet name="atmInteraction" properties="atm:ticketId">
-      <documentation>conversation with a connected ATM</documentation>
-    </correlationSet>
+    <!-- conversation with a connected ATM -->
+    <correlationSet name="atmInteraction" properties="tns:ticketId" />
   </correlationSets>
-
   ...
-
 </process>]]></programlisting>
   
-      <para>Let's move on to the control flow. The next figure is the outlook of the
-        ATM front end process.</para>
+      <para>Let's move on to the control flow. The next figure is the bird eye view of the ATM front
+        end process.</para>
       
-      <figure id="tutorial.atm.main">
+      <figure id="tutorial.atm.flow.main">
         <title>ATM main sequence</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmMain.png"
-          width="1.96in" depth="2.80in" scalefit="0"/></imageobject></mediaobject>
+        <mediaobject>
+          <imageobject><imagedata align="center" fileref="images/atmMain.png"/></imageobject>
+        </mediaobject>
       </figure>
     
       <para>We define a main sequence for handling the life cycle of an ATM connection. It consists 
-        of these activities: create a ticket, initialize the status flags and handle the new 
-        connection.</para>
-    
-      <programlisting><![CDATA[<sequence name="MainSeq">
-
-  <scope name="TicketCreationUnit">
-    ...
-  </scope>
+        of these activities: receive a connection request, invoke the ticket issuer service, 
+        initialize the status flags, send the ticket number back to the teller and handle the 
+        new connection.</para>
+    
+      <programlisting><![CDATA[<sequence name="mainSequence">
+
+    <!-- receive a connection request -->
+    <receive operation="connect" partnerLink="atm" portType="atm:FrontEnd" 
+      variable="connectReq" createInstance="yes" />
+
+    <!-- generate a ticket number -->
+    <invoke operation="createTicket" partnerLink="ticket" portType="tic:TicketIssuer"
+      inputVariable="ticketReq" outputVariable="ticketMsg">
+      <correlations>
+        <correlation set="atmInteraction" pattern="in" initiate="yes" />
+      </correlations>
+    </invoke>
 
-  <assign name="InitializeStatus" validate="no">
-    <documentation>initialize the status flags</documentation>
+    <!-- initialize the status flags -->
+    <assign name="initConnection">
     <copy>
-      <from>true()</from>
+        <from expression="true()" />
       <to variable="connected" />
     </copy>
     <copy>
-      <from>false()</from>
+        <from expression="false()" />
       <to variable="logged" />
     </copy>
   </assign>
 
-  <scope name="ConnectionUnit">
-    <documentation>handle the ATM connection</documentation>
-    ...
-  </scope>
-
-</sequence>]]></programlisting>
-
-      <para>Each scope delimits a nested unit of work, with its own variables, correlation sets
-        and fault/event handlers. They help break a long and complex process into manageable
-        pieces. Let us take a closer look at the <literal>TicketCreationUnit</literal></para>.
-        
-      <figure id="tutorial.atm.ticket">
-        <title>Ticket creation unit</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmTicket.png"
-          width="2.33in" depth="2.30in" scalefit="0"/></imageobject></mediaobject>
-      </figure>
-      
-      <para>The start point is to accept a connection from some ATM, which results in the
-        creation of a new process instance. Next, the process contacts a partner service to 
-        create a new ticket, and then returns the ticket number to the ATM. Observe that
-        the activity <literal>CreateTicket</literal> initiates the correlation set <literal>
-        atmInteraction</literal>. Future incoming messages containing this ticket number will be
-        delivered to the newly created process instance.</para>
-        
-      <programlisting><![CDATA[<scope name="TicketCreationUnit">
-
-  <partnerLinks>
-    <partnerLink name="ticket" partnerLinkType="atm:Front-Ticket" partnerRole="TicketIssuer">
-      <documentation>relationship with the ticket issuer</documentation>
-    </partnerLink>
-  </partnerLinks>
-
-  <variables>
-    <variable messageType="tic:ticketRequest" name="ticketReq">
-      <documentation>ATM connection request</documentation>
-    </variable>
-    <variable messageType="atm:connectRequest" name="connectReq">
-      <documentation>ticket creation request</documentation>
-    </variable>
-  </variables>
-
-  <sequence name="TicketCreationSeq">
-
-    <receive createInstance="yes" name="AcceptConnection" operation="connect"
-      partnerLink="atm" portType="atm:FrontEnd" variable="connectReq">
-      <documentation>receive a connection request</documentation>
-    </receive>
-
-    <invoke inputVariable="ticketReq" name="CreateTicket" operation="createTicket"
-      outputVariable="ticketMsg" partnerLink="ticket" portType="tic:TicketIssuer">
-      <documentation>generate a ticket number</documentation>
-      <correlations>
-        <correlation initiate="yes" pattern="in" set="atmInteraction" />
-      </correlations>
-    </invoke>
-
-    <reply name="SendTicketNumber" operation="connect" partnerLink="atm"
-      portType="atm:FrontEnd" variable="ticketMsg">
-      <documentation>send the ticket number back to the ATM</documentation>
+    <!-- send the ticket number back to the ATM -->
+    <reply operation="connect" partnerLink="atm" portType="atm:FrontEnd" 
+      variable="ticketMsg">
       <correlations>
-        <correlation initiate="no" set="atmInteraction" />
+        <correlation set="atmInteraction" />
       </correlations>
     </reply>
 
-  </sequence>
+    <!-- handle the ATM connection -->
+    <scope name="connectionUnit">
+      ...
+    </scope>
 
-</scope>]]></programlisting>
+  </sequence>
         
-      <para>The diagram that follows is a close look at the control flow of the <literal>
-        connectionUnit</literal>:</para>
+</process>]]></programlisting>
   
-      <figure id="tutorial.atm.connection">
-        <title>Connection unit</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmConnection.png"
-          width="4.23in" depth="2.78in" scalefit="0"/></imageobject></mediaobject>
+      <para>The <literal>scope</literal> element at the end of the sequence encapsulates
+        the connection handling logic. This activity allows specifying a nested execution
+        flow and local definitions of variables, correlation sets and fault/event handling
+        behavior. The following diagram shows the control flow of the <literal>connectionUnit
+        </literal>:</para>
+  
+      <figure id="tutorial.atm.flow.connection">
+        <title>ATM connection handling logic</title>
+        <mediaobject>
+          <imageobject><imagedata align="center" fileref="images/atmConnection.png"/></imageobject>
+        </mediaobject>
       </figure>
       
       <para>The local variables <varname>logOnReq</varname> and <varname>statusRsp</varname>
         are placeholders for message exchanges.</para>      
         
-      <para>Connection handling consists of listening for ATM requests and 
+      <para>The connection handling logic consists of listening for requests from the ATM and 
         processing them one at a time. This is an iterative behavior. The 
         <literal>connectionLoop</literal> activity causes the front end to keep taking
-        requests as long as the <varname>connected</varname> flag stays turned on.</para>
+        requests as long as the <varname>connected</varname> flag stays on.</para>
         
-      <para>At this point, the process accepts any of the following two requests: initiate a 
-        customer session or terminate the connection. The <literal>connectionMenu</literal>
-        structure performs the activity associated with the first request to arrive.</para>
+      <para>At this point, the front end accepts one of two requests: initiate a customer session
+        or terminate the connection. The <literal>connectionMenu</literal> performs the activity 
+        associated with the first request to arrive.</para>
         
-      <programlisting><![CDATA[<scope name="ConnectionUnit">
-  <documentation>handle the ATM connection</documentation>
+      <programlisting><![CDATA[<scope name="connectionUnit">
 
   <variables>
-    <variable messageType="atm:logOnRequest" name="logOnReq">
-      <documentation>customer log on request</documentation>
-    </variable>
-    <variable messageType="atm:statusResponse" name="statusRsp">
-      <documentation>connection status response</documentation>
-    </variable>
+    <!-- customer log on request -->
+    <variable name="logOnReq" messageType="atm:logOnRequest" />
+    <!-- connection status response -->
+    <variable name="statusRsp" messageType="atm:statusResponse" />
   </variables>
 
-  <while name="ConnectionLoop">
-    <documentation>accept ATM requests, one at a time</documentation>
-    <condition>$connected</condition>
+  <!-- process ATM requests, one at a time -->
+  <while name="connectionLoop" condition="bpel:getVariableData('connected')">
 
-    <pick name="ConnectionMenu">
-      <documentation>listen for either disconnect or log on request</documentation>
+    <!-- listen for either disconnect or log on request -->
+    <pick name="connectionMenu">
 
-      <onMessage operation="disconnect" partnerLink="atm" portType="atm:FrontEnd"
-        variable="ticketMsg">
-        ...
-      </onMessage>
+      <onMessage operation="disconnect" .../>
 
-      <onMessage operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
-        variable="logOnReq">
-        ...
-      </onMessage>
+      <onMessage operation="logOn" .../>
     
     </pick>
 
@@ -270,18 +222,18 @@
         
         <listitem>
         
-          <para><emphasis>logOn</emphasis>: the <literal>AccountUnit</literal> scope
-            encapsulates the access to the account belonging to a registered customer.</para>
+          <para><emphasis>logOn</emphasis>: the <literal>customerUnit</literal> scope
+            encapsulates the customer session logic.</para>
             
           <programlisting><![CDATA[<onMessage operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
   variable="logOnReq">
 
   <correlations>
-    <correlation initiate="no" set="atmInteraction" />
+    <correlation set="atmInteraction" />
   </correlations>
 
-  <scope name="AccountUnit">
-    <documentation>handle account access</documentation>
+  <!-- handle the customer session -->
+  <scope name="customerUnit">
     ...
   </scope>
 
@@ -291,21 +243,21 @@
           
         <listitem>
         
-          <para><emphasis>disconnect</emphasis>: <literal>setDisconnected</literal> turns off the
-            <varname>connected</varname> flag, causing the <literal>connectionLoop</literal> to 
-            break shortly after.</para>
+          <para><emphasis>disconnect</emphasis>: the <literal>setDisconnected</literal> assign
+            turns off the <varname>connected</varname> flag, causing the <literal>connectionLoop
+            </literal> to break shortly afterwards.</para>
             
           <programlisting><![CDATA[<onMessage operation="disconnect" partnerLink="atm" portType="atm:FrontEnd"
   variable="ticketMsg">
 
   <correlations>
-    <correlation initiate="no" set="atmInteraction" />
+    <correlation set="atmInteraction" />
   </correlations>
 
-  <assign name="SetDisconnected" validate="no">
-    <documentation>turn off connected flag</documentation>
+  <!-- turn off connected flag for breaking the connection loop -->
+  <assign name="setDisconnected">
     <copy>
-      <from>false()</from>
+      <from expression="false()" />
       <to variable="connected" />
     </copy>
   </assign>
@@ -316,87 +268,98 @@
          
       </itemizedlist>
 
-      <para>To spice up the process, <literal>ConnectionUnit</literal> defines an event for 
-        handling status requests on par with the primary activity. The <literal>status
-        </literal> event lets the ATM query the connection status as long as the 
-        scope is active.</para>
-        
-      <figure id="tutorial.atm.status">
-        <title>Status event</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmStatus.png"
-          width="6.49in" depth="3.88in" scalefit="0"/></imageobject></mediaobject>
+      <para>To spice up the example the scope defines an event for handling status requests
+        on par with the primary activity. The <literal>status</literal> event lets the ATM query 
+        the connection status anytime, as long as the scope is active:</para>
+        
+      <figure id="tutorial.atm.flow.status">
+        <title>ATM connection status event</title>
+        <mediaobject>
+          <imageobject><imagedata align="center" fileref="images/atmStatus.png"/></imageobject>
+        </mediaobject>
       </figure>
   
-      <para>The following snippet shows the event handling code. The status flags are queried
-         to determine the status of the connection.</para>
+      <para>The following snippet shows the scope's event handling code:</para>
+      
+      <programlisting><![CDATA[<scope name="connectionUnit">
+  ...
+  <eventHandlers>
       
-      <programlisting><![CDATA[<eventHandlers>
-  <onEvent messageType="tic:ticketMessage" operation="status" partnerLink="atm"
-    portType="atm:FrontEnd" variable="ticketMsg">
+    <!-- listen for connection status requests -->
+    <onMessage operation="status" partnerLink="atm" portType="atm:FrontEnd"
+      variable="ticketMsg">
 
     <correlations>
-      <correlation initiate="no" set="atmInteraction" />
+        <correlation set="atmInteraction" />
     </correlations>
 
-    <scope name="StatusUnit">
+      <!-- report the connection status -->
+      <sequence name="statusSequence">
 
-      <sequence name="StatusSeq">
+        <!-- set a status string depending on the flag values -->
+        <switch name="statusSwitch">
 
-        <if name="StatusDecision">
+          <case condition="bpel:getVariableData('logged')">
 
-          <condition>$logged</condition>
-          <assign name="SetStatusLogged" validate="no">
+            <assign name="setStatusLogged">
             <copy>
-              <from>'logged'</from>
-              <to part="status" variable="statusRsp" />
+                <from expression="'logged'" />
+                <to variable="statusRsp" part="status" />
             </copy>
           </assign>
 
-          <elseif>
-            <condition>$connected</condition>
-            <assign name="SetStatusConnected" validate="no">
+          </case>
+
+          <case condition="bpel:getVariableData('connected')">
+
+            <assign name="setStatusConnected">
               <copy>
-                <from>'connected'</from>
-                <to part="status" variable="statusRsp" />
+                <from expression="'connected'" />
+                <to variable="statusRsp" part="status" />
               </copy>
             </assign>
-          </elseif>
 
-          <else>
-            <assign name="Assign" validate="no">
+          </case>
+
+          <otherwise>
+
+            <assign name="setStatusDisconnected">
               <copy>
-                <from>'disconnected'</from>
-                <to part="status" variable="statusRsp" />
+                <from expression="'disconnected'" />
+                <to variable="statusRsp" part="status" />
               </copy>
             </assign>
-          </else>
 
-        </if>
+          </otherwise>
 
-        <reply name="SendStatus" operation="status" partnerLink="atm" portType="atm:FrontEnd"
+        </switch>
+        <!-- send the status back to the ATM -->
+        <reply operation="status" partnerLink="atm" portType="atm:FrontEnd"
           variable="statusRsp" />
 
       </sequence>
 
-    </scope>
-
-  </onEvent>
+    </onMessage>
 
-</eventHandlers>]]></programlisting>
+  </eventHandlers>
+  ...
+</scope>]]></programlisting>
 
-      <para>The <literal>AccountUnit</literal> scope lies at the core of the ATM front end
-        process. It encapsulates the logic to serve account holder requests. The next 
-        picture summarizes its control flow.</para>
-        
-      <figure id="tutorial.atm.account.unit">
-        <title>Account unit</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmAccountUnit.png"
-          width="5.35in" depth="5.05in" scalefit="0"/></imageobject></mediaobject>
+      <para>The <literal>customerUnit</literal> scope lies at the core of the ATM front end
+        process. It encapsulates the logic to serve account holder requests. The following 
+        picture summarizes its flow control:</para>
+        
+      <figure id="tutorial.atm.flow.customersession">
+        <title>ATM customer session handling logic</title>
+        <mediaobject>
+          <imageobject><imagedata align="center" fileref="images/atmCustomerSession.png"/>
+            </imageobject>
+        </mediaobject>
       </figure>
    
       <para>The scope declares a number of local variables for incoming and outgoing messages.
-        Apart from them, one variable, <varname>newBalance</varname>, stores the
-        result of evaluating the remaining amount after a withdrawal.</para>
+        Apart from them, one variable of simple type, <varname>newBalance</varname>, stores the
+        result of a computation that determines the remaining amount after withdrawing.</para>
 
       <para>One correlation set, <varname>customerInteraction</varname>, distinguishes logged 
         account holders from each other through the customer name property. One feature of 
@@ -406,14 +369,15 @@
         appears inside the loop rather than outside. In this way, the set can assume different
         values in every new session.</para>
         
-      <para>Account handling works as follows. The front end must verify the customer
-        actually holds an account. Verification is outside the responsibilities of the process;
+      <para>Customer session handling works as follows. The front end must verify the customer
+        holds an active account. Verification is outside the responsibilities of the process;
         it is a function of the bank account system. Therefore, the front end invokes the
         account system to check the customer access privilege. If the system grants
-        access, the front end turns on the <varname>logged</varname> flag and acknowledges the
-        log on request. Conversely, when the system denies access, the front end sends a 
-        <literal>unauthorizedAccess</literal> back to the ATM. It leaves the <varname>logged
-        </varname> flag off so that the account access ends immediately.</para>
+        access, the front end replies the log on request with an acknowledgement and
+        turns on the <varname>logged</varname> flag. Conversely, when the system denies access,
+        the front end sends a <literal>unauthorizedAccess</literal> back to the ATM. It leaves
+        the <varname>logged</varname> flag turned off so that the customer session ends 
+        immediately.</para>
         
       <para>Note that the aforementioned fault appears in the WSDL definition of the operation. 
         If it did not appear, jBPM BPEL would report an error at deployment time.</para>
@@ -429,123 +393,105 @@
 </portType>]]></programlisting>
   
       <para>After completing the <methodname>logOn</methodname> operation either way, 
-        the process enters a loop that accepts account requests one at a time.
-        The next section will describe the logic inside <literal>accountLoop</literal>.</para>
+        the process enters a loop that processes customer requests one at a time.
+        The next section will describe the logic inside that <literal>customerLoop</literal>.</para>
       
-      <programlisting><![CDATA[<scope name="AccountUnit">
-  <documentation>handle account access</documentation>
-
-  <partnerLinks>
-    <partnerLink name="account" partnerLinkType="atm:Front-Account"
-      partnerRole="AccountSystem">
-      <documentation>relationship with the account system</documentation>
-    </partnerLink>
-  </partnerLinks>
+      <programlisting><![CDATA[<scope name="customerUnit">
 
   <variables>
-    <variable messageType="acc:accessMessage" name="accessMsg">
-      <documentation>access check response</documentation>
-    </variable>
-    <variable messageType="acc:customerMessage" name="customerMsg">
-      <documentation>customer name wrapper</documentation>
-    </variable>
-    <variable messageType="atm:logOnResponse" name="logOnRsp">
-      <documentation>customer access acknowledgment</documentation>
-    </variable>
-    <variable messageType="atm:unauthorizedAccess" name="unauthorizedAccess">
-      <documentation>customer access fault</documentation>
-    </variable>
-    <variable messageType="acc:balanceMessage" name="balanceMsg">
-      <documentation>account balance wrapper</documentation>
-    </variable>
-    <variable messageType="atm:balanceChange" name="balanceChange">
-      <documentation>balance change request</documentation>
-    </variable>
-    <variable messageType="acc:accountOperation" name="accountOperation">
-      <documentation>account system operation request</documentation>
-    </variable>
-    <variable name="newBalance" type="xsd:double">
-      <documentation>resulting balance after withdrawal</documentation>
-    </variable>
-    <variable messageType="atm:insufficientFunds" name="insufficientFunds">
-      <documentation>withdraw fault</documentation>
-    </variable>
+    <!-- customer name wrapper -->
+    <variable name="customerMsg" messageType="acc:customerMessage" />
+    <!-- access check response -->
+    <variable name="accessMsg" messageType="acc:accessMessage" />
+    <!-- customer log on response -->
+    <variable name="logOnRsp" messageType="atm:logOnResponse" />
+    <!-- account balance wrapper -->
+    <variable name="balanceMsg" messageType="acc:balanceMessage" />
+    <!-- balance change request -->
+    <variable name="balanceChange" messageType="atm:balanceChange" />
+    <!-- account system operation request -->
+    <variable name="accountOperation" messageType="acc:accountOperation" />
+    <!-- customer log on fault -->
+    <variable name="unauthorizedAccess" messageType="atm:unauthorizedAccess" />
+    <!-- withdraw fault -->
+    <variable name="insufficientFunds" messageType="atm:insufficientFunds" />
+    <!-- resulting balance after withdraw -->
+    <variable name="newBalance" type="xsd:double" />
   </variables>
 
   <correlationSets>
-    <correlationSet name="customerInteraction" properties="atm:customerId">
-      <documentation>conversation with a logged customer</documentation>
-    </correlationSet>
+    <!-- conversation with a logged customer -->
+    <correlationSet name="customerInteraction" properties="tns:customerId" />
   </correlationSets>
 
-  <sequence name="AccountSeq">
+  <sequence name="customerSequence">
 
-    <assign name="PrepareAccessCheck" validate="no">
-      <documentation>populate access check request</documentation>
+    <!-- populate access check request -->
+    <assign name="fillAccessCheck">
       <copy>
-        <from part="customerName" variable="logOnReq" />
-        <to part="customerName" variable="customerMsg" />
+        <from variable="logOnReq" part="customerName" />
+        <to variable="customerMsg" part="customerName" />
       </copy>
     </assign>
 
-    <invoke inputVariable="customerMsg" name="CheckAccess" operation="checkAccess"
-      outputVariable="accessMsg" partnerLink="account" portType="acc:AccountSystem">
-      <documentation>check account access privilege</documentation>
+    <!-- check account access privilege -->
+    <invoke operation="checkAccess" partnerLink="account" portType="acc:AccountSystem"
+      inputVariable="customerMsg" outputVariable="accessMsg">
       <correlations>
-        <correlation initiate="yes" pattern="out" set="customerInteraction" />
+        <correlation set="customerInteraction" pattern="out" initiate="yes" />
       </correlations>
     </invoke>
 
-    <if name="AccessDecision">
-      <documentation>decide outcome of customer access request</documentation>
-      <condition>$accessMsg.granted</condition>
+    <!-- decide outcome of customer session request -->
+    <switch name="accessDecision">
 
-      <sequence name="AccessGrantedSeq">
-        <documentation>grant customer access</documentation>
+      <case condition="bpel:getVariableData('accessMsg', 'granted')">
 
-        <assign name="SetLoggedOn" validate="no">
-          <documentation>turn on logged flag</documentation>
+        <!-- accept customer session -->
+        <sequence name="accessGrantedSequence">
+
+          <!-- turn on logged flag for starting session loop  -->
+          <assign name="setLoggedOn">
           <copy>
-            <from>true()</from>
+              <from expression="true()" />
             <to variable="logged" />
           </copy>
         </assign>
 
-        <reply name="GrantAccess" operation="logOn" partnerLink="atm"
-          portType="atm:FrontEnd" variable="logOnRsp">
-          <documentation>send acknowledgment back to ATM</documentation>
-        </reply>
+          <!-- send acknowledgement back to ATM -->
+          <reply operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
+            variable="logOnRsp" />
 
       </sequence>
 
-      <else>
+      </case>
 
-        <sequence name="AccessDeniedSeq">
-          <documentation>deny customer access</documentation>
+      <otherwise>
 
-          <assign name="PrepareAccessDenial" validate="no">
-            <documentation>populate access fault</documentation>
+        <!-- reject customer session -->
+        <sequence name="accessDeniedSequence">
+
+          <!-- populate the log on fault -->
+          <assign name="fillAccessDenial">
             <copy>
-              <from part="customerName" variable="logOnReq" />
-              <to part="detail" variable="unauthorizedAccess">
-                <query>customerName</query>
-              </to>
+              <from variable="logOnReq" part="customerName" />
+              <to variable="unauthorizedAccess" part="detail"
+                query="/typ:unauthorizedAccess/customerName" />
             </copy>
           </assign>
 
-          <reply name="DenyAccess" operation="logOn" partnerLink="atm"
-            portType="atm:FrontEnd" variable="unauthorizedAccess"
-            faultName="atm:unauthorizedAccess">
-            <documentation>send fault back to ATM</documentation>
-          </reply>
+          <!-- send fault back to the ATM -->
+          <reply operation="logOn" partnerLink="atm" portType="atm:FrontEnd"
+            variable="unauthorizedAccess" faultName="atm:unauthorizedAccess" />
 
         </sequence>
 
-      </else>
+      </otherwise>
 
-    </if>
+    </switch>
 
-    <while name="AccountLoop">
+    <!-- process customer requests, one at a time -->
+    <while name="customerLoop" condition="bpel:getVariableData('logged')">
       ...
     </while>
 
@@ -553,43 +499,23 @@
 
 </scope>]]></programlisting>
 
-      <para>Inside <literal>AccountLoop</literal>, the process waits for one of four
-        possible requests. These requests appear as <literal>onMessage</literal> branches
-        of <literal>AccountMenu</literal>.</para>
-        
-      <figure id="tutorial.atm.account.menu">
-        <title>Account menu</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/atmAccountMenu.png"
-          width="8.05in" depth="1.48in" scalefit="0"/></imageobject></mediaobject>
-      </figure>
-      
-      <para>The above diagram represents the following structure.</para>
+      <para>Inside <literal>customerLoop</literal>, the process waits for one of four
+        possible requests. These requests appear as <literal>onMessage</literal> child elements
+        of the <literal>customerMenu</literal> activity.</para>
         
-      <programlisting><![CDATA[<while name="AccountLoop">
-  <documentation>accept account requests, one at a time</documentation>
-  <condition>$logged</condition>
+      <programlisting><![CDATA[<while name="customerLoop" condition="bpel:getVariableData('logged')">
 
-  <pick name="AccountMenu">
+  <pick name="customerMenu">
     
-    <onMessage operation="logOff">
-      ...
-    </onMessage>
+    <onMessage operation="logOff" .../>
     
-    <onMessage operation="getBalance">
-      ...
-    </onMessage>
+    <onMessage operation="getBalance" .../>
     
-    <onMessage operation="deposit">
-      ...
-    </onMessage>
+    <onMessage operation="deposit" .../>
     
-    <onMessage operation="withdraw">
-      ...
-    </onMessage>
+    <onMessage operation="withdraw" .../>
     
-    <onAlarm for="'PT2M'">
-      ...
-    </onAlarm>
+    <onAlarm for="'PT2M'" .../>
     
   </pick>
 
@@ -599,21 +525,21 @@
       
         <listitem>
         
-          <para><emphasis>logOff</emphasis>: <literal>setLoggedOff</literal> 
-            turns off the <varname>logged</varname> flag to break the 
-            <literal>customerLoop</literal> and terminate the customer access.</para>
+          <para><emphasis>logOff</emphasis>: the <literal>setLoggedOff</literal> 
+            assign turns off the <varname>logged</varname> flag to break the 
+            <literal>customerLoop</literal> and terminate the customer session.</para>
             
-          <programlisting><![CDATA[<onMessage operation="logOff" partnerLink="atm" 
-  portType="atm:FrontEnd" variable="customerMsg">
+          <programlisting><![CDATA[<onMessage operation="logOff" partnerLink="atm" portType="atm:FrontEnd"
+  variable="customerMsg">
 
   <correlations>
     <correlation set="customerInteraction" />
   </correlations>
 
-  <assign name="SetLoggedOff" validate="no">
-    <documentation>turn off logged flag</documentation>
+  <!-- turn off logged flag for breaking the customer loop -->
+  <assign name="setLoggedOff">
     <copy>
-      <from>false()</from>
+      <from expression="false()" />
       <to variable="logged" />
     </copy>
   </assign>
@@ -624,7 +550,7 @@
         
         <listitem>
         
-          <para><emphasis>getBalance</emphasis>: the <literal>BalanceSeq</literal>
+          <para><emphasis>getBalance</emphasis>: the <literal>balanceSequence</literal>
             queries the account system for the current balance and hands that back to 
             the ATM.</para>
             
@@ -632,21 +558,23 @@
   variable="customerMsg">
 
   <correlations>
-    <correlation initiate="no" set="customerInteraction" />
+    <correlation set="customerInteraction" />
   </correlations>
 
-  <sequence name="BalanceSeq">
+  <sequence name="balanceSequence">
 
-    <invoke inputVariable="customerMsg" name="QueryBalance"
-      operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"
-      portType="acc:AccountSystem">
-      <documentation>get current account balance</documentation>
+    <!-- get current account balance -->
+    <invoke operation="queryBalance" partnerLink="account"
+      portType="acc:AccountSystem" inputVariable="customerMsg"
+      outputVariable="balanceMsg">
+      <correlations>
+        <correlation set="customerInteraction" pattern="out" />
+      </correlations>
     </invoke>
 
-    <reply name="TellBalance" operation="getBalance" partnerLink="atm"
-      portType="atm:FrontEnd" variable="balanceMsg">
-      <documentation>return balance to ATM</documentation>
-    </reply>
+    <!-- hand the balance back to the ATM -->
+    <reply operation="getBalance" partnerLink="atm" portType="atm:FrontEnd"
+      variable="balanceMsg" />
 
   </sequence>
 
@@ -656,7 +584,7 @@
           
         <listitem>
         
-          <para><emphasis>deposit</emphasis>: the <literal>DepositSeq</literal>
+          <para><emphasis>deposit</emphasis>: the <literal>depositSequence</literal>
             posts the positive update to the account system. The front end process gets the 
             new balance in return and makes it available to the ATM.</para>
             
@@ -664,40 +592,35 @@
   variable="balanceChange">
 
   <correlations>
-    <correlation initiate="no" set="customerInteraction" />
+    <correlation set="customerInteraction" />
   </correlations>
 
-  <sequence name="DepositSeq">
+  <sequence name="depositSequence">
 
-    <assign name="PrepareDeposit" validate="no">
-      <documentation>populate balance update request</documentation>
+    <!-- populate balance update request -->
+    <assign name="fillDepositUpdate">
       <copy>
-        <from part="customerName" variable="balanceChange" />
-        <to part="body" variable="accountOperation">
-          <query>customerName</query>
-        </to>
+        <from variable="balanceChange" part="customerName" />
+        <to variable="accountOperation" part="body" query="/body/customerName" />
       </copy>
       <copy>
-        <from part="amount" variable="balanceChange" />
-        <to part="body" variable="accountOperation">
-          <query>amount</query>
-        </to>
+        <from variable="balanceChange" part="amount" />
+        <to variable="accountOperation" part="body" query="/body/amount" />
       </copy>
     </assign>
 
-    <invoke inputVariable="accountOperation" name="UpdateBalance"
-      operation="updateBalance" outputVariable="balanceMsg"
-      partnerLink="account" portType="acc:AccountSystem">
-      <documentation>post positive balance update</documentation>
+    <!-- post positive balance update -->
+    <invoke operation="updateBalance" partnerLink="account"
+      portType="acc:AccountSystem" inputVariable="accountOperation"
+      outputVariable="balanceMsg">
       <correlations>
-        <correlation initiate="no" pattern="out" set="customerInteraction" />
+        <correlation set="customerInteraction" pattern="out" />
       </correlations>
     </invoke>
 
-    <reply name="TellNewBalance" operation="deposit" partnerLink="atm"
-      portType="atm:FrontEnd" variable="balanceMsg">
-      <documentation>make new balance available to ATM</documentation>
-    </reply>
+    <!-- make new balance available to ATM -->
+    <reply operation="deposit" partnerLink="atm" portType="atm:FrontEnd"
+      variable="balanceMsg" />
 
   </sequence>
 
@@ -707,172 +630,160 @@
 
         <listitem>
         
-          <para><emphasis>withdraw</emphasis>: because withdraw is most involved account operation,
-            it appears in a separate diagram.</para>
-            
-          <figure id="tutorial.atm.withdraw">
-            <title>Withdraw sequence</title>
-            <mediaobject><imageobject><imagedata align="center" fileref="images/atmWithdraw.png"
-              width="4.95in" depth="4.86in" scalefit="0"/></imageobject></mediaobject>
-          </figure>
-          
-          <para><literal>WithdrawSeq</literal> first queries the account system for the
-            current balance. Later, it evaluates the amount that would remain in the account
-            after the negative update.</para>
+          <para><emphasis>withdraw</emphasis>: the <literal>withdrawSequence</literal>
+            first queries the account system for the current balance. Later, it computes the amount
+            that would remain in the account after the negative update.</para>
             
           <programlisting><![CDATA[<onMessage operation="withdraw" partnerLink="atm" portType="atm:FrontEnd"
   variable="balanceChange">
 
   <correlations>
-    <correlation initiate="no" set="customerInteraction" />
+    <correlation set="customerInteraction" />
   </correlations>
 
-  <sequence name="WithdrawSeq">
+  <sequence name="withdrawSequence">
 
-    <assign name="PrepareBalanceQuery" validate="no">
-      <documentation>populate balance query request</documentation>
+    <!-- populate balance query request -->
+    <assign name="fillWithdrawQuery">
       <copy>
-        <from part="customerName" variable="balanceChange" />
-        <to part="customerName" variable="customerMsg" />
+        <from variable="balanceChange" part="customerName" />
+        <to variable="customerMsg" part="customerName" />
       </copy>
     </assign>
 
-    <invoke inputVariable="customerMsg" name="QueryBalance"
-      operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"
-      portType="acc:AccountSystem">
-      <documentation>get current account balance</documentation>
+    <!-- get current account balance -->
+    <invoke operation="queryBalance" partnerLink="account"
+      portType="acc:AccountSystem" inputVariable="customerMsg"
+      outputVariable="balanceMsg">
       <correlations>
-        <correlation initiate="no" pattern="out" set="customerInteraction" />
+        <correlation set="customerInteraction" pattern="out" />
       </correlations>
     </invoke>
 
-    <assign name="EvaluateNewBalance" validate="no">
-      <documentation>
-        evaluate amount that would remain in account
-      </documentation>
+    <!-- compute amount that would remain in the account -->
+    <assign name="decreaseBalance">
       <copy>
-        <from>$balanceMsg.balance - $balanceChange.amount</from>
+        <from
+          expression="bpel:getVariableData('balanceMsg', 'balance') -
+            bpel:getVariableData('balanceChange', 'amount')" />
         <to variable="newBalance" />
       </copy>
     </assign>
 
-    <if name="BalanceDecision">
-      ...
-    </if>
+    <!-- decide outcome of withdraw request -->
+    <switch name="balanceDecision">
+      
+      <case condition="bpel:getVariableData('newBalance') &gt;= 0.0" .../>
+      
+      <otherwise .../>
+      
+    </switch>
 
   </sequence>
 
 </onMessage>]]></programlisting>
           
-          <para>If there are enough funds, the <literal>PositiveBalanceSeq</literal>
+          <itemizedlist>
+          
+            <listitem>
+            
+              <para>If there are enough funds, the <literal>positiveBalanceSequence</literal>
             posts the negative update to the account system, gets the new balance and returns
             that to the ATM.</para>
             
-          <programlisting><![CDATA[<if name="BalanceDecision">
-  <documentation>decide outcome of withdraw request</documentation>
-  <condition>$newBalance >= 0.0</condition>
+              <programlisting><![CDATA[<case condition="bpel:getVariableData('newBalance') &gt;= 0.0">
 
-  <sequence name="PositiveBalanceSeq">
-    <documentation>accept withdrawal</documentation>
+  <!-- accept withdrawing -->
+  <sequence name="positiveBalanceSequence">
 
-    <assign name="PrepareWithdraw" validate="no">
-      <documentation>populate balance update request</documentation>
+    <!-- populate balance update request -->
+    <assign name="fillWithdrawUpdate">
       <copy>
-        <from part="customerName" variable="balanceChange" />
-        <to part="body" variable="accountOperation">
-          <query>customerName</query>
-        </to>
+        <from variable="balanceChange" part="customerName" />
+        <to variable="accountOperation" part="body"
+          query="/body/customerName" />
       </copy>
       <copy>
-        <from>-$balanceChange.amount</from>
-        <to part="body" variable="accountOperation">
-          <query>amount</query>
-        </to>
+        <from
+          expression="-bpel:getVariableData('balanceChange', 'amount')" />
+        <to variable="accountOperation" part="body" query="/body/amount" />
       </copy>
     </assign>
 
-    <invoke inputVariable="accountOperation" name="UpdateBalance"
-      operation="updateBalance" outputVariable="balanceMsg"
-      partnerLink="account" portType="acc:AccountSystem">
-      <documentation>post negative balance update</documentation>
+    <!-- post negative balance update -->
+    <invoke operation="updateBalance" partnerLink="account"
+      portType="acc:AccountSystem" inputVariable="accountOperation"
+      outputVariable="balanceMsg">
       <correlations>
-        <correlation initiate="no" pattern="out" set="customerInteraction" />
+        <correlation set="customerInteraction" pattern="out" />
       </correlations>
     </invoke>
 
-    <reply name="TellNewBalance" operation="withdraw" partnerLink="atm"
-      portType="atm:FrontEnd" variable="balanceMsg">
-      <documentation>return new balance to ATM</documentation>
-    </reply>
+    <!-- return new balance to ATM -->
+    <reply operation="withdraw" partnerLink="atm" portType="atm:FrontEnd"
+      variable="balanceMsg" />
 
   </sequence>
 
-  <else>
-    ...
-  </else>
+</case>]]></programlisting>
 
-</if>]]></programlisting>
+            </listitem>
+
+            <listitem>
                 
           <para>Otherwise, the <literal>negativeBalanceSequence</literal> rejects the withdraw
             by returning a fault to the ATM. The update is not posted.</para>
             
-          <programlisting><![CDATA[<else>
+              <programlisting><![CDATA[<otherwise>
 
-  <sequence name="NegativeBalanceSeq">
-    <documentation>reject withdrawal</documentation>
+  <!-- reject withdrawing -->
+  <sequence name="negativeBalanceSequence">
 
-    <assign name="PrepareRejection" validate="no">
-      <documentation>populate withdraw fault</documentation>
+    <!-- populate withdraw fault -->
+    <assign name="fillNoFunds">
       <copy>
-        <from part="customerName" variable="balanceChange" />
-        <to part="detail" variable="insufficientFunds">
-          <query>customerName</query>
-        </to>
+        <from variable="balanceChange" part="customerName" />
+        <to variable="insufficientFunds" part="detail"
+          query="/typ:insufficientFunds/customerName" />
       </copy>
       <copy>
-        <from part="balance" variable="balanceMsg" />
-        <to part="detail" variable="insufficientFunds">
-          <query>amount</query>
-        </to>
+        <from variable="balanceMsg" part="balance" />
+        <to variable="insufficientFunds" part="detail"
+          query="/typ:insufficientFunds/amount" />
       </copy>
     </assign>
 
-    <reply name="RejectWithdraw" operation="withdraw" partnerLink="atm"
-      portType="atm:FrontEnd" variable="insufficientFunds"
-      faultName="atm:insufficientFunds">
-      <documentation>return fault to ATM</documentation>
-    </reply>
+    <!-- return fault to ATM -->
+    <reply operation="withdraw" partnerLink="atm" portType="atm:FrontEnd"
+      variable="insufficientFunds" faultName="atm:insufficientFunds" />
 
   </sequence>
 
-</else>]]></programlisting>
+</otherwise>]]></programlisting>
               
         </listitem>
         
-        <listitem>
+          </itemizedlist>
         
-          <para>The final <literal>onAlarm</literal> branch terminates the customer session after
-            two minutes, if no account request arrives earlier.</para>
+        </listitem>
+        
+      </itemizedlist>
           
-          <programlisting><![CDATA[<onAlarm>
-  <for>'PT2M'</for>
+      <para>The final <literal>onAlarm</literal> subelement terminates the customer session after
+        two minutes if none of the above requests arrives within that interval.</para>
 
-  <assign name="SetLoggedOff" validate="no">
-    <documentation>
-      turn off logged flag after a period of inactivity
-    </documentation>
+      <programlisting><![CDATA[<onAlarm for="'PT2M'">
+
+  <!-- log off after 2 minutes of inactivity -->
+  <assign name="setLoggedOff">
     <copy>
-      <from>false()</from>
+      <from expression="false()" />
       <to variable="logged" />
     </copy>
   </assign>
 
 </onAlarm>]]></programlisting>
         
-        </listitem>
-        
-      </itemizedlist>
-
     </section>
     
     <section id="tutorial.atm.def.wsdl">
@@ -886,25 +797,22 @@
         of the ticket issuer service. Here we assume this service is already deployed
         somewhere and the WSDL definitions came from there.</para>
     
-      <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/ticket"
-  xmlns:tns="http://jbpm.org/examples/ticket" 
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+      <programlisting><![CDATA[<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
-  <message name="ticketRequest">
-    <documentation>ticket creation request</documentation>
-  </message>
+  <!-- ticket creation request -->
+  <message name="ticketRequest" />
 
+  <!-- ticket number wrapper -->
   <message name="ticketMessage">
-    <documentation>ticket number wrapper</documentation>
     <part name="ticketNo" type="xsd:int" />
   </message>
 
+  <!-- interface to ticket issuer service -->
   <portType name="TicketIssuer">
-    <documentation>interface to ticket issuer service</documentation>
 
+    <!-- generate a ticket number, distinct from previous calls -->
     <operation name="createTicket">
-      <documentation>generate a ticket number, distinct from previous calls</documentation>
       <input message="tns:ticketRequest" />
       <output message="tns:ticketMessage" />
     </operation>
@@ -918,20 +826,17 @@
         <literal>AccountOperation</literal>, introduces a data transfer type for
         account operations.</para>
         
-      <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/account"
-  xmlns:tns="http://jbpm.org/examples/account" 
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+      <programlisting><![CDATA[<definitions targetNamespace="urn:samples:account" 
+  xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="urn:samples:account" xmlns:typ="urn:samples:account"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/account"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema">
 
+      <!-- account data transfer type -->
       <complexType name="AccountOperation">
-        <annotation>
-          <documentation>account data transfer type</documentation>
-        </annotation>
         <sequence>
           <element name="customerName" type="xsd:string" />
           <element name="amount" type="xsd:double" />
@@ -942,43 +847,43 @@
 
   </types>
 
+  <!-- customer name wrapper -->
   <message name="customerMessage">
-    <documentation>customer name wrapper</documentation>
     <part name="customerName" type="xsd:string" />
   </message>
 
+  <!-- access check response -->
   <message name="accessMessage">
-    <documentation>access check response</documentation>
     <part name="granted" type="xsd:boolean" />
   </message>
 
+  <!-- account balance wrapper -->
   <message name="balanceMessage">
-    <documentation>account balance wrapper</documentation>
     <part name="balance" type="xsd:double" />
   </message>
 
+  <!-- account operation request -->
   <message name="accountOperation">
-    <documentation>account operation request</documentation>
-    <part name="body" type="tns:AccountOperation" />
+    <part name="body" type="typ:AccountOperation" />
   </message>
 
+  <!-- published account functions -->
   <portType name="AccountSystem">
-    <documentation>published account functions</documentation>
 
+    <!-- tell whether a customer has an active account -->
     <operation name="checkAccess">
-      <documentation>tell whether a customer has an active account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:accessMessage" />
     </operation>
 
+    <!-- retrieve the balance of an account -->
     <operation name="queryBalance">
-      <documentation>retrieve the balance of an account</documentation>
       <input message="tns:customerMessage" />
       <output message="tns:balanceMessage" />
     </operation>
 
+    <!-- increase/decrease the balance of an account -->
     <operation name="updateBalance">
-      <documentation>increase/decrease the balance of an account</documentation>
       <input message="tns:accountOperation" />
       <output message="tns:balanceMessage" />
     </operation>
@@ -999,18 +904,16 @@
         define the exchange format between the ATM and the bank front end. Finally, 
         the <literal>FrontEnd</literal> port type lists the bank functions available to ATMs.</para>
         
-      <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/atm" 
-  xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:tic="http://jbpm.org/examples/ticket" xmlns:acc="http://jbpm.org/examples/account"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
+      <programlisting><![CDATA[<definitions targetNamespace="urn:samples:atm" xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="urn:samples:atm" xmlns:typ="urn:samples:atm" xmlns:tic="urn:samples:ticket"
+  xmlns:acc="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
-  <import namespace="http://jbpm.org/examples/account" location="account.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:account" location="account.wsdl" />
 
   <types>
 
-    <schema targetNamespace="http://jbpm.org/examples/atm"
-      xmlns="http://www.w3.org/2001/XMLSchema">
+    <schema targetNamespace="urn:samples:atm" xmlns="http://www.w3.org/2001/XMLSchema">
 
       <complexType name="UnauthorizedAccess">
         <sequence>
@@ -1018,7 +921,7 @@
         </sequence>
       </complexType>
 
-      <element name="unauthorizedAccess" type="tns:UnauthorizedAccess" />
+      <element name="unauthorizedAccess" type="typ:UnauthorizedAccess" />
 
       <complexType name="InsufficientFunds">
         <sequence>
@@ -1027,7 +930,7 @@
         </sequence>
       </complexType>
 
-      <element name="insufficientFunds" type="tns:InsufficientFunds" />
+      <element name="insufficientFunds" type="typ:InsufficientFunds" />
 
     </schema>
 
@@ -1052,59 +955,59 @@
   </message>
 
   <message name="unauthorizedAccess">
-    <part name="detail" element="tns:unauthorizedAccess" />
+    <part name="detail" element="typ:unauthorizedAccess" />
   </message>
 
   <message name="insufficientFunds">
-    <part name="detail" element="tns:insufficientFunds" />
+    <part name="detail" element="typ:insufficientFunds" />
   </message>
 
+  <!-- bank functions available to ATMs -->
   <portType name="FrontEnd">
-    <documentation>bank functions available to ATMs</documentation>
 
+    <!-- initiate bank connection -->
     <operation name="connect">
-      <documentation>initiate bank connection</documentation>
       <input message="tns:connectRequest" />
       <output message="tic:ticketMessage" />
     </operation>
 
+    <!-- terminate bank connection -->
     <operation name="disconnect">
-      <documentation>terminate bank connection</documentation>
       <input message="tic:ticketMessage" />
     </operation>
 
+    <!-- retrieve bank connection status -->
     <operation name="status">
-      <documentation>retrieve bank connection status</documentation>
       <input message="tic:ticketMessage" />
       <output message="tns:statusResponse" />
     </operation>
 
+    <!-- initiate customer session -->
     <operation name="logOn">
-      <documentation>initiate customer access</documentation>
       <input message="tns:logOnRequest" />
       <output message="tns:logOnResponse" />
       <fault name="unauthorizedAccess" message="tns:unauthorizedAccess" />
     </operation>
 
+    <!-- terminate customer session -->
     <operation name="logOff">
-      <documentation>terminate customer access</documentation>
       <input message="acc:customerMessage" />
     </operation>
 
+    <!-- retrieve account balance -->
     <operation name="getBalance">
-      <documentation>retrieve account balance</documentation>
       <input message="acc:customerMessage" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- increase account balance -->
     <operation name="deposit">
-      <documentation>increase account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
     </operation>
 
+    <!-- decrease account balance -->
     <operation name="withdraw">
-      <documentation>decrease account balance</documentation>
       <input message="tns:balanceChange" />
       <output message="acc:balanceMessage" />
       <fault name="insufficientFunds" message="tns:insufficientFunds" />
@@ -1131,65 +1034,59 @@
         ATM. The ticket issuer or the account system do not call back the coordinator either.
         Therefore, all partner link types have a single role.</para>
       
-      <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/atm"
-  xmlns:tns="http://jbpm.org/examples/atm"
-  xmlns:atm="http://jbpm.org/examples/atm"
-  xmlns:acc="http://jbpm.org/examples/account"
-  xmlns:tic="http://jbpm.org/examples/ticket"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
-
-  <import namespace="http://jbpm.org/examples/atm"
-    location="interface/frontend.wsdl" />
-  <import namespace="http://jbpm.org/examples/account"
-    location="interface/account.wsdl" />
-  <import namespace="http://jbpm.org/examples/ticket"
-    location="interface/ticket.wsdl" />
-
-  <vprop:property name="customerId" type="xsd:string">
-    <vprop:documentation>customer name property</vprop:documentation>
-  </vprop:property>
-
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="tns:logOnRequest" part="customerName">
-  </vprop:propertyAlias>
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="tns:balanceChange" part="customerName" />
-  <vprop:propertyAlias propertyName="tns:customerId"
+      <programlisting><![CDATA[<definitions targetNamespace="urn:samples:atm"
+  xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:atm"
+  xmlns:atm="urn:samples:atm" xmlns:tic="urn:samples:ticket"
+  xmlns:acc="urn:samples:account"
+  xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+  <import namespace="urn:samples:atm" location="interface/frontend.wsdl" />
+  <import namespace="urn:samples:ticket" location="interface/ticket.wsdl" />
+  <import namespace="urn:samples:account" location="interface/account.wsdl" />
+
+  <!-- customer name property -->
+  <bpel:property name="customerId" type="xsd:string" />
+
+  <!-- location of costumerId inside messages -->
+  <bpel:propertyAlias propertyName="tns:customerId"
+    messageType="atm:logOnRequest" part="customerName" />
+  <bpel:propertyAlias propertyName="tns:customerId"
+    messageType="atm:balanceChange" part="customerName" />
+  <bpel:propertyAlias propertyName="tns:customerId"
     messageType="acc:customerMessage" part="customerName" />
-  <vprop:propertyAlias propertyName="tns:customerId"
-    messageType="acc:accountOperation" part="body">
-    <vprop:query>/body/customerName</vprop:query>
-  </vprop:propertyAlias>
-
-  <vprop:property name="ticketId" type="xsd:int">
-    <vprop:documentation>ticket number property</vprop:documentation>
-  </vprop:property>
+  <bpel:propertyAlias propertyName="tns:customerId"
+    messageType="acc:accountOperation" part="body" query="/body/customerName" />
+
+  <!-- ticket number property -->
+  <bpel:property name="ticketId" type="xsd:int" />
 
-  <vprop:propertyAlias propertyName="tns:ticketId"
+  <!-- location of ticketId inside messages -->
+  <bpel:propertyAlias propertyName="tns:ticketId"
     messageType="tic:ticketMessage" part="ticketNo" />
-  <vprop:propertyAlias propertyName="tns:ticketId"
-    messageType="tns:logOnRequest" part="ticketNo" />
+  <bpel:propertyAlias propertyName="tns:ticketId" messageType="atm:logOnRequest"
+    part="ticketNo" />
 
+  <!-- relationship between the ATM and the process -->
   <plt:partnerLinkType name="Atm-Front">
-    <plt:documentation>
-      relationship between the ATM and the process
-    </plt:documentation>
-    <plt:role name="FrontEnd" portType="tns:FrontEnd" />
+    <plt:role name="FrontEnd">
+      <plt:portType name="atm:FrontEnd" />
+    </plt:role>
   </plt:partnerLinkType>
+
+  <!-- relationship between the process and the ticket issuer -->
   <plt:partnerLinkType name="Front-Ticket">
-    <vprop:documentation>
-      relationship between the process and the ticket issuer
-    </vprop:documentation>
-    <plt:role name="TicketIssuer" portType="tic:TicketIssuer" />
+    <plt:role name="TicketIssuer">
+      <plt:portType name="tic:TicketIssuer" />
+    </plt:role>
   </plt:partnerLinkType>
+
+  <!-- relationship between the process and the account system -->
   <plt:partnerLinkType name="Front-Account">
-    <plt:documentation>
-      relationship between the process and the account system
-    </plt:documentation>
-    <plt:role name="AccountSystem" portType="acc:AccountSystem" />
+    <plt:role name="AccountSystem">
+      <plt:portType name="acc:AccountSystem" />
+    </plt:role>
   </plt:partnerLinkType>
 
 </definitions>]]></programlisting>
@@ -1201,169 +1098,321 @@
       <title>Deploy the process definition</title>
       
       <para>The master WSDL document <literal>atm.wsdl</literal> (as explained in the <link 
-        linkend="tutorial.hello.def.deploy">process deployment</link> section of the Hello 
-        World chapter) imports the remaining WSDL documents from the <link 
-        linkend="tutorial.atm.def.wsdl">previous</link> block of this chapter.</para>
-            
-      <para>If a definition descriptor was provided, it would point to the <literal>atm.bpel
-        </literal> and <literal>atm.wsdl</literal> documents in the <literal>src/main/bpel
-        </literal> directory.</para>
+        linkend="tutorial.hello.def.deploy">definition deployment section</link> of the Hello 
+        World example) imports the interface WSDL documents from the <link 
+        linkend="tutorial.atm.def.wsdl">previous section</link>.</para>
+            
+      <para>The hypothetic definition descriptor points to the <literal>atm.bpel</literal> and
+        <literal>atm.wsdl</literal> documents presented earlier. Cecause <literal>atm.wsdl
+        </literal> imports the remaining WSDL documents, it is not necessary to enumerate them.
+        </para>
         
       <programlisting><![CDATA[<bpelDefinition location="atm.bpel" xmlns="urn:jbpm.org:bpel-1.1:definition">
 
+  <!-- makes WSDL interface elements available to the process -->
   <imports>
     <wsdl location="atm.wsdl" />
   </imports>
 
 </bpelDefinition>]]></programlisting>
       
-      <para>To deploy the process definition, call:</para>
+      <para>To deploy the process definition to the jBPM database, call:</para>
   
-      <synopsis>ant deploy.process</synopsis>
+      <synopsis>ant deploy-process</synopsis>
   
-      <para>The above target creates a file named <literal>atm.zip</literal> and submits it
-        to the deployment servlet. The server console should read:</para>
+      <para>The above target creates a file named <literal>atm-process.zip</literal> and submits it
+        to the jBPM BPEL deploy servlet. The server console should read:</para>
   
-      <screen>13:25:52,000 INFO  [DeploymentServlet] deployed process definition: AtmFrontEnd
-13:25:52,781 INFO  [WebModuleBuilder] packaged web module: atm.war
-13:25:52,781 INFO  [DeploymentServlet] deployed web module: atm.war
-13:25:55,390 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=atm,&nextLine;
-endpoint=FrontEndServlet
-13:25:55,421 INFO  [TomcatDeployer] deploy, ctxPath=/atm, warUrl=...
-13:25:55,640 INFO  [IntegrationConfigurator] message reception enabled for process:&nextLine;
-AtmFrontEnd
-13:25:55,812 INFO  [WSDLFilePublisher] WSDL published to: .../atm-service.wsdl</screen>
+      <screen>14:30:22,437 INFO  [[/jbpm-bpel]] processDeployServlet: deploying process definition: &nextLine;
+  file=file:/.../atm-process.zip
+14:30:22,968 INFO  [BpelReader] read wsdl definitions: atm.wsdl
+14:30:23,281 INFO  [BpelReader] read bpel process: atm.bpel
+14:30:29,984 INFO  [[/jbpm-bpel]] processDeployServlet: deployed process definition: &nextLine;
+AtmFrontEnd</screen>
 
-      <para>The ATM front end relies on two partner services: <literal>account</literal> and
-        <literal>ticket</literal>. Be sure to deploy them before any ATM connects. In order
-        to deploy a partner service, change to its directory of each partner and execute the
-        command below.</para>
+    </section>
         
-      <synopsis>ant deploy.webservice</synopsis>
+  </section>
       
-      <para>As a result, the server console will display these lines:</para>
+  <section id="tutorial.atm.server">
       
-      <screen>02:01:13,078 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=account,&nextLine;
-endpoint=accountSystemServlet
-02:01:13,109 INFO  [TomcatDeployer] deploy, ctxPath=/account, warUrl=...
-02:01:14,578 INFO  [WSDLFilePublisher] WSDL published to: .../account-impl.wsdl
---
-02:01:30,140 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=ticket,&nextLine;
-endpoint=ticketIssuerServlet
-02:01:30,171 INFO  [TomcatDeployer] deploy, ctxPath=/ticket, warUrl=...
-02:01:30,328 INFO  [WSDLFilePublisher] WSDL published to: .../ticket-impl.wsdl</screen>
+    <title>Build the WSEE port components</title>
 
-      <para>The following endpoints should be present in the JBossWS service endpoints page.</para>
+    <section id="tutorial.atm.server.wsdl">
       
-      <table>
+      <title>WSDL implementation documents</title>
       
-        <title>Partner endpoints</title>
+      <para>Generate the WSDL implementation definitions with:</para>
         
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <synopsis>ant generate-service</synopsis>
 
-        <colspec colwidth="1*"/>
-        <colspec colwidth="3*"/>
+	    <para>The <literal>servicegen</literal> tool writes the following documents:</para>
 
-        <thead>
+      <itemizedlist>
         
-          <row>
-            <entry>Partner link</entry>
-            <entry>Endpoint</entry>
-          </row>
+        <listitem><para><literal>atm.wsdl</literal>, <literal>frontend.wsdl</literal>, <literal>
+          ticket.wsdl</literal> and <literal>account.wsdl</literal> are equivalents of the interface
+          WSDL documents we saw in <link linkend="tutorial.atm.def.wsdl" 
+          endterm="tutorial.atm.def.wsdl.title" /></para></listitem>
+
+        <listitem><para><literal>atm-binding-1.wsdl</literal> contains the SOAP binding for the 
+          <literal>FrontEnd</literal> port type</para></listitem>
+
+        <listitem><para><literal>atm-service.wsdl</literal> has the service that corresponds to the
+          process. The <varname>AtmFrontEndService</varname> service contains a <varname>
+          FrontEndPort</varname> associated to the <varname>atm</varname> partner link.</para>
+          </listitem>
 
-        </thead>
+      </itemizedlist>
       
-        <tbody>
+    </section>
 
-          <row>
-            <entry>ticket</entry>
-            <entry>http://127.0.0.1:8080/ticket/ticketIssuer</entry>
-          </row>
+    <section id="tutorial.atm.server.artifacts">
           
-          <row>
-            <entry>account</entry>
-            <entry>http://127.0.0.1:8080/account/accountSystem</entry>
-          </row>
+      <title>Java mapping artifacts</title>
           
-        </tbody>
+      <para>Generate the Java mapping artifacts with this command:</para>
         
-        </tgroup>
+      <synopsis>ant generate-artifacts</synopsis>
       
-      </table>
+      <para>The configuration for <literal>wstools</literal> is:</para>
 
-      <table>
+      <programlisting><![CDATA[<configuration xmlns="http://www.jboss.org/jbossws-tools">
+  <global>
+    <package-namespace package="org.jbpm.bpel.tutorial.atm"
+      namespace="urn:samples:atm" />
+  </global>
+  <wsdl-java file="wsdl/service.wsdl">
+    <mapping file="jaxrpc-mapping.xml" />
+  </wsdl-java>
+</configuration>]]></programlisting>
       
-        <title>My endpoints</title>
+      <para>For <literal>wscompile</literal> we have:</para>
         
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <programlisting><![CDATA[<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
+  <wsdl location="output/resources/WEB-INF/wsdl/service.wsdl"
+    packageName="org.jbpm.bpel.tutorial.atm" />
+</configuration>]]></programlisting>
 
-        <colspec colwidth="1*"/>
-        <colspec colwidth="3*"/>
+    </section>
 
-        <thead>
+    <section id="tutorial.atm.server.webapp">
         
-          <row>
-            <entry>Partner link</entry>
-            <entry>Endpoint</entry>
-          </row>
+      <title>Port components as servlets</title>
 
-        </thead>
+    	<para>The subsequent listing presents the <literal>web.xml</literal> descriptor used for
+        this example.</para>
       
-        <tbody>
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
 
-          <row>
-            <entry>atm</entry>
-            <entry>http://127.0.0.1:8080/atm/FrontEnd?wsdl</entry>
-          </row>
+  <!-- ATM Front End -->
+  <servlet>
+    <servlet-name>frontEndServlet</servlet-name>
+    <servlet-class>org.jbpm.bpel.tutorial.atm.FrontEnd_Impl</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>frontEndServlet</servlet-name>
+    <url-pattern>/frontEnd</url-pattern>
+  </servlet-mapping>
+  ...
+</web-app>]]></programlisting>
           
-        </tbody>
+    </section>
         
-        </tgroup>
+    <section id="tutorial.atm.server.integra">
       
-      </table>
+      <title id="tutorial.atm.server.integra.title">Partner integration</title>
       
-      <para>The partner services need to be registered in the catalog. The target below
-        takes care of it.</para>
+      <para>In order for the process to receive messages, register the integration configurator 
+        in your <literal>web.xml</literal>. Refer to the <link linkend="tutorial.hello.server.integra"
+        endterm="tutorial.hello.server.integra.title" /> section in the Hello World example for a
+        full explanation.</para>
         
-      <synopsis>ant register.partners</synopsis>
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+  ...
+  <!-- Partner Integration Configurator -->
+  <listener>
+    <listener-class>
+      org.jbpm.bpel.integration.server.IntegrationConfigurator
+    </listener-class>
+  </listener>
+  ...
+</web-app>]]></programlisting>
       
-      <para>The web console lets you confirm the registration.</para>
+      <para>The <literal>bpel-application.xml</literal> descriptor contains the integration 
+        configuration. In the <link linkend="tutorial.hello.server.integra">Hello World</link> 
+        example, this descriptor simply tells the name of the process being enacted. This time,
+        however, the process not only provides a service but also consumes two partner services.
+        In this case the descriptor must supply at least one catalog of WSDL 
+        documents. These WSDL documents provide concrete binding and address information 
+        required to contact the partner services.</para>
+        
+      <programlisting><![CDATA[<bpelApplication name="AtmFrontEnd" 
+  targetNamespace="urn:samples:atm"
+  xmlns="urn:jbpm.org:bpel-1.1:application">
+
+  <serviceCatalogs>
+    <!-- listing of locally published WSDL documents -->
+    <urlCatalog contextUrl="http://localhost:8080/">
+      <!-- published WSDL document of ticket issuer -->
+      <wsdl location="ticket/ticketIssuer?wsdl" />
+      <!-- published WSDL document of account system -->
+      <wsdl location="account/accountSystem?wsdl" />
+    </urlCatalog>
+  </serviceCatalogs>
+
+</bpelApplication>]]></programlisting>
+      
+      <para>The URL catalog above is a collection of URLs, either absolute or relative to a 
+        given context. You can use multiple <literal>urlCatalog</literal> elements to group
+        URLs sharing a common context.</para>
+        
+      <para>The WSDL documents must contain <literal>binding</literal> and <literal>
+        service</literal> definitions for all partner services. jBPM BPEL reads the
+        information these definitions provide in order to send/receive messages to/from
+        partner services using the adequate protocol and format.</para>
+        
+      <note><para>The endpoint address comes from the <literal>port</literal> element in 
+        the WSDL file, not from the URL in the catalog. To invoke a partner service, jBPM 
+        BPEL requires the full WSDL definition, not the endpoint URL alone.</para></note>
         
-      <table>
+    </section>
       
-        <title>Service catalog</title>
+    <section id="tutorial.atm.server.webservices">
         
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <title>Web services deployment descriptor</title>
 
-        <colspec colwidth="3*"/>
-        <colspec colwidth="1*"/>
+      <para>The web services descriptor, <literal>webservices.xml</literal>, appears next. Notice
+        the <literal>FrontEndHandler</literal>, which injects BPEL functionality to the <literal>
+        FrontEndPort</literal> component.</para>
 
-        <thead>
+      <programlisting><![CDATA[<webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee">
         
-          <row>
-            <entry>Base location</entry>
-            <entry>Services</entry>
-          </row>
+  <webservice-description>
 
-        </thead>
+    <!-- descriptive name for the service -->
+    <webservice-description-name>ATM Front End</webservice-description-name>
+    <!-- WSDL implementation file -->
+    <wsdl-file>WEB-INF/wsdl/service.wsdl</wsdl-file>
+    <!-- Java<->XML mapping file -->
+    <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
       
-        <tbody>
+    <port-component>
 
-          <row>
-            <entry>http://localhost:8080/ticket/ticketIssuer?wsdl</entry>
-            <entry>TicketService</entry>
-          </row>
+      <!-- logical name for the port (unique within the module) -->
+      <port-component-name>FrontEndPort</port-component-name>
+      <!-- WSDL port element (in service.wsdl) -->
+      <wsdl-port xmlns:portNS="urn:samples:atm">portNS:FrontEndPort</wsdl-port>
+      <!-- service endpoint interface class -->
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.atm.FrontEnd
+      </service-endpoint-interface>
+      <!-- associated servlet (in web.xml) -->
+      <service-impl-bean>
+        <servlet-link>frontEndServlet</servlet-link>
+      </service-impl-bean>
+
+      <handler>
+
+        <!-- logical name for the handler (unique within the module) -->
+        <handler-name>FrontEndHandler</handler-name>
+        <!-- handler class (in jbpm-bpel.jar) -->
+        <handler-class>
+          org.jbpm.bpel.integration.server.SoapHandler
+        </handler-class>
+
+        <init-param>
+          <description>
+            name of the partner link served by this port
+          </description>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>atm</param-value>
+        </init-param>
+        <init-param>
+          <description>time to wait for response messages (millis)</description>
+          <param-name>responseTimeout</param-name>
+          <param-value>5000</param-value>
+        </init-param>
+        <init-param>
+          <description>time to expire one-way messages (millis)</description>
+          <param-name>oneWayTimeout</param-name>
+          <param-value>60000</param-value>
+        </init-param>
+
+      </handler>
+
+    </port-component>
+
+  </webservice-description>
+
+</webservices>]]></programlisting>
+
+      <tip>
+        
+        <para>The <literal>responseTimeout</literal> and <literal>oneWayTimeout</literal> 
+          parameters are optional.</para>
+          
+        <para>When <literal>responseTimeout</literal> is present, clients of your process that
+          invoke a request/response operation will get a SOAP fault message back when the process
+          is unable to reply within the specified interval. The <literal>faultcode</literal> of
+          said message is <literal>soapenv:Server</literal>.</para>
+          
+        <para>The <literal>oneWayTimeout</literal> parameter enables jBPM BPEL to get rid of 
+          unattended one-way messages. This is useful in processes having picks or message events
+          involving one-way operations. In cases where the expected message arrives too late, the
+          server has no other way to detect it will never be received.</para>
           
-          <row>
-            <entry>http://localhost:8080/account/accountSystem?wsdl</entry>
-            <entry>AccountService</entry>
-          </row>
+     </tip>
+
+    </section>
           
-        </tbody>
+    <section id="tutorial.atm.server.deploy">
         
-        </tgroup>
+      <title>Web application deployment</title>
       
-      </table>
+      <para>To deploy the web service to the app server, call:</para>
+      
+      <synopsis>ant deploy-webservice</synopsis>
+      
+      <para>This builds a web archive named <literal>atm.war</literal> and copies it to the
+        <literal>deploy</literal> directory of your JBoss AS configuration. On the server, you 
+        should see logs like:</para>
+  
+      <screen>17:31:38,828 INFO  [TomcatDeployer] deploy, ctxPath=/atm, warUrl=...
+17:31:39,156 INFO  [IntegrationConfigurator] Message reception enabled for process: &nextLine;
+AtmFrontEnd
+17:31:39,218 INFO  [WSDLFilePublisher] WSDL published to: file:/.../atm-service.wsdl
+17:31:39,281 INFO  [ServiceEndpointManager] WebService started: http://.../atm/frontEnd</screen>
+        
+      <para>Back in <link linkend="tutorial.atm.def.wsdl" endterm="tutorial.atm.def.wsdl.title" /> 
+        the description assumed the partner services were available somewhere. At this point,
+        they must be actually up and running. The resources of each partner service reside in 
+        separate directories under <literal>doc/examples</literal>.</para>
+        
+      <para>To deploy the ticket issuer, change to the <literal>ticket</literal> dir and call:
+        </para>
+        
+      <synopsis>ant redeploy</synopsis>
+      
+      <para>This will generate the Java mapping artifacts, build the <literal>ticket.war</literal>
+        module and deploy it to JBoss AS. The console output is:</para>
+        
+      <screen>17:35:56,937 INFO  [TomcatDeployer] deploy, ctxPath=/ticket, warUrl=...
+17:35:57,093 INFO  [WSDLFilePublisher] WSDL published to: file:/.../ticket-impl.wsdl
+17:35:57,093 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../ticket/ticketIssuer</screen>
+
+      <para>Call the same target in the <literal>account</literal> directory to deploy the accout 
+        system. The server emits these logs:</para>
+        
+      <screen>17:43:46,828 INFO  [TomcatDeployer] deploy, ctxPath=/account, warUrl=...
+17:43:46,953 INFO  [WSDLFilePublisher] WSDL published to: file:/.../account-impl.wsdl
+17:43:46,984 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../account/accountSystem</screen>
+
+      <note><para>At this point, your BPEL process and its partner services are fully accessible 
+        to external clients through their endpoint addresses. The remaining sections focus on 
+        testing the process using a J2EE application client.</para></note>
     
     </section>
   
@@ -1377,7 +1426,7 @@
 
       <title>Application client deployment descriptor</title>
       
-      <para>Reference your full WSDL description and Java mapping artifacts from the <literal>
+      <para>Reference your WSDL definitions and Java mapping artifacts from the <literal>
         application-client.xml</literal> descriptor.</para>
   
       <programlisting><![CDATA[<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
@@ -1391,9 +1440,16 @@
     <!-- service interface class -->
     <service-interface>org.jbpm.bpel.tutorial.atm.AtmFrontEndService</service-interface>
     <!-- published WSDL document -->
-    <wsdl-file>META-INF/wsdl/atm-service.wsdl</wsdl-file>
+    <wsdl-file>META-INF/wsdl/service.wsdl</wsdl-file>
     <!-- Java<->XML mapping file -->
-    <jaxrpc-mapping-file>META-INF/atm-mapping.xml</jaxrpc-mapping-file>
+    <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+
+    <port-component-ref>
+      <!-- service endpoint interface class -->
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.atm.FrontEnd
+      </service-endpoint-interface>
+    </port-component-ref>
 
   </service-ref>
 
@@ -1409,14 +1465,21 @@
         </literal>.</para>
       
       <programlisting><![CDATA[<jboss-client>
+  <!-- JNDI name of client environment context -->
   <jndi-name>jbpmbpel-client</jndi-name>
 </jboss-client>]]></programlisting>
 
-      <tip><para>The <literal>jndi-name</literal> above is shared among all examples. You can
-        share a single JNDI name among multiple application clients to keep them organized
-        and reduce the number of top-level entries in the global JNDI context of the server.
-        Just make sure you give different <literal>service-ref-name</literal>s to each client
-        in the respective <literal>application-client.xml</literal> file.</para></tip>
+      <tip>
+
+        <para>The name above is the same we used in the JBoss client descriptor of the <link 
+          linkend="tutorial.hello.client.env">Hello World</link> example.</para>
+        
+        <para>You can share one JNDI name among multiple application clients to keep them organized
+          and reduce the number of top-level entries in the global JNDI context. Just be careful to
+          give different <literal>service-ref-name</literal>s to each client in <literal>
+          application-client.xml</literal>.</para>
+          
+      </tip>
 
     </section>
     
@@ -1637,13 +1700,13 @@
 
       <title>Client JNDI properties</title>
       
-      <para>The JNDI properties are exactly the same for all examples. In 
+      <para>The JNDI properties are exactly the same as in the Hello World example. In 
         particular, the <varname>j2ee.clientName</varname> property does not change because
-        all examples share the <literal>&lt;jndi-name&gt;</literal> in
-        their respective <literal>jboss-client.xml</literal> descriptors.</para>
+        we chose to keep the <varname>&lt;jndi-name&gt;</varname> in <literal>jboss-client.xml</literal>
+        we used in said example.</para>
         
-      <para>Refer to the <link linkend="tutorial.hello.test.jndi" 
-        endterm="tutorial.hello.test.jndi.title" /> in the first example for a listing
+      <para>See the <link linkend="tutorial.hello.test.jndi" 
+        endterm="tutorial.hello.test.jndi.title" /> of the Hello World example for a listing
         of the properties.</para>
 
     </section>
@@ -1654,13 +1717,14 @@
 
       <para>The following target executes the junit test case:</para>
 
-      <synopsis>ant test</synopsis>
+      <synopsis>ant run-test</synopsis>
 
       <para>If everything goes well the target output should look like this:</para>
 
-      <screen>test:
+      <screen><![CDATA[run-test:
+...
     [junit] Running org.jbpm.bpel.tutorial.atm.AtmFrontEndTest
-    [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 6.109 sec</screen>
+    [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 6.109 sec]]></screen>
     
     </section>
     
@@ -1683,33 +1747,42 @@
       
       <para>To bring up the interactive terminal, call:</para>
       
-      <synopsis>ant launch.terminal</synopsis>
+      <synopsis>ant run-terminal</synopsis>
       
-      <para>After a brief message exchange to connect to the front end service, the frame below
-        appears.</para>
+      <para>The frame bellow appears.</para>
       
-      <figure id="tutorial.atm.welcome.screen">
-        <title>Welcome screen</title>
-        <mediaobject><imageobject><imagedata fileref="images/atmWelcomeScreen.png" align="center"
-          width="4.11in" depth="1.60in" scalefit="0"/></imageobject></mediaobject>
+      <figure>
+        <title>Disconnected terminal</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="images/atmTerminalDisconnected.png"/>
+          </imageobject>
+        </mediaobject>
       </figure>
       
-      <para>Click <emphasis>Log On</emphasis> to access an account. The terminal
-        prompts for a customer name. Type in any name from the <literal>accounts.xml</literal>
-        file in the <literal>account</literal> example.</para>
-
-      <figure id="tutorial.atm.name.prompt">
-        <title>Customer name prompt</title>
-        <mediaobject><imageobject><imagedata fileref="images/atmNamePrompt.png" align="center"
-          width="2.79in" depth="1.30in" scalefit="0"/></imageobject></mediaobject>
-      </figure>
+      <para>When you click <emphasis>Connect</emphasis>, the terminal establishes a connection
+        with the server.</para>
       
-      <para>The top-level frame presents the available account operations.</para>
+      <figure>
+        <title>Connected terminal</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="images/atmTerminalConnected.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
       
-      <figure id="tutorial.atm.account.operations">
-        <title>Account operations</title>
-        <mediaobject><imageobject><imagedata fileref="images/atmAccountOps.png" align="center" 
-          width="4.11in" depth="1.60in" scalefit="0"/></imageobject></mediaobject>
+      <para>Clicking <emphasis>Log On</emphasis> starts a customer session. The program
+        asks you for a customer name. Type in any name from the <literal>accounts.xml</literal>
+        file in the <literal>account</literal> service.</para>
+
+      <figure>
+        <title>Terminal starting a customer session</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="images/atmTerminalLoggingOn.png"/>
+          </imageobject>
+        </mediaobject>
       </figure>
       
       <para>Enjoy!</para>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/gettingStarted.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/gettingStarted.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/gettingStarted.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/gettingStarted.xml	2009-02-06 09:17:20.000000000 +0100
@@ -7,9 +7,9 @@
     <title>Getting JBoss jBPM BPEL</title>
     
     <para>The releases of JBoss jBPM BPEL can be found in the <ulink 
-      url="http://labs.jboss.com/jbossjbpm/downloads/">jBPM download page</ulink>. The 
+      url="http://www.jboss.com/products/jbpm/downloads">jBPM download page</ulink>. The 
       jBPM BPEL package contains the software sources and binaries, plus the 
-      third-party libraries it depends on.</para>
+      thirdparty libraries it depends on.</para>
       
     <para>The BPEL Runtime builds on jBPM 3. Downloading the jBPM jPDL distribution separately
       is strongly recommended but strictly optional, as the BPEL package already contains the
@@ -29,9 +29,6 @@
       
       <tgroup cols='2' align='left' colsep='1' rowsep='1'>
 
-      <colspec colwidth="1*"/>
-      <colspec colwidth="2*"/>
-
       <thead>
 
         <row>
@@ -96,86 +93,9 @@
     <para>For instructions on getting JBoss AS, see <ulink url="http://tinyurl.com/kl9wl">
       Downloading and Installing JBoss</ulink>.</para>
     
-    <para>Please make sure you select a JBoss AS version and server profile compatible 
-      with J2EE 1.4. jBPM BPEL has been tested in the environments below.</para>
-      
-    <table>
-    
-      <title>Tested environments</title>
-    
-      <tgroup cols="4" align="left" rowsep="1" colsep="1">
-
-        <colspec colwidth="1*"/>
-        <colspec colwidth="1*"/>
-        <colspec colwidth="1*"/>
-        <colspec colwidth="1*"/>
-
-        <thead>
-        
-          <row>
-            <entry>JDK</entry>
-            <entry>JBoss AS</entry>
-            <entry>Server Profile</entry>
-            <entry>Limitations</entry>
-          </row>
-        
-        </thead>
-        
-        <tbody>
-
-          <row>
-            <entry>1.4.2</entry>
-            <entry>4.0.3.SP1</entry>
-            <entry>default</entry>
-            <entry>(1)</entry>
-          </row>
-
-          <row>
-            <entry>1.4.2</entry>
-            <entry>4.0.4.GA</entry>
-            <entry>default</entry>
-            <entry>(2)</entry>
-          </row>
-
-          <row>
-            <entry>1.4.2</entry>
-            <entry>4.0.5.GA</entry>
-            <entry>default</entry>
-            <entry/>
-          </row>
-
-          <row>
-            <entry>1.5.0</entry>
-            <entry>4.2.0.GA</entry>
-            <entry>default</entry>
-            <entry/>
-          </row>
-
-          <row>
-            <entry>1.5.0</entry>
-            <entry>4.2.2.GA</entry>
-            <entry>default</entry>
-            <entry/>
-          </row>
-
-        </tbody>
-      
-      </tgroup>
-    
-    </table>
-    
-    <para>The limitations are as follows.</para>
-    
-    <orderedlist>
-    
-      <listitem><para>The <literal>purchase</literal> and <literal>loan</literal>
-        examples do not work because each exposes multiple endpoints. Version 4.0.3.SP1
-        does not support multiple ports per service.</para></listitem>
-      
-      <listitem><para>Nothing works. The SAAJ implementation was unstable at the time
-        of the 4.0.4.GA release.</para></listitem>
-    
-    </orderedlist>
+    <note><para>Please make sure you select a JBoss AS version and server profile compatible 
+      with J2EE 1.4. jBPM BPEL has been tested with versions 4.0.3.SP1, 4.0.4.GA 
+      and 4.0.5.GA using the <literal>default</literal> profile.</para></note>
       
   </section>
    
@@ -184,9 +104,11 @@
     <title>Getting Apache Ant</title>
        
     <para>Ant scripts dramatically simplify the development and deployment of BPEL proceses.
-      The tutorial assumes you have installed Ant and are able to execute targets. Furthermore,
-      you need Ant to build the jBPM BPEL enterprise application. For directions on getting 
-      Ant, see <ulink url="http://ant.apache.org/manual/install.html">Installing Ant</ulink>.</para>
+      The tutorial chapter assumes you have installed Ant and are able to execute targets. 
+      Furthermore, you need Ant to build the jBPM BPEL service archive.</para>
+      
+    <para>For directions on getting Ant, see <ulink url="http://ant.apache.org/manual/install.html">
+      Installing Ant</ulink>.</para>
     
     <note><para>In order to run <literal>junit</literal> tasks, Ant requires the JUnit library.
       You can find this library under <literal>lib/junit</literal>. Remember to copy it to Ant's
@@ -194,20 +116,41 @@
    
   </section>
 
+  <section id="getstarted.eclipse">
+  
+    <title>Getting the Eclipse BPEL designer</title>
+    
+    <para>The Eclipse community has begun a <ulink url="http://www.eclipse.org/bpel/">BPEL
+      project</ulink>. The goal of this project is "to add comprehensive support to 
+      Eclipse for the definition, authoring, editing, deploying, testing and debugging of 
+      WS-BPEL 2.0 processes".</para>
+      
+    <para>The JBoss jBPM team has been in touch with the comitters of this project. Expect
+      tighter integration between the Eclipse Designer and jBPM BPEL shortly after key pieces
+      of functionality such as Runtime Framework and Debug become available.</para>
+      
+    <para>You do not have to wait, tough. You can get started with the Eclipse BPEL designer
+      and jBPM BPEL <emphasis role="bold">today</emphasis>! Please visit our <ulink 
+      url="http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmBpelDesigner">Wiki</ulink> knowledge
+      base for a Quick Start guide.</para>
+  
+  </section>
+  
   <section id="getstarted.setup">
   
-    <title>Enterprise application setup</title>
+    <title>Service setup</title>
 
-    <para>The jBPM BPEL enterprise application (<literal>jbpm-bpel.ear</literal>) contains
-      the libraries and configuration files required to execute BPEL processes. The following 
-      sections describe how to configure, package and deploy the application to
-      JBoss AS.</para>
+    <para>The jBPM BPEL service archive (<literal>jbpm-bpel.sar</literal>) contains the 
+      libraries and  configuration files required to execute BPEL processes. The following 
+      sections describe how to configure, package and deploy the jBPM BPEL service to JBoss
+      AS.</para>
       
     <section id="getstarted.setup.config">
       
-      <title>Application configuration</title>
+      <title>Service configuration</title>
       
-      <para>The configuration files reside in the <literal>config</literal> directory.</para>
+      <para>The configuration files reside in the <literal>config</literal> directory.
+        These files provide settings to Hibernate and to jBPM itself.</para>
     
       <section id="getstarted.setup.config.hibernate">
       
@@ -216,9 +159,8 @@
         <para>Starting from version 1.0 alpha 3, the BPEL Runtime incorporates the jBPM
           persistence model, described in the chapter on <ulink 
           url="http://docs.jboss.com/jbpm/v3/userguide/persistence.html">persistence</ulink> of 
-          the jBPM user guide. jBPM uses <ulink url="http://hibernate.org">Hibernate</ulink> as 
-          its object-relational mapping solution. The next table describes the Hibernate 
-          configuration files.</para>
+          the jBPM user guide. jBPM uses Hibernate as its object-relational mapper.
+          The next table describes the Hibernate configuration files.</para>
           
         <table>
         
@@ -226,10 +168,6 @@
       
           <tgroup cols='3' align='left' colsep='1' rowsep='1'>
 
-          <colspec colwidth="2*"/>
-          <colspec colwidth="1*"/>
-          <colspec colwidth="4*"/>
-
           <thead>
 
             <row>
@@ -243,7 +181,7 @@
           <tbody>
 
             <row>
-              <entry><literal>jbpm.hibernate.cfg.xml</literal></entry>
+                <entry><literal>hibernate.cfg.xml</literal></entry>
               <entry><literal>config</literal></entry>
               <entry>
                 <para>Contains database connection properties and references to 
@@ -255,17 +193,32 @@
               </entry>
             </row>
 
+              <row>
+                <entry><literal>ehcache.xml</literal></entry>
+                <entry><literal>deploy/resources</literal></entry>
+                <entry>
+                  <para>Supplies parameters for the second-level cache provider EhCache.</para>
+                  <para>The chapter on <ulink url="http://tinyurl.com/pv6w9">Performance</ulink> in
+                  the Hibernate manual describes the use of caches to improve performance.</para>
+                </entry>
+              </row>
+
           </tbody>
             
           </tgroup>
           
         </table>
         
-        <para>Among the properties in <literal>jbpm.hibernate.cfg.xml</literal>, <literal>
-          hibernate.connection.datasource</literal> is of particular interest. This property
-          specifies the name of a data source in the JNDI registry. The preset value,
-          <literal>java:/DefaultDS</literal>, references a predeployed data source in
-          JBoss AS.</para>
+        <para>Apart from the above files, the jBPM BPEL service includes a data source deployment 
+          descriptor: <literal>jbpm-bpel-ds.xml</literal>. This file also describes a <literal>
+          HypersonicDatabase</literal> MBean. Upon deployment, this MBean creates a database 
+          inside the OS process where the server is running. The database is written to disk when the
+          MBean is undeployed. No other OS processes have access to this database.</para>
+          
+        <para>Administrators often prefer to deploy data sources separately from services and 
+         applications. The data source described in the previous paragraph is intended for 
+         evaluation and development purposes. It should not be regarded as a production
+         arrangement.</para>
                   
       </section>
       
@@ -274,17 +227,14 @@
         <title>jBPM settings</title>
 
         <para>The file <literal>jbpm.cfg.xml</literal> contains the jBPM configuration. The 
-          following table summarizes the most relevant jBPM settings.</para>
+          following table summarizes the jBPM settings relevant to BPEL.</para>
 
         <table>
         
-          <title>Most relevant jBPM settings</title>
+          <title>jBPM settings relevant to BPEL</title>
         
           <tgroup cols='2' align='left' colsep='1' rowsep='1'>
 
-          <colspec colwidth="1*"/>
-          <colspec colwidth="2*"/>
-          
           <thead>
         
             <row>
@@ -300,14 +250,20 @@
               <entry><literal>jbpm-context</literal></entry>
               <entry>Configures the jBPM context with a set of services. The <literal>persistence
                 </literal>, <literal>tx</literal>, <literal>scheduler</literal> and <literal>
-                integration</literal> services are required. Other services are not used by the
-                BPEL Runtime and may be disabled.
-                </entry>
+                integration</literal> services are mandatory. Other services are not used by the
+                BPEL Runtime. They may be disabled if jPDL processes deployed alongside BPEL
+                processes do not rely on them.</entry>
             </row>
             
             <row>
               <entry><literal>resource.hibernate.cfg.xml</literal></entry>
-              <entry>Specifies the classpath resource used to configure Hibernate.</entry>
+              <entry>References an XML resource listing the Hibernate mapping files.</entry>
+            </row>
+            
+            <row>
+              <entry><literal>resource.hibernate.properties</literal></entry>
+              <entry>References a properties resource containing the JDBC connection 
+                parameters.</entry>
             </row>
           
           </tbody>
@@ -322,111 +278,56 @@
       
     <section id="getstarted.setup.pack">
     
-      <title id="getstarted.setup.pack.title">Application packaging</title>
+      <title id="getstarted.setup.pack.title">Service packaging</title>
       
-      <para>Once you have set the configuration, building the enterprise archive is easy.
-        Go to directory <literal>config</literal> and open the <literal>build.properties</literal>
-        file. Specify the JBoss AS installation path. Also indicate your preferred server 
-        configuration.</para>
+      <para>Once you have set the configuration, building the service archive is easy.
+        Copy file <literal>build.properties</literal> from <literal>config</literal>
+        to <literal>${user.home}/jbpm</literal>. Here, <literal>${user.home}</literal>
+        means your user home directory. Edit the property values there to match the 
+        directories where you installed jBPM BPEL and JBoss AS. Also indicate your preferred
+        server configuration.</para>
 
-      <programlisting><![CDATA[# property software.installation.dir is used to define jboss.home and jwsdp.home 
+      <programlisting><![CDATA[# property software.installation.dir is used to define jbpm.bpel.home, jboss.home
+# and jwsdp.home 
 software.installation.dir=c:/dev
 
-# jboss.home is used for deployment targets 
-# this property is based on jboss.version to keep them in sync
-jboss.version=4.2.2.GA
+# jbpm.bpel.home is used to define jbpm.bpel.config.dir and local.repository
+jbpm.bpel.version=1.1.Beta3
+jbpm.bpel.home=${software.installation.dir}/jbpm-bpel-${jbpm.bpel.version}
+jbpm.bpel.config.dir=${jbpm.bpel.home}/config
+
+# jboss.home is used for deployment targets. the libraries and binaries dependencies 
+# are resolved in the repo with the lib.jboss.version property specified below. that 
+# property is also based on jboss.version to keep them in sync
+jboss.version=4.0.4.GA
 jboss.home=${software.installation.dir}/jboss-${jboss.version}
 jboss.server=default]]></programlisting>
 
-    </section>
-      
-    <section id="getstarted.setup.deploy">
-    
-      <title>Deployment</title>
-      
-      <para>Before deploying the service, start JBoss in the server configuration of your choice
-        (see <ulink url="http://tinyurl.com/rjqkb">Server Configurations</ulink>). Afterward,
-        change to the <literal>deploy</literal> directory and run the following target. This 
-        builds a file named <literal>jbpm-bpel.ear</literal> which is then copied to the JBoss
-        <literal>deploy</literal> directory.</para>
-        
-      <synopsis>ant deploy.ear</synopsis>
-        
-      <para>The next log entries confirm the deployment of the jBPM BPEL enterprise application.
-        JBoss is now ready to enact BPEL processes.</para>
-  
-      <screen><![CDATA[00:48:31,140 INFO  [EARDeployer] Init J2EE application: .../jbpm-bpel.ear
-00:48:32,859 INFO  [EjbModule] Deploying CommandServiceBean
-00:48:32,906 INFO  [EjbModule] Deploying SchedulerControlBean
-00:48:32,921 INFO  [EjbModule] Deploying CommandListenerBean
-00:48:32,937 INFO  [EjbModule] Deploying JobListenerBean
-...
-00:48:33,171 INFO  [EJBDeployer] Deployed: .../jbpm-bpel-enterprise.jar
-00:48:33,218 INFO  [TomcatDeployer] deploy, ctxPath=/jbpm-bpel, warUrl=.../jbpm-bpel-exp.war/
-00:48:33,343 INFO  [EARDeployer] Started J2EE application: .../jbpm-bpel.ear]]></screen>  
+      <para>To build the service archive, change to directory <literal>deploy</literal>.
+        Locate the Ant <literal>build.xml</literal> file and run the target below.</para>
 
-    </section>
-
-    <section id="getstarted.setup.console">
-    
-      <title>Web console</title>
+      <synopsis>ant build.sar</synopsis>
     
-      <para>The jBPM BPEL application includes a web console you can access to manage the product
-        and to verify the application is up and running. The screen shot below shows the 
-        console home page.</para>
-        
-      <figure id="getstarted.console">
-        <title>Console home page</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/console.png"
-              width="6.85in" depth="5.31in" scalefit="0" /></imageobject></mediaobject>
-      </figure>
+      <para>This will create a file named <literal>jbpm-bpel.sar</literal>.</para>
 
     </section>
 
-    <section id="getstarted.setup.restart">
-
-      <title>Remarks on server restart</title>
-
-      <para>The predefined deployment order in JBoss AS results in exceptional behavior when
-        jBPM BPEL application is up and running, one or more process definitions have been
-        deployed and the server restarts.</para>
-        
-      <para>In the predefined deployment order, WARs are deployed before EARs. The jBPM BPEL
-        classes are packaged in <literal>jbpm-bpel.ear</literal>, whereas the web service
-        endpoints exposed by each process definition are deployed as WARs. Therefore, upon
-        restart, the service endpoints get deployed before the jBPM BPEL classes are loaded,
-        causing a <literal>ClassNotFoundException</literal> to be thrown.</para>
-
-      <para>There is no way to fix this on the jBPM side, as it is a JBoss AS feature.
-        The suggested solution is to change the deployment order. To do so, follow
-        the steps below.</para>
-
-      <orderedlist>
-      
-        <listitem><para>Locate the <literal>MainDeployer</literal> service under the 
-          <literal>jboss.system</literal> category in the JMX agent view.</para></listitem>
-
-        <listitem><para>Scroll down until you see the <literal>EnhancedSuffixOrder</literal> 
-          attribute.</para></listitem>
-
-        <listitem>
-
-          <para>In the value text field, insert the <literal>jbpm-bpel.jar</literal> suffix
-            anywhere you see fit, <emphasis>before</emphasis> the <literal>.war</literal> suffix. 
-            For example,</para>
+    <section id="getstarted.setup.deploy">
 
-          <programlisting>250:.rar,300:-ds.xml,400:.jar,450:jbpm-bpel.ear,500:.war,550:.jse,650:.ear,800:.bsh</programlisting>
+      <title>Deployment</title>
 
-        </listitem>
+      <para>Before deploying the service, start JBoss in the server configuration of your choice
+        (see <ulink url="http://tinyurl.com/rjqkb">Server Configurations</ulink>). Afterwards,
+        run the <literal>deploy.sar</literal> target of the Ant buildfile in <literal>deploy</literal>.</para>
 
-        <listitem><para>Apply the changes. The actual suffix order will not change till the next 
-          restart.</para></listitem>
+      <para>The following log entries confirm the deployment of the jBPM BPEL data source, service
+        and web application, respectively.</para>
 
-      </orderedlist>
+      <screen><![CDATA[20:47:49,015 INFO  [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca:name=JbpmBpelDS,service=DataSourceBinding' to JNDI name 'java:JbpmBpelDS'
+20:47:49,031 INFO  [JbpmConfiguration] using jbpm configuration resource 'jbpm.cfg.xml'
+20:47:49,109 INFO  [TomcatDeployer] deploy, ctxPath=/jbpm-bpel, warUrl=...]]></screen>  
       
-      <note><para>The above attribute can be set directly in this file as well:</para>
-        <para><literal>conf/xmdesc/org.jboss.deployment.MainDeployer-xmbean.xml</literal></para>
-        </note>
+      <para>JBoss is now ready to deploy process definitions and BPEL-powered web services.</para>
 
     </section>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/helloExample.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/helloExample.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/helloExample.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/helloExample.xml	2009-02-06 09:17:20.000000000 +0100
@@ -2,16 +2,19 @@
 
   <title>Hello World Example</title>
   
-  <para>In this example, we will develop a trivial BPEL process that receives a person name,
-    composes a greeting phrase and finally replies with the greeting. The resources related
-    to this example come with in the download package. Look in <literal>examples/hello</literal>.</para>
+  <para>In this example, we will develop a very simple BPEL process that receives
+    a message carrying the name of a person, composes a greeting phrase containing
+    the name, and then replies with a message carrying the greeting. The resources related
+    to this example come with in the download package. Look in <literal>doc/examples/hello
+    </literal>.</para>
   
   <para>The following picture represents the Hello World process.</para>
   
   <figure id="tutorial.hello.graph">
-    <title>Hello world process</title>
-    <mediaobject><imageobject><imagedata align="center" fileref="images/helloMain.png" 
-      width="1.65in" depth="1.89in" scalefit="0" /></imageobject></mediaobject>
+    <title>Graphical representation of the Hello World process</title>
+    <mediaobject>
+      <imageobject><imagedata align="center" fileref="images/hello.png"/></imageobject>
+    </mediaobject>
   </figure>
   
   <section id="tutorial.hello.def">
@@ -23,67 +26,62 @@
       <title>Create the BPEL document</title>
       
       <para>The first step is creating the process definition document. The description
-        ahead assumes familiarity with the BPEL concepts. Even if you are new to BPEL, 
-        we hope you will find it easy to follow. If you get interested in BPEL and decide
-        to take it to a real project, you should read the specification in its entirety.
-        The OASIS BPEL Technical Committee <ulink url="http://tinyurl.com/h99qx">web site
-        </ulink> provides the specification document and handful related resources.</para>
+        ahead assumes familiarity with the BPEL concepts, but even if you are new
+        to BPEL you will find it easy to follow. If you get interested in BPEL
+        and decide to take it to a real project, you should read the
+        specification in its entirety. The OASIS BPEL Technical Committee 
+        <ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel">web site</ulink>
+        provides the specification document and a number of useful resources.</para>
       
-      <para>Let us call our process document <literal>hello.bpel</literal>. We create a partner link
-        to establish a relationship with the client of the process. We indicate that the process
+      <para>Let's call our process document <literal>hello.bpel</literal>. We create a partner link to
+        establish a relationship with the client of the process. We indicate that the process
         will play the <emphasis>Greeter</emphasis> role. Next we create two variables to hold the 
         incoming and outgoing messages. Finally, we create a sequence of three activities that 
         receives a request message from a client, prepares a response message and sends it back.
         </para>
         
       <programlisting><![CDATA[<process name="HelloWorld" targetNamespace="http://jbpm.org/examples/hello"
+  xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
   xmlns:tns="http://jbpm.org/examples/hello"
-  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
-
-  <import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl"
-    namespace="http://jbpm.org/examples/hello" />
+  xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
 
   <partnerLinks>
-    <partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Greeter-Caller">
-      <documentation>establishes the relationship with the caller agent</documentation>
-    </partnerLink>
+    <!-- establishes the relationship with the caller agent -->
+    <partnerLink name="caller" partnerLinkType="tns:Greeter-Caller"
+      myRole="Greeter" />
   </partnerLinks>
 
   <variables>
-    <variable messageType="tns:nameMessage" name="request">
-      <documentation>holds the incoming message</documentation>
-    </variable>
-    <variable messageType="tns:greetingMessage" name="response">
-      <documentation>holds the outgoing message</documentation>
-    </variable>
+    <!-- holds the incoming message -->
+    <variable name="request" messageType="tns:nameMessage" />
+    <!-- holds the outgoing message -->
+    <variable name="response" messageType="tns:greetingMessage" />
   </variables>
 
-  <sequence name="MainSeq">
+  <sequence>
 
-    <receive createInstance="yes" name="ReceiveName" operation="sayHello" 
-      partnerLink="caller" portType="tns:Greeter" variable="request">
-      <documentation>receive the name of a person</documentation>
-    </receive>
+    <!-- receive the name of a person -->
+    <receive operation="sayHello" partnerLink="caller" portType="tns:Greeter"
+      variable="request" createInstance="yes" />
 
-    <assign name="ComposeGreeting" validate="no">
-      <documentation>compose a greeting phrase</documentation>
+    <!-- compose a greeting phrase -->
+    <assign>
       <copy>
-        <from>concat('Hello, ', $request.name, '!')</from>
-        <to part="greeting" variable="response" />
+        <from expression="concat('Hello, ', 
+            bpel:getVariableData('request', 'name'), '!')" />
+        <to variable="response" part="greeting" />
       </copy>
     </assign>
 
-    <reply name="SendGreeting" operation="sayHello" partnerLink="caller"
-      portType="tns:Greeter" variable="response">
-      <documentation>send greeting back to caller</documentation>
-    </reply>
-
+    <!-- reply with the greeting -->
+    <reply operation="sayHello" partnerLink="caller" portType="tns:Greeter"
+      variable="response" />
   </sequence>
 
 </process>]]></programlisting>
       
-      <note><para>The <literal>partnerLinkType</literal> and <literal>messageType</literal> 
-        attributes refer to external WSDL definitions. We will deal with them in the <link 
+      <note><para>The <literal>partnerLinkType</literal> and <literal>messageType</literal> attributes 
+        refer to external WSDL definitions. We will deal with them in the <link 
         linkend="tutorial.hello.def.wsdl">next section</link>.</para></note>
     
     </section>
@@ -114,7 +112,7 @@
         deployment or runtime.</para>
       
       <para>We use only one WSDL interface document. Let's name it <literal>hello.wsdl</literal>. We
-        create two messages that respectively carry the name and greeting. Next we create a port type
+        create two mesages that respectively carry the name and greeting. Next we create a port type
         that describes the interface that the process presents to its callers. It exposes a single 
         operation <literal>sayHello</literal>, which takes the name message as input and returns the
         greeting message as output.</para>
@@ -126,43 +124,42 @@
         on the caller.</para>
     
       <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/hello"
-  xmlns:tns="http://jbpm.org/examples/hello" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
-  xmlns="http://schemas.xmlsoap.org/wsdl/">
+  xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:tns="http://jbpm.org/examples/hello"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
 
-  <message name="greetingMessage">
-    <documentation>carries the greeting</documentation>
-    <part name="greeting" type="xsd:string" />
-  </message>
+  <!-- characterizes the relationship between the greeter and its caller -->
+  <plt:partnerLinkType name="Greeter-Caller">
+    <plt:role name="Greeter">
+      <plt:portType name="tns:Greeter" />
+    </plt:role>
+    <!-- the Caller does not provide services to the Greeter,
+      this is why we omit the "Caller" role -->
+  </plt:partnerLinkType>
 
+  <!-- carries the name of a person -->
   <message name="nameMessage">
-    <documentation>carries the name of a person</documentation>
     <part name="name" type="xsd:string" />
   </message>
 
+  <!-- carries the greeting -->
+  <message name="greetingMessage">
+    <part name="greeting" type="xsd:string" />
+  </message>
+
+  <!-- describes the interface presented to callers -->
   <portType name="Greeter">
-    <documentation>describes the interface presented to callers</documentation>
     <operation name="sayHello">
       <input message="tns:nameMessage" />
       <output message="tns:greetingMessage" />
     </operation>
   </portType>
 
-  <plt:partnerLinkType name="Greeter-Caller">
-    <plt:documentation>
-      characterizes the relationship between the greeter and its caller
-    </plt:documentation>
-    <plt:role name="Greeter" portType="tns:Greeter">
-      <plt:documentation>
-        Caller does not provide services to Greeter, hence the "Caller" role is omitted
-      </plt:documentation>
-    </plt:role>
-  </plt:partnerLinkType>
-
 </definitions>]]></programlisting>
   
-      <para>Observe that <literal>name</literal> attributes in the above description match
-        the names used earlier in the process definition.</para>
+      <para>Notice the values of <literal>name</literal> attributes in child elements of 
+        <literal>definitions</literal> match the names used earlier in the process definition.</para>
 
     </section>
    
@@ -170,140 +167,197 @@
     
       <title id="tutorial.hello.def.deploy.title">Deploy the process definition</title>
         
-      <para>jBPM provides a mechanism to extract the resources that make up a process
-        definition from a ZIP file, dubbed a <emphasis>process archive</emphasis>. 
-        jBPM BPEL uses the following ordered procedure to identify the documents within the
-        process archive:</para>
+      <para>jBPM provides a mechanism to extract the documents that comprise a process definition
+        from a process archive, and then deploy the process definition to a database. jBPM BPEL
+        uses this mechanism to make the definition available to the Java port components (we will 
+        talk about this in <link linkend="tutorial.hello.server.artifacts" 
+        endterm="tutorial.hello.server.artifacts.title"/>).
+        </para>
+        
+      <para>The relevant files in the process archive can be identified in one of two ways:</para>
 
       <orderedlist>
-        <listitem>Read the definition descriptor, if present</listitem>
-        <listitem>Rely on automatic discovery</listitem>
+        <listitem>Implicitly, relying on automatic discovery</listitem>
+        <listitem>Explicitly, through a definition descriptor</listitem>
       </orderedlist>
 
+      <para>The automatic discovery strategy looks for a file within the process archive
+        whose name ends with <literal>.bpel</literal>. Such file is treated as the process
+        document. In BPEL 2 deployments the process document indicates the location of the
+        interface WSDL documents. In BPEL 1.1 deployments, the archive is expected to contain
+        a file in the same directory as the process document, with the <literal>.bpel</literal>
+        suffix replaced with <literal>.wsdl</literal>. The latter file is dubbed the <emphasis>
+        master WSDL document</emphasis> and acts as the source of all interface WSDL 
+        definitions, by containment or by reference.</para>
+
       <para>The definition descriptor specifies the location of the process document
-        within the process archive. In addition, the descriptor indicates the location of the
-        WSDL descriptions and XML Schemas, as either (1) a path relative to the archive root,
-        or (2) an absolute URL. If provided, the descriptor must be placed in this exact 
-        location: <literal>META-INF/bpel-definition.xml</literal>.</para>
-      
-      <para>The automatic discovery strategy looks for a file inside the process archive
-        whose name ends with <literal>.bpel</literal>. This file is treated as the process
-        document. For BPEL 2, the process document itself indicates the location of the
-        interface WSDL documents. For BPEL 1.1, the archive is expected to contain
-        a WSDL file co-located with the process document, having the <literal>.bpel</literal>
-        suffix replaced with <literal>.wsdl</literal>. That WSDL file becomes the source of 
-        all WSDL definitions and XML Schema types, by containment or reference.</para>
+        within the process archive. Additionally, the descriptor indicates the location of the
+        WSDL interface documents, as either (1) a path relative to the archive root, or (2) an 
+        absolute URL. If present, the descriptor must be placed in this exact location:
+        <literal>META-INF/bpel-definition.xml</literal>.</para>
         
       <para>All examples shipped with the jBPM BPEL distribution rely on automatic discovery.
-        For your reference, a sample definition descriptor appears below.</para>
+        A suitable definition descriptor appears below for reference purposes.</para>
 
-      <programlisting><![CDATA[<bpelDefinition location="hello.bpel" 
-  xmlns="urn:jbpm.org:bpel-1.1:definition">
+      <programlisting><![CDATA[<bpelDefinition location="hello.bpel" xmlns="urn:jbpm.org:bpel-1.1:definition">
 
+  <!-- makes WSDL interface elements available to the process -->
   <imports>
     <wsdl location="hello.wsdl" />
   </imports>
 
 </bpelDefinition>]]></programlisting>
 
-      <para>To deploy the process definition, call:</para>
+      <para>To deploy the process definition to the jBPM database, call:</para>
 
-      <synopsis>ant deploy.process</synopsis>
+      <synopsis>ant deploy-process</synopsis>
 
-      <para>The target above builds an archive named <literal>hello.zip</literal> and submits it
-        to the jBPM BPEL deployment servlet. When successful, the messages below appear in the 
-        server console:</para>
-      
-      <screen>13:16:43,718 INFO  [DeploymentServlet] deployed process definition: HelloWorld
-13:16:49,718 INFO  [WebModuleBuilder] packaged web module: hello.war
-13:16:49,718 INFO  [DeploymentServlet] deployed web module: hello.war
-13:16:50,109 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=hello,&nextLine;
-endpoint=GreeterServlet
-13:16:50,125 INFO  [TomcatDeployer] deploy, ctxPath=/hello, warUrl=...
-13:16:50,484 INFO  [IntegrationConfigurator] message reception enabled for process:&nextLine;
-HelloWorld
-13:16:50,546 INFO  [WSDLFilePublisher] WSDL published to: .../hello-service.wsdl</screen>
+      <para>This will build a file named <literal>hello-process.zip</literal> and submit it to the
+        jBPM BPEL web module. When successful, the messages below appear in the server console:</para>
 
-      <para>There is a page in the jBPM BPEL console that displays the currently deployed
-        process definitions. You can deploy new processes as well.</para>
-        
-      <figure id="hello.processes">
-        <title>Process definitions page</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/processes.png"
-          width="7.08in" height="5.73in" scalefit="0"/></imageobject></mediaobject>
-      </figure>
+      <screen>23:55:21,750 INFO  [[/jbpm-bpel]] processDeployServlet: deploying process definition: &nextLine;
+file=file:/.../hello-process.zip
+23:55:22,078 INFO  [BpelReader] read wsdl definitions: hello.wsdl
+23:55:22,171 INFO  [BpelReader] read bpel process: hello.bpel
+23:55:22,250 INFO  [[/jbpm-bpel]] processDeployServlet: deployed process definition: &nextLine;
+HelloWorld</screen>
       
-      <para>At this point, your BPEL process is fully available to external clients through
-        its service endpoint. In JBoss 4.0.4.GA and later, the JBossWS services page lists
-        the available service endpoints. The endpoint exposed by this process is shown below.</para>
-        
-      <figure id="hello.endpoints">
-        <title>Service endpoints page</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/helloEndpoints.png"
-           width="6.03in" depth="3.45in" scalefit="0"/></imageobject></mediaobject>
-      </figure>
+      <note>If this is the first process you deploy after starting the jBPM service, you will see
+        a flurry of logs from Hibernate before the last log shown above. This is normal as long as
+        no ERROR entries appear. Hibernate initializes on demand.</note>
 
     </section>
     
   </section>
   
-  <section id="tutorial.hello.client">
+  <section id="tutorial.hello.server">
   
-    <title id="tutorial.hello.client.title">Build the WSEE application client</title>
+    <title id="tutorial.hello.server.title">Build the WSEE port components</title>
   
-    <para>Since a Java mapping generator available, the WSEE client programming model
-      is a most comfortable choice for test purposes. In this step, we will create an 
-      application client to contact the BPEL process we just deployed.</para>
-      
-    <para>The WSEE client programming model is not covered in detail here. If you want to
-      know more about it, the JBossWS <ulink url="http://tinyurl.com/2r8fc5">user guide</ulink>
-      provides a good description on the subject.</para>
+    <para>In WSEE, a port component defines the server view of a web service. It services
+      the operation requests defined by a WSDL <literal>portType</literal>. In this step, we
+      will create one port component for each partner link that defines a process
+      role; that is, <literal>partnerLink</literal> elements having a <literal>myRole</literal> 
+      attribute.</para>
       
-    <section id="tutorial.hello.client.appclient">
+    <section id="tutorial.hello.server.wsdl">
   
-      <title id="tutorial.hello.client.appclient.title">Application client deployment descriptor
-        </title>
+      <title id="tutorial.hello.server.wsdl.title">WSDL implementation documents</title>
       
-      <para>J2EE application clients read deployment settings from <literal>
-        application-client.xml</literal>, reproduced below for your convenience.
-        The directory for client descriptors is <literal>src/main/resources/client</literal>.
-        </para>
+      <para>WSDL implementation documents for the process can be automatically generated
+        from the process definition and related WSDL interface documents. The BPEL extension
+        includes a tool just for that purpose, <literal>servicegen</literal>. This program reads
+        a process archive.</para>
 
-      <programlisting><![CDATA[<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+      <para>To execute the tool, call:</para>
 
-  <display-name>Hello World Service Client</display-name>
+      <synopsis>ant generate-service</synopsis>
 
-  <service-ref>
+      <para>Three WSDL files will appear:</para>
 
-    <!-- JNDI name for Service instance, chosen by the user -->
-    <service-ref-name>service/Hello</service-ref-name>
-    <!-- fully qualified name of Service interface, generated by the mapping tool -->
-    <service-interface>org.jbpm.bpel.tutorial.hello.HelloWorldService</service-interface>
-    <!-- published WSDL document, taken from server -->
-    <wsdl-file>META-INF/wsdl/hello-service.wsdl</wsdl-file>
-    <!-- Java mapping document, generated by the mapping tool -->
-    <jaxrpc-mapping-file>META-INF/hello-mapping.xml</jaxrpc-mapping-file>
+      <itemizedlist>
 
-  </service-ref>
+        <listitem><para><literal>hello.wsdl</literal> is an equivalent of the interface 
+          document we created in <link linkend="tutorial.hello.def.wsdl" 
+          endterm="tutorial.hello.def.wsdl.title"/>. Because the location we specified in <link 
+          linkend="tutorial.hello.def.deploy" endterm="tutorial.hello.def.deploy.title"/> is relative,
+          the tool writes this file so that its definitions are available to the port component.
+          </para></listitem>
 
-</application-client>]]></programlisting>
+        <listitem>
+        
+          <para><literal>hello-binding-1.wsdl</literal> contains the SOAP binding for the 
+            <literal>Greeter</literal> port type we saw in <link linkend="tutorial.hello.def.wsdl" 
+            endterm="tutorial.hello.def.wsdl.title"/>. Note that the target namespace of this document
+            is the same as that of the port type: <literal>http://jbpm.org/examples/hello</literal>.
+            The subsequent listing corresponds to the generated binding document, edited for 
+            clarity.</para>
         
-      <para>Application clients must have access to the <emphasis>full</emphasis> WSDL 
-        description as well as the Java mapping artifacts. We say a WSDL description is full
-        when it provides not only <emphasis>abstract definitions</emphasis> but also 
-        <emphasis>service bindings</emphasis>. The WSDL file we saw in <link
-        linkend="tutorial.hello.def.wsdl" endterm="tutorial.hello.def.wsdl.title" /> contains
-        abstract definitions only.</para>
-        
-      <para>On the server, the <literal>WsdlServiceTool</literal> has already generated
-        service bindings for the given abstract definitions. In turn, the <literal>
-        WSDLFilePublisher</literal> published the full WSDL description to a known location;
-        namely, the <literal>data/wsdl</literal> directory of the server configuration.</para>
-        
-      <para>Both Java mapping generators supported by jBPM BPEL read a configuration
-        file, which references the above WSDL description, among other settings. The directory
-        for configuration files is <literal>src/main/resources</literal>. The next listing
-        presents the configuration for <literal>wstools</literal>.</para>
+          <note><para>If the process implemented other port types belonging to namespace
+            <literal>http://jbpm.org/examples/hello</literal> they would appear in the above 
+            document, too. Bindings for port types in other namespaces would be placed in a 
+            separate <literal>hello-binding-<emphasis>n</emphasis>.wsdl</literal> file.</para>
+            </note>            
+    
+          <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/hello" 
+  xmlns:tns="http://jbpm.org/examples/hello" 
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+  xmlns="http://schemas.xmlsoap.org/wsdl/">
+  
+  <!-- makes WSDL interface elements available to binding elements -->
+  <import namespace="http://jbpm.org/examples/hello" location="hello.wsdl"/>
+  
+  <!-- provides SOAP 1.1 protocol details for the Greeter interface -->
+  <binding name="GreeterBinding" type="tns:Greeter">
+    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <operation name="sayHello">
+      <soap:operation soapAction="http://jbpm.org/examples/sayHello"/>
+      <input>
+        <soap:body use="literal" namespace="http://jbpm.org/examples/hello"/>
+      </input>
+      <output>
+        <soap:body use="literal" namespace="http://jbpm.org/examples/hello"/>
+      </output>
+    </operation>
+  </binding>
+</definitions>]]></programlisting>
+
+        </listitem>
+
+        <listitem>
+        
+          <para><literal>hello-service.wsdl</literal> contains a service element in the 
+            target namespace of the process. The <literal>GreeterPort</literal> subelement 
+            implements the <literal>Greeter</literal> port type using its SOAP binding. 
+            The generated service document is reproduced next.</para>
+            
+          <note><para>The tool generates one port for each partner link having a <literal>
+            myRole</literal> attribute.</para></note>
+    
+          <programlisting><![CDATA[<definitions targetNamespace="http://jbpm.org/examples/hello" 
+  xmlns:tns="http://jbpm.org/examples/hello" 
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+  xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+  <import namespace="http://jbpm.org/examples/hello" location="binding1.wsdl"/>
+
+  <!-- groups all endpoints served by the process -->
+  <service name="HelloWorldService">
+    
+    <!-- supplies access information for the Greeter interface -->
+    <port name="GreeterPort" binding="tns:GreeterBinding">
+      <soap:address location="REPLACE_WITH_ACTUAL_URI"/>
+    </port>
+    
+  </service>
+
+</definitions>]]></programlisting>
+
+          <para>Notice that the actual access information is left unspecified, as WSEE will
+            replace this entry with the definitive location during deployment.</para>
+    
+        </listitem>
+        
+      </itemizedlist>
+
+    </section>
+    
+    <section id="tutorial.hello.server.artifacts">
+    
+      <title id="tutorial.hello.server.artifacts.title">Java mapping artifacts</title>
+      
+      <para>The Java mapping artifacts required for a WSEE deployment can be automatically generated
+        from the WSDL implementation documents. Depending on your JBoss AS version, the build file
+        calls either <literal>wstools</literal> or <literal>wscompile</literal>. Both tools read a
+        similar, yet distinct configuration file. This file points to a WSDL document.</para>
+
+      <para>To execute the generation tool, call:</para>
+
+      <synopsis>ant generate-artifacts</synopsis>
+
+      <para>The subsequent snippet shows the input to <literal>wstools</literal>. Here, 
+        <literal>package-namespace</literal> elements associate Java packages with XML namespaces
+        occurring in the WSDL file.</para>
      
       <programlisting><![CDATA[<configuration xmlns="http://www.jboss.org/jbossws-tools">
   <global>
@@ -311,17 +365,265 @@
       namespace="http://jbpm.org/examples/hello" />
   </global>
   <wsdl-java file="wsdl/hello-service.wsdl">
-    <mapping file="hello-mapping.xml" />
+    <mapping file="jaxrpc-mapping.xml" />
   </wsdl-java>
 </configuration>]]></programlisting>
 
-      <para>For <literal>wscompile</literal>, we have:</para>
+      <tip><para>The JBossWS <ulink url="http://tinyurl.com/r2jru">user guide</ulink> gives a full
+        coverage of the available options.</para></tip>
+
+      <para>The configuration for <literal>wscompile</literal> is quite similar. The 
+        <literal>packageName</literal> attribute associates the target namespace of the referenced 
+        WSDL definitions with the Java package <literal>org.jbpm.bpel.tutorial.hello</literal>.
+        </para>
 
       <programlisting><![CDATA[<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
   <wsdl location="target/resources/web/wsdl/hello-service.wsdl"
     packageName="org.jbpm.bpel.tutorial.hello" />
 </configuration>]]></programlisting>
         
+      <tip><para>Refer to the JWSDP tools <ulink url="http://tinyurl.com/joocc">documentation
+        </ulink> for a complete description of this file.</para></tip>
+  
+      <para>The generated Java sources contain the service endpoint interface <classname>Greeter
+        </classname> and the service interface <classname>HelloWorldService</classname>. The 
+        generation tool also writes a document that describes how the WSDL interface definitions
+        map to the produced Java types: <literal>jaxrpc-mapping.xml</literal>.</para>
+        
+      <para>We will not analyze the Java mapping artifacts as jBPM BPEL is agnostic to them. Keep in
+        mind that variables in a BPEL process are defined in terms of XML types and WSDL messages. 
+        jBPM BPEL extracts XML content from SOAP messages and places it in the process variables 
+        directly.</para>
+      
+      <para>Nevertheless, the Java mapping artifacts still must be present for the JSR-109 
+        deployment to be valid. Note that the supplied service implementation bean has empty methods
+        only. The BPEL process specifies the behavior instead.</para>
+      
+    </section>
+    
+    <section id="tutorial.hello.server.webapp">
+  
+      <title>Port components as servlets</title>
+      
+      <para>In WSEE, Java service endpoints are deployed as servlets in a web application.
+        Hence, a <literal>web.xml</literal> deployment descriptor must be supplied.</para>
+        
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+  
+  <!-- Greeter Service Endpoint -->
+  <servlet>
+    <servlet-name>greeterServlet</servlet-name>
+    <servlet-class>org.jboss.test.ws.samples.wsbpel.hello.Greeter_Impl</servlet-class>
+  </servlet>  
+  <servlet-mapping>
+    <servlet-name>greeterServlet</servlet-name>
+    <url-pattern>/greeter</url-pattern>
+  </servlet-mapping>
+  ...
+</web-app>]]></programlisting>
+
+      <note><para>We refer to the service implementation bean in the <literal>servlet-class
+        </literal> element, even though it is not a servlet at all. This is a WSEE feature.</para>
+        </note>
+        
+    </section>
+        
+    <section id="tutorial.hello.server.integra">
+    
+      <title id="tutorial.hello.server.integra.title">Partner integration</title>
+        
+      <para>In order for the process to take requests, inbound message activities (<literal>receive
+        </literal>, <literal>onMessage</literal> branch of <literal>pick</literal> and <literal>
+        onMessage</literal> event) must be enabled for reception. jBPM BPEL provides a servlet 
+        context listener for this purpose: <classname>IntegrationConfiguration</classname>
+        from package <literal>org.jbpm.bpel.integration.server</literal>.</para>
+      
+      <para>A <literal>listener</literal> element in <literal>web.xml</literal> registers the
+        integration configurator. The semantics of servlet context listeners, as described
+        in the <ulink url="http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html">
+        Servlet 2.4</ulink> specification, chapter 10, ensure that inbound message activities
+        are ready before requests begin arriving.</para>
+        
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+  ...
+  <!-- Partner Integration Configurator -->
+  <listener>
+    <listener-class>
+      org.jbpm.bpel.integration.server.IntegrationConfigurator
+    </listener-class>
+  </listener>
+    
+</web-app>]]></programlisting>
+
+      <para>The integration configuration reads settings from a special descriptor:
+        <literal>bpel-application.xml</literal>. jBPM BPEL loads this descriptor as a classpath
+        resource. Therefore, it must be placed in the <literal>WEB-INF/classes</literal>
+        directory of the web module. It specifies the name and (optional) version of the 
+        process definition being enacted.</para>
+        
+      <programlisting><![CDATA[<bpelApplication name="HelloWorld" 
+  targetNamespace="http://jbpm.org/examples/hello"
+  xmlns="urn:jbpm.org:bpel-1.1:application" />]]></programlisting>
+
+    </section>
+
+    <section id="tutorial.hello.server.webservices">
+  
+      <title id="tutorial.hello.server.webservices.title">Web services deployment descriptor</title>
+
+      <para>The <literal>webservices.xml</literal> deployment descriptor lists the endpoints to be
+        deployed in a servlet container.</para>
+        
+      <para>In the JAX-RPC specification, handlers define a means for an application to access the
+        raw SOAP message of a request or response. Class <classname>
+        org.jbpm.bpel.integration.server.SoapHandler</classname> is a handler that lets
+        jBPM BPEL manipulate SOAP messages sent to the enclosing port component. In the web services
+        descriptor presented subsequently, the <literal>GreeterSoapHandler</literal> injects BPEL
+        functionality to the <literal>GreeterPort</literal> component.</para>
+        
+      <programlisting><![CDATA[<webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee">
+
+  <webservice-description>
+
+    <!-- descriptive name for the service -->
+    <webservice-description-name>Hello World</webservice-description-name>
+    <!-- WSDL service file -->
+    <wsdl-file>WEB-INF/wsdl/service.wsdl</wsdl-file>
+    <!-- Java<->XML mapping file -->
+    <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+
+    <port-component>
+
+      <!-- logical name for the port (unique within the module) -->
+      <port-component-name>GreeterPort</port-component-name>
+      <!-- WSDL port element (in service.wsdl) -->
+      <wsdl-port xmlns:portNS="http://jbpm.org/examples/hello">
+        portNS:GreeterPort
+      </wsdl-port>
+      <!-- service endpoint interface class -->
+      <service-endpoint-interface>
+        org.jboss.test.ws.samples.wsbpel.hello.Greeter
+      </service-endpoint-interface>
+      <!-- associated servlet (in web.xml) -->
+      <service-impl-bean>
+        <servlet-link>greeterServlet</servlet-link>
+      </service-impl-bean>
+
+      <handler>
+
+        <!-- logical name for the handler (unique within the module) -->
+        <handler-name>GreeterHandler</handler-name>
+        <!-- handler class (in jbpm-bpel.jar) -->
+        <handler-class>
+          org.jbpm.bpel.integration.server.SoapHandler
+        </handler-class>
+
+        <init-param>
+          <description>
+            name of the partner link served by this port
+          </description>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>caller</param-value>
+        </init-param>
+
+      </handler>
+
+    </port-component>
+
+  </webservice-description>
+
+</webservices>]]></programlisting>
+
+    </section>
+        
+    <section id="tutorial.hello.server.deploy">
+  
+      <title>Web application deployment</title>
+      
+      <para>To deploy the web service to the app server, call:</para>
+      
+      <synopsis>ant deploy-webservice</synopsis>
+      
+      <para>This will build a web archive named <literal>hello.war</literal> and copy it to the
+        <literal>deploy</literal> directory of your JBoss AS configuration. The structure of this
+        module follows the rules in section 5.4 of the <ulink 
+        url="http://jcp.org/en/jsr/detail?id=921">WSEE specification</ulink>.</para>
+        
+      <para>On the server you should see messages similar to these:</para>
+  
+      <screen>15:30:34,531 INFO  [TomcatDeployer] deploy, ctxPath=/hello, warUrl=...
+15:30:35,093 INFO  [IntegrationConfigurator] Message reception enabled for process: &nextLine;
+HelloWorld
+15:30:36,765 INFO  [WSDLFilePublisher] WSDL published to: file:/.../hello-service.wsdl
+15:30:36,812 INFO  [ServiceEndpointManager] WebService started: http://.../hello/greeter</screen>
+
+      <note><para>At this point, your BPEL process is fully accessible to external clients through 
+        its endpoint address. The remaining sections focus on testing the process using a J2EE
+        application client.</para></note>
+
+    </section>
+    
+  </section>
+  
+  <section id="tutorial.hello.client">
+  
+    <title id="tutorial.hello.client.title">Build the WSEE application client</title>
+  
+    <para>Since we already generated the Java mapping artifacts, the WSEE client programming model
+      is the most comfortable choice for testing purposes. In this step, we will create the 
+      application client.</para>
+      
+    <section id="tutorial.hello.client.appclient">
+  
+      <title id="tutorial.hello.client.appclient.title">Application client deployment descriptor
+        </title>
+      
+      <para>J2EE application clients use the <literal>application-client.xml</literal> 
+        deployment descriptor.</para>
+        
+      <para>Clients must have access to the WSDL definitions as well as the Java mapping document.
+        We already produced these files in the <link linkend="tutorial.hello.server"
+        endterm="tutorial.hello.server.title" /> section, so we just reference
+        them from the descriptor.</para>
+        
+      <para>There is one caveat to the WSDL reference. Application clients assume the 
+        WSDL document describes a deployed web service. Therefore, the port elements
+        must point to actual locations. Recall the service document generated in <link 
+        linkend="tutorial.hello.server.wsdl" endterm="tutorial.hello.server.wsdl.title" />
+        leaves port locations unspecified.</para>
+        
+      <para>The provided build script solves the problem by taking the WSDL file that JBoss AS
+        publishes after deploying the web application to the <literal>data/wsdl</literal> 
+        subdirectory of the server configuration.</para>
+        
+      <programlisting><![CDATA[<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+
+  <display-name>Hello World Service Client</display-name>
+
+  <service-ref>
+
+    <!-- JNDI name of service interface in client environment context -->
+    <service-ref-name>service/Hello</service-ref-name>
+    <!-- service interface -->
+    <service-interface>
+      org.jbpm.bpel.tutorial.hello.HelloWorldService
+    </service-interface>
+    <!-- published WSDL document -->
+    <wsdl-file>META-INF/wsdl/service.wsdl</wsdl-file>
+    <!-- Java<->XML mapping file -->
+    <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+
+    <port-component-ref>
+      <!-- service endpoint interface -->
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.hello.Greeter
+      </service-endpoint-interface>
+    </port-component-ref>
+
+  </service-ref>
+
+</application-client>]]></programlisting>
+
     </section>
     
     <section id="tutorial.hello.client.env">
@@ -329,12 +631,11 @@
       <title id="tutorial.hello.client.env.title">Environment context</title>
 
       <para>In order to provide an environment context for the application client, we must allocate
-        an entry in the server JNDI registry. The desired entry is specified in the <literal>
-        jboss-client.xml</literal> descriptor. Notice this descriptor is specific to JBoss AS.
-        </para>
+        a name for it in the global JNDI context. This is done in <literal>jboss-client.xml
+        </literal>.Be aware that this descriptor is specific to JBoss AS.</para>
   
       <programlisting><![CDATA[<jboss-client>
-  <!-- JNDI name for client environment context, chosen by the user -->
+  <!-- JNDI name of client environment context -->
   <jndi-name>jbpmbpel-client</jndi-name>
 </jboss-client>]]></programlisting>
 
@@ -354,13 +655,13 @@
       <title>Remote web service access</title>
 
       <para>Deploying the application client from <link linkend="tutorial.hello.client" 
-        endterm="tutorial.hello.client.title" /> causes the app server to bind an instance of 
-        the service interface in the client environment context, using the logical name from the 
-        <literal>service-ref</literal> element. In this example, the logical name is 
+        endterm="tutorial.hello.client.title" /> causes the app server to bind an instance of the
+        service interface in the client environment context,using the logical name from the 
+        <literal>service-ref</literal> element. In our example, the logical name is 
         <literal>service/Hello</literal>.</para>
 
-      <para>The test setup code looks up the service instance. This object is a factory that
-      clients employ to get a service endpoint proxy.</para>
+      <para>The test setup code looks up the service instance. This object is a factory that a
+        client uses to get a service endpoint proxy.</para>
   
       <programlisting><![CDATA[private HelloWorldService service;
 
@@ -410,36 +711,17 @@
       
       <para>To execute the JUnit test, call:</para>
 
-      <synopsis>ant test</synopsis>
+      <synopsis>ant run-test</synopsis>
 
       <para>If all goes well you should see the output below:</para>
       
-      <screen>test:
+      <screen>run-test:
     [junit] Running org.jbpm.bpel.tutorial.hello.HelloTest
-    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 3.625 sec</screen>
+    ...
+    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 1.532 sec</screen>
     
-      <para>For a detailed test report, including a printout of the SOAP messages exchanged
-        with the server, look in the <literal>target/test/reports</literal> directory.
-        You should see messages that look like the entries below.</para>
-        
-      <screen><![CDATA[06:11:49,343 TRACE [MessageTrace] Outgoing Request Message
-<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header/>
- <env:Body>
-  <ns1:sayHello xmlns:ns1='http://jbpm.org/examples/hello'>
-   <name>Popeye</name>
-  </ns1:sayHello>
- </env:Body>
-</env:Envelope>
-06:11:49,546 TRACE [MessageTrace] Incoming Response Message
-<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header/>
- <env:Body>
-  <operationNS:sayHelloResponse xmlns:operationNS='http://jbpm.org/examples/hello'>
-   <greeting>Hello, Popeye!</greeting>
-  </operationNS:sayHelloResponse>
- </env:Body>
-</env:Envelope>]]></screen>
+      <para>Other log entries will appear, including a printout of the SOAP messages exchanged with
+        the server.</para>
     
     </section>
     
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/introduction.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/introduction.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/introduction.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/introduction.xml	2009-02-06 09:17:20.000000000 +0100
@@ -39,9 +39,8 @@
       xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
   ...
   <sequence>
-
-  <!-- Seller registers a sale offering and bids from the clients are received. -->
-  <!-- The highest bid is taken. -->
+      <!-- <emphasis>Seller registers a sale offering and bids from the clients are received.
+       The highest bid is taken</emphasis> -->
   ...
   <flow>
   
@@ -102,10 +101,11 @@
       &quot;talking&quot; to an orchestrator. In the next figure, the participants of the jBAY
       process interact with the auction endpoint. The orchestrator remains opaque.</para>
       
-    <figure id="introduction.auction">
+    <figure id="introduction.auction.participants">
       <title>Participants of the auction process</title>
-      <mediaobject><imageobject><imagedata align="center" fileref="images/auction.png" 
-            width="3.59in" depth="3.02in" scalefit="0" /></imageobject></mediaobject>
+      <mediaobject>
+        <imageobject><imagedata align="center" fileref="images/auction.png"/></imageobject>
+      </mediaobject>
     </figure>      
     
     <para>The service operations are connected to the process definition through inbound message
@@ -125,7 +125,10 @@
     
     <para>jPDL processes use action handlers to invoke external services. Calls to Java 
       component can be coded in an action handler and executed later inside a process. 
-      In BPEL, this behavior is achieved using the <literal>invoke</literal> activity.</para>
+      In BPEL, this behavior is achieved using the <literal>invoke</literal> activity. While 
+      it is only capable of calling web services right now, there are plans to use
+      <ulink url="http://ws.apache.org/wsif/">Apache WSIF</ulink> to call any Java component, 
+      provided a WSDL description is available.</para>
 
   </section>
   
@@ -142,7 +145,7 @@
 
     <itemizedlist>
       <listitem><para>message exchange with efficiency (no Java/XML binding) 
-        and type safety (built-in format checking)</para></listitem>
+        and type safety (automatic format checking)</para></listitem>
       <listitem><para>comfortable message content manipulation (XPath 1.0 expressions)</para>
         </listitem>
       <listitem><para>asynchronous message reception</para></listitem>
Only in jpdl-3.2.3.GA/bpel/userguide/en/modules: loanExample.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/overview.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/overview.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/overview.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/overview.xml	2009-02-06 09:17:20.000000000 +0100
@@ -70,7 +70,7 @@
       
     <itemizedlist>
       <listitem><para>The separate roots of the specification (<link linkend="overview.references">
-        11</link>). Microsoft initiated the adoption of Pi-Calculus with XLANG, whereas IBM 
+        12</link>). Microsoft initiated the adoption of Pi-Calculus with XLANG, whereas IBM 
         revisited the use of Petri Nets with the Web Services Flow Language, WSFL. BPEL descends
         from both languages.</para></listitem>
       <listitem><para>The immaturity of the overall Web services <emphasis>stack</emphasis>
@@ -95,9 +95,6 @@
     
       <tgroup cols='2' align='left' colsep='1' rowsep='1'>
 
-      <colspec colwidth="2*"/>
-      <colspec colwidth="1*"/>
-
       <thead>
         <row>
           <entry>Component</entry>
@@ -133,7 +130,12 @@
         </row>
 
         <row> 
-          <entry>Scoping: compensation, event handling and event processing</entry>
+            <entry><para>Scoping:</para>
+              <itemizedlist>
+                <listitem><para>Compensation (<emphasis>undo</emphasis>)</para></listitem>
+                <listitem><para>Error handling</para></listitem>
+                <listitem><para>Event processing</para></listitem>
+              </itemizedlist></entry>
           <entry>-</entry>
         </row>
 
@@ -150,56 +152,30 @@
     <title>References</title>
     
     <orderedlist>
-      <listitem>
-        <para>OASIS Web Services Business Process Execution Language TC</para>
-        <para><ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel" />
-          </para>
-      </listitem>
-      <listitem>
-        <para>Service-Oriented Architecture </para>
-        <para><ulink 
-          url="http://inews.webopedia.com/TERM/S/Service_Oriented_Architecture.html" /></para>
-      </listitem>
-      <listitem>
-        <para>IBM Refocuses WebSphere on Service-Oriented Architectures </para>
-        <para><ulink 
-          url="http://www.rednova.com/news/stories/3/2004/04/30/story103.html" /></para>
-      </listitem>
-      <listitem>
-        <para>IBM Unveils First SOA Products, Services </para>
-        <para><ulink
-          url="http://www.internetnews.com/ent-news/article.php/3343231" /></para>
-      </listitem>
-      <listitem>
-        <para>BEA, IBM Propose Java/BPEL 'Marriage' </para>
-        <para><ulink 
-          url="http://itmanagement.earthweb.com/entdev/article.php/3337731" /></para>
-      </listitem>
-      <listitem>
-        <para>BEA - BPEL &amp; BPELJ </para>
-        <para><ulink url="http://dev2dev.bea.com/technologies/bpel/index.jsp" /></para>
-      </listitem>
-      <listitem>
-        <para>JSR 207: Process Definition for Java </para>
-        <para><ulink url="http://www.jcp.org/en/jsr/detail?id=207" /></para>
-      </listitem>
-      <listitem>
-        <para>WebSphere Business Integration Server Foundation </para>
-        <para><ulink url="http://www-306.ibm.com/software/integration/wbisf/features/"/></para>
-      </listitem>
-      <listitem>
-        <para>MSDN - Importing BPEL4WS </para>
-        <para><ulink url="http://msdn2.microsoft.com/en-us/library/ms946026.aspx"/></para>
-      </listitem>
-      <listitem>
-        <para>Oracle BPEL Process Manager</para>
-        <para><ulink 
-          url="http://www.oracle.com/technology/products/ias/bpel/index.html"/></para>
-      </listitem>
-      <listitem>
-        <para>A Convergence Path toward a Standard BPM Stack </para>
-        <para><ulink url="http://www.bpmi.org/downloads/BPML-BPEL4WS.pdf"/></para>
-      </listitem>
+      <listitem><para><ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel"> 
+        OASIS Web Services Business Process Execution Language TC</ulink></para></listitem>
+      <listitem><para><ulink url="http://inews.webopedia.com/TERM/S/Service_Oriented_Architecture.html">Service-Oriented 
+        Architecture</ulink></para></listitem>
+      <listitem> <para><ulink url="http://www.rednova.com/news/stories/3/2004/04/30/story103.html">IBM 
+        Refocuses WebSphere on Service-Oriented Architectures</ulink></para> </listitem>
+      <listitem><para><ulink url="http://www.internetnews.com/ent-news/article.php/3343231">IBM Unveils 
+        First SOA Products, Services</ulink></para></listitem>
+      <listitem><para><ulink url="http://itmanagement.earthweb.com/entdev/article.php/3337731">BEA, 
+        IBM Propose Java/BPEL 'Marriage'</ulink></para></listitem>
+      <listitem> <para><ulink url="http://dev2dev.bea.com/technologies/bpel/index.jsp">BEA - BPEL 
+        &amp; BPELJ</ulink></para></listitem>
+      <listitem><para><ulink url="http://www.jcp.org/en/jsr/detail?id=207">JSR 207: Process Definition 
+        for Java </ulink></para></listitem>
+      <listitem><para><ulink url="http://www-306.ibm.com/software/integration/wbisf/features/">WebSphere 
+        Business Integration Server Foundation</ulink></para></listitem>
+      <listitem><para><ulink url="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdk/htm/ebiz_prog_orch_bfpe.asp">MSDN 
+        - Importing BPEL4WS</ulink></para></listitem>
+      <listitem><para><ulink url="http://www.oracle.com/technology/products/ias/bpel/index.html">Oracle 
+        BPEL Process Manager</ulink></para></listitem>
+      <listitem><para><ulink url="http://www.active-endpoints.com/siebel/">Active Endpoints - Siebel 
+        Alliance</ulink></para></listitem>
+      <listitem><para><ulink url="http://www.bpmi.org/downloads/BPML-BPEL4WS.pdf">A Convergence Path 
+        toward a Standard BPM Stack</ulink></para></listitem>
     </orderedlist>
   
   </section>
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/purchaseExample.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/purchaseExample.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/purchaseExample.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/purchaseExample.xml	2009-02-06 09:17:20.000000000 +0100
@@ -4,24 +4,30 @@
   
   <para>This chapter presents an example of a process for handling a purchase order.</para>
   
-  <para>The operation of the process is represented in the following figure.</para>
+  <para>The operation of the process is represented in the following figure.
+    Dotted lines represent sequencing. Free grouping of sequences represents concurrent
+    sequences. Solid arrows represent control links used for synchronization across concurrent
+    activities.</para>
 
   <figure id="tutorial.purchase.graph">
-    <title>Purchase order process</title>
-    <mediaobject><imageobject><imagedata align="center" fileref="images/purchase.png"
-      width="7.30in" depth="4.32in" scalefit="0"/></imageobject></mediaobject>
+    <title>Graphical representation of the Purchase Order process</title>
+    <mediaobject>
+      <imageobject><imagedata align="center" fileref="images/purchase.png"/></imageobject>
+    </mediaobject>
   </figure>
 
-  <para>Upon receiving the purchase order from a customer, the process initiates three tasks
-    concurrently: calculate the final price for the order, select a shipper, and schedule
+  <para>On receiving the purchase order from a customer, the process initiates three tasks
+    concurrently: calculating the final price for the order, selecting a shipper, and scheduling
     the production and shipment for the order. While some of the processing can proceed
-    concurrently, there are control and data dependencies between the three tasks. The 
-    shipping price is required to finalize the price calculation, and the shipping
+    concurrently, there are control and data dependencies between the three tasks. In
+    particular, the shipping price is required to finalize the price calculation, and the shipping
     date is required for the complete fulfillment schedule. When the three tasks are completed,
     invoice processing can proceed and the invoice is sent to the customer.</para>
 
-  <para>This is the initial example from section 6.1 of the BPEL4WS specification, version 1.1.
-    The specification document can be found at any of the following locations:</para>
+  <para>In fact, this is the initial example from section 6.1 of the BPEL4WS 
+    specification, version 1.1.</para>
+    
+  <para>The BPEL4WS 1.1 specification can be found at any of the following locations:</para>
   
   <itemizedlist>
   
@@ -49,12 +55,14 @@
       <title>Create the BPEL document</title>    
 
       <para>The purchase order process is, in fact, the initial example from section 6.1 of the 
-        BPEL4WS specification version 1.1. We simply copy the example from the specification 
-        text and paste it in an XML document called <literal>purchase.bpel</literal>.</para>
-
-      <programlisting><![CDATA[<process name="PurchaseOrder" targetNamespace="http://acme.com/ws-bp/purchase"
-  xmlns:lns="http://manufacturing.org/wsdl/purchase"
-  xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
+        BPEL4WS specification version 1.1. For one time, we simply copy the example from the
+        specification text and paste it in an XML document called <literal>purchase.bpel</literal>.
+        </para>
+
+      <programlisting><![CDATA[<process name="purchaseOrderProcess"
+  targetNamespace="http://acme.com/ws-bp/purchase"
+  xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
+  xmlns:lns="http://manufacturing.org/wsdl/purchase">
 
   <partnerLinks>
     <partnerLink name="purchasing" partnerLinkType="lns:purchasingLT" 
@@ -81,17 +89,17 @@
     <catch faultName="lns:cannotCompleteOrder" faultVariable="POFault">
 
       <reply partnerLink="purchasing" portType="lns:purchaseOrderPT" 
-        operation="sendPurchaseOrder" variable="POFault" faultName="cannotCompleteOrder" />
+        operation="sendPurchaseOrder" variable="POFault"
+        faultName="cannotCompleteOrder" />
 
     </catch>
 
   </faultHandlers>
 
-  <sequence name="Main">
+  <sequence>
 
-    <receive name="ReceivePurchaseOrder" partnerLink="purchasing"
-      portType="lns:purchaseOrderPT" operation="sendPurchaseOrder"
-      variable="PO" createInstance="yes" />
+    <receive partnerLink="purchasing" portType="lns:purchaseOrderPT"
+      operation="sendPurchaseOrder" variable="PO" createInstance="yes" />
 
     <flow>
 
@@ -100,54 +108,50 @@
         <link name="ship-to-scheduling" />
       </links>
 
-      <sequence name="Shipping">
+      <sequence>
 
-        <assign name="PrepareShipping">
+        <assign>
           <copy>
             <from variable="PO" part="customerInfo" />
             <to variable="shippingRequest" part="customerInfo" />
           </copy>
         </assign>
 
-        <invoke name="RequestShipping" partnerLink="shipping" portType="lns:shippingPT"
+        <invoke partnerLink="shipping" portType="lns:shippingPT"
           operation="requestShipping" inputVariable="shippingRequest"
           outputVariable="shippingInfo">
           <source linkName="ship-to-invoice" />
         </invoke>
 
-        <receive name="ReceiveSchedule" partnerLink="shipping" operation="sendSchedule"
-          portType="lns:shippingCallbackPT" variable="shippingSchedule">
+        <receive partnerLink="shipping" portType="lns:shippingCallbackPT"
+          operation="sendSchedule" variable="shippingSchedule">
           <source linkName="ship-to-scheduling" />
         </receive>
 
       </sequence>
 
-      <sequence name="Invoicing">
+      <sequence>
+
+        <invoke partnerLink="invoicing" portType="lns:computePricePT"
+          operation="initiatePriceCalculation" inputVariable="PO" />
 
-        <invoke name="InitiatePriceCalculation" partnerLink="invoicing"
-          portType="lns:computePricePT" operation="initiatePriceCalculation" 
-          inputVariable="PO" />
-
-        <invoke name="SendShippingPrice" partnerLink="invoicing" 
-          portType="lns:computePricePT" operation="sendShippingPrice" 
-          inputVariable="shippingInfo">
+        <invoke partnerLink="invoicing" portType="lns:computePricePT"
+          operation="sendShippingPrice" inputVariable="shippingInfo">
           <target linkName="ship-to-invoice" />
         </invoke>
 
-        <receive name="ReceiveInvoice" partnerLink="invoicing" 
-          portType="lns:invoiceCallbackPT" operation="sendInvoice" variable="Invoice" />
+        <receive partnerLink="invoicing" portType="lns:invoiceCallbackPT"
+          operation="sendInvoice" variable="Invoice" />
 
       </sequence>
 
-      <sequence name="Scheduling">
+      <sequence>
 
-        <invoke name="RequestScheduling" partnerLink="scheduling" 
-          portType="lns:schedulingPT" operation="requestProductionScheduling"
-          inputVariable="PO" />
-
-        <invoke name="SendShippingSchedule" partnerLink="scheduling"
-          portType="lns:schedulingPT" operation="sendShippingSchedule"
-          inputVariable="shippingSchedule">
+        <invoke partnerLink="scheduling" portType="lns:schedulingPT"
+          operation="requestProductionScheduling" inputVariable="PO" />
+
+        <invoke partnerLink="scheduling" portType="lns:schedulingPT"
+          operation="sendShippingSchedule" inputVariable="shippingSchedule">
           <target linkName="ship-to-scheduling" />
         </invoke>
 
@@ -155,7 +159,7 @@
 
     </flow>
 
-    <reply name="SendPurchaseOrder" partnerLink="purchasing" portType="lns:purchaseOrderPT"
+    <reply partnerLink="purchasing" portType="lns:purchaseOrderPT"
       operation="sendPurchaseOrder" variable="Invoice" />
 
   </sequence>
@@ -187,7 +191,7 @@
       <title id="tutorial.purchase.def.wsdl.title">Create/obtain the WSDL interface documents</title>
       
       <para>BPEL4WS 1.1 section 6.1 provides the WSDL interface definitions referenced from
-        the process presented earlier. The content of the <literal>purchase.wsdl</literal>
+        the BPEL document presented earlier. The content of the <literal>purchase.wsdl</literal>
         file is a reproduction of text from the specification except for a few minor 
         ammendments commented below.</para>
                 
@@ -334,7 +338,7 @@
         Web services interoperability across platforms. On April 16, 2004 the organization 
         published the Basic Profile (BP) 1.0. The BP contains guidelines and recommendations 
         to fill gaps and ambiguities in core Web services specifications such as SOAP and WSDL
-        that led to compatibility issues.</para>
+        that led to interoperability issues.</para>
         
       <para>BPEL4WS 1.1, published May 5, 2003, predates BP 1.0. Not surprisingly, the sample
         WSDL document does not adhere to the profile. The changes above are required to make
@@ -363,182 +367,353 @@
       
       <para>To deploy the process definition to the jBPM database, call:</para>
   
-      <synopsis>ant deploy.process</synopsis>
+      <synopsis>ant deploy-process</synopsis>
   
-      <para>The above target creates a file named <literal>purchase.zip</literal> and 
+      <para>The above target creates a file named <literal>purchase-process.zip</literal> and 
         submits it to the jBPM service. The server console should read:</para>
   
-      <screen>13:27:34,921 INFO  [DeploymentServlet] deployed process definition: PurchaseOrder
-13:27:35,640 INFO  [WebModuleBuilder] packaged web module: purchase.war
-13:27:35,640 INFO  [DeploymentServlet] deployed web module: purchase.war
-13:27:36,734 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=purchase,&nextLine;
-endpoint=invoiceRequesterServlet
-13:27:36,734 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=purchase,&nextLine;
-endpoint=purchaseServiceServlet
-13:27:36,750 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=purchase,&nextLine;
-endpoint=shippingRequesterServlet
-13:27:36,765 INFO  [TomcatDeployer] deploy, ctxPath=/purchase, warUrl=...
-13:27:36,937 INFO  [IntegrationConfigurator] message reception enabled for process:&nextLine;
-PurchaseOrder
-13:27:37,140 INFO  [WSDLFilePublisher] WSDL published to: .../purchase-service.wsdl</screen>
-
-      <para>The purchase order process requires the collaboration of three different partner
-        services to complete: <literal>invoice</literal>, <literal>shipping</literal> and
-        <literal>scheduling</literal>. To deploy them, change to the partner directory and 
-        run the next target.</para>
-        
-      <synopsis>ant deploy.webservice</synopsis>
-      
-      <para>The screen below confirms the correct deployment of the partner services.</para>
-      
-      <screen>16:09:10,390 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=invoice,&nextLine;
-endpoint=invoiceServlet
-16:09:10,421 INFO  [TomcatDeployer] deploy, ctxPath=/invoice, warUrl=...
-16:09:10,859 INFO  [WSDLFilePublisher] WSDL published to: .../invoice.wsdl
---
-16:09:36,312 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=shipping,&nextLine;
-endpoint=shippingServlet
-16:09:36,343 INFO  [TomcatDeployer] deploy, ctxPath=/shipping, warUrl=...
-16:09:36,671 INFO  [WSDLFilePublisher] WSDL published to: .../shipping.wsdl
---
-16:09:47,328 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=scheduling,&nextLine;
-endpoint=schedulingServlet
-16:09:47,390 INFO  [TomcatDeployer] deploy, ctxPath=/scheduling, warUrl=...
-16:09:47,734 INFO  [WSDLFilePublisher] WSDL published to: .../scheduling.wsdl</screen>
-
-      <para>You should have the following endpoints listed in the JBossWS service endpoints 
-        page.</para>
-      
-      <table>
-      
-        <title>Partner endpoints</title>
-
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
-        
-        <colspec colwidth="1*"/>
-        <colspec colwidth="3*"/>
-        
-        <thead>
-        
-          <row>
-            <entry>Partner link</entry>
-            <entry>Endpoint</entry>
-          </row>
-
-        </thead>
-      
-        <tbody>
-
-          <row>
-            <entry>invoicing</entry>
-            <entry>http://127.0.0.1:8080/invoice/invoiceService</entry>
-          </row>
-          
-          <row>
-            <entry>shipping</entry>
-            <entry>http://127.0.0.1:8080/shipping/shippingService</entry>
-          </row>
-          
-          <row>
-            <entry>scheduling</entry>
-            <entry>http://127.0.0.1:8080/scheduling/schedulingProcess</entry>
-          </row>
-          
-        </tbody>
-        
-        </tgroup>
+      <screen>12:42:02,312 INFO  [[/jbpm-bpel]] processDeployServlet: deploying process definition: &nextLine;
+file=file:/.../purchase-process.zip
+12:42:02,390 INFO  [BpelReader] read wsdl definitions: purchase.wsdl
+12:42:02,453 INFO  [BpelReader] read bpel process: purchase.bpel
+12:42:02,515 INFO  [[/jbpm-bpel]] processDeployServlet: deployed process definition: &nextLine;
+purchaseOrderProcess</screen>
       
-      </table>
-      
-      <table>
-      
-        <title>My endpoints</title>
-
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
-
-        <colspec colwidth="1*"/>
-        <colspec colwidth="3*"/>
-
-        <thead>
-        
-          <row>
-            <entry>Partner link</entry>
-            <entry>Endpoint</entry>
-          </row>
-
-        </thead>
-      
-        <tbody>
-
-          <row>
-            <entry>purchasing</entry>
-            <entry>http://127.0.0.1:8080/purchase/purchaseService</entry>
-          </row>
-          
-          <row>
-            <entry>invoicing</entry>
-            <entry>http://127.0.0.1:8080/purchase/invoiceRequester</entry>
-          </row>
-          
-          <row>
-            <entry>shipping</entry>
-            <entry>http://127.0.0.1:8080/purchase/shippingRequester</entry>
-          </row>
-          
-        </tbody>
-        
-        </tgroup>
-      
-      </table>
+    </section>
       
-      <para>Do not forget to register the partner services in the catalog. Use this
-        command to do it.</para>
+  </section>
         
-      <synopsis>ant register.partners</synopsis>
+  <section id="tutorial.purchase.server">
       
-      <para>You can verify the partner services are visible in the catalog using
-        the web console.</para>
+    <title>Build the WSEE port components</title>
 
-      <table>
+    <section id="tutorial.purchase.server.wsdl">
       
-        <title>Service catalog</title>
+      <title>WSDL implementation documents</title>
 
-        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <para>Generate the WSDL implementation definitions with:</para>
         
-        <colspec colwidth="3*"/>
-        <colspec colwidth="1*"/>
+      <synopsis>ant generate-service</synopsis>
 
-        <thead>
+      <para>The <literal>servicegen</literal> tool writes the following documents:</para>
         
-          <row>
-            <entry>Base location</entry>
-            <entry>Services</entry>
-          </row>
+      <itemizedlist>
 
-        </thead>
+        <listitem><para><literal>purchase.wsdl</literal> is an equivalent of the interface
+          WSDL document we saw in <link linkend="tutorial.purchase.def.wsdl" 
+          endterm="tutorial.purchase.def.wsdl.title" /></para></listitem>
+
+        <listitem><para><literal>purchase-binding-1.wsdl</literal> contains the SOAP binding for the
+          <literal>purchaseOrderPT</literal> port type</para></listitem>
+
+        <listitem><para><literal>purchase-service.wsdl</literal> has the service that corresponds 
+          to the process. The <varname>purchaseOrderProcessService</varname> service contains 
+          three ports, <varname>invoiceRequesterPort</varname>, <varname>purchaseServicePort</varname>
+          and <varname>shippingRequesterPort</varname>. These ports associated to the <varname>
+          invoicing</varname>, <varname>purchasing</varname> and <varname>shipping</varname>
+          partner links, respectively.</para>
+          </listitem>
       
-        <tbody>
+      </itemizedlist>
 
-          <row>
-            <entry>http://localhost:8080/invoice/invoiceService?wsdl</entry>
-            <entry>invoiceService</entry>
-          </row>
+    </section>
           
-          <row>
-            <entry>http://localhost:8080/shipping/shippingService?wsdl</entry>
-            <entry>shippingService</entry>
-          </row>
+    <section id="tutorial.purchase.server.artifacts">
 
-          <row>
-            <entry>http://localhost:8080/scheduling/schedulingProcess?wsdl</entry>
-            <entry>schedulingService</entry>
-          </row>          
+      <title>Java mapping artifacts</title>
 
-        </tbody>
+      <para>Generate the Java mapping artifacts with this command:</para>
         
-        </tgroup>
+      <synopsis>ant generate-artifacts</synopsis>
       
-      </table>
+      <para>The configuration for <literal>wscompile</literal> is:</para>
+  
+      <programlisting><![CDATA[<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
+  <wsdl location="target/resources/web/wsdl/purchase-service.wsdl"
+    packageName="org.jbpm.bpel.tutorial.purchase">
+    <namespaceMappingRegistry>
+      <namespaceMapping namespace="http://manufacturing.org/xsd/purchase"
+        packageName="org.jbpm.bpel.tutorial.purchase" />
+    </namespaceMappingRegistry>
+  </wsdl>
+</configuration>]]></programlisting>
+
+      <para>For <literal>wstools</literal> we have:</para>
+      
+      <programlisting><![CDATA[<configuration xmlns="http://www.jboss.org/jbossws-tools">
+  <global>
+    <package-namespace package="org.jbpm.bpel.tutorial.purchase"
+      namespace="http://acme.com/ws-bp/purchase" />
+  </global>
+  <wsdl-java file="wsdl/purchase-service.wsdl">
+    <mapping file="jaxrpc-mapping.xml" />
+  </wsdl-java>
+</configuration>]]></programlisting>
+
+    <note><para>Due to a limitation in its WSDL-to-Java name mapping strategy, the artifacts 
+      generated by <literal>wstools</literal> cannot be used. You must use <literal>wscompile
+      </literal>.</para></note>
+
+    </section>
+    
+    <section id="tutorial.purchase.server.webapp">
+
+      <title>Port components as servlets</title>
+      
+      <para>The subsequent listing presents the <literal>web.xml</literal> descriptor used for
+        this example.</para>
+  
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+
+  <!-- Purchase Order -->
+  <servlet>
+    <servlet-name>purchaseOrderServlet</servlet-name>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.purchase.PurchaseOrderPT_Impl
+    </servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>purchaseOrderServlet</servlet-name>
+    <url-pattern>/purchaseOrder</url-pattern>
+  </servlet-mapping>
+
+  <!-- Invoice Callback -->
+  <servlet>
+    <servlet-name>invoiceCallbackServlet</servlet-name>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.purchase.InvoiceCallbackPT_Impl
+    </servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>invoiceCallbackServlet</servlet-name>
+    <url-pattern>/invoiceCallback</url-pattern>
+  </servlet-mapping>
+
+  <!-- Shipping Callback -->
+  <servlet>
+    <servlet-name>shippingCallbackServlet</servlet-name>
+    <servlet-class>
+      org.jbpm.bpel.tutorial.purchase.ShippingCallbackPT_Impl
+    </servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>shippingCallbackServlet</servlet-name>
+    <url-pattern>/shippingCallback</url-pattern>
+  </servlet-mapping>
+  ...
+</web-app>]]></programlisting>
+
+    </section>
+
+    <section id="tutorial.purchase.server.integra">
+    
+      <title>Partner integration</title>
+    
+      <para>In order for the process to take requests, register the integration configurator
+        in your <literal>web.xml</literal>. Refer to the <link linkend="tutorial.hello.server.integra"
+        endterm="tutorial.hello.server.integra.title" /> section in the Hello World example for a
+        complete explanation.</para>
+        
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+  ...
+  <!-- Partner Integration Configurator -->
+  <listener>
+    <listener-class>
+      org.jbpm.bpel.integration.server.IntegrationConfigurator
+    </listener-class>
+  </listener>
+  ...
+</web-app>]]></programlisting>
+
+      <para>The integration configuration file, <literal>bpel-application.xml</literal>, tells
+        the name of the process and the locations of the three partner services. For an 
+        in-depth coverage of the settings in this file, refer to the <link 
+        linkend="tutorial.atm.server.integra.title">ATM example</link>.</para>
+        
+      <programlisting><![CDATA[<bpelApplication name="purchaseOrderProcess"
+  targetNamespace="http://acme.com/ws-bp/purchase"
+  xmlns="urn:jbpm.org:bpel-1.1:application">
+
+  <serviceCatalogs>
+    <!-- listing of locally published WSDL documents -->
+    <urlCatalog contextUrl="http://localhost:8080/">
+      <!-- published WSDL document of invoice service -->
+      <wsdl location="invoice/invoiceService?wsdl" />
+      <!-- published WSDL document of shipping service -->
+      <wsdl location="shipping/shippingService?wsdl" />
+      <!-- published WSDL document of production scheduling process -->
+      <wsdl location="scheduling/schedulingProcess?wsdl" />
+    </urlCatalog>
+  </serviceCatalogs>
+
+</bpelApplication>]]></programlisting>
+
+    </section>
+
+    <section id="tutorial.purchase.server.webservices">
+    
+      <title>Web services deployment descriptor</title>
+      
+      <para>The web services descriptor, <literal>webservices.xml</literal>, appears next. Notice
+        the <varname>purchaseOrderHandler</varname>, <varname>invoiceCallbackHandler</varname> and
+        <varname>shippingCallbackHandler</varname> which inject BPEL functionality to the <varname>
+        purchaseOrderPort</varname>, <varname>invoiceCallbackPort</varname> and <varname>
+        shippingCallbackPort</varname> components.</para>
+  
+      <programlisting><![CDATA[<webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee">
+
+  <webservice-description>
+
+    <webservice-description-name>Purchase Order Process</webservice-description-name>
+    <wsdl-file>WEB-INF/wsdl/purchase-service.wsdl</wsdl-file>
+    <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+
+    <port-component>
+
+      <port-component-name>purchaseOrderPort</port-component-name>
+      <wsdl-port xmlns:portNS="http://acme.com/ws-bp/purchase">
+        portNS:purchaseServicePort
+      </wsdl-port>
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.purchase.PurchaseOrderPT
+      </service-endpoint-interface>
+      <service-impl-bean>
+        <servlet-link>purchaseOrderServlet</servlet-link>
+      </service-impl-bean>
+
+      <handler>
+        <handler-name>purchaseOrderHandler</handler-name>
+        <handler-class>
+          org.jbpm.bpel.integration.server.SoapHandler
+        </handler-class>
+        <init-param>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>purchasing</param-value>
+        </init-param>
+      </handler>
+
+    </port-component>
+
+    <port-component>
+
+      <port-component-name>invoiceCallbackPort</port-component-name>
+      <wsdl-port xmlns:portNS="http://acme.com/ws-bp/purchase">
+        portNS:invoiceRequesterPort
+      </wsdl-port>
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.purchase.InvoiceCallbackPT
+      </service-endpoint-interface>
+      <service-impl-bean>
+        <servlet-link>invoiceCallbackServlet</servlet-link>
+      </service-impl-bean>
+
+      <handler>
+        <handler-name>invoiceCallbackHandler</handler-name>
+        <handler-class>
+          org.jbpm.bpel.integration.server.SoapHandler
+        </handler-class>
+        <init-param>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>invoicing</param-value>
+        </init-param>
+      </handler>
+
+    </port-component>
+
+    <port-component>
+
+      <port-component-name>shippingCallbackPort</port-component-name>
+      <wsdl-port xmlns:portNS="http://acme.com/ws-bp/purchase">
+        portNS:shippingRequesterPort
+      </wsdl-port>
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.purchase.ShippingCallbackPT
+      </service-endpoint-interface>
+      <service-impl-bean>
+        <servlet-link>shippingCallbackServlet</servlet-link>
+      </service-impl-bean>
+
+      <handler>
+        <handler-name>shippingCallbackHandler</handler-name>
+        <handler-class>
+          org.jbpm.bpel.integration.server.SoapHandler
+        </handler-class>
+        <init-param>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>shipping</param-value>
+        </init-param>
+      </handler>
+
+    </port-component>
+
+  </webservice-description>
+
+</webservices>]]></programlisting>
+
+    </section>
+
+    <section id="tutorial.purchase.server.deploy">
+  
+      <title>Web application deployment</title>
+      
+      <para>To deploy the web service to the app server, call:</para>
+      
+      <synopsis>ant deploy-webservice</synopsis>
+      
+      <para>This builds a web archive named <literal>purchase.war</literal> and copies it to the
+        <literal>deploy</literal> directory of your JBoss AS configuration. On the server, you 
+        should see logs like:</para>
+  
+      <screen>18:09:53,140 INFO  [TomcatDeployer] deploy, ctxPath=/purchase, warUrl=...
+18:09:53,312 INFO  [IntegrationConfigurator] Message reception enabled for process: &nextLine;
+purchaseOrderProcess
+18:09:53,359 INFO  [WSDLFilePublisher] WSDL published to: file:/.../purchase-service.wsdl
+18:09:53,390 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../purchase/purchaseOrder
+18:09:53,390 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../purchase/invoiceCallback
+18:09:53,390 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../purchase/shippingCallback</screen>
+
+      <note><para>Deploying <literal>purchase.war</literal> results in starting three web service
+        endpoints. Each endpoint is bound to a separate partner link in the process definition.</para></note>
+        
+      <para>At this point, the partner services must be up and running. The resources of each 
+        partner service reside in separate directories under <literal>examples</literal>.</para>
+        
+      <para>To deploy the invoice price calculator, change to the <literal>invoice</literal>
+        dir and call:</para>
+        
+      <synopsis>ant redeploy</synopsis>
+      
+      <para>This will generate Java mapping artifacts, build the <literal>invoice.war</literal>
+        module and deploy it to JBoss AS. The console output is:</para>
+        
+      <screen>23:02:34,609 INFO  [TomcatDeployer] deploy, ctxPath=/invoice, warUrl=...
+23:02:34,843 INFO  [WSDLFilePublisher] WSDL published to: file:/.../invoice.wsdl
+23:02:34,859 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../invoice/invoiceService</screen>
+
+      <para>Call the same target in the <literal>shipping</literal> dir to deploy the shipping 
+        service. The server emits these logs:</para>
+        
+      <screen>23:04:15,593 INFO  [TomcatDeployer] deploy, ctxPath=/shipping, warUrl=...
+23:04:15,750 INFO  [WSDLFilePublisher] WSDL published to: file:/.../shipping.wsdl
+23:04:15,781 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../shipping/shippingService</screen>
+
+      <para>The production scheduling process is located in the <literal>scheduling</literal> dir.
+        This is the third and last service required by the process. Here is a sample output
+        from the server during deployment of this service:</para>
+        
+      <screen>23:12:36,828 INFO  [TomcatDeployer] deploy, ctxPath=/scheduling, warUrl=...
+23:12:37,078 INFO  [WSDLFilePublisher] WSDL published to: file:/.../scheduling.wsdl
+23:12:37,109 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../scheduling/schedulingProcess</screen>
+
+      <note><para>At this point, your BPEL process and its partner services are fully accessible 
+        to external clients through their endpoint addresses. The remaining sections focus on 
+        testing the process using a J2EE application client.</para></note>
       
     </section>
     
@@ -563,15 +738,26 @@
 
     <service-ref-name>service/PurchaseOrder</service-ref-name>
     <service-interface>
-      org.jbpm.bpel.tutorial.purchase.PurchaseOrderService
+      org.jbpm.bpel.tutorial.purchase.PurchaseOrderProcessService
     </service-interface>
     <wsdl-file>META-INF/wsdl/purchase-service.wsdl</wsdl-file>
-    <jaxrpc-mapping-file>META-INF/purchase-mapping.xml</jaxrpc-mapping-file>
+    <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+
+    <port-component-ref>
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.purchase.PurchaseOrderPT
+      </service-endpoint-interface>
+    </port-component-ref>
 
   </service-ref>
 
 </application-client>]]></programlisting>
     
+      <note><para>Despite the process has three port components associated with it, <literal>
+        application-client.xml</literal> references the purchase order port alone. 
+        This is because clients are supposed to interact with this port only. The remaining two
+        ports exist for the use of the invoice and shipping service providers.</para></note>
+    
     </section>
 
     <section id="tutorial.purchase.client.env">
@@ -582,14 +768,14 @@
         </literal>.</para>
       
       <programlisting><![CDATA[<jboss-client>
+  <!-- JNDI name of client environment context -->
   <jndi-name>jbpmbpel-client</jndi-name>
 </jboss-client>]]></programlisting>
 
-      <tip><para>The <literal>jndi-name</literal> above is shared among all examples. You can
-        share a single JNDI name among multiple application clients to keep them organized
-        and reduce the number of top-level entries in the global JNDI context of the server.
-        Just make sure you give different <literal>service-ref-name</literal>s to each client
-        in the respective <literal>application-client.xml</literal> file.</para></tip>
+      <tip><para>The name above is the same we used in the JBoss client descriptor of the
+          <link linkend="tutorial.hello.client.env">Hello World</link> and <link 
+          linkend="tutorial.atm.client.env">ATM</link> examples. Please read the tip in
+          the ATM example to find out why.</para></tip>
 
     </section>
     
@@ -668,7 +854,7 @@
         
           <para><literal>testSendPurchaseOrderNotAvailable</literal>: fill in a purchase order
             with details about the customer, the shipping address and the requested items.
-            The shipper does <emphasis>not</emphasis> serve the given address. Hence, we expect
+            The shipper <emphasis>does not serve</emphasis> the given address. Hence, we expect
             a problem when placing this order.</para>
           
           <programlisting><![CDATA[public void testSendPurchaseOrderNotAvailable() throws RemoteException {
@@ -700,13 +886,13 @@
 
       <title>Client JNDI properties</title>
 
-      <para>The JNDI properties are exactly the same for all examples. In 
-        particular, the <varname>j2ee.clientName</varname> property does not change because
-        all examples share the <literal>&lt;jndi-name&gt;</literal> in
-        their respective <literal>jboss-client.xml</literal> descriptors.</para>
+      <para>The JNDI properties are exactly the same as in the Hello World and ATM examples.
+        In particular, the <varname>j2ee.clientName</varname> property does not change because
+        we chose to keep the <varname>&lt;jndi-name&gt;</varname> in <literal>jboss-client.xml</literal>
+        we used in said examples.</para>
         
-      <para>Refer to the <link linkend="tutorial.hello.test.jndi" 
-        endterm="tutorial.hello.test.jndi.title" /> in the first example for a listing
+      <para>See the <link linkend="tutorial.hello.test.jndi" 
+        endterm="tutorial.hello.test.jndi.title" /> of the Hello World example for a listing
         of the properties.</para>
 
     </section>
@@ -715,15 +901,16 @@
 
       <title>Test execution</title>
 
-      <para>The following target runs the test case:</para>
+      <para>The following target executes the junit test case:</para>
 
-      <synopsis>ant test</synopsis>
+      <synopsis>ant run-test</synopsis>
 
       <para>If everything goes well the target output should look like this:</para>
 
-      <screen>test.test:
+      <screen><![CDATA[run-test:
+...
     [junit] Running org.jbpm.bpel.tutorial.purchase.PurchaseOrderTest
-    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 8.781 sec</screen>
+    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 6.094 sec]]></screen>
     
     </section>    
   
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/tripExample.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/tripExample.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/tripExample.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/tripExample.xml	2009-02-06 09:17:20.000000000 +0100
@@ -15,9 +15,10 @@
     </para>
 
   <figure id="tutorial.trip.main">
-    <title>Trip reservation process</title>
-    <mediaobject><imageobject><imagedata align="center" fileref="images/tripMain.png"
-      width="2.24in" depth="3.08in" scalefit="0" /></imageobject></mediaobject>
+    <title>Top level representation of the trip reservation process</title>
+    <mediaobject>
+      <imageobject><imagedata align="center" fileref="images/trip.png"/></imageobject>
+    </mediaobject>
   </figure>
 
   <section id="tutorial.trip.def">
@@ -31,23 +32,21 @@
       <para>This process has two partnerships. The first, <varname>traveler</varname> is the
         immediately noticeable link with the customers of the agency. The second is more of
         an implementation detail and consists of a service that generates the trip locators.
-        In fact, this process reuses the ticket issuer introduced in the <link
+        In fact, this process simply reuses the ticket issuer introduced in the <link
         linkend="tutorial.atm.def.wsdl">ATM example</link>.</para>
 
-      <para>The correlation set <varname>trip</varname> involves activities that exchange
-        the trip locator with external entities. The trip locator helps distinguish
-        reservations from each other.</para>
+      <para>The correlated exchange <varname>trip</varname> involves activities that exchange
+        the trip locator with partner services. The trip locator serves to distinguish a trip
+        reservation from others.</para>
 
-      <programlisting><![CDATA[<process name="TripReservation" targetNamespace="http://jbpm.org/examples/trip"
-  xmlns:tns="http://jbpm.org/examples/trip" xmlns:tic="http://jbpm.org/examples/ticket"
+      <programlisting><![CDATA[<process name="TripReservation" targetNamespace="http://jbpm.org/examples/trip/"
+  xmlns:tns="http://jbpm.org/examples/trip/" xmlns:tic="urn:samples:ticket" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
 
   <partnerLinks>
-    <partnerLink name="traveler" partnerLinkType="tns:Traveler-Agent" 
-      myRole="Agent" />
+    <partnerLink name="traveler" partnerLinkType="tns:Traveler-Agent" myRole="Agent" />
     <partnerLink name="ticket" partnerLinkType="tns:Agent-Ticket" 
       partnerRole="TicketIssuer" />
   </partnerLinks>
@@ -66,51 +65,40 @@
   <correlationSets>
     <correlationSet name="trip" properties="tns:tripLocator" />
   </correlationSets>
-
-  <faultHandlers>
-    ...
-  </faultHandlers>
-  
-  <sequence name="Main">
     ...
-  </sequence>
-
 </process>]]></programlisting>
 
       <para>The trip purchase section of the process looks like this:</para>
 
       <figure id="tutorial.trip.purchase">
-        <title>Trip purchase unit</title>
-        <mediaobject><imageobject><imagedata align="center" fileref="images/tripPurchase.png"
-          width="4.17in" depth="5.10in" scalefit="0"/></imageobject></mediaobject>
+        <title>Trip purchase behavior</title>
+        <mediaobject>
+          <imageobject><imagedata align="center" fileref="images/tripPurchase.png"/></imageobject>
+        </mediaobject>
       </figure>
 
       <para>and behaves like this: after deciding on the desired trip options, the traveler 
         sends a purchase order which goes to the <varname>purchaseRequest</varname> variable.
         The cost of the trip is maintained in variable <varname>cost</varname> and is initially
         set to zero. The process examines the order and charges the flight, hotel and rental 
-        car if requested. In parallel, the process contacts the ticket service and obtains
-        a trip locator. Lastly, an invoice is prepared and sent back to the traveler. The
-        invoice contains the trip locator for the customer's further reference.</para>
+        car separately, only if each was requested. At the same time the process contacts the
+        ticket service and obtains a trip locator. Lastly, an invoice is prepared with the
+        locator and cost values and sent back to the traveler.</para>
         
-      <programlisting><![CDATA[<scope name="TripPurchase">
+      <programlisting><![CDATA[<scope name="tripPurchase">
 
   <variables>
     <variable name="purchaseResponse" messageType="tns:purchaseResponse" />
     <variable name="ticketRequest" messageType="tic:ticketRequest" />
-    <variable name="ticketMessage" messageType="tic:ticketMessage" />
+    <variable name="ticketWrap" messageType="tic:ticketWrap" />
   </variables>
 
-  <sequence name="PurchaseTrip">
+  <sequence>
 
-    <receive name="ReceiveTripOrder" operation="purchaseTrip" partnerLink="traveler"
-      portType="tns:TravelAgent" variable="purchaseRequest" createInstance="yes" />
+    <receive operation="purchaseTrip" partnerLink="traveler" portType="tns:TravelAgent"
+      variable="purchaseRequest" createInstance="yes" />
 
-    <flow>
-
-      <sequence name="EvaluateCost">
-
-        <assign name="InitializeCost">
+    <assign>
           <copy>
             <from expression="0" />
             <to variable="cost" />
@@ -121,108 +109,87 @@
           </copy>
         </assign>
 
-        <switch name="FlightDecision">
+    <flow>
 
+      <invoke operation="createTicket" partnerLink="ticket" portType="tic:TicketIssuer"
+        inputVariable="ticketRequest" outputVariable="ticketWrap">
+        <correlations>
+          <correlation set="trip" initiate="yes" pattern="in" />
+        </correlations>
+      </invoke>
+
+      <switch>
           <case condition="bpel:getVariableData('items')/flight
             and string(bpel:getVariableData('items')/flight/@xsi:nil) != '1'">
-
-            <scope name="FlightReservation">
-
+          <scope name="flightReservation">
               <compensationHandler>
-                <assign name="ReimburseFlight">
+              <assign>
                   <copy>
                     <from expression="bpel:getVariableData('cost') - 300 + 100" />
                     <to variable="cost" />
                   </copy>
                 </assign>
               </compensationHandler>
-
-              <assign name="ChargeFlight">
+            <assign>
                 <copy>
                   <from expression="bpel:getVariableData('cost') + 300" />
                   <to variable="cost" />
                 </copy>
               </assign>
-
             </scope>
-
           </case>
-
         </switch>
 
-        <switch name="HotelDecision">
-
+      <switch>
           <case condition="bpel:getVariableData('items')/hotel
             and string(bpel:getVariableData('items')/hotel/@xsi:nil) != '1'">
-
-            <scope name="HotelReservation">
-
+          <scope name="hotelReservation">
               <compensationHandler>
-                <assign name="ReimburseHotel">
+              <assign>
                   <copy>
                     <from expression="bpel:getVariableData('cost') - 100 + 25" />
                     <to variable="cost" />
                   </copy>
                 </assign>
               </compensationHandler>
-
-              <assign name="ChargeHotel">
+            <assign>
                 <copy>
                   <from expression="bpel:getVariableData('cost') + 100" />
                   <to variable="cost" />
                 </copy>
               </assign>
-
             </scope>
-
           </case>
-
         </switch>
 
-        <switch name="CarDecision">
-
+      <switch>
           <case condition="bpel:getVariableData('items')/rentalCar
             and string(bpel:getVariableData('items')/rentalCar/@xsi:nil) != '1'">
-
-            <scope name="CarReservation">
-
+          <scope name="carReservation">
               <compensationHandler>
-                <assign name="ReimburseCar">
+              <assign>
                   <copy>
                     <from expression="bpel:getVariableData('cost') - 50 + 5" />
                     <to variable="cost" />
                   </copy>
                 </assign>
               </compensationHandler>
-
-              <assign name="ChargeCar">
+            <assign>
                 <copy>
                   <from expression="bpel:getVariableData('cost') + 50" />
                   <to variable="cost" />
                 </copy>
               </assign>
-
             </scope>
-
           </case>
 
         </switch>
 
-      </sequence>
-
-      <invoke name="CreateTicket" operation="createTicket" partnerLink="ticket"
-        portType="tic:TicketIssuer" inputVariable="ticketRequest"
-        outputVariable="ticketMessage">
-        <correlations>
-          <correlation set="trip" initiate="yes" pattern="in" />
-        </correlations>
-      </invoke>
-
     </flow>
 
-    <assign name="PrepareInvoice">
+    <assign>
       <copy>
-        <from variable="ticketMessage" part="ticketNo" />
+        <from variable="ticketWrap" part="ticketNo" />
         <to variable="purchaseResponse" part="invoice" query="/tns:invoice/@locator" />
       </copy>
       <copy>
@@ -231,8 +198,8 @@
       </copy>
     </assign>
 
-    <reply name="SendInvoice" operation="purchaseTrip" partnerLink="traveler"
-      portType="tns:TravelAgent" variable="purchaseResponse">
+    <reply operation="purchaseTrip" partnerLink="traveler" portType="tns:TravelAgent" 
+      variable="purchaseResponse">
       <correlations>
         <correlation set="trip" />
       </correlations>
@@ -246,17 +213,17 @@
         external events to occur:</para>
         
       <orderedlist>
-        <listitem><para>the traveler reviews the trip details</para></listitem>
+        <listitem><para>the traveler reviews the details of the trip</para></listitem>
         <listitem><para>the traveler cancels the trip</para></listitem>
         <listitem><para>the trip date arrives</para></listitem>
       </orderedlist>
       
       <para>These events appear as branches in the next model.</para>
       
-      <figure id="tutorial.trip.predate">
-        <title>Loop before trip date</title>
+      <figure id="tutorial.trip.datenotreached">
+        <title>Trip date not reached loop</title>
         <mediaobject>
-          <imageobject><imagedata align="center" fileref="images/tripPredate.png"  />
+          <imageobject><imagedata align="center" fileref="images/tripDateNotReached.png"  />
             </imageobject>
         </mediaobject>
       </figure>
@@ -265,16 +232,16 @@
         date. For this reason, the event listening structure appears inside a loop. Arriving
         at the trip date just breaks the loop.</para>
         
-      <programlisting><![CDATA[<assign name="SetDateNotReached">
+      <programlisting><![CDATA[<assign>
   <copy>
     <from expression="false()" />
     <to variable="dateReached" />
   </copy>
 </assign>
 
-<while name="PredateLoop" condition="bpel:getVariableData('dateReached') = 'false'">
+<while condition="bpel:getVariableData('dateReached') = 'false'">
 
-  <pick name="PredateMenu">
+  <pick>
 
     <onMessage operation="getTripDetail" partnerLink="traveler" portType="tns:TravelAgent"
       variable="detailRequest">
@@ -283,9 +250,9 @@
         <correlation set="trip" />
       </correlations>
 
-      <sequence name="DetailTrip">
+      <sequence>
 
-        <assign name="PrepareTripDetail">
+        <assign>
           <copy>
             <from variable="purchaseRequest" part="order" query="/tns:order/items" />
             <to variable="detailResponse" part="detail" query="/tns:detail/items" />
@@ -296,8 +263,8 @@
           </copy>
         </assign>
 
-        <reply name="SendTripDetail" operation="getTripDetail" partnerLink="traveler"
-          portType="tns:TravelAgent" variable="detailResponse" />
+        <reply operation="getTripDetail" partnerLink="traveler" portType="tns:TravelAgent"
+          variable="detailResponse" />
 
       </sequence>
 
@@ -310,13 +277,13 @@
         <correlation set="trip" />
       </correlations>
 
-      <throw name="CancelTrip" faultName="tns:cancelation" />
+      <throw faultName="tns:cancelation" />
 
     </onMessage>
 
     <onAlarm until="bpel:getVariableData('purchaseRequest', 'order', '/tns:order/date')">
 
-      <assign name="SetDateReached">
+      <assign>
         <copy>
           <from expression="true()" />
           <to variable="dateReached" />
@@ -329,28 +296,25 @@
 
 </while>]]></programlisting>
         
-      <para>This example takes a distinct approach to handle the cancelation scenario.
+      <para>This example takes a different approach to handle the cancelation scenario.
         Instead of branching to determine what options were ordered, this process throws a
-        fault. A global fault handler compensates the trip purchase scope. Compensation handlers
-        (installed only for inner scopes that got activated) reimburse charges and assess 
-        applicable fees. In the end, a bill is sent back to report the forfeited amount.</para>
+        fault. A global fault handler compensates the trip purchase scope. Compensation handlers,
+        only installed by inner scopes that  made charges, perform reimbursement and assess 
+        cancelation fees. In the end, a penalty sheet is sent back to the traveler to inform
+        them of the fraction that will not be returned.</para>
         
       <programlisting><![CDATA[<catch faultName="tns:cancelation">
 
-  <sequence name="Cancel">
-
-    <compensate name="UndoPurchase" scope="tripPurchase" />
-
-    <assign name="PreparePenalty">
+  <sequence>
+    <compensate scope="tripPurchase" />
+    <assign>
       <copy>
         <from variable="cost" />
         <to variable="cancelResponse" part="penalty" query="/tns:penalty/@fee" />
       </copy>
     </assign>
-
-    <reply name="SendPenalty" operation="cancelTrip" partnerLink="traveler"
-      portType="tns:TravelAgent" variable="cancelResponse" />
-
+    <reply operation="cancelTrip" partnerLink="traveler" portType="tns:TravelAgent" 
+      variable="cancelResponse" />
   </sequence>
 
 </catch>]]></programlisting>
@@ -368,18 +332,20 @@
         </literal>). The WSDL definition also introduces the trip locator as a property and
         maps it to fields within the invoice, cancelation and query messages.</para>
         
-      <programlisting><![CDATA[<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip"
-  xmlns:tns="http://jbpm.org/examples/trip" xmlns:tic="http://jbpm.org/examples/ticket"
+      <programlisting><![CDATA[<definitions name="trip" targetNamespace="http://jbpm.org/examples/trip/" 
+  xmlns:tns="http://jbpm.org/examples/trip/"
+  xmlns:tic="urn:samples:ticket" 
   xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns="http://schemas.xmlsoap.org/wsdl/">
 
-  <import namespace="http://jbpm.org/examples/ticket" location="ticket.wsdl" />
+  <import namespace="urn:samples:ticket" location="ticket.wsdl" />
 
   <types>
 
     <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-      targetNamespace="http://jbpm.org/examples/trip">
+      targetNamespace="http://jbpm.org/examples/trip/">
 
       <xsd:complexType name="Flight">
         <xsd:attribute use="required" name="airline" type="xsd:string" />
@@ -515,7 +481,7 @@
   <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tns:detailRequest" 
     part="query" query="/tns:query/@locator" />
 
-  <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketMessage"
+  <bpel:propertyAlias propertyName="tns:tripLocator" messageType="tic:ticketWrap" 
     part="ticketNo" />
 
 </definitions>]]></programlisting>
@@ -524,305 +490,240 @@
         outgoing messages using full WSDL binding information. This means support for the
         document style and enhancements for the RPC style.</para>
         
-      <para>Unlike other examples, the <literal>TravelAgent</literal> port type refers only
-        to <literal>wsdl:parts</literal> that have been defined using the <literal>element
-        </literal> attribute. This characterizes the document style.</para>
-
-      <para>There is another document, <literal>ticket.wsdl</literal>, that describes the
-        ticket issuer interface. Please jump to the <link linkend="tutorial.atm.def.wsdl"
-        endterm="tutorial.atm.def.wsdl.title" /> section of the ATM example if you want 
-        to examine this document.</para>
+      <para>Unlike the previous examples, the <literal>TravelAgent</literal> port type 
+        refers only to wsdl:parts that have been defined using the element attribute.
+        This characterizes the document style.</para>
+
+      <para>The other document <literal>ticket.wsdl</literal> contains the interface of
+        the ticket issuer. Please jump to the <link linkend="tutorial.atm.def.wsdl"
+        endterm="tutorial.atm.def.wsdl.title" /> section of the ATM example to examine
+        this document.</para>
     
     </section>
     
     <section id="tutorial.trip.def.deploy">
     
-      <title>Deploy the process definition</title>
-      
-      <para>The master WSDL document <literal>trip.wsdl</literal> contains most
-        WSDL definitions. It imports <literal>ticket.wsdl</literal> to access 
-        the definitions specific to the ticket issuer.</para>
+      <para>The master WSDL document <literal>trip.wsdl</literal> contains the majority
+        of the WSDL definitions and imports <literal>ticket.wsdl</literal> to retrieve 
+        the ticket issuer description.</para>
         
       <para>Deploy the process definition to the jBPM database calling:</para>
       
-      <synopsis>ant deploy.process</synopsis>
+      <synopsis>ant deploy-process</synopsis>
       
       <para>The <literal>deploy-process</literal> target builds the process archive
-        <literal>trip.zip</literal> and submits it to the deployment servlet.
+        <literal>trip-process.zip</literal> and submits it to the jBPM BPEL deploy servlet.
         In a typical deployment the server prints these messages:</para>
         
-      <screen>21:10:23,203 INFO  [DeploymentServlet] deployed process definition: TripReservation
-21:10:25,250 INFO  [WebModuleBuilder] packaged web module: trip.war
-21:10:25,250 INFO  [DeploymentServlet] deployed web module: trip.war
-21:10:27,359 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=trip,&nextLine;
-endpoint=AgentServlet
-21:10:27,437 INFO  [TomcatDeployer] deploy, ctxPath=/trip, warUrl=.../tmp41529trip-exp.war/
-21:10:28,250 INFO  [IntegrationConfigurator] message reception enabled for process:&nextLine;
-TripReservation
-21:10:28,546 INFO  [WSDLFilePublisher] WSDL published to: .../trip-service.wsdl</screen>
-
-      <para>Back in the description of the process, we mentioned a partner service that
-        generates unique trip locators. Make sure you deploy that service before any
-        reservation is placed, or the process will malfunction and your virtual travelers
-        will be very angry. Change to the <literal>ticket</literal> directory and trigger
-        the following target.</para>
-
-      <synopsis>ant deploy.webservice</synopsis>
-      
-      <para>The next few lines confirm a successful deployment.</para>
-      
-      <screen>18:12:44,421 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=ticket,&nextLine;
-endpoint=ticketIssuerServlet
-18:12:44,437 INFO  [TomcatDeployer] deploy, ctxPath=/ticket, warUrl=...
-18:12:44,843 INFO  [WSDLFilePublisher] WSDL published to: .../ticket-impl.wsdl</screen>
-
-      <para>The JBossWS service endpoints page should be showing a picture similar to the
-        next one. Of course, the host address and port shown may vary, depending on your
-        server bind address.</para>
-        
-      <figure id="tutorial.trip.endpoints">
-        <title>Endpoints page</title>
-        <mediaobject><imageobject><imagedata fileref="images/tripEndpoints.png" align="center"
-          width="6.03in" depth="4.61in" scalefit="0" /></imageobject></mediaobject>
-      </figure>
-      
-      <note><para>It is worth pointing BPEL endpoints are intermixed with Java and EJB
-        endpoints in the list. For all intents and purposes, BPEL endpoints are no different.
-        </para></note>
-
-      <para>Deploying a partner service is not enough for the jBPM BPEL to know of its
-        existence. Its WSDL description must be registered in the service catalog.
-        The target below is provided for this purpose.</para>
-        
-      <synopsis>ant register.partners</synopsis>
-        
-      <para>The web console allows you to browse the catalog. You can register
-        new partner services manually as well.</para>
-        
-      <figure id="tutorial.trip.partners">
-        <title>Service catalog</title>
-        <mediaobject><imageobject><imagedata fileref="images/tripPartners.png" align="center"
-          width="6.31in" depth="5.56in" scalefit="0" /></imageobject></mediaobject>
-      </figure>
+      <screen>01:28:42,515 INFO  [[/jbpm-bpel]] processDeployServlet: deploying process definition: &nextLine;
+file=file:/.../trip-process.zip
+01:28:42,703 INFO  [BpelReader] read wsdl document: trip.wsdl
+01:28:42,703 INFO  [BpelReader] read bpel document: trip.bpel
+01:28:42,859 INFO  [[/jbpm-bpel]] processDeployServlet: deployed process definition: &nextLine;
+TripReservation</screen>
       
     </section>
     
   </section>
   
-    <section id="tutorial.trip.client">
+  <section id="tutorial.trip.server">
 
-    <title>Build the WSEE application client</title>
+    <title>Build the WSEE port components</title>
     
-    <section id="tutorial.trip.client.appclient">
+    <section id="tutorial.trip.server.wsdl">
 
-      <title>Application client deployment descriptor</title>
+      <title>WSDL implementation documents</title>
       
-      <para>Reference your full WSDL description and Java mapping artifacts from the <literal>
-        application-client.xml</literal> descriptor.</para>
+      <para>Invoke the WSDL implementation documents generator by running:</para>
   
-      <programlisting><![CDATA[<application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+      <synopsis>ant generate-service</synopsis>
 
-  <display-name>Trip Reservation Client</display-name>
+      <para>The outcome of <literal>servicegen</literal> is four documents. More on them
+        below.</para>
 
-  <service-ref>
+      <itemizedlist>
 
-    <!-- JNDI name of service interface in client environment context -->
-    <service-ref-name>service/Trip</service-ref-name>
-    <!-- service interface -->
-    <service-interface>
-      org.jbpm.bpel.tutorial.trip.TripReservationService
-    </service-interface>
-    <!-- published WSDL document -->
-    <wsdl-file>META-INF/wsdl/trip-service.wsdl</wsdl-file>
-    <!-- Java<->XML mapping file -->
-    <jaxrpc-mapping-file>META-INF/trip-mapping.xml</jaxrpc-mapping-file>
+        <listitem><para><literal>trip.wsdl</literal> and <literal>ticket.wsdl</literal> are
+          reproductions of the WSDL interface documents.</para></listitem>
 
-  </service-ref>
+        <listitem><para><literal>trip-binding-1.wsdl</literal> brings the SOAP binding
+          for the <literal>TravelAgent</literal> port type. New in jBPM BPEL 1.1.GA is the
+          ability to generate document style bindings.</para></listitem>
 
-</application-client>]]></programlisting>
-    
-    </section>
+        <listitem><para><literal>trip-service.wsdl</literal> defines a single service,
+          <literal>TripReservationService</literal>, which covers the <literal>TripReservation
+          </literal> process. The <literal>AgentPort</literal> wraps the <literal>Agent</literal>
+          role of the <literal>traveler</literal> partner link.</para></listitem>
     
-    <section id="tutorial.trip.client.env">
-
-      <title>Environment context</title>
-
-      <para>Allocate a JNDI name for the client environment context in <literal>jboss-client.xml
-        </literal>.</para>
-      
-      <programlisting><![CDATA[<jboss-client>
-  <jndi-name>jbpmbpel-client</jndi-name>
-</jboss-client>]]></programlisting>
-
-      <tip><para>The <literal>jndi-name</literal> above is shared among all examples. You can
-        share a single JNDI name among multiple application clients to keep them organized
-        and reduce the number of top-level entries in the global JNDI context of the server.
-        Just make sure you give different <literal>service-ref-name</literal>s to each client
-        in the respective <literal>application-client.xml</literal> file.</para></tip>
+      </itemizedlist>
 
     </section>
     
-  </section>
+    <section id="tutorial.trip.server.artifacts">
 
-  <section id="tutorial.trip.test">
+      <title>Java mapping artifacts</title>
   
-    <title>Test the process</title>
+      <para>To generate the WSEE artifacts run the command below:</para>
     
-    <para>To ensure the process works as expected, the test case <literal>TravelAgentTest
-      </literal> is provided.</para>
+      <synopsis>ant generate-artifacts</synopsis>
       
-    <section id="tutorial.trip.test.remote">
+      <para><literal>wscompile</literal> reads the following configuration file as input.</para>
   
-      <title>Remote web service access</title>
+      <programlisting><![CDATA[<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
+  <wsdl location="target/resources/web/wsdl/trip-service.wsdl"
+    packageName="org.jbpm.bpel.tutorial.trip" />
+</configuration>]]></programlisting>
 
-      <para>The test setup code looks up the service instance <literal>tripService</literal>. 
-        This object is a factory from which clients get service endpoint proxies. Sample flight,
-        hotel and car entities are also initialized.</para>
+      <para>In turn, <literal>wstools</literal> takes:</para>
   
-      <programlisting><![CDATA[private TravelAgent agent;
+      <programlisting><![CDATA[<configuration xmlns="http://www.jboss.org/jbossws-tools">
+  <global>
+    <package-namespace package="org.jbpm.bpel.tutorial.trip" 
+      namespace="http://jbpm.org/examples/trip/" />
+  </global>
+  <wsdl-java file="wsdl/trip-service.wsdl">
+    <mapping file="jaxrpc-mapping.xml" />
+  </wsdl-java>
+</configuration>]]></programlisting>
 
-private Flight flight = new Flight();
-private Hotel hotel = new Hotel();
-private RentalCar car = new RentalCar();
-private Calendar tripDate = Calendar.getInstance();
+      <note><para>As of JBossWS 1.3.0.GA (the version included with JBoss AS 4.0.5), 
+        <literal>wstools</literal> maps required simple type attributes to Java wrapper
+        classes instead of primitive types. Although this feature does not affect the 
+        execution of the BPEL process, it does affect the unit test code which relies on
+        primitive types. Please use <literal>wscompile</literal> for this example.</para></note>
 
-protected void setUp() throws Exception {
-  /*
-   * "service/Trip" is the JNDI name of the service interface instance relative to
-   * the client environment context. This name matches the <service-ref-name> in 
-   * application-client.xml
-   */
-  InitialContext iniCtx = new InitialContext();
-  TripReservationService tripService = (TripReservationService) iniCtx.lookup(
-    "java:comp/env/service/Trip");
-  agent = tripService.getAgentPort();
-
-  flight.setAirline("AM");
-  flight.setNumber(637);
-  hotel.setName("Maria Isabel");
-  car.setCompany("Alamo");
-  tripDate.add(Calendar.SECOND, 10);
-}]]></programlisting>
-
-     <para>There are three test scenarios.</para>
-     
-     <orderedlist>
+    </section>
      
-       <listitem>
+    <section id="tutorial.trip.server.webapp">
        
-         <para><literal>testPurchaseTrip</literal>: create a trip reservation that includes
-           a flight and a hotel. Submit the reservation. Ensure the cost in the invoice
-           matches the price of the selected items.</para>
+      <title>Port components as servlets</title>
          
-         <programlisting><![CDATA[public void testPurchaseTrip() throws RemoteException {
-  ItemSet items = new ItemSet();
-  items.setFlight(flight); // cost: 300
-  items.setHotel(hotel); // cost: 100
+      <para>SOAP messages received through the pseudo servlet <literal>agentServlet</literal>
+        declared in <literal>web.xml</literal> will be routed to the <literal>Agent</literal>
+        role of partner link <varname>traveler</varname>.</para>
 
-  Order order = new Order();
-  order.setDate(tripDate);
-  order.setItems(items);
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
 
-  Invoice invoice = agent.purchaseTrip(order);
+  <!-- Travel Agent -->
+  <servlet>
+    <servlet-name>agentServlet</servlet-name>
+    <servlet-class>org.jbpm.bpel.tutorial.trip.TravelAgent_Impl</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>agentServlet</servlet-name>
+    <url-pattern>/agent</url-pattern>
+  </servlet-mapping>
+  ...
+</web-app>]]></programlisting>
 
-  assertEquals(300 + 100, invoice.getCost(), 0);
-}]]></programlisting>
+    </section>
        
-       </listitem>
+    <section id="tutorial.trip.server.integra">
        
-       <listitem>
+      <para>Registering the partner integration configurator in <literal>web.xml</literal>
+        enables message reception for the trip reservation process.</para>
        
-        <para><literal>testGetTripDetails</literal>: reserve a trip, including all offered
-          items. Use the trip locator in the returned invoice to query about the details.
-          Verify the details match the original order.</para>
+      <programlisting><![CDATA[<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
+  ...
+  <!-- Partner Integration Configurator -->
+  <listener>
+    <listener-class>
+      org.jbpm.bpel.integration.server.IntegrationConfigurator
+    </listener-class>
+  </listener>
         
-        <programlisting><![CDATA[public void testGetTripDetails() throws RemoteException {
-  ItemSet items = new ItemSet();
-  items.setFlight(flight);
-  items.setHotel(hotel);
-  items.setRentalCar(car);
+</web-app>]]></programlisting>
 
-  Order order = new Order();
-  order.setDate(tripDate);
-  order.setItems(items);
+      <para>The integration configuration file <literal>bpel-application.xml</literal> tells
+        the name of the process and the location of the WSDL document that describes 
+        the ticket issuer service.</para>
 
-  Invoice invoice = agent.purchaseTrip(order);
+      <programlisting><![CDATA[<bpelApplication name="TripReservation" 
+  targetNamespace="http://jbpm.org/examples/trip/"
+  xmlns="urn:jbpm.org:bpel-1.1:application">
 
-  Query query = new Query();
-  query.setLocator(invoice.getLocator());
+  <serviceCatalogs>
+    <urlCatalog contextUrl="http://localhost:8080/">
+      <wsdl location="ticket/ticketIssuer?wsdl" />
+    </urlCatalog>
+  </serviceCatalogs>
 
-  Detail detail = agent.getTripDetail(query);
-  items = detail.getItems();
+</bpelApplication>]]></programlisting>
 
-  assertEquals(flight.getAirline(), items.getFlight().getAirline());
-  assertEquals(flight.getNumber(), items.getFlight().getNumber());
-  assertEquals(hotel.getName(), items.getHotel().getName());
-  assertEquals(car.getCompany(), items.getRentalCar().getCompany());
-  assertEquals(invoice.getCost(), detail.getCost(), 0);
-}]]></programlisting>
+    </section>
        
-       </listitem>
+    <section id="tutorial.trip.server.webservices">
        
-       <listitem>
+      <title>Web services deployment descriptor</title>
        
-        <para><literal>testCancelTrip</literal>: make a reservation for a flight and a 
-          rental car. Cancel the trip using the locator in the invoice. Check the penalty
-          corresponds to the ordered items.</para>
+      <para>In the web services deployment descriptor below, the <literal>agentHandler</literal>
+        is set to dispatch messages arriving at the <literal>agentPort</literal> component to the
+        <literal>traveler</literal> partner link.</para>
         
-        <programlisting><![CDATA[public void testCancelTrip() throws Exception {
-  ItemSet items = new ItemSet();
-  items.setFlight(flight); // fee: 100
-  items.setRentalCar(car); // fee: 5
+      <programlisting><![CDATA[<webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee">
 
-  Order order = new Order();
-  order.setDate(tripDate);
-  order.setItems(items);
+  <webservice-description>
 
-  Invoice invoice = agent.purchaseTrip(order);
+    <webservice-description-name>Trip Reservation</webservice-description-name>
+    <wsdl-file>WEB-INF/wsdl/trip-service.wsdl</wsdl-file>
+    <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
 
-  Cancelation reference = new Cancelation();
-  reference.setLocator(invoice.getLocator());
+    <port-component>
 
-  Penalty penalty = agent.cancelTrip(reference);
+      <port-component-name>agentPort</port-component-name>
+      <wsdl-port xmlns:portNS="http://jbpm.org/examples/trip/">portNS:AgentPort</wsdl-port>
+      <service-endpoint-interface>
+        org.jbpm.bpel.tutorial.trip.TravelAgent
+      </service-endpoint-interface>
+      <service-impl-bean>
+        <servlet-link>agentServlet</servlet-link>
+      </service-impl-bean>
 
-  assertEquals(100 + 5, penalty.getFee(), 0);
-}]]></programlisting>
+      <handler>
        
-       </listitem>
+        <handler-name>agentHandler</handler-name>
+        <handler-class>org.jbpm.bpel.integration.server.SoapHandler</handler-class>
      
-     </orderedlist>
+        <init-param>
+          <description>name of the partner link served by this port</description>
+          <param-name>partnerLinkHandle</param-name>
+          <param-value>traveler</param-value>
+        </init-param>
      
-     <note><para>The process instances created to serve the above requests will end 
-       automatically, on or shortly after the stated trip date and time.</para></note>
+        <init-param>
+          <description>time to wait for response messages (millis)</description>
+          <param-name>responseTimeout</param-name>
+          <param-value>5000</param-value>
+        </init-param>
 
-    </section>
+      </handler>
     
-    <section id="tutorial.trip.test.jndi">
+    </port-component>
 
-      <title id="tutorial.trip.test.jndi.title">Client JNDI properties</title>
+  </webservice-description>
 
-      <para>The JNDI properties are exactly the same for all examples. In particular, the
-        <varname>j2ee.clientName</varname> property does not change because all examples share
-        the <literal>&lt;jndi-name&gt;</literal> in their respective <literal>jboss-client.xml
-        </literal> descriptors. Refer to the <link linkend="tutorial.hello.test.jndi" 
-        endterm="tutorial.hello.test.jndi.title" /> section in the first example for a
-        listing of the properties.</para>
+</webservices>]]></programlisting>
 
     </section>    
 
-    <section id="tutorial.trip.test.run">
+    <section id="tutorial.trip.server.deploy">
 
-      <title>Test execution</title>
+      <title>Web application deployment</title>
       
-      <para>To execute the JUnit test, call:</para>
+      <para>Execute this target to deploy the web service to the app server.</para>
 
-      <synopsis>ant test</synopsis>
+      <synopsis>ant deploy-webservice</synopsis>
 
-      <para>The results you should expect follow.</para>
+      <para>The result on the server console:</para>
+      
+      <screen>16:25:11,781 INFO  [TomcatDeployer] deploy, ctxPath=/trip, warUrl=...
+16:25:12,375 INFO  [IntegrationConfigurator] Message reception enabled for process: &nextLine;
+TripReservation
+16:25:12,500 INFO  [WSDLFilePublisher] WSDL published to: file:/.../trip-service.wsdl
+16:25:12,625 INFO  [ServiceEndpointManager] WebService started: &nextLine;
+http://.../trip/agent</screen>
       
-      <screen>test:
-    [junit] Running org.jbpm.bpel.tutorial.trip.TravelAgentTest
-    [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 4.875 sec</screen>
+      <para>The partner services must be operational as well.</para>
     
     </section>
     
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/userguide/en/modules/tutorial.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/tutorial.xml
--- jpdl-3.2.3.GA/bpel/userguide/en/modules/tutorial.xml	2009-02-06 09:12:40.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/userguide/en/modules/tutorial.xml	2009-02-06 09:17:20.000000000 +0100
@@ -4,66 +4,29 @@
 
   <para>The best way to get acquainted with BPEL is to see it in action. For this reason,
     we included some examples that will help you get started quickly. At
-    this point, you should have the jBPM BPEL enterprise application running inside JBoss.
-    If you do not, please read the <link linkend="getstarted" endterm="getstarted.title"/>
-    chapter first. This chapter will guide you through the example setup procedure. The
-    subsequent chapters contain the actual examples.</para>
+    this point, you should have the jBPM BPEL service running inside JBoss. If you
+    do not, please read the <link linkend="getstarted" endterm="getstarted.title"/>
+    chapter first.</para>
+    
+  <para>In this chapter we will guide you through the example setup procedure. The following 
+    chapters contain the actual examples.</para>
     
   <section id="tutorial.setup.jwsdp">
 
     <title>Getting the Java Web Services Development Pack</title>
     
-    <para>jBPM BPEL relies on the Web Services for J2EE (WSEE) model for exposing a BPEL
-      process as a web service. As of jBPM BPEL 1.1.GA, <emphasis>all</emphasis> 
-      server artifacts required for a WSEE deployment can be automatically generated 
-      from the BPEL process and its related WSDL definitions.</para>
-      
-    <para>The automatic generation process involves an external WSDL-to-Java mapping 
-      generator. Unfortunately, such a tool is not standardized in WSEE. jBPM BPEL
-      comes with support for the following tools. Support for other tools may become
-      available in the future if the community has interest in them.</para>
-      
-    <itemizedlist>
-    
-      <listitem>
-      
-        <para>JBoss AS 4.0.4 and later versions ship with a mapping generator by the name
-          of <literal>wstools</literal>. If you are deploying there, no further action
-          is required.</para>
-        
-        <para>Be aware that <literal>wstools</literal> has a number of known limitations.
-          If you encounter a problem while generating artifacts from your valid WSDL and
-          XML Schema documents, try using <literal>wscompile</literal> (see below).</para>
-          
-      </listitem>
-      
-      <listitem><para>Sun provides a mapping generator called <literal>wscompile</literal> 
-        as part of its Java Web Services Development Pack (JWSDP). Please refer to the <ulink 
-        url="http://tinyurl.com/2ten9o">JWSDP</ulink> site for installation instructions.</para>
-        </listitem>
-    
-    </itemizedlist>
-  
-  </section>
-
-  <section id="tutorial.setup.eclipse">
-  
-    <title>Getting the Eclipse BPEL designer</title>
-    
-    <para>The Eclipse community has begun a <ulink url="http://www.eclipse.org/bpel/">BPEL
-      project</ulink>. The goal of this project is "to add comprehensive support to 
-      Eclipse for the definition, authoring, editing, deploying, testing and debugging of 
-      WS-BPEL 2.0 processes".</para>
-      
-    <para>The JBoss jBPM team has been in touch with the committers of this project. Expect
-      tighter integration between the Eclipse Designer and jBPM BPEL shortly after key pieces
-      of functionality such as Runtime Framework and Debug become available.</para>
-      
-    <para>No need to wait, tough. You can get started with the Eclipse BPEL designer
-      and jBPM BPEL <emphasis role="bold">today</emphasis>! The provided examples have been
-      ported to BPEL 2 using version 0.3.0 of the designer. You can load them, experiment a
-      bit and then create your own processes. When you are ready to deploy, an Ant task and
-      the deployment page in the web console are at your disposal.</para>
+    <para>jBPM BPEL relies on the Web Services for J2EE (WSEE) model for exposing the 
+      functionality a BPEL process delivers. Some of the server artifacts required for a WSEE 
+      deployment can be automatically generated from WSDL documents.</para>
+      
+    <para>Starting from JBoss AS 4.0.4, the web services stack features a toolkit called
+      <literal>wstools</literal>. If you are using that version of JBoss AS, no further
+      action is required in this section.</para>
+      
+    <para>For earlier JBoss AS versions, JBoss recommended the <literal>wscompile</literal> 
+      tool from the Java Web Services Development Pack (JWSDP). Please refer to the <ulink 
+      url="http://java.sun.com/webservices/jwsdp/index.jsp">Java WSDP</ulink> site for download
+      and installation instructions.</para>
   
   </section>
 
@@ -71,23 +34,30 @@
   
     <title>Defining the environment</title>
     
-    <para>The resources related to each sample process reside in a separate directory 
-       under <literal>examples</literal>. Each directory contains an Ant script to assist
-       in carrying out process deployment tasks. Note that the individual scripts import 
-       generic build files located in the <literal>common</literal> directory. If you 
-       organize your resources in the same way as the examples, you can take advantage of
-       the templates in your own project.</para>
+    <para>The resources related to each sample process reside in a separate subdirectory 
+       under <literal>examples</literal>. Each subdirectory contains an Ant script to assist
+       in carrying out process deployment tasks.</para>
+       
+    <para>Note that the individual scripts import a template located in the <literal>common
+      </literal> subdirectory. If you organize your resources in the same way as the examples,
+      you can take advantage of this template in your own project.</para>
       
-    <para>The generic build file needs to be aware of your particular environment. Back in the 
+    <para>The build template needs to be aware of your particular environment. Back in the 
       <link linkend="getstarted.setup.pack" endterm="getstarted.setup.pack.title" />
-      section, you specified the directory where you installed JBoss AS in the <literal>
-      build.properties</literal> file, located in the <literal>config</literal> directory.
-      If you chose to use the <literal>wscompile</literal> tool, edit <literal>build.properties
-      </literal> again to set the JWSDP install location.</para>
+      section, you indicated the directories where you installed jBPM BPEL and JBoss AS
+      in a file named <literal>build.properties</literal>, located in the user home's
+      <literal>jbpm</literal> subdirectory. If you use the <literal>wscompile</literal>
+      tool from JWSDP, edit <literal>build.properties</literal> to match the JWSDP 
+      install location.</para>
     
     <programlisting><![CDATA[# jwsdp.home is used for generating web service artifacts
-# wscompile is an alternative to wstools provided by jboss 4.0.4 and later
-jwsdp.home=${software.installation.dir}/jwsdp-1.6]]></programlisting>
+jwsdp.version=1.7
+jwsdp.home=${software.installation.dir}/jwsdp-${jwsdp.version}]]></programlisting>
+
+    <para>Controlling multiple processes at once becomes as easy as controlling a single
+      process with the build file located in <literal>examples</literal>. This script 
+      leverages the <literal>subant</literal> task for running build targets on multiple
+      subprojects.</para>
   
   </section>
 
@@ -95,33 +65,47 @@
   
     <title>Creating the database schema</title>
     
-    <para>Before you deploy process definitions, the jBPM schema must already exist
-      in the database. The build file from the <literal>examples</literal> directory provides a
-      target just for this purpose.</para>
-      
-    <synopsis>ant create.schema</synopsis>
-    
-    <para>The target above does not actually access the database. It merely contacts a servlet
-      deployed as part of the jBPM BPEL enterprise application. That servlet is the actual agent
-      in charge of executing the DDL statements.</para>
-      
-    <para>Hibernate emits a few log messages to the server console as it progresses. The next
-      screen corresponds to a successful creation.</para>
-          
-    <screen><![CDATA[19:18:38,890 INFO  [SchemaExport] Running hbm2ddl schema export
-19:18:38,890 INFO  [SchemaExport] exporting generated schema to database
-19:18:38,890 INFO  [DatasourceConnectionProvider] Using datasource: java:/DefaultDS
-19:18:39,046 INFO  [SchemaExport] schema export complete
-19:18:39,062 INFO  [[/jbpm-bpel]] administrationServlet: created schema]]></screen>
-      
-    <para>Alternatively, the database connection page in the web console offers the option
-      to create the schema as well.</para>
-      
-    <figure id="tutorial.database">
-      <title>Database connection page</title>
-      <mediaobject><imageobject><imagedata align="center" fileref="images/database.png"
-        width="6.27in" depth="4.92in" scalefit="0" /></imageobject></mediaobject>
-    </figure>  
+    <para>Starting with version 1.0 alpha 4, a web application deployed along the jBPM BPEL
+      service executes administrative requests such as creating the database schema and
+      deploying a process definition.</para>      
+    
+    <para>Before you deploy process definitions to the database, the jBPM schema must exist in
+      the database. The schema creation can be manual or automatic, at your choice.</para>
+      
+    <para>Automatic schema creation is convenient for evaluation and development purposes.
+      This is why it is the default setting. To disable it, remove the <literal>
+      hibernate.hbm2ddl.auto</literal> property from file <literal>hibernate.cfg.xml</literal> in 
+      <literal>config</literal>. Afterwards, redeploy the jBPM BPEL service.
+    </para>
+    
+    <para>When you turn off automatic schema creation, you need a way to create it manually. 
+      The global process deployment buildfile provides some targets for posting administrative 
+      schema requests to the jBPM BPEL web application: <literal>create-schema</literal> and 
+      <literal>drop-schema</literal>.</para>
+      
+    <para>Hibernate will emit a few log messages to the server console when the schema gets
+      created either way. The output below corresponds to manual creation.</para>
+      
+    <screen><![CDATA[22:45:00,796 INFO  [SchemaExport] Running hbm2ddl schema export
+22:45:00,812 INFO  [SchemaExport] exporting generated schema to database
+22:45:00,828 INFO  [DatasourceConnectionProvider] Using datasource: java:/jbpmBpelDS
+22:45:00,921 INFO  [SchemaExport] schema export complete]]></screen>
+  
+  </section>
+    
+  <section id="tutorial.setup.xmlapis">
+  
+    <title>Replacing the default implementation of the XML APIs</title>
+    
+    <para>There are known issues with the implementations of the XML APIs in Java SE 1.4.2 and 
+      1.5.0. The solution is to employ the <emphasis>endorsed standards override mechanism
+      </emphasis> for replacing these implementations with recent versions of Apache Xalan
+      and Apache Xerces.</para>
+      
+    <para>You will find adequate replacement libraries in the <literal>lib/endorsed</literal> 
+      subdirectory of JBoss AS. Please follow the instructions for deploying endorsed standards
+      classes in the Java SE <ulink url="http://java.sun.com/j2se/1.4.2/docs/guide/standards/">
+      Guide to Features</ulink>.</para>
 
   </section>
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/bpel/user.libraries.xml jpdl-3.2.2-SOA-4.2.0.CP03/bpel/user.libraries.xml
--- jpdl-3.2.3.GA/bpel/user.libraries.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/bpel/user.libraries.xml	2009-02-06 09:17:29.000000000 +0100
@@ -5,7 +5,6 @@
 <!ENTITY jboss.home.4.0.4 "&software.installation.dir;/jboss-4.0.4.GA">
 <!ENTITY jboss.home.4.0.5 "&software.installation.dir;/jboss-4.0.5.GA">
 <!ENTITY jboss.home.4.2.0 "&software.installation.dir;/jboss-4.2.0.GA">
-<!ENTITY jboss.home.4.2.2 "&software.installation.dir;/jboss-4.2.2.GA">
 ]>
 <eclipse-userlibraries version="2">
   <library name="JBoss 4.0.3" systemlibrary="false">
@@ -64,7 +63,6 @@
   </library>
   <library name="JBoss 4.2.0" systemlibrary="false">
     <archive path="&jboss.home.4.2.0;/client/jboss-jaxws.jar" />
-    <archive path="&jboss.home.4.2.0;/client/jboss-saaj.jar" />
     <archive path="&jboss.home.4.2.0;/client/jbossmq-client.jar" />
     <archive path="&jboss.home.4.2.0;/client/jboss-remoting.jar" />
     <archive path="&jboss.home.4.2.0;/client/jboss-serialization.jar" />
@@ -81,24 +79,4 @@
     <archive path="&jboss.home.4.2.0;/client/jboss-client.jar" />
     <archive path="&jboss.home.4.2.0;/client/jboss-common-client.jar" />
   </library>
-  <library name="JBoss 4.2.2" systemlibrary="false">
-    <archive path="&jboss.home.4.2.2;/client/jboss-jaxws.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-saaj.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jbossmq-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-remoting.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-serialization.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jbosssx-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-transaction-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jbossws-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jbossws-common.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-xml-binding.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jmx-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jmx-invoker-adaptor-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jnp-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/mail.jar" />
-    <archive path="&jboss.home.4.2.2;/client/activation.jar" />
-    <archive path="&jboss.home.4.2.2;/client/concurrent.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-client.jar" />
-    <archive path="&jboss.home.4.2.2;/client/jboss-common-client.jar" />
-  </library>
 </eclipse-userlibraries>
diff -urbw --exclude .svn jpdl-3.2.3.GA/build/base.project.build.xml jpdl-3.2.2-SOA-4.2.0.CP03/build/base.project.build.xml
--- jpdl-3.2.3.GA/build/base.project.build.xml	2009-02-06 09:11:13.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/build/base.project.build.xml	2009-02-06 09:15:38.000000000 +0100
@@ -130,11 +130,13 @@
   ###########
   -->
 
-	<target name="clean" description="delete the target directory">
+  <target name="clean" 
+          description="delete the target directory">
 		<delete dir="target" />
 	</target>
 
-	<target name="clean.all" description="cleans all jbpm projects">
+  <target name="clean.all" 
+          description="cleans all jbpm projects">
 		<ant antfile="${jbpm.root}/build/build.xml" target="clean" inheritall="false" />
 	</target>
 
@@ -144,7 +146,8 @@
   ##################
   -->
 
-	<target name="get.libs" description="gets the libraries if an update is needed">
+  <target name="get.libs" 
+          description="gets the libraries if an update is needed">
 		<condition property="libs.up.to.date">
 			<and>
 				<available file="${local.repository}/licenses/lgpl.txt" />
@@ -166,7 +169,6 @@
 				<available file="${lib.commons.httpclient.local}" />
 				<available file="${lib.commons.lang.local}" />
 				<available file="${lib.commons.logging.local}" />
-				<available file="${lib.desmoj.local}" />
 				<available file="${lib.dom4j.local}" />
 				<available file="${lib.dumbster.local}" />
 				<available file="${lib.el.api.local}" />
@@ -178,7 +180,6 @@
 				<available file="${lib.httpunit.local}" />
 				<available file="${lib.jackrabbit.local}" />
 				<available file="${lib.jakarta.io.local}" />
-				<available file="${lib.jasperreports.local}" />
 				<available file="${lib.javamail.local}" />
 				<available file="${lib.jaxen.local}" />
 				<available file="${lib.jaxrpc.api.local}" />
@@ -190,12 +191,11 @@
 				<available file="${lib.jboss.backport-concurrent.local}" />
 				<available file="${lib.jbossretro.local}" />
 				<available file="${lib.jbossretro-rt.local}" />
-				<available file="${lib.jbossws.local}" />
+        <available file="${lib.jbossws.10.local}"/>
+        <available file="${lib.jbossws.12.local}"/>
 				<available file="${lib.jboss.ws4ee.local}" />
 				<available file="${lib.jboss.axis.local}" />
-				<available file="${lib.jcommon.local}" />
 				<available file="${lib.jcr.local}" />
-				<available file="${lib.jfreechart.local}" />
 				<available file="${lib.junit.local}" />
 				<available file="${lib.jwebunit.local}" />
 				<available file="${lib.jsf.api.local}" />
@@ -218,13 +218,12 @@
 	</target>
 
 	<target name="get.libs.unless.up.to.date" unless="libs.up.to.date">
-		<ant antfile="${jbpm.root}/build/build.xml" target="get.libs.dependencies" inheritall="false">
-			<property name="profile" value="${profile}" />
-		</ant>
+    <ant antfile="${jbpm.root}/build/build.xml" target="get.libs.dependencies" inheritall="false" />
 	</target>
 
 
-	<target name="get.jboss.dependencies" description="gets the jboss as dependency if an update is needed">
+  <target name="get.jboss.dependencies" 
+          description="gets the jboss as dependency if an update is needed">
 		<condition property="jboss.up.to.date">
 			<and>
 				<available file="${local.repository}/licenses/lgpl.txt" />
@@ -233,7 +232,6 @@
 				<available file="${lib.woodstox.local}" />
 				<available file="${lib.xercesimpl.local}" />
 				<available file="${local.repository}/jbpm/clover/clover.jar" />
-				<available file="${lib.jboss.as.local}" />
 			</and>
 		</condition>
 		<ant target="get.jboss.unless.up.to.date" />
@@ -244,7 +242,8 @@
 	</target>
 
 
-	<target name="get.eclipse.dependencies" description="gets the eclipse dependencies if an update is needed">
+  <target name="get.eclipse.dependencies" 
+          description="gets the eclipse dependencies if an update is needed">
 		<condition property="eclipse.up.to.date">
 			<and>
 				<available file="${local.repository}/licenses/lgpl.txt" />
@@ -304,7 +303,8 @@
   -->
 
 	<target name="define.libs.classpath" depends="get.libs">
-		<path id="libs.classpath" description="All the external dependency libs in the local repository">
+    <path id="libs.classpath" 
+          description="All the external dependency libs in the local repository">
 			<fileset dir="${local.repository}">
 				<!-- EXTERNAL DEPENDENCIES (3/4): BUILD CLASSPATH -->
 				<include name="${lib.activation.path}" />
@@ -323,8 +323,6 @@
 				<include name="${lib.commons.collections.path}" />
 				<include name="${lib.commons.httpclient.path}" />
 				<include name="${lib.commons.fileupload.path}" />
-				<include name="${lib.commons.beanutils.path}" />
-				<include name="${lib.desmoj.path}" />
 				<include name="${lib.dom4j.path}" />
 				<include name="${lib.dumbster.path}" />
 				<include name="${lib.el.api.path}" />
@@ -336,7 +334,6 @@
 				<include name="${lib.httpunit.path}" />
 				<include name="${lib.jackrabbit.path}" />
 				<include name="${lib.jakarta.io.path}" />
-				<include name="${lib.jasperreports.path}" />
 				<include name="${lib.javamail.path}" />
 				<include name="${lib.jaxrpc.api.path}" />
 				<include name="${lib.jaxen.path}" />
@@ -345,9 +342,7 @@
 				<include name="${lib.jboss.jmx.path}" />
 				<include name="${lib.jboss.saaj.path}" />
 				<include name="${lib.jboss.system.path}" />
-				<!-- only during runtime <include name="${lib.jcommon.path}"/> -->
 				<include name="${lib.jcr.path}" />
-				<!-- only during runtime <include name="${lib.jfreechart.path}"/> -->
 				<include name="${lib.junit.path}" />
 				<include name="${lib.jwebunit.path}" />
 				<include name="${lib.jsf.api.path}" />
@@ -359,7 +354,6 @@
 				<include name="${lib.stax-api.path}" />
 				<include name="${lib.woodstox.path}" />
 				<include name="${lib.wsdl4j.path}" />
-				<include name="${lib.xml.apis.path}" />
 				<include name="${lib.xercesimpl.path}" />
 			</fileset>
 		</path>
@@ -371,7 +365,9 @@
   ############# 
   -->
 
-	<target name="compile" depends="compile.dependencies" description="compile">
+  <target name="compile" 
+          depends="compile.dependencies"
+          description="compile">
 		<mkdir dir="target/classes" />
 		<available file="src/main/java" property="java.sources.available" />
 		<antcall target="compile.java.sources" />
@@ -400,12 +396,16 @@
 		<include name="**/*.war" />
 		<include name="**/*.zip" />
 		<include name="**/*.txt" />
-		<exclude name="**/*.jrxml" />
-		<!-- jasper reports source files -->
 	</patternset>
 
 	<target name="compile.java.sources" if="java.sources.available">
-		<javac classpathref="${compile.classpath}" srcdir="src/main/java" destdir="target/classes" source="${javac.source}" target="${javac.target}" debug="${javac.debug}" deprecation="${javac.deprecation}" />
+    <javac classpathref="${compile.classpath}" 
+           srcdir="src/main/java" 
+           destdir="target/classes" 
+           source="${javac.source}" 
+           target="${javac.target}"
+           debug="${javac.debug}"
+           deprecation="${javac.deprecation}"/>
 		<copy todir="target/classes">
 			<fileset dir="src/main/java">
 				<patternset refid="jar.resource.files" />
@@ -428,9 +428,17 @@
   ################## 
   -->
 
-	<target name="compile.test" depends="compile, compile.test.dependencies" description="compiles test classes">
+  <target name="compile.test" 
+          depends="compile, compile.test.dependencies"
+          description="compiles test classes">
 		<mkdir dir="target/test.classes" />
-		<javac classpathref="${compile.test.classpath}" srcdir="src/test/java" destdir="target/test.classes" source="${javac.source}" target="${javac.target}" debug="${javac.debug}" deprecation="${javac.deprecation}" />
+    <javac classpathref="${compile.test.classpath}" 
+           srcdir="src/test/java" 
+           destdir="target/test.classes" 
+           source="${javac.source}" 
+           target="${javac.target}"
+           debug="${javac.debug}"
+           deprecation="${javac.deprecation}"/>
 		<copy todir="target/test.classes">
 			<fileset dir="src/test/java">
 				<patternset refid="jar.resource.files" />
@@ -448,7 +456,9 @@
   ##########
   -->
 
-	<target name="test" depends="compile.test, test.dependencies" description="run the unit tests">
+  <target name="test" 
+          depends="compile.test, test.dependencies"
+          description="run the unit tests">
 		<delete dir="target/test.results" />
 		<mkdir dir="target/test.results/xml" />
 		<junit printsummary="yes" fork="yes" forkmode="once" showoutput="false">
@@ -469,7 +479,8 @@
 	<!-- overwrite this target if you want to include test suite execution dependencies -->
 	<target name="test.dependencies" />
 
-	<target name="view.testresults" description="view the testresults in a browser">
+  <target name="view.testresults" 
+          description="view the testresults in a browser">
 		<exec executable="${windows.browser}" os="Windows XP,Windows 2000,Windows 98">
 			<arg value="file://${basedir}/target/test.results/index.html" />
 		</exec>
@@ -481,7 +492,9 @@
 		</exec>
 	</target>
 
-	<target name="test.and.view" depends="test, view.testresults" description="run the unit tests and view the results in a browser">
+  <target name="test.and.view" 
+          depends="test, view.testresults" 
+          description="run the unit tests and view the results in a browser">
 	</target>
 
 	<!--
@@ -781,9 +794,7 @@
 	<target name="designer">
 		<condition property="local.designer.needs.update.from.remote">
 			<or>
-				<not>
-					<available file="${lib.jbpm.designer.feature.local}" />
-				</not>
+      	<not><available file="${lib.jbpm.designer.feature.local}" /></not>
 				<isset property="build.designer.from.source" />
 			</or>
 		</condition>
@@ -802,40 +813,6 @@
 
 
 	<!--
-  ##########################
-  ## BAM CONSOLE DEPENDENCIES ##
-  ##########################
-  -->
-
-	<target name="bamconsole">
-		<antcall target="bamconsole.build.from.source" />
-		<antcall target="bamconsole.fetch.from.repo" />
-	</target>
-
-	<target name="bamconsole.build.from.source" if="build.bamconsole.from.source">
-		<ant antfile="${jbpm.root}/bamconsole/build.xml" target="install" inheritall="false" />
-	</target>
-
-	<target name="bamconsole.fetch.from.repo" unless="build.bamconsole.from.source">
-		<mkdir dir="${local.repository}/${lib.jbpm.bamconsole.dir}" />
-		<get src="${jbpm.console.remote}" dest="${jbpm.console.local}" usetimestamp="true" />
-	</target>
-
-	<target name="bamconsole.userguide">
-		<antcall target="bamconsole.userguide.build.from.source" />
-		<antcall target="bamconsole.userguide.fetch.from.repo" />
-	</target>
-
-	<target name="bamconsole.userguide.build.from.source" if="build.bamconsole.from.source">
-		<ant antfile="${jbpm.root}/bamconsole/userguide/build.xml" target="install.userguide" inheritall="false" />
-	</target>
-
-	<target name="bamconsole.userguide.fetch.from.repo" unless="build.bamconsole.from.source">
-		<mkdir dir="${local.repository}/${lib.jbpm.bamconsole.dir}" />
-		<get src="${lib.jbpm.jpdl.bam.userguide.remote}" dest="${lib.jbpm.jpdl.bam.userguide.local}" usetimestamp="true" />
-	</target>
-
-	<!--
   ###############################
   ## OTHER DEPENDENCIES (TODO) ##
   ###############################
diff -urbw --exclude .svn jpdl-3.2.3.GA/build/build.properties jpdl-3.2.2-SOA-4.2.0.CP03/build/build.properties
--- jpdl-3.2.3.GA/build/build.properties	2009-02-06 09:11:13.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/build/build.properties	2009-02-06 09:15:38.000000000 +0100
@@ -17,8 +17,13 @@
 # jboss.home is used for deployment targets. the libraries and binaries dependencies 
 # are resolved in the repo with the lib.jboss.version property specified below.  that 
 # property also is based on jboss.version to keep them in sync
-jboss.version=4.2.2.GA
-jboss.home=${software.installation.dir}/jboss-${jboss.version}
+jboss.version=4.3.0.GA
+jboss.eap.short.version=4.3
+jboss.eap.release.id=4.3.0.GA_CP01
+jboss.eap.name=jboss-eap-${jboss.eap.short.version}
+jboss.eap.full.name=jboss-eap-${jboss.eap.release.id}
+jboss.eap.remote.file.name=${jboss.eap.full.name}.zip
+jboss.home=${software.installation.dir}/${jboss.eap.full.name}/jbossas
 
 # the eclipse home property has to end with 'eclipse' since the folders in the eclipse
 # distribution package start with eclipse and that package will be unzipped in
@@ -33,7 +38,7 @@
 # REPOSITORY LOCATION PROPERTIES
 local.repository=${user.home}/jbpm/repository
 remote.repository=http://repository.jboss.org
-remote.jboss.repository=http://superb-east.dl.sourceforge.net/sourceforge/jboss
+remote.jboss.repository=http://porkchop.redhat.com/released/JBEAP-4.3.0/CP01/zip
 docbook.support.dir=${local.repository}
 
 # BROWSER PROPERTIES
@@ -66,8 +71,8 @@
 
 # JPDL FILE LOCATIONS
 
-lib.jbpm.jpdl.version=3.2.3
-jbpm.jpdl.cvs.tag=jpdl_3_2_3
+lib.jbpm.jpdl.version=3.2.2
+jbpm.jpdl.cvs.tag=jpdl_3_2_2
 build.jpdl.from.source=true
 
 lib.jbpm.jpdl.dir=jbpm/jpdl/${lib.jbpm.jpdl.version}/lib
@@ -151,38 +156,7 @@
 lib.jbpm.identity.javadoc.remote=${remote.repository}/${lib.jbpm.identity.javadoc.path}
 lib.jbpm.identity.javadoc.target=${jbpm.root}/identity/jar/target/${lib.jbpm.identity.javadoc.file}
 
-
-# SIMULATION FILE LOCATIONS
-
-lib.jbpm.jpdl.sim.version=${lib.jbpm.jpdl.version}
-lib.jbpm.jpdl.sim.dir=jbpm/jpdl/${lib.jbpm.jpdl.sim.version}/lib
-
-lib.jbpm.jpdl.sim.jar.file=jbpm-simulation.jar
-lib.jbpm.jpdl.sim.jar.path=${lib.jbpm.jpdl.sim.dir}/${lib.jbpm.jpdl.sim.jar.file}
-lib.jbpm.jpdl.sim.jar.local=${local.repository}/${lib.jbpm.jpdl.sim.jar.path}
-lib.jbpm.jpdl.sim.jar.remote=${remote.repository}/${lib.jbpm.jpdl.sim.jar.path}
-lib.jbpm.jpdl.sim.jar.target=${jbpm.root}/jbpl/simulation/target/${lib.jbpm.identity.jar.file}
-
-lib.jbpm.jpdl.sim.src.file=jbpm-simulation-src.jar
-lib.jbpm.jpdl.sim.src.path=${lib.jbpm.jpdl.sim.dir}/${lib.jbpm.jpdl.sim.src.file}
-lib.jbpm.jpdl.sim.src.local=${local.repository}/${lib.jbpm.jpdl.sim.src.path}
-lib.jbpm.jpdl.sim.src.remote=${remote.repository}/${lib.jbpm.jpdl.sim.src.path}
-lib.jbpm.jpdl.sim.src.target=${jbpm.root}/jpdl/simulation/target/${lib.jbpm.jpdl.sim.src.file}
-
-lib.jbpm.jpdl.sim.javadoc.file=jbpm-simulation-javadoc.zip
-lib.jbpm.jpdl.sim.javadoc.path=${lib.jbpm.jpdl.sim.dir}/${lib.jbpm.jpdl.sim.javadoc.file}
-lib.jbpm.jpdl.sim.javadoc.local=${local.repository}/${lib.jbpm.jpdl.sim.javadoc.path}
-lib.jbpm.jpdl.sim.javadoc.remote=${remote.repository}/${lib.jbpm.jpdl.sim.javadoc.path}
-lib.jbpm.jpdl.sim.javadoc.target=${jbpm.root}/jpdl/simulation/target/${lib.jbpm.jpdl.sim.javadoc.file}
-
-
 # CONSOLE FILE LOCATIONS
-# This property indicates which war file to be deployed. Currently three setups are available
-# 1. exploded-4.0.x-jdk1.4: Designated to run on JBoss AS 4.0.x with jdk1.4 compatibility
-# 2. exploded-4.0.x				: Designated to run on JBoss AS 4.0.x with jdk5+ compatibility
-# 3. exploded-4.2.x				: Designated to run on JBoss AS 4.2.x
- 
-jbpm.console.version=4.2.x
 
 lib.jbpm.console.version=${lib.jbpm.jpdl.version}
 build.console.from.source=${build.jpdl.from.source}
@@ -264,7 +238,7 @@
 
 # DESIGNER FILE LOCATIONS
 
-lib.jbpm.designer.version=3.1.3.SP2
+lib.jbpm.designer.version=3.1.3
 #build.designer.from.source=true
 
 lib.jbpm.designer.dir=jbpm/designer/jpdl/${lib.jbpm.designer.version}
@@ -287,35 +261,9 @@
 lib.jbpm.designer.site.remote=${remote.repository}/${lib.jbpm.designer.site.path}
 lib.jbpm.designer.site.target=${jbpm.root}/designer/jpdl/org.jbpm.gd.jpdl.build/target/${lib.jbpm.designer.site.file}
 
-# BAM CONSOLE FILE LOCATIONS
-lib.jbpm.bamconsole.version=${lib.jbpm.jpdl.version}
-build.bamconsole.from.source=${build.jpdl.from.source}
-
-lib.jbpm.bamconsole.file=bamconsole.ear
-lib.jbpm.bamconsole.dir=jbpm/jpdl/${lib.jbpm.bamconsole.version}/lib
-lib.jbpm.bamconsole.path=${lib.jbpm.bamconsole.dir}/${lib.jbpm.bamconsole.file}
-lib.jbpm.bamconsole.local=${local.repository}/${lib.jbpm.bamconsole.path}
-lib.jbpm.bamconsole.remote=${remote.repository}/${lib.jbpm.bamconsole.path}
-lib.jbpm.bamconsole.target=${jbpm.root}/bamconsole/target/${lib.jbpm.bamconsole.file}
-
-lib.jbpm.bamconsole.datasource.file=bamconsole-ds.xml
-lib.jbpm.bamconsole.datasource.dir=jbpm/jpdl/${lib.jbpm.bamconsole.version}/lib
-lib.jbpm.bamconsole.datasource.path=${lib.jbpm.bamconsole.datasource.dir}/${lib.jbpm.bamconsole.datasource.file}
-lib.jbpm.bamconsole.datasource.local=${local.repository}/${lib.jbpm.bamconsole.datasource.path}
-lib.jbpm.bamconsole.datasource.remote=${remote.repository}/${lib.jbpm.bamconsole.datasource.path}
-lib.jbpm.bamconsole.datasource.target=${jbpm.root}/bamconsole/target/${lib.jbpm.bamconsole.datasource.file}
-
-
-# BAM CONSOLE USER GUIDE
-lib.jbpm.jpdl.bam.userguide.file=jbpm-jpdl-bam-userguide.zip
-lib.jbpm.jpdl.bam.userguide.path=${lib.jbpm.jpdl.dir}/${lib.jbpm.jpdl.bam.userguide.file}
-lib.jbpm.jpdl.bam.userguide.local=${local.repository}/${lib.jbpm.jpdl.bam.userguide.path}
-lib.jbpm.jpdl.bam.userguide.remote=${remote.repository}/${lib.jbpm.jpdl.bam.userguide.path}
-lib.jbpm.jpdl.bam.userguide.target=${jbpm.root}/bamconsole/userguide/target/${lib.jbpm.jpdl.bam.userguide.file}
-
 # BPEL FILE LOCATIONS
 
-lib.jbpm.bpel.version=1.1.1
+lib.jbpm.bpel.version=1.1.GA
 build.bpel.from.source=true
 
 lib.jbpm.bpel.dir=jbpm/bpel/${lib.jbpm.bpel.version}/lib
@@ -332,7 +280,7 @@
 lib.jbpm.bpel.config.remote=${remote.repository}/${lib.jbpm.bpel.config.path}
 lib.jbpm.bpel.config.target=${jbpm.root}/bpel/library/target/${lib.jbpm.bpel.config.file}
 
-lib.jbpm.bpel.src.file=jbpm-bpel-src.zip
+lib.jbpm.bpel.src.file=jbpm-bpel-src.jar
 lib.jbpm.bpel.src.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.src.file}
 lib.jbpm.bpel.src.local=${local.repository}/${lib.jbpm.bpel.src.path}
 lib.jbpm.bpel.src.remote=${remote.repository}/${lib.jbpm.bpel.src.path}
@@ -344,35 +292,29 @@
 lib.jbpm.bpel.javadoc.remote=${remote.repository}/${lib.jbpm.bpel.javadoc.path}
 lib.jbpm.bpel.javadoc.target=${jbpm.root}/bpel/library/target/${lib.jbpm.bpel.javadoc.file}
 
-lib.jbpm.bpel.userguide.file=jbpm-bpel-userguide.zip
-lib.jbpm.bpel.userguide.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.userguide.file}
-lib.jbpm.bpel.userguide.local=${local.repository}/${lib.jbpm.bpel.userguide.path}
-lib.jbpm.bpel.userguide.remote=${remote.repository}/${lib.jbpm.bpel.userguide.path}
-lib.jbpm.bpel.userguide.target=${jbpm.root}/bpel/userguide/target/${lib.jbpm.bpel.userguide.file}
-
-lib.jbpm.bpel.console.file=jbpm-bpel.war
-lib.jbpm.bpel.console.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.console.file}
-lib.jbpm.bpel.console.local=${local.repository}/${lib.jbpm.bpel.console.path}
-lib.jbpm.bpel.console.remote=${remote.repository}/${lib.jbpm.bpel.console.path}
-lib.jbpm.bpel.console.target=${jbpm.root}/bpel/console/target/${lib.jbpm.bpel.console.file}
-
-lib.jbpm.bpel.jboss403.jar.file=jbpm-bpel-jboss403.jar
-lib.jbpm.bpel.jboss403.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jboss403.jar.file}
-lib.jbpm.bpel.jboss403.jar.local=${local.repository}/${lib.jbpm.bpel.jboss403.jar.path}
-lib.jbpm.bpel.jboss403.jar.remote=${remote.repository}/${lib.jbpm.bpel.jboss403.jar.path}
-lib.jbpm.bpel.jboss403.jar.target=${jbpm.root}/bpel/container/jboss403/target/${lib.jbpm.bpel.jboss403.jar.file}
-
-lib.jbpm.bpel.jboss405.jar.file=jbpm-bpel-jboss405.jar
-lib.jbpm.bpel.jboss405.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jboss405.jar.file}
-lib.jbpm.bpel.jboss405.jar.local=${local.repository}/${lib.jbpm.bpel.jboss405.jar.path}
-lib.jbpm.bpel.jboss405.jar.remote=${remote.repository}/${lib.jbpm.bpel.jboss405.jar.path}
-lib.jbpm.bpel.jboss405.jar.target=${jbpm.root}/bpel/container/jboss405/target/${lib.jbpm.bpel.jboss405.jar.file}
-
-lib.jbpm.bpel.jboss420.jar.file=jbpm-bpel-jboss420.jar
-lib.jbpm.bpel.jboss420.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jboss420.jar.file}
-lib.jbpm.bpel.jboss420.jar.local=${local.repository}/${lib.jbpm.bpel.jboss420.jar.path}
-lib.jbpm.bpel.jboss420.jar.remote=${remote.repository}/${lib.jbpm.bpel.jboss420.jar.path}
-lib.jbpm.bpel.jboss420.jar.target=${jbpm.root}/bpel/container/jboss420/target/${lib.jbpm.bpel.jboss420.jar.file}
+lib.jbpm.bpel.war.file=jbpm-bpel.war
+lib.jbpm.bpel.war.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.war.file}
+lib.jbpm.bpel.war.local=${local.repository}/${lib.jbpm.bpel.war.path}
+lib.jbpm.bpel.war.remote=${remote.repository}/${lib.jbpm.bpel.war.path}
+lib.jbpm.bpel.war.target=${jbpm.root}/bpel/console/target/${lib.jbpm.bpel.war.file}
+
+lib.jbpm.bpel.jbossws4ee.jar.file=jbpm-bpel-jbossws4ee.jar
+lib.jbpm.bpel.jbossws4ee.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jbossws4ee.jar.file}
+lib.jbpm.bpel.jbossws4ee.jar.local=${local.repository}/${lib.jbpm.bpel.jbossws4ee.jar.path}
+lib.jbpm.bpel.jbossws4ee.jar.remote=${remote.repository}/${lib.jbpm.bpel.jbossws4ee.jar.path}
+lib.jbpm.bpel.jbossws4ee.jar.target=${jbpm.root}/bpel/jbossws4ee/target/${lib.jbpm.bpel.jbossws4ee.jar.file}
+
+lib.jbpm.bpel.jbossws10.jar.file=jbpm-bpel-jbossws10.jar
+lib.jbpm.bpel.jbossws10.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jbossws10.jar.file}
+lib.jbpm.bpel.jbossws10.jar.local=${local.repository}/${lib.jbpm.bpel.jbossws10.jar.path}
+lib.jbpm.bpel.jbossws10.jar.remote=${remote.repository}/${lib.jbpm.bpel.jbossws10.jar.path}
+lib.jbpm.bpel.jbossws10.jar.target=${jbpm.root}/bpel/jbossws10/target/${lib.jbpm.bpel.jbossws10.jar.file}
+
+lib.jbpm.bpel.jbossws12.jar.file=jbpm-bpel-jbossws12.jar
+lib.jbpm.bpel.jbossws12.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.jbossws12.jar.file}
+lib.jbpm.bpel.jbossws12.jar.local=${local.repository}/${lib.jbpm.bpel.jbossws12.jar.path}
+lib.jbpm.bpel.jbossws12.jar.remote=${remote.repository}/${lib.jbpm.bpel.jbossws12.jar.path}
+lib.jbpm.bpel.jbossws12.jar.target=${jbpm.root}/bpel/jbossws12/target/${lib.jbpm.bpel.jbossws12.jar.file}
 
 lib.jbpm.bpel.tools.jar.file=jbpm-bpel-tools.jar
 lib.jbpm.bpel.tools.jar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.tools.jar.file}
@@ -380,13 +322,23 @@
 lib.jbpm.bpel.tools.jar.remote=${remote.repository}/${lib.jbpm.bpel.tools.jar.path}
 lib.jbpm.bpel.tools.jar.target=${jbpm.root}/bpel/tools/target/${lib.jbpm.bpel.tools.jar.file}
 
-lib.jbpm.bpel.enterprise.file=jbpm-bpel.ear
+lib.jbpm.bpel.enterprise.file=jbpm-bpel-enterprise.jar
 lib.jbpm.bpel.enterprise.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.enterprise.file}
 lib.jbpm.bpel.enterprise.local=${local.repository}/${lib.jbpm.bpel.enterprise.path}
 lib.jbpm.bpel.enterprise.remote=${remote.repository}/${lib.jbpm.bpel.enterprise.path}
 lib.jbpm.bpel.enterprise.target=${jbpm.root}/bpel/enterprise/target/${lib.jbpm.bpel.enterprise.file}
 
-lib.jbpm.bpel.container.name=jbpm-bpel-container.jar
+lib.jbpm.bpel.sar.file=jbpm-bpel.sar
+lib.jbpm.bpel.sar.path=${lib.jbpm.bpel.dir}/${lib.jbpm.bpel.sar.file}
+lib.jbpm.bpel.sar.local=${local.repository}/${lib.jbpm.bpel.sar.path}
+lib.jbpm.bpel.sar.remote=${remote.repository}/${lib.jbpm.bpel.sar.path}
+lib.jbpm.bpel.sar.target=${jbpm.root}/bpel/service/target/${lib.jbpm.bpel.sar.file}
+
+lib.jbpm.jboss.jar.file=jbpm-jmx.jar
+lib.jbpm.jboss.jar.path=${lib.jbpm.jpdl.dir}/${lib.jbpm.jboss.jar.file}
+lib.jbpm.jboss.jar.local=${local.repository}/${lib.jbpm.jboss.jar.path}
+lib.jbpm.jboss.jar.remote=${remote.repository}/${lib.jbpm.jboss.jar.path}
+lib.jbpm.jboss.jar.target=${jbpm.root}/jboss/jmx/target/${lib.jbpm.jboss.jar.file}
 
 # EXTERNAL DEPENDENCIES (1/4): VERSIONS
 
@@ -555,40 +507,40 @@
 lib.dumbster.local=${local.repository}/${lib.dumbster.path}
 lib.dumbster.remote=${remote.repository}/${lib.dumbster.path}
 
-lib.eclipse.emf.version=2.3.2
-lib.eclipse.emf.filename=emf-sdo-xsd-SDK-2.3.2.zip
+lib.eclipse.emf.version=2.3.1
+lib.eclipse.emf.filename=emf-sdo-xsd-SDK-2.3.1.zip
 lib.eclipse.emf.license=epl-1.0
 lib.eclipse.emf.dir=eclipse/emf-sdo-xsd/${lib.eclipse.emf.version}
 lib.eclipse.emf.path=${lib.eclipse.emf.dir}/${lib.eclipse.emf.filename}
 lib.eclipse.emf.local=${local.repository}/${lib.eclipse.emf.path}
 lib.eclipse.emf.remote=${remote.repository}/${lib.eclipse.emf.path}
 
-lib.eclipse.gef.version=3.3.2
-lib.eclipse.gef.filename=GEF-SDK-3.3.2.zip
+lib.eclipse.gef.version=3.3.1
+lib.eclipse.gef.filename=GEF-SDK-3.3.1.zip
 lib.eclipse.gef.license=epl-1.0
 lib.eclipse.gef.dir=eclipse/gef/${lib.eclipse.gef.version}
 lib.eclipse.gef.path=${lib.eclipse.gef.dir}/${lib.eclipse.gef.filename}
 lib.eclipse.gef.local=${local.repository}/${lib.eclipse.gef.path}
 lib.eclipse.gef.remote=${remote.repository}/${lib.eclipse.gef.path}
 
-lib.eclipse.dtp.version=1.5.2
-lib.eclipse.dtp.filename=dtp-sdk_1.5.2_022008.zip
+lib.eclipse.dtp.version=1.5.1
+lib.eclipse.dtp.filename=dtp-sdk_1.5.1.zip
 lib.eclipse.dtp.license=epl-1.0
 lib.eclipse.dtp.dir=eclipse/dtp/${lib.eclipse.dtp.version}
 lib.eclipse.dtp.path=${lib.eclipse.dtp.dir}/${lib.eclipse.dtp.filename}
 lib.eclipse.dtp.local=${local.repository}/${lib.eclipse.dtp.path}
 lib.eclipse.dtp.remote=${remote.repository}/${lib.eclipse.dtp.path}
 
-lib.eclipse.sdk.version=3.3.2
-lib.eclipse.sdk.filename=eclipse-SDK-3.3.2-win32.zip
+lib.eclipse.sdk.version=3.3.1.1
+lib.eclipse.sdk.filename=eclipse-SDK-3.3.1.1-win32.zip
 lib.eclipse.sdk.license=epl-1.0
 lib.eclipse.sdk.dir=eclipse/sdk/${lib.eclipse.sdk.version}
 lib.eclipse.sdk.path=${lib.eclipse.sdk.dir}/${lib.eclipse.sdk.filename}
 lib.eclipse.sdk.local=${local.repository}/${lib.eclipse.sdk.path}
 lib.eclipse.sdk.remote=${remote.repository}/${lib.eclipse.sdk.path}
 
-lib.eclipse.wtp.version=2.0.2
-lib.eclipse.wtp.filename=wtp-sdk-R-2.0.2-20080223205547.zip
+lib.eclipse.wtp.version=2.0.1
+lib.eclipse.wtp.filename=wtp-sdk-R-2.0.1-20070926042742.zip
 lib.eclipse.wtp.license=epl-1.0
 lib.eclipse.wtp.dir=eclipse/webtools/${lib.eclipse.wtp.version}
 lib.eclipse.wtp.path=${lib.eclipse.wtp.dir}/${lib.eclipse.wtp.filename}
@@ -702,7 +654,7 @@
 lib.jaxrpc.api.local=${local.repository}/${lib.jaxrpc.api.path}
 lib.jaxrpc.api.remote=${remote.repository}/${lib.jaxrpc.api.path}
 
-lib.jboss.version=${jboss.version}
+lib.jboss.version=${jboss.eap.release.id}
 lib.jboss.license=lgpl
 lib.jboss.dir=jbossas/core-libs/${lib.jboss.version}/lib
 
@@ -721,16 +673,25 @@
 lib.jboss.jmx.local=${local.repository}/${lib.jboss.jmx.path}
 lib.jboss.jmx.remote=${remote.repository}/${lib.jboss.jmx.path}
 
+lib.jboss.jaxrpc.name=jboss-jaxrpc.jar
+lib.jboss.jaxrpc.path=${lib.jboss.dir}/${lib.jboss.jaxrpc.name}
+lib.jboss.jaxrpc.local=${local.repository}/${lib.jboss.jaxrpc.path}
+lib.jboss.jaxrpc.remote=${remote.repository}/${lib.jboss.jaxrpc.path}
+
+lib.jboss.saaj.name=jboss-saaj.jar
+lib.jboss.saaj.path=${lib.jboss.dir}/${lib.jboss.saaj.name}
+lib.jboss.saaj.local=${local.repository}/${lib.jboss.saaj.path}
+lib.jboss.saaj.remote=${remote.repository}/${lib.jboss.saaj.path}
+
 lib.jboss.system.name=jboss-system.jar
 lib.jboss.system.path=${lib.jboss.dir}/${lib.jboss.system.name}
 lib.jboss.system.local=${local.repository}/${lib.jboss.system.path}
 lib.jboss.system.remote=${remote.repository}/${lib.jboss.system.path}
 
-lib.jboss.as.license=lgpl
-lib.jboss.as.name=jboss.zip
+lib.jboss.as.name=jboss-eap.zip
 lib.jboss.as.dir=jbossas/${lib.jboss.version}/lib
 lib.jboss.as.local=${local.repository}/${lib.jboss.as.dir}/${lib.jboss.as.name}
-lib.jboss.as.remote=${remote.jboss.repository}/jboss-${jboss.version}.zip
+lib.jboss.as.remote=${remote.jboss.repository}/${jboss.eap.remote.file.name}
 
 lib.jboss.backport-concurrent.version=2.1.0.GA
 lib.jboss.backport-concurrent.license=public-domain
@@ -755,23 +716,23 @@
 lib.jbossretro-rt.local=${local.repository}/${lib.jbossretro-rt.path}
 lib.jbossretro-rt.remote=${remote.repository}/maven2/org/jboss/${lib.jbossretro-rt.path}
 
-lib.jbossws.version=1.0.3.SP1
-lib.jbossws.license=lgpl
-lib.jbossws.name=jbossws14-client.jar
-lib.jbossws.dir=jbossws14/${lib.jbossws.version}/lib
-lib.jbossws.path=${lib.jbossws.dir}/${lib.jbossws.name}
-lib.jbossws.local=${local.repository}/${lib.jbossws.path}
-lib.jbossws.remote=${remote.repository}/jboss/${lib.jbossws.path}
+lib.jbossws.10.version=1.0.3.SP1
+lib.jbossws.10.license=lgpl
+lib.jbossws.10.name=jbossws14-client.jar
+lib.jbossws.10.dir=jbossws14/${lib.jbossws.10.version}/lib
+lib.jbossws.10.path=${lib.jbossws.10.dir}/${lib.jbossws.10.name}
+lib.jbossws.10.local=${local.repository}/${lib.jbossws.10.path}
+lib.jbossws.10.remote=${remote.repository}/jboss/${lib.jbossws.10.path}
+
+lib.jbossws.12.version=1.2.1.GA
+lib.jbossws.12.license=lgpl
+lib.jbossws.12.name=jbossws14-client.jar
+lib.jbossws.12.dir=jbossws14/${lib.jbossws.12.version}/lib
+lib.jbossws.12.path=${lib.jbossws.12.dir}/${lib.jbossws.12.name}
+lib.jbossws.12.local=${local.repository}/${lib.jbossws.12.path}
+lib.jbossws.12.remote=${remote.repository}/jboss/${lib.jbossws.12.path}
 
-lib.jboss.saaj.version=${lib.jbossws.version}
-lib.jboss.saaj.license=lgpl
-lib.jboss.saaj.name=jboss-saaj.jar
-lib.jboss.saaj.dir=${lib.jbossws.dir}
-lib.jboss.saaj.path=${lib.jboss.saaj.dir}/${lib.jboss.saaj.name}
-lib.jboss.saaj.local=${local.repository}/${lib.jboss.saaj.path}
-lib.jboss.saaj.remote=${remote.repository}/jboss/${lib.jboss.saaj.path}
-
-lib.jboss.ws4ee.version=4.0.3.SP1
+lib.jboss.ws4ee.version=4.0.4.SP1
 lib.jboss.ws4ee.license=lgpl
 lib.jboss.ws4ee.name=jboss-ws4ee.jar
 lib.jboss.ws4ee.dir=jboss-ws4ee/${lib.jboss.ws4ee.version}/lib
@@ -922,31 +883,3 @@
 lib.xml.apis.path=${lib.xercesimpl.dir}/${lib.xml.apis.name}
 lib.xml.apis.local=${local.repository}/${lib.xml.apis.path}
 lib.xml.apis.remote=${remote.repository}/${lib.xml.apis.path}
-
-lib.desmoj.version=2.1.1
-lib.desmoj.name=desmoj.jar
-lib.desmoj.dir=desmoj/${lib.desmoj.version}/lib
-lib.desmoj.path=${lib.desmoj.dir}/${lib.desmoj.name}
-lib.desmoj.local=${local.repository}/${lib.desmoj.path}
-lib.desmoj.remote=${remote.repository}/${lib.desmoj.path}
-
-lib.jasperreports.version=2.0.2
-lib.jasperreports.name=jasperreports.jar
-lib.jasperreports.dir=jasperreports/${lib.jasperreports.version}/lib
-lib.jasperreports.path=${lib.jasperreports.dir}/${lib.jasperreports.name}
-lib.jasperreports.local=${local.repository}/${lib.jasperreports.path}
-lib.jasperreports.remote=${remote.repository}/${lib.jasperreports.path}
-
-lib.jfreechart.version=1.0.2
-lib.jfreechart.name=jfreechart.jar
-lib.jfreechart.dir=jfreechart/${lib.jfreechart.version}/lib
-lib.jfreechart.path=${lib.jfreechart.dir}/${lib.jfreechart.name}
-lib.jfreechart.local=${local.repository}/${lib.jfreechart.path}
-lib.jfreechart.remote=${remote.repository}/${lib.jfreechart.path}
-
-lib.jcommon.version=1.0.2
-lib.jcommon.name=jcommon.jar
-lib.jcommon.dir=jfreechart/${lib.jcommon.version}/lib
-lib.jcommon.path=${lib.jcommon.dir}/${lib.jcommon.name}
-lib.jcommon.local=${local.repository}/${lib.jcommon.path}
-lib.jcommon.remote=${remote.repository}/${lib.jcommon.path}
diff -urbw --exclude .svn jpdl-3.2.3.GA/build/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/build/build.xml
--- jpdl-3.2.3.GA/build/build.xml	2009-02-06 09:11:13.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/build/build.xml	2009-02-06 09:15:38.000000000 +0100
@@ -1,7 +1,6 @@
 <project name="jbpm.build" basedir=".." default="build.jpdl">
 
   <property file="${user.home}/jbpm/build.properties" />
-  <property file="build/profiles/${profile}.profile.properties" />
   <property file="build/build.properties" />
   
   <target name="clean" description="cleans all subprojects">
@@ -19,13 +18,14 @@
     <ant antfile="designer/jpdl/org.jbpm.gd.jpdl.build/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/library/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/tools/build.xml" target="clean" inheritall="false" />
-    <ant antfile="bpel/container/build.xml" target="clean" inheritall="false" />
+    <ant antfile="bpel/jbossws10/build.xml" target="clean" inheritall="false" />
+    <ant antfile="bpel/jbossws12/build.xml" target="clean" inheritall="false" />
+    <ant antfile="bpel/jbossws4ee/build.xml" target="clean" inheritall="false" />    
     <ant antfile="bpel/console/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/enterprise/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/service/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/userguide/build.xml" target="clean" inheritall="false" />
     <ant antfile="bpel/examples/build.xml" target="clean" inheritall="false" />
-    <ant antfile="bamconsole/build.xml" target="clean" inheritall="false" />
   </target>
   
   <target name="cruise" depends="test.jpdl" description="the nightly integration test build"/>
@@ -34,9 +34,7 @@
     <!-- TODO these subtargets might executed conditionally, only if they exist.  but that would require an available property and a separate target -->
     <ant antfile="jpdl/dist/build.xml" target="package" inheritall="false" />
     <ant antfile="enterprise/build.xml" inheritall="false" />
-    <!--
     <ant antfile="designer/jpdl/org.jbpm.gd.jpdl.build/build.xml" inheritall="false" />
-    -->
   </target>
 
   <target name="build.bpel" description="builds bpel and all its dependent jbpm subprojects">
@@ -62,7 +60,7 @@
          cvsroot=":pserver:anonymous:@anoncvs.forge.jboss.com:/cvsroot/jboss" />
   </target>
 
-  <target name="get.libs.dependencies">
+  <target name="get.libs.dependencies" depends="get.jboss.dependencies">
     
     <!-- EXTERNAL DEPENDENCIES (4/4): UPDATE LOCAL REPOSITORY -->
     
@@ -206,24 +204,44 @@
     <get src="${lib.javassist.remote}" dest="${lib.javassist.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.javassist.license}.txt" dest="${lib.javassist.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
 
-    <mkdir dir="${local.repository}/${lib.jboss.dir}" />
+<!--    <mkdir dir="${local.repository}/${lib.jboss.dir}" />
     <get src="${lib.jboss.common.remote}" dest="${lib.jboss.common.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.common.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
     <get src="${lib.jboss.jmx.remote}" dest="${lib.jboss.jmx.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.jmx.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
     <get src="${lib.jboss.j2ee.remote}" dest="${lib.jboss.j2ee.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.j2ee.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
+    <get src="${lib.jboss.jaxrpc.remote}" dest="${lib.jboss.jaxrpc.local}" usetimestamp="true" ignoreerrors="true" />
+    <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.jaxrpc.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
+    <get src="${lib.jboss.saaj.remote}" dest="${lib.jboss.saaj.local}" usetimestamp="true" ignoreerrors="true" />
+    <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.saaj.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
     <get src="${lib.jboss.system.remote}" dest="${lib.jboss.system.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.system.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
+-->
 
-    <mkdir dir="${local.repository}/${lib.jboss.as.dir}" />
+  	<!-- TODO Make the expansion of the appserver conditional to make the get dependencies faster -->
+  	<mkdir dir="${local.repository}/${lib.jboss.dir}"/>
+  	<unzip src="${lib.jboss.as.local}" dest="${local.repository}/${lib.jboss.dir}/tmp"></unzip>
+  	<copy todir="${local.repository}/${lib.jboss.dir}">
+  		<fileset dir="${local.repository}/${lib.jboss.dir}/tmp/${jboss.eap.name}/jboss-as/lib">
+  			<include name="${lib.jboss.common.name}"/>
+  			<include name="${lib.jboss.jmx.name}"/>
+  			<include name="${lib.jboss.system.name}"/>
+  		</fileset>
+  	</copy>
+  	<copy todir="${local.repository}/${lib.jboss.dir}">
+  		<fileset dir="${local.repository}/${lib.jboss.dir}/tmp/${jboss.eap.name}/jboss-as/server/default/lib">
+  			<include name="${lib.jboss.j2ee.name}"/>
+  			<include name="${lib.jboss.jaxrpc.name}"/>
+  			<include name="${lib.jboss.saaj.name}"/>
+  		</fileset>
+  	</copy>
+  	<delete dir="${local.repository}/${lib.jboss.dir}/tmp"></delete>
+  	
+<!--    <mkdir dir="${local.repository}/${lib.jboss.as.dir}" />
     <get src="${lib.jboss.as.remote}" dest="${lib.jboss.as.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.as.license}.txt" dest="${lib.jboss.as.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
-    
-    <mkdir dir="${local.repository}/${lib.jboss.saaj.dir}" />
-    <get src="${lib.jboss.saaj.remote}" dest="${lib.jboss.saaj.local}" usetimestamp="true" ignoreerrors="true" />
-    <get src="${remote.license.dir}/${lib.jboss.saaj.license}.txt" dest="${lib.jboss.saaj.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
-    
+-->    
     <mkdir dir="${local.repository}/${lib.jboss.backport-concurrent.dir}" />
     <get src="${lib.jboss.backport-concurrent.remote}" dest="${lib.jboss.backport-concurrent.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.backport-concurrent.license}.txt" dest="${lib.jboss.backport-concurrent.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
@@ -242,9 +260,13 @@
     <get src="${lib.jboss.axis.remote}" dest="${lib.jboss.axis.local}" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.license.dir}/${lib.jboss.ws4ee.license}.txt" dest="${lib.jboss.axis.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
 
-    <mkdir dir="${local.repository}/${lib.jbossws.dir}" />
-    <get src="${lib.jbossws.remote}" dest="${lib.jbossws.local}" usetimestamp="true" ignoreerrors="true" />
-    <get src="${remote.license.dir}/${lib.jbossws.license}.txt" dest="${lib.jbossws.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
+    <mkdir dir="${local.repository}/${lib.jbossws.10.dir}" />
+    <get src="${lib.jbossws.10.remote}" dest="${lib.jbossws.10.local}" usetimestamp="true" ignoreerrors="true" />
+    <get src="${remote.license.dir}/${lib.jbossws.10.license}.txt" dest="${lib.jbossws.10.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
+
+    <mkdir dir="${local.repository}/${lib.jbossws.12.dir}" />
+    <get src="${lib.jbossws.12.remote}" dest="${lib.jbossws.12.local}" usetimestamp="true" ignoreerrors="true" />
+    <get src="${remote.license.dir}/${lib.jbossws.12.license}.txt" dest="${lib.jbossws.12.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
 
     <mkdir dir="${local.repository}/${lib.jcr.dir}" />
     <get src="${lib.jcr.remote}" dest="${lib.jcr.local}" usetimestamp="true" ignoreerrors="true" />
@@ -318,21 +340,6 @@
     <mkdir dir="${local.repository}/jbpm/clover" />
     <get src="${remote.repository}/jbpm/clover/clover.jar" dest="${local.repository}/jbpm/clover/clover.jar" usetimestamp="true" ignoreerrors="true" />
     <get src="${remote.repository}/jbpm/clover/clover.license" dest="${local.repository}/jbpm/clover/clover.license" usetimestamp="true" ignoreerrors="true" />
-
-    <!-- Desmo-J is used for discrete event simulation -->
-    <mkdir dir="${local.repository}/${lib.desmoj.dir}" />
-    <get src="${lib.desmoj.remote}" dest="${lib.desmoj.local}" usetimestamp="true" ignoreerrors="true" />
-
-    <!-- JasperReports and internally JFreeChart are used for simulation reporting -->
-    <mkdir dir="${local.repository}/${lib.jasperreports.dir}" />
-    <get src="${lib.jasperreports.remote}" dest="${lib.jasperreports.local}" usetimestamp="true" ignoreerrors="true" />
-
-    <mkdir dir="${local.repository}/${lib.jfreechart.dir}" />
-    <get src="${lib.jfreechart.remote}" dest="${lib.jfreechart.local}" usetimestamp="true" ignoreerrors="true" />
-
-    <mkdir dir="${local.repository}/${lib.jcommon.dir}" />
-    <get src="${lib.jcommon.remote}" dest="${lib.jcommon.local}" usetimestamp="true" ignoreerrors="true" />
-
   </target>
   
   <target name="get.eclipse.dependencies">
@@ -360,10 +367,8 @@
   </target>
 
   <target name="get.jboss.dependencies">
-    <property name="remote.license.dir" value="${remote.repository}/licenses" />
     <mkdir dir="${local.repository}/${lib.jboss.as.dir}" />
     <get src="${lib.jboss.as.remote}" dest="${lib.jboss.as.local}" usetimestamp="true" ignoreerrors="true" />
-    <get src="${remote.license.dir}/${lib.jboss.license}.txt" dest="${lib.jboss.as.local}.license.txt" usetimestamp="true" ignoreerrors="true" />
   </target>
 
   <!-- DON'T CHANGE THE NAME OF THIS TARGET AS IT IS USED IN THE CRUISECONTROL BUILD SCRIPT -->
Only in jpdl-3.2.3.GA/build/profiles: jboss403.profile.properties
Only in jpdl-3.2.3.GA/build/profiles: jboss405.profile.properties
Only in jpdl-3.2.3.GA/build/profiles: jboss420.profile.properties
Only in jpdl-3.2.3.GA/build/profiles: jboss422.profile.properties
diff -urbw --exclude .svn jpdl-3.2.3.GA/.classpath jpdl-3.2.2-SOA-4.2.0.CP03/.classpath
--- jpdl-3.2.3.GA/.classpath	2009-02-06 09:13:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/.classpath	2009-02-06 09:18:12.000000000 +0100
@@ -4,19 +4,15 @@
 	<classpathentry kind="src" output="jpdl/jar/target/classes" path="jpdl/jar/src/main/java"/>
 	<classpathentry kind="src" path="jbpm4jsf/src/main/java"/>
 	<classpathentry kind="src" path="jpdl/examples/websale/src/main/java"/>
+	<classpathentry kind="src" path="bpel/library/src/main/java"/>
 	<classpathentry kind="src" output="jpdl/jar/target/test.classes" path="jpdl/jar/src/test/java"/>
 	<classpathentry kind="src" output="enterprise/target/test.classes" path="enterprise/src/test/java"/>
 	<classpathentry kind="src" output="enterprise/target/classes" path="enterprise/src/main/java"/>
 	<classpathentry kind="src" output="identity/target/classes" path="identity/src/main/java"/>
 	<classpathentry kind="src" output="identity/target/test.classes" path="identity/src/test/java"/>
 	<classpathentry kind="src" output="jpdl/dist/target/test.classes" path="jpdl/dist/src/test/java"/>
-	<classpathentry kind="src" path="jpdl/simulation/src/test/java"/>
-	<classpathentry kind="src" path="jpdl/simulation/src/main/java"/>
-	<classpathentry kind="src" path="jpdl/simulation/src/main/reports"/>
-	<classpathentry kind="src" path="jpdl/simulation/src/tutorial"/>
 	<classpathentry exported="true" kind="lib" path="jpdl/jar/src/main/config"/>
 	<classpathentry exported="true" kind="lib" path="jpdl/jar/src/test/resources"/>
-	<classpathentry kind="lib" path="enterprise/src/test/resources"/>
 	<classpathentry kind="var" path="JBPM_REPO/sun-jaf/1.0.2/lib/activation.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/maven2/ant/ant/1.6.5/ant-1.6.5.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/antlr/2.7.6.ga/lib/antlr-2.7.6.jar"/>
@@ -48,6 +44,10 @@
 	<classpathentry kind="var" path="JBPM_REPO/apache-httpclient/3.0.1/lib/commons-httpclient.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/jakarta-cactus/1.7.2/lib/cactus.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/apache-codec/1.3.0/lib/commons-codec.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-common.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-j2ee.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-jmx.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-system.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/el/1.0/lib/el-api.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/stax-api/1.0/lib/stax-api-1.0.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/hibernate/3.2.3.GA/lib/hibernate3.jar" sourcepath="/SOFTWARE/hibernate-3.2.3.ga/src"/>
@@ -55,13 +55,9 @@
 	<classpathentry kind="var" path="JBPM_REPO/apache-fileupload/1.1.1/lib/commons-fileupload.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/apache-lang/2.1/lib/commons-lang.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/woodstox/2.0.6/lib/wstx-lgpl-2.0.6.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/sun-jaxrpc/1.1/lib/jaxrpc-api.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-jaxrpc.jar"/>
+	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.3.0.GA/lib/jboss-saaj.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/ibm-wsdl4j/1.6.2/lib/wsdl4j.jar"/>
 	<classpathentry kind="var" path="JBPM_REPO/gravel/1.0.0.GA/lib/gravel.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/desmoj/2.1.1/lib/desmoj.jar" sourcepath="/JBPM_REPO/desmoj/2.1.1/lib/desmoj_2.1.1_src.zip"/>
-	<classpathentry kind="var" path="JBPM_REPO/jfreechart/1.0.2/lib/jcommon.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/jfreechart/1.0.2/lib/jfreechart.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/jasperreports/2.0.4/lib/jasperreports.jar"/>
-	<classpathentry kind="var" path="JBPM_REPO/jbossas/core-libs/4.2.2.GA/lib/jboss-j2ee.jar"/>
 	<classpathentry kind="output" path="jpdl/jar/target/classes"/>
 </classpath>
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/console/build.xml
--- jpdl-3.2.3.GA/console/build.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/build.xml	2009-02-06 09:17:29.000000000 +0100
@@ -39,14 +39,14 @@
       </manifest>
     </target>
 
-    <target name="package" depends="exploded-4.0.x,exploded-4.0.x-jdk1.4,exploded-4.2.x"/>
+    <target name="package" depends="exploded-4.2.x"/>
 
     <target name="install" depends="package" description="Copy the jbpm-console.war to the local repository">
         <copy file="target/jbossas-4.2.x/jbpm-console.war" tofile="${lib.jbpm.console.local}"/>
     </target>
 
-    <target name="deploy" depends="package">
-        <get dest="target/deployresult.html" src="http://localhost:8080/jmx-console/HtmlAdaptor?action=invokeOpByName&amp;name=jboss.system:service%3DMainDeployer&amp;methodName=redeploy&amp;argType=java.net.URL&amp;arg0=file://${basedir}/target/jbossas-${jbpm.console.version}/jbpm-console.war"/>
+    <target name="deploy" depends="exploded-4.2.x">
+        <get dest="target/deployresult.html" src="http://localhost:8080/jmx-console/HtmlAdaptor?action=invokeOpByName&amp;name=jboss.system:service%3DMainDeployer&amp;methodName=redeploy&amp;argType=java.net.URL&amp;arg0=file://${basedir}/target/jbossas-4.2.x/jbpm-console.war"/>
     </target>
 
     <target name="default" depends="package"/>
@@ -56,12 +56,13 @@
     <target name="all" depends="exploded-4.0.x,exploded-4.2.x,exploded-4.0.x-jdk1.4" description="Build all WARs and exploded zipfiles"/>
 
     <target name="war-4.2.x" depends="jpdl.jar, identity.jar, jbpm4jsf.jar, create.manifest, create.customized.config.files" description="Build a WAR suitable for deployment into JBossAS 4.2.x">
+        <delete file="target/jbossas-4.2.x/jbpm-console.war"/>
         <mkdir dir="target/jbossas-4.2.x"/>
         <war destfile="target/jbossas-4.2.x/jbpm-console.war" webxml="src/main/webapp/WEB-INF/web.xml" manifest="target/META-INF/MANIFEST.MF">
             <webinf dir="src/main/webapp/WEB-INF">
                 <include name="**/*.xml"/>
                 <include name="**/*.properties"/>
-                <exclude name="web.xml"/>
+                <exclude name="**/web.xml"/>
             </webinf>
             <zipfileset dir="src/main/webapp">
                 <include name="**/*.xml"/>
@@ -74,7 +75,9 @@
                 <exclude name="**/.*"/>
                 <exclude name="**/*~"/>
             </zipfileset>
-            <classes dir="target/config.files" />
+            <classes dir="target/config.files">
+                <include name="*"/>
+            </classes>
             <lib file="${lib.gravel.local}"/>
             <lib file="${lib.jbpm.jbpm4jsf.jar.local}"/>
             <lib file="${lib.jbpm.jpdl.jar.local}"/>
@@ -87,6 +90,8 @@
     </target>
 
     <target name="exploded-4.2.x" depends="war-4.2.x"  description="Build a zipfile containing an exploded WAR suitable for deployment into JBossAS 4.2.x">
+        <delete file="target/jbossas-4.2.x/jbpm-console.zip"/>
+        <delete dir="target/jbossas-4.2.x/tmp"/>
         <mkdir dir="target/jbossas-4.2.x/tmp/jbpm-console.war"/>
         <unzip src="target/jbossas-4.2.x/jbpm-console.war" dest="target/jbossas-4.2.x/tmp/jbpm-console.war"/>
         <zip destfile="target/jbossas-4.2.x/jbpm-console.zip">
@@ -94,9 +99,11 @@
                 <include name="jbpm-console.war/**"/>
             </zipfileset>
         </zip>
+        <delete dir="target/jbossas-4.2.x/tmp"/>
     </target>
 
     <target name="war-4.0.x" depends="jpdl.jar, identity.jar, jbpm4jsf.jar, create.manifest, create.customized.config.files"  description="Build a WAR suitable for deployment into JBossAS 4.0.x">
+        <delete file="target/jbossas-4.0.x/jbpm-console.war"/>
         <mkdir dir="target/jbossas-4.0.x"/>
         <war destfile="target/jbossas-4.0.x/jbpm-console.war" webxml="src/main/webapp/WEB-INF/web.xml" manifest="target/META-INF/MANIFEST.MF">
             <webinf dir="src/main/webapp/WEB-INF">
@@ -134,6 +141,8 @@
     </target>
 
     <target name="exploded-4.0.x" depends="war-4.0.x" description="Build a zipfile containing an exploded WAR suitable for deployment into JBossAS 4.0.x">
+        <delete file="target/jbossas-4.0.x/jbpm-console.zip"/>
+        <delete dir="target/jbossas-4.0.x/tmp"/>
         <mkdir dir="target/jbossas-4.0.x/tmp/jbpm-console.war"/>
         <unzip src="target/jbossas-4.0.x/jbpm-console.war" dest="target/jbossas-4.0.x/tmp/jbpm-console.war"/>
         <zip destfile="target/jbossas-4.0.x/jbpm-console.zip">
@@ -141,9 +150,11 @@
                 <include name="jbpm-console.war/**"/>
             </zipfileset>
         </zip>
+        <delete dir="target/jbossas-4.0.x/tmp"/>
     </target>
 
     <target name="war-4.0.x-jdk1.4" depends="jpdl.jar, identity.jar, jbpm4jsf.jar, create.manifest, create.customized.config.files, retro"  description="Build a WAR suitable for deployment into JBossAS 4.0.x running on Java 1.4">
+        <delete file="target/jbossas-4.0.x-jdk1.4/jbpm-console.war"/>
         <mkdir dir="target/jbossas-4.0.x-jdk1.4"/>
         <war destfile="target/jbossas-4.0.x-jdk1.4/jbpm-console.war" webxml="src/main/webapp/WEB-INF/web.xml" manifest="target/META-INF/MANIFEST.MF">
             <webinf dir="src/main/webapp/WEB-INF">
@@ -184,6 +195,8 @@
     </target>
 
     <target name="exploded-4.0.x-jdk1.4" depends="war-4.0.x-jdk1.4" description="Build a zipfile containing an exploded WAR suitable for deployment into JBossAS 4.0.x running on Java 1.4">
+        <delete file="target/jbossas-4.0.x-jdk1.4/jbpm-console.zip"/>
+        <delete dir="target/jbossas-4.0.x-jdk1.4/tmp"/>
         <mkdir dir="target/jbossas-4.0.x-jdk1.4/tmp/jbpm-console.war"/>
         <unzip src="target/jbossas-4.0.x-jdk1.4/jbpm-console.war" dest="target/jbossas-4.0.x/tmp/jbpm-console.war"/>
         <zip destfile="target/jbossas-4.0.x-jdk1.4/jbpm-console.zip">
@@ -191,12 +204,30 @@
                 <include name="jbpm-console.war/**"/>
             </zipfileset>
         </zip>
+        <delete dir="target/jbossas-4.0.x-jdk1.4/tmp"/>
     </target>
 
-    <target name="retro-jsf-api" unless="jsf.api.uptodate">
-        <delete file="target/jsf-api-retro.jar"/>
+    <target name="retro" depends="define.libs.classpath">
+        <taskdef name="retro" classname="org.jboss.ant.tasks.retro.Retro">
+            <classpath>
+                <pathelement location="${lib.jbossretro.local}"/>
+                <pathelement location="${lib.javassist.local}"/>
+            </classpath>
+        </taskdef>
+        <delete dir="target/retro"/>
 	      <mkdir dir="target/retro/unjar/jsf-api"/>
+        <mkdir dir="target/retro/unjar/jsf-impl"/>
+        <mkdir dir="target/retro/unjar/jbpm4jsf"/>
+        <mkdir dir="target/retro/unjar/gravel"/>
+        <delete file="target/gravel-retro.jar"/>
+        <delete file="target/jbpm4jsf-retro.jar"/>
+        <delete file="target/jsf-api-retro.jar"/>
+        <delete file="target/jsf-impl-retro.jar"/>
 	      <unjar dest="target/retro/unjar/jsf-api" src="${lib.jsf.api.local}"/>
+        <unjar dest="target/retro/unjar/jsf-impl" src="${lib.jsf.impl.local}"/>
+        <unjar dest="target/retro/unjar/jbpm4jsf" src="${lib.jbpm.jbpm4jsf.jar.local}"/>
+        <unjar dest="target/retro/unjar/gravel" src="${lib.gravel.local}"/>
+        <replace file="target/retro/unjar/jsf-impl/com/sun/faces/jsf-ri-runtime.xml" token="java.lang.Enum" value="org.jboss.lang.EnumImpl"/>
 	      <retro destdir="target/retro/unjar/jsf-api">
 	          <classpath>
 	              <!-- Required for retro -->
@@ -214,15 +245,6 @@
 	          </classpath>
 	          <src path="target/retro/unjar/jsf-api"/>
 	      </retro>
-	      <zip basedir="target/retro/unjar/jsf-api" file="target/jsf-api-14.jar"/>
-        <delete dir="target/retro/unjar/jsf-api"/>
-    </target>
-
-    <target name="retro-jsf-impl" unless="jsf.impl.uptodate">
-        <delete file="target/jsf-impl-retro.jar"/>
-        <mkdir dir="target/retro/unjar/jsf-impl"/>
-        <unjar dest="target/retro/unjar/jsf-impl" src="${lib.jsf.impl.local}"/>
-        <replace file="target/retro/unjar/jsf-impl/com/sun/faces/jsf-ri-runtime.xml" token="java.lang.Enum" value="org.jboss.lang.EnumImpl"/>
         <retro destdir="target/retro/unjar/jsf-impl">
             <classpath>
                 <!-- Required for retro -->
@@ -240,15 +262,7 @@
             </classpath>
             <src path="target/retro/unjar/jsf-impl"/>
         </retro>
-        <zip basedir="target/retro/unjar/jsf-impl" file="target/jsf-impl-14.jar"/>
-        <delete dir="target/retro/unjar/jsf-impl"/>
-    </target>
-
-    <target name="retro-gravel" unless="gravel.uptodate">
-        <delete file="target/gravel-retro.jar"/>
-        <mkdir dir="target/retro/unjar/gravel"/>
-        <unjar dest="target/retro/unjar/gravel" src="${lib.gravel.local}"/>
-        <retro destdir="target/retro/unjar/gravel">
+        <retro destdir="target/retro/unjar/jbpm4jsf">
             <classpath>
                 <!-- Required for retro -->
                 <pathelement location="${lib.javassist.local}"/>
@@ -259,21 +273,16 @@
                 <pathelement location="${lib.jsf.api.local}"/>
                 <pathelement location="${lib.servlet.local}"/>
                 <pathelement location="${lib.el.api.local}"/>
+                <pathelement location="${lib.gravel.local}"/>
+                <pathelement location="${lib.jbpm.jpdl.jar.local}"/>
+                <pathelement location="${lib.jbpm.identity.jar.local}"/>
                 <pathelement location="${lib.facelets.local}"/>
                 <!-- actual original classpath -->
-                <pathelement location="target/retro/unjar/gravel"/>
+                <pathelement location="target/retro/unjar/jbpm4jsf"/>
             </classpath>
-            <src path="target/retro/unjar/gravel"/>
+            <src path="target/retro/unjar/jbpm4jsf"/>
         </retro>
-        <zip basedir="target/retro/unjar/gravel" file="target/gravel-14.jar"/>
-        <delete dir="target/retro/unjar/gravel" />
-    </target>
-
-    <target name="retro-jbpm4jsf" unless="jbpm4jsf.uptodate">
-        <delete file="target/jbpm4jsf-retro.jar"/>
-        <mkdir dir="target/retro/unjar/jbpm4jsf"/>
-        <unjar dest="target/retro/unjar/jbpm4jsf" src="${lib.jbpm.jbpm4jsf.jar.local}"/>
-        <retro destdir="target/retro/unjar/jbpm4jsf">
+        <retro destdir="target/retro/unjar/gravel">
             <classpath>
                 <!-- Required for retro -->
                 <pathelement location="${lib.javassist.local}"/>
@@ -284,38 +293,17 @@
                 <pathelement location="${lib.jsf.api.local}"/>
                 <pathelement location="${lib.servlet.local}"/>
                 <pathelement location="${lib.el.api.local}"/>
-                <pathelement location="${lib.gravel.local}"/>
-                <pathelement location="${lib.jbpm.jpdl.jar.local}"/>
-                <pathelement location="${lib.jbpm.identity.jar.local}"/>
                 <pathelement location="${lib.facelets.local}"/>
                 <!-- actual original classpath -->
-                <pathelement location="target/retro/unjar/jbpm4jsf"/>
+                <pathelement location="target/retro/unjar/gravel"/>
             </classpath>
-            <src path="target/retro/unjar/jbpm4jsf"/>
+            <src path="target/retro/unjar/gravel"/>
         </retro>
+        <zip basedir="target/retro/unjar/jsf-api" file="target/jsf-api-14.jar"/>
+        <zip basedir="target/retro/unjar/jsf-impl" file="target/jsf-impl-14.jar"/>
         <zip basedir="target/retro/unjar/jbpm4jsf" file="target/jbpm4jsf-14.jar"/>
-        <delete dir="target/retro/unjar/jbpm4jsf"/>
-    </target>
-
-    <target name="retro" depends="define.libs.classpath">
-        <taskdef name="retro" classname="org.jboss.ant.tasks.retro.Retro">
-            <classpath>
-                <pathelement location="${lib.jbossretro.local}"/>
-                <pathelement location="${lib.javassist.local}"/>
-            </classpath>
-        </taskdef>
-        <uptodate property="jsf.api.uptodate" targetfile="target/jsf-api-14.jar"
-          srcfile="${lib.jsf.api.local}"/>
-        <antcall target="retro-jsf-api"/>
-        <uptodate property="jsf.impl.uptodate" targetfile="target/jsf-impl-14.jar"
-          srcfile="${lib.jsf.impl.local}"/>
-        <antcall target="retro-jsf-impl"/>
-        <uptodate property="gravel.uptodate" targetfile="target/gravel-14.jar"
-          srcfile="${lib.gravel.local}"/>
-        <antcall target="retro-gravel"/>
-        <uptodate property="jbpm4jsf.uptodate" targetfile="target/jbpm4jsf-14.jar"
-            srcfile="${lib.jbpm.jbpm4jsf.jar.local}"/>
-        <antcall target="retro-jbpm4jsf" />
+        <zip basedir="target/retro/unjar/gravel" file="target/gravel-14.jar"/>
+        <delete dir="target/retro"/>
     </target>
 
     <target name="create.customized.config.files">
Only in jpdl-3.2.3.GA/console/src/main/webapp/sa: tasks_all.xhtml
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/sa/tasks.xhtml jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/sa/tasks.xhtml
--- jpdl-3.2.3.GA/console/src/main/webapp/sa/tasks.xhtml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/sa/tasks.xhtml	2009-02-06 09:17:29.000000000 +0100
@@ -12,16 +12,16 @@
 >
     <ui:composition template="../sa/t_loggedin.xhtml">
         <ui:define name="actions">
-        
             <ga:responseActions>
-            
-
-		<j4j:listTasksForActor actorId="#{request.remoteUser}" target="#{tasks}"/>
+                <j4j:listTasks includeEnded="true" target="#{tasks}"/>
                 
                 <!-- tasks parameters -->
                 <ga:parameter name="name" target="#{task_filter_name}" default="">
                     <f:converter converterId="gravel.StringWildcardFilter"/>
                 </ga:parameter>
+                <ga:parameter name="actor" target="#{task_filter_actor}" default="">
+                    <f:converter converterId="gravel.StringWildcardFilter"/>
+                </ga:parameter>
                 <ga:parameter name="fn" target="#{task_filter_notstarted}" default="true"/>
                 <ga:parameter name="fr" target="#{task_filter_running}" default="true"/>
                 <ga:parameter name="fs" target="#{task_filter_suspended}" default="true"/>
@@ -29,10 +29,9 @@
 
                 <gd:filter source="#{tasks}" target="#{tasks}" entryVar="entry" test="#{task_filter_notstarted and entry.start == null and entry.end == null or task_filter_ended and entry.end != null or (entry.start != null and entry.end == null) and (task_filter_suspended and entry.suspended or task_filter_running and ! entry.suspended)}"/>
                 <gd:filter if="#{! empty task_filter_name}" entryVar="entry" source="#{tasks}" target="#{tasks}" filter="#{task_filter_name}" filterArgument="#{entry.name == null ? '' : entry.name}"/>
+                <gd:filter if="#{! empty task_filter_actor}" entryVar="entry" source="#{tasks}" target="#{tasks}" filter="#{task_filter_actor}" filterArgument="#{entry.actorId == null ? '' : entry.actorId}"/>
 
 		</ga:responseActions>
-            
-            
         </ui:define>
 
         <ui:define name="menu">
@@ -47,4 +46,3 @@
 
 
 </html>
-
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/sa/t_loggedin.xhtml jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/sa/t_loggedin.xhtml
--- jpdl-3.2.3.GA/console/src/main/webapp/sa/t_loggedin.xhtml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/sa/t_loggedin.xhtml	2009-02-06 09:17:29.000000000 +0100
@@ -38,13 +38,6 @@
             <h:outputLink styleClass="headermenu" value="tasks.jsf" style="#{view.viewId == '/sa/tasks.xhtml' ? 'font-weight:bold' : ''}">
                 <h:outputText value="#{msgs['topmenu.tasks']}"/>
             </h:outputLink>
-            <ga:checkRole roles="#{access.role.tasks.listAll}">
-	            <h:outputLink styleClass="headermenu" value="tasks_all.jsf" style="#{view.viewId == '/sa/tasks_all.xhtml' ? 'font-weight:bold' : ''}">
-	                <h:outputText value="#{msgs['topmenu.tasks_all']}"/>
-	            </h:outputLink>
-	        </ga:checkRole>
-            
-            
             <ga:checkRole roles="#{access.role.jobs}">
                 <h:outputLink styleClass="headermenu" value="jobs.jsf" style="#{view.viewId == '/sa/jobs.xhtml' ? 'font-weight:bold' : ''}">
                     <h:outputText value="#{msgs['topmenu.jobs']}"/>
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/access.properties jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/access.properties
--- jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/access.properties	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/access.properties	2009-02-06 09:17:29.000000000 +0100
@@ -6,7 +6,7 @@
 # Require one of the given roles for identity management functionality.
 # Insert a bogus role name to disable identity management (if you are not
 # using the jBPM identity module, for example).
-role.identities=admin
+role.identities=manager
 
 # Fine-grained controls for different levels of identity management.
 role.identities.user=admin
@@ -32,7 +32,6 @@
 
 # Task management operations
 role.tasks=
-role.tasks.listAll=manager
 role.task.assign=manager
 role.task.assign.any=manager
 role.task.modify=
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/classes/messages.properties jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/classes/messages.properties
--- jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/classes/messages.properties	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/classes/messages.properties	2009-02-06 09:17:29.000000000 +0100
@@ -20,8 +20,7 @@
 top.logout=Log Out
 topmenu.caption=Manage:
 topmenu.processes=Processes
-topmenu.tasks_all=All Tasks
-topmenu.tasks=Personal/Group Tasks
+topmenu.tasks=Tasks
 topmenu.jobs=Jobs
 topmenu.identities=Identities
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/jboss-web.xml jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/jboss-web.xml
--- jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/jboss-web.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/jboss-web.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE jboss-web PUBLIC 
-    "-//JBoss//DTD Web Application 2.4//EN" 
-    "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
+
+<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
 
 <jboss-web>
     <!--
@@ -9,17 +8,4 @@
       <name> is one of the names configured in your login-config.xml.
     -->
     <security-domain>java:/jaas/jbpm</security-domain>
-
-    <resource-ref>
-        <res-ref-name>jdbc/JbpmDataSource</res-ref-name>
-        <jndi-name>java:JbpmDS</jndi-name>
-    </resource-ref>
-
-    <!-- EJB local references (begin) ===
-    <resource-ref>
-        <res-ref-name>jms/JbpmConnectionFactory</res-ref-name>
-        <jndi-name>java:JmsXA</jndi-name>
-    </resource-ref>
-    ==== EJB local references (end) -->
-
 </jboss-web>
diff -urbw --exclude .svn jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/web.xml
--- jpdl-3.2.3.GA/console/src/main/webapp/WEB-INF/web.xml	2009-02-06 09:12:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/console/src/main/webapp/WEB-INF/web.xml	2009-02-06 09:17:29.000000000 +0100
@@ -59,9 +59,6 @@
     <security-role>
         <role-name>admin</role-name>
     </security-role>
-    <security-role>
-        <role-name>user</role-name>
-    </security-role>
 
     <!--
        Security constraints - uncomment and optionally customize the role name to require
@@ -110,22 +107,11 @@
     </login-config>
     <!== End Login configuration option #2 -->
 
-    <!-- Job executor launcher (begin) -->
-    <listener>
-        <description>
-            Starts the job executor on servlet context initialization and stops it on 
-            servlet context destruction.
-        </description>
-        <listener-class>org.jbpm.web.JobExecutorLauncher</listener-class>
-    </listener>
-    <!-- Job executor launcher (end) -->
 
-    <!-- Job executor servlet (begin) ===
+
+    <!-- This servlet serves the purpose of executing pending timer jobs. -->
+    <!-- JbpmJobExecutorServlet BEGIN -->
     <servlet>
-        <description>
-            This servlet has the purpose of executing pending jobs. Deprecated,
-            replaced by JobExecutorLauncher.
-        </description>
         <servlet-name>JobExecutorServlet</servlet-name>
         <servlet-class>org.jbpm.job.executor.JobExecutorServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
@@ -134,54 +120,16 @@
         <servlet-name>JobExecutorServlet</servlet-name>
         <url-pattern>/jobs</url-pattern>
     </servlet-mapping>
-    ==== Job executor servlet (end) -->
-
-    <resource-ref>
-        <description>
-            Logical name of the data source that provides connections to the persistence service.
-            Must match the hibernate.connection.datasource property in the Hibernate 
-            configuration file.
-        </description>
-        <res-ref-name>jdbc/JbpmDataSource</res-ref-name>
-        <res-type>javax.sql.DataSource</res-type>
-        <res-auth>Container</res-auth>
-    </resource-ref>
+    <!-- JbpmJobExecutorServlet END -->
 
     <!-- This section is so that the web console can deploy in the jbpm-enterprise.ear module -->
-    <!-- EJB local references (begin) ===
-    <resource-ref>
-        <description>
-            Logical name of the factory that provides JMS connections to the message service.
-            Required for processes that contain asynchronous continuations.
-        </description>
-        <res-ref-name>jms/JbpmConnectionFactory</res-ref-name>
-        <res-type>javax.jms.ConnectionFactory</res-type>
-        <res-auth>Container</res-auth>
-    </resource-ref>
-
+    <!-- EJB LOCAL REFS BEGIN ===
     <ejb-local-ref>
-        <description>
-            Link to the local entity bean that implements the scheduler service. Required for
-            processes that contain timers.
-        </description>
         <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name>
         <ejb-ref-type>Entity</ejb-ref-type>
-        <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home>
-        <local>org.jbpm.ejb.LocalTimerEntity</local>
+        <local-home>org.jbpm.scheduler.ejbtimer.TimerEntityLocalHome</local-home>
+        <local>org.jbpm.scheduler.ejbtimer.TimerEntityLocal</local>
         <ejb-link>TimerEntityBean</ejb-link>
     </ejb-local-ref>
-
-    <message-destination-ref>
-        <description>
-            The message service sends job messages to the queue referenced here. To ensure 
-            this is the same queue from which the JobListenerBean receives messages, the 
-            message-destination-link element points to a common logical destination, JobQueue.
-        </description>
-        <message-destination-ref-name>jms/JobQueue</message-destination-ref-name>
-        <message-destination-type>javax.jms.Queue</message-destination-type>
-        <message-destination-usage>Produces</message-destination-usage>
-        <message-destination-link>JobQueue</message-destination-link>
-    </message-destination-ref>
-    ==== EJB local references (end) -->
-
+    ==== EJB LOCAL REFS END -->
 </web-app>
Only in jpdl-3.2.3.GA/designer/common: org.jbpm.gd.common
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/common: org.jbpm.gd.common.core
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/common: org.jbpm.gd.common.ui
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/build.properties jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/build.properties
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/build.properties	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/build.properties	2009-02-06 09:16:45.000000000 +0100
@@ -3,9 +3,7 @@
 bin.includes = icons/,\
                plugin.xml,\
                ui.jar,\
-               META-INF/,\
-               schema/jpdl-3.0.xsd,\
-               schema/jpdl-3.1.xsd,\
-               schema/jpdl-3.2.xsd
+               lib/,\
+               META-INF/
 jars.compile.order = ui.jar
 src.includes = src/
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/.classpath jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/.classpath
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/.classpath	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/.classpath	2009-02-06 09:16:45.000000000 +0100
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
+	<classpathentry exported="true" kind="lib" path="lib/dom4j-1.4.jar"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="bin"/>
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/icons/full/obj16: esb_enabled.gif
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl: lib
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/META-INF/MANIFEST.MF jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/META-INF/MANIFEST.MF
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/META-INF/MANIFEST.MF	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/META-INF/MANIFEST.MF	2009-02-06 09:16:31.000000000 +0100
@@ -1,12 +1,24 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: JBoss jBPM Graphical Designer jPDL Plug-in
+Bundle-Name: JBoss jBPM JPDL Designer Plug-in
 Bundle-SymbolicName: org.jbpm.gd.jpdl;singleton:=true
-Bundle-Version: 3.2.0.alpha1
-Bundle-ClassPath: ui.jar
+Bundle-Version: 3.1.0.SP1
+Bundle-ClassPath: ui.jar,
+ lib/dom4j-1.4.jar
 Bundle-Activator: org.jbpm.gd.jpdl.Plugin
-Bundle-Vendor: JBoss, a Division of Red Hat
-Export-Package: org.jbpm.gd.jpdl,
+Bundle-Vendor: JBoss Inc.
+Export-Package: org.jbpm.gd.common.command,
+ org.jbpm.gd.common.editor,
+ org.jbpm.gd.common.figure,
+ org.jbpm.gd.common.model,
+ org.jbpm.gd.common.notation,
+ org.jbpm.gd.common.part,
+ org.jbpm.gd.common.policy,
+ org.jbpm.gd.common.properties,
+ org.jbpm.gd.common.registry,
+ org.jbpm.gd.common.util,
+ org.jbpm.gd.common.xml,
+ org.jbpm.gd.jpdl,
  org.jbpm.gd.jpdl.command,
  org.jbpm.gd.jpdl.deployment,
  org.jbpm.gd.jpdl.dialog,
@@ -21,13 +33,38 @@
  org.jbpm.gd.jpdl.taskform,
  org.jbpm.gd.jpdl.util,
  org.jbpm.gd.jpdl.wizard,
- org.jbpm.gd.jpdl.xml
-Require-Bundle: org.eclipse.core.variables,
- org.eclipse.debug.core,
+ org.jbpm.gd.jpdl.xml,
+ org.jbpm.gd.pf.command,
+ org.jbpm.gd.pf.editor,
+ org.jbpm.gd.pf.model,
+ org.jbpm.gd.pf.notation,
+ org.jbpm.gd.pf.part,
+ org.jbpm.gd.pf.policy,
+ org.jbpm.gd.pf.properties,
+ org.jbpm.gd.pf.wizard,
+ org.jbpm.gd.pf.xml
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.ui,
+ org.eclipse.ui.views,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.jdt.ui,
  org.eclipse.jdt.core,
- org.eclipse.jdt.debug.ui,
+ org.eclipse.draw2d,
+ org.eclipse.gef,
+ org.eclipse.wst.sse.core,
+ org.eclipse.wst.xml.core,
+ org.eclipse.wst.xml.ui,
  org.eclipse.jdt.launching,
- org.eclipse.jdt.ui,
- org.jbpm.gd.common,
- com.ibm.icu
+ org.eclipse.wst.sse.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.forms,
+ org.eclipse.jface.text,
+ org.eclipse.wst.common.ui,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.debug.core,
+ org.eclipse.core.variables,
+ org.junit,
+ org.eclipse.ui.views.properties.tabbed
 Eclipse-LazyStart: true
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/plugin.xml jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/plugin.xml
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/plugin.xml	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/plugin.xml	2009-02-06 09:16:45.000000000 +0100
@@ -3,117 +3,6 @@
 <plugin>
    
    <extension 
-         point="org.eclipse.core.runtime.contentTypes">
-      <content-type 
-            id="semantic" 	
-            name="jpdl semantic info"
-            base-type="org.eclipse.core.runtime.xml"
-            default-charset="UTF-8">
-         <describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
-            <parameter 
-                  name="element" 
-                  value="process-definition"/>
-         </describer>
-      </content-type>
-   </extension>  
-  
-   <extension 
-         point = "org.eclipse.ui.editors">
-      <editor
-            class="org.jbpm.gd.jpdl.editor.JpdlEditor"
-            contributorClass="org.jbpm.gd.common.editor.ActionBarContributor" 
-            icon="icons/full/obj16/par_obj.gif"
-            id="org.jbpm.gd.jpdl.editor"
-            matchingStrategy="org.jbpm.gd.jpdl.editor.JpdlEditorMatchingStrategy"
-            name="jBPM Graphical Process Designer">
-         <contentTypeBinding contentTypeId="org.jbpm.gd.jpdl.semantic" /> 
-      </editor> 
-   </extension> 
-  	
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="jBPM JPDL"
-            icon="icons/full/obj16/process_definition_enabled.gif"
-            class="org.jbpm.gd.jpdl.JpdlPerspectiveFactory"
-            id="org.jbpm.gd.jpdl.JpdlPerspective">
-         <description>
-            A perspective to facilitate creation of jBPM JPDL process definitions.
-         </description>
-      </perspective>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="JBoss jBPM"
-            id="org.jbpm.ui">
-      </category> 
-      <wizard
-            name="Process Definition"
-            icon="icons/full/obj16/process_definition_enabled.gif"
-            category="org.jbpm.ui"
-            class="org.jbpm.gd.jpdl.wizard.NewProcessDefinitionWizard"
-            id="org.jbpm.gd.jpdl.wizard.new.file">
-         <description>
-            A wizard that creates a process diagram
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-      <wizard
-            name="Process Project"
-            icon="icons/full/obj16/process_definition_enabled.gif"
-            category="org.jbpm.ui"
-            class="org.jbpm.gd.jpdl.wizard.NewProcessProjectWizard"
-            id="org.jbpm.gd.jpdl.wizard.new.project"
-            project="true" >
-         <description>
-            A wizard that creates a new jBPM Project
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   
-   <extension
-         point="org.eclipse.jdt.core.classpathContainerInitializer">
-      <classpathContainerInitializer
-            class="org.jbpm.gd.jpdl.util.JbpmClasspathContainerInitializer"
-            id="JBPM"/>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.jbpm.gd.jpdl.prefs.MainPage"
-            id="org.jbpm.gd.jpdl.prefs.main"
-            name="JBoss jBPM"/>
-      <page
-            class="org.jbpm.gd.jpdl.prefs.JbpmLocationsPage"
-            id="org.jbpm.gd.jpdl.prefs.jbpmLocations"
-            name="Runtime Locations"
-            category="org.jbpm.gd.jpdl.prefs.main"/>
-      <page
-            class="org.jbpm.gd.jpdl.prefs.AssignmentTypesPage"
-            id="org.jbpm.gd.jpdl.prefs.assignmentTypes"
-            name="Assignment Types"
-            category="org.jbpm.gd.jpdl.prefs.main"/>
-      <page
-            class="org.jbpm.gd.jpdl.prefs.ServerDeploymentPage"
-            id="org.jbpm.gd.jpdl.prefs.deployment"
-            name="Server Deployment"
-            category="org.jbpm.gd.jpdl.prefs.main"/>
-      <page
-            class="org.jbpm.gd.jpdl.prefs.JpdlTemplatesPage"
-            id="org.jbpm.gd.jpdl.prefs.templates"
-            name="Jpdl Templates"
-            category="org.jbpm.gd.jpdl.prefs.main"/>
-   </extension>
-   
-   <extension
          point="org.eclipse.wst.xml.core.catalogContributions">
       <catalogContribution id="org.jbpm.core">
          <public
@@ -134,16 +23,16 @@
       </catalogContribution>
    </extension>
    
+   <extension-point id="dsl" name="jBPM Domain Specific Language Extensions" schema="schema/dsl.exsd"/>
    <extension 
-   		 point="org.jbpm.gd.common.dsl">
+   		 point="org.jbpm.gd.jpdl.dsl">
       <language 
-            id="org.jbpm.gd.jpdl" 
-            name="jBPM Process Definition Language" 
-            editor="org.jbpm.gd.jpdl.editor"/>		 
+            id="org.jbpm.gd.jpdl" name="jBPM Process Definition Language" editor="org.jbpm.gd.jpdl.editor"/>		 
    </extension>
    
+   <extension-point id="semanticElements" name="JPDL Element Extensions" schema="schema/semanticElements.exsd"/>
    <extension
-         point="org.jbpm.gd.common.semanticElements">
+         point="org.jbpm.gd.jpdl.semanticElements">
       <semanticElement
             icon="icons/full/obj16/action_enabled.gif"
             id="org.jbpm.gd.jpdl.action"
@@ -264,13 +153,6 @@
             modelClass="org.jbpm.gd.jpdl.model.Node"
             name="node"/>
       <semanticElement
-            icon="icons/full/obj16/esb_enabled.gif"
-            id="org.jbpm.gd.jpdl.esbNode"
-            label="ESB Service"
-            language="org.jbpm.gd.jpdl"
-            modelClass="org.jbpm.gd.jpdl.model.EsbNode"
-            name="esb"/>
-      <semanticElement
             icon="icons/full/obj16/process_definition_enabled.gif"
             id="org.jbpm.gd.jpdl.processDefinition"
             label="Process Definition"
@@ -379,161 +261,640 @@
             name="variable"/>
    </extension>
    
-   <extension 
-         point="org.jbpm.gd.common.palette">
-      <paletteContribution 
-            id="jpdl" 
-            editorClass="org.jbpm.gd.jpdl.editor.JpdlEditor">
-         <category 
-               id="basicNodeTools"/>
-         <category 
-               id="advancedNodeTools"/>
-         <category 
-               id="transitionTools"/>
-         <entry
-               category="org.jbpm.gd.jpdl.basicNodeTools"
-               icon="icons/full/obj16/start_state_enabled.gif"
-               id="startStateTool"
-               label="Start"
-               node="true"
-               object="org.jbpm.gd.jpdl.startState"
-               tooltip="Creates a start node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.basicNodeTools"
-               icon="icons/full/obj16/state_enabled.gif"
-               id="stateTool"
-               label="State"
-               node="true"
-               object="org.jbpm.gd.jpdl.state"
-               tooltip="Creates a state node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.basicNodeTools"
-               icon="icons/full/obj16/end_state_enabled.gif"
-               id="endStateTool"
-               label="End"
-               node="true"
-               object="org.jbpm.gd.jpdl.endState"
-               tooltip="Creates an end node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/fork_enabled.gif"
-               id="forkTool"
-               label="Fork"
-               node="true"
-               object="org.jbpm.gd.jpdl.fork"
-               tooltip="Creates a fork node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/join_enabled.gif"
-               id="joinTool"
-               label="Join"
-               node="true"
-               object="org.jbpm.gd.jpdl.join"
-               tooltip="Creates a join node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/decision_enabled.gif"
-               id="decisionTool"
-               label="Decision"
-               node="true"
-               object="org.jbpm.gd.jpdl.decision"
-               tooltip="Creates a decision node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/node_enabled.gif"
-               id="nodeTool"
-               label="Node"
-               node="true"
-               object="org.jbpm.gd.jpdl.node"
-               tooltip="Creates a node node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/task_node_enabled.gif"
-               id="taskNodeTool"
-               label="Task Node"
-               node="true"
-               object="org.jbpm.gd.jpdl.taskNode"
-               tooltip="Creates a task node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/mail_node_enabled.gif"
-               id="mailNodeTool"
-               label="Mail Node"
-               node="true"
-               object="org.jbpm.gd.jpdl.mailNode"
-               tooltip="Creates a mail node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/esb_enabled.gif"
-               id="esbServiceTool"
-               label="ESB Service"
-               node="true"
-               object="org.jbpm.gd.jpdl.esbNode"
-               tooltip="Creates an ESB service node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/process_state_enabled.gif"
-               id="processStateTool"
-               label="Process State"
-               node="true"
-               object="org.jbpm.gd.jpdl.processState"
-               tooltip="Creates a process state node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.advancedNodeTools"
-               icon="icons/full/obj16/super_state_enabled.gif"
-               id="superStateTool"
-               label="Super State"
-               node="true"
-               object="org.jbpm.gd.jpdl.superState"
-               tooltip="Creates a superstate node"/>
-         <entry
-               category="org.jbpm.gd.jpdl.transitionTools"
-               icon="icons/full/obj16/transition_enabled.gif"
-               id="transitionTool"
-               label="Transition"
-               node="false"
-               object="org.jbpm.gd.jpdl.transition"
-               tooltip="Creates a transition"/>
-      </paletteContribution>
+   
+  <extension point = "org.eclipse.ui.editors">
+    <editor
+          class="org.jbpm.gd.jpdl.editor.JpdlEditor"
+          contributorClass="org.jbpm.gd.common.editor.ActionBarContributor" 
+          icon="icons/full/obj16/par_obj.gif"
+          id="org.jbpm.gd.jpdl.editor"
+          matchingStrategy="org.jbpm.gd.jpdl.editor.JpdlEditorMatchingStrategy"
+          name="jBPM Graphical Process Designer">
+        <contentTypeBinding contentTypeId="org.jbpm.gd.jpdl.semantic" /> 
+    </editor> 
    </extension>	
 
    <extension 
-         point="org.jbpm.gd.common.notationElements">
-      <notationElement 
-            id="root" 
-            class="org.jbpm.gd.jpdl.notation.JpdlRootContainer"/>
-	  <notationElement 
-	        id="container" 
-	        class="org.jbpm.gd.jpdl.notation.JpdlNodeContainer"/>
-	  <notationElement 
-	        id="node" 
-	        class="org.jbpm.gd.jpdl.notation.JpdlNode"/>
-	  <notationElement 
-	        id="edge" 
-	        class="org.jbpm.gd.jpdl.notation.JpdlEdge"/>
+         point="org.eclipse.ui.perspectives">
+      <perspective
+            name="jBPM JPDL"
+            icon="icons/full/obj16/process_definition_enabled.gif"
+            class="org.jbpm.gd.jpdl.JpdlPerspectiveFactory"
+            id="org.jbpm.gd.jpdl.JpdlPerspective">
+         <description>
+            A perspective to facilitate creation of jBPM JPDL process definitions.
+         </description>
+      </perspective>
+   </extension>
+   
+  <extension point="org.eclipse.core.runtime.contentTypes">
+  	<content-type id="semantic" 	name="jpdl semantic info"
+		base-type="org.eclipse.core.runtime.xml"
+		default-charset="UTF-8">
+		<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
+			<parameter name="element" value="process-definition"/>
+		</describer>
+	</content-type>
    </extension>  
 	
    <extension 
-         point="org.jbpm.gd.common.xmlMappings">
-      <mapping
-      		id="org.jbpm.gd.jpdl.action"
-      		semanticElement="org.jbpm.gd.jpdl.action"
-            adapterClass="org.jbpm.gd.jpdl.xml.ActionDomAdapter"
-            xmlElement="action"/>
-      <mapping
-            id="org.jbpm.gd.jpdl.assignment"
-            semanticElement="org.jbpm.gd.jpdl.assignment"
-            adapterClass="org.jbpm.gd.jpdl.xml.AssignmentDomAdapter"
-            xmlElement="assignment"/>
-      <mapping
-      		id="org.jbpm.gd.jpdl.cancelTimer"
-      		semanticElement="org.jbpm.gd.jpdl.cancelTimer"
-            adapterClass="org.jbpm.gd.jpdl.xml.CancelTimerDomAdapter"
-      		xmlElement="cancel-timer"/>
-      <mapping
-      		id="org.jbpm.gd.jpdl.condition"
-      		semanticElement="org.jbpm.gd.jpdl.condition"
-            adapterClass="org.jbpm.gd.jpdl.xml.ConditionDomAdapter"
+         point="org.eclipse.ui.newWizards">
+      <category
+            name="JBoss jBPM"
+            id="org.jbpm.ui">
+      </category> 
+      <wizard
+            name="Process Definition"
+            icon="icons/full/obj16/process_definition_enabled.gif"
+            category="org.jbpm.ui"
+            class="org.jbpm.gd.jpdl.wizard.NewProcessDefinitionWizard"
+            id="org.jbpm.gd.jpdl.wizard.new.file">
+         <description>
+            A wizard that creates a process diagram
+         </description>
+         <selection
+               class="org.eclipse.core.resources.IResource">
+         </selection>
+      </wizard>
+      <wizard
+            name="Process Project"
+            icon="icons/full/obj16/process_definition_enabled.gif"
+            category="org.jbpm.ui"
+            class="org.jbpm.gd.jpdl.wizard.NewProcessProjectWizard"
+            id="org.jbpm.gd.jpdl.wizard.new.project"
+            project="true" >
+         <description>
+            A wizard that creates a new jBPM Project
+         </description>
+         <selection
+               class="org.eclipse.core.resources.IResource">
+         </selection>
+      </wizard>
+   </extension>
+   
+   <extension
+         point="org.eclipse.jdt.core.classpathContainerInitializer">
+      <classpathContainerInitializer
+            class="org.jbpm.gd.jpdl.util.JbpmClasspathContainerInitializer"
+            id="JBPM"/>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.jbpm.gd.jpdl.prefs.MainPage"
+            id="org.jbpm.gd.jpdl.prefs.main"
+            name="JBoss jBPM"/>
+      <page
+            class="org.jbpm.gd.jpdl.prefs.JbpmLocationsPage"
+            id="org.jbpm.gd.jpdl.prefs.jbpmLocations"
+            name="Runtime Locations"
+            category="org.jbpm.gd.jpdl.prefs.main"/>
+      <page
+            class="org.jbpm.gd.jpdl.prefs.AssignmentTypesPage"
+            id="org.jbpm.gd.jpdl.prefs.assignmentTypes"
+            name="Assignment Types"
+            category="org.jbpm.gd.jpdl.prefs.main"/>
+      <page
+            class="org.jbpm.gd.jpdl.prefs.ServerDeploymentPage"
+            id="org.jbpm.gd.jpdl.prefs.deployment"
+            name="Server Deployment"
+            category="org.jbpm.gd.jpdl.prefs.main"/>
+      <page
+            class="org.jbpm.gd.jpdl.prefs.JpdlTemplatesPage"
+            id="org.jbpm.gd.jpdl.prefs.templates"
+            name="Jpdl Templates"
+            category="org.jbpm.gd.jpdl.prefs.main"/>
+   </extension>
+   
+   <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+      <propertyContributor
+            contributorId="org.jbpm.gd.jpdl.editor"
+            labelProvider="org.jbpm.gd.common.properties.ElementLabelProvider"
+            typeMapper="org.jbpm.gd.common.properties.ElementTypeMapper">
+         <propertyCategory category="org.jbpm.gd.jpdl.general"/>
+         <propertyCategory category="org.jbpm.gd.jpdl.specific"/>
+         <propertyCategory category="org.jbpm.gd.jpdl.advanced"/>
+      </propertyContributor>
+   </extension>
+
+   <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
+      <propertyTabs contributorId="org.jbpm.gd.jpdl.editor">
+         <propertyTab 
+            category="org.jbpm.gd.jpdl.general"   
+            id="org.jbpm.gd.jpdl.general"
+            label="General"/>
+         <propertyTab 
+            afterTab="org.jbpm.gd.jpdl.general"
+            category="org.jbpm.gd.jpdl.specific"   
+            id="org.jbpm.gd.jpdl.details"
+            label="Details"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.swimlanes"
+               image="icons/full/obj16/swimlane_enabled.gif"
+               label="Swimlanes"/>
+         <propertyTab
+               afterTab="org.jbpm.gd.jpdl.details"
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.events"
+               image="icons/full/obj16/event_enabled.gif"
+               label="Events"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.actionElements"
+               image="icons/full/obj16/action_enabled.gif"
+               label="Actions"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.tasks"
+               image="icons/full/obj16/task_enabled.gif"
+               label="Tasks"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.exceptions"
+               image="icons/full/obj16/exception_enabled.gif"
+               label="Exceptions"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.startStateTask"
+               image="icons/full/obj16/task_enabled.gif"
+               label="Task"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.subprocess"
+               label="Subprocess"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.mail"
+               label="Mail Info"/>
+         <propertyTab
+               afterTab="org.jbpm.gd.jpdl.details"
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.assignment"
+               label="Assignment"/>
+         <propertyTab
+               afterTab="org.jbpm.gd.jpdl.details"
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.controller"
+               label="Controller"/>
+         <propertyTab
+               afterTab="org.jbpm.gd.jpdl.details"
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.reminder"
+               label="Reminder"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.action"
+               image="icons/full/obj16/action_enabled.gif"
+               label="Action"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.decisionHandler"
+               image="icons/full/obj16/decision_enabled.gif"
+               label="Handler"/>
+         <propertyTab
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.condition"
+               image="icons/full/obj16/action_enabled.gif"
+               label="Condition"/>
+         <propertyTab
+               afterTab="org.jbpm.gd.jpdl.details"
+               category="org.jbpm.gd.jpdl.specific"
+               id="org.jbpm.gd.jpdl.timer"
+               image="icons/full/obj16/timer_enabled.gif"
+               label="Timers"/>
+         <propertyTab 
+            category="org.jbpm.gd.jpdl.advanced"   
+            id="org.jbpm.gd.jpdl.advanced"
+            label="Advanced"/>
+      </propertyTabs>
+   </extension>
+   
+   <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
+      <propertySections contributorId="org.jbpm.gd.jpdl.editor">
+         <propertySection
+               class="org.jbpm.gd.common.properties.NamedElementSection"
+               filter="org.jbpm.gd.jpdl.properties.NamedElementFilter"
+               id="org.jbpm.gd.jpdl.name"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.common.model.SemanticElement"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.ActionDetailsSection"
+               id="org.jbpm.gd.jpdl.actionDetails"
+               tab="org.jbpm.gd.jpdl.details">
+            <input type="org.jbpm.gd.jpdl.model.Action"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.EventSection"
+               filter="org.jbpm.gd.jpdl.properties.EventFilter"
+               id="org.jbpm.gd.jpdl.event"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.jpdl.model.Event"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.ScriptDetailsSection"
+               id="org.jbpm.gd.jpdl.scriptDetails"
+               tab="org.jbpm.gd.jpdl.details">
+            <input type="org.jbpm.gd.jpdl.model.Script"/>
+          </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.TimerActionSection"
+               id="org.jbpm.gd.jpdl.timerAction"
+               tab="org.jbpm.gd.jpdl.action">
+            <input type="org.jbpm.gd.jpdl.model.Timer"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.MailElementMailInfoSection"
+               id="org.jbpm.gd.jpdl.mail"
+               tab="org.jbpm.gd.jpdl.mail">
+            <input type="org.jbpm.gd.jpdl.model.MailElement"/>
+         </propertySection>
+         <propertySection
+               afterSection="org.jbpm.gd.jpdl.name"
+               class="org.jbpm.gd.jpdl.properties.MailElementTemplateSection"
+               filter="org.jbpm.gd.jpdl.properties.MailElementTemplateFilter"
+               id="org.jbpm.gd.jpdl.template"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.common.model.SemanticElement"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.ActionNameSection"
+               id="org.jbpm.gd.jpdl.actionName"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.jpdl.model.Action"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.TimerGeneralSection"
+               id="org.jbpm.gd.jpdl.timerGeneral"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.jpdl.model.Timer"/>
+         </propertySection>
+         <propertySection
+               afterSection="org.jbpm.gd.jpdl.template"
+               class="org.jbpm.gd.jpdl.properties.DescribableElementSection"
+               filter="org.jbpm.gd.jpdl.properties.DescribableElementFilter"
+               id="org.jbpm.gd.jpdl.description"
+               tab="org.jbpm.gd.jpdl.general">
+            <input type="org.jbpm.gd.common.model.SemanticElement"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.AsyncableElementSection"
+               filter="org.jbpm.gd.jpdl.properties.AsyncableElementFilter"
+               id="org.jbpm.gd.jpdl.async"
+               tab="org.jbpm.gd.jpdl.advanced">
+            <input type="org.jbpm.gd.common.model.SemanticElement"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.AcceptPropagatedEventsSection"
+               id="org.jbpm.gd.jpdl.acceptPropagatedEvents"
+               tab="org.jbpm.gd.jpdl.advanced">
+            <input type="org.jbpm.gd.jpdl.model.Action"/>
+            <input type="org.jbpm.gd.jpdl.model.Script"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.TaskDetailsSection"
+               id="org.jbpm.gd.jpdl.taskDetails"
+               tab="org.jbpm.gd.jpdl.details">
+            <input type="org.jbpm.gd.jpdl.model.Task"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.AssignmentSection"
+               id="org.jbpm.gd.jpdl.assignment"
+               tab="org.jbpm.gd.jpdl.assignment">
+            <input type="org.jbpm.gd.jpdl.model.Assignable"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.ControllerSection"
+               id="org.jbpm.gd.jpdl.controller"
+               tab="org.jbpm.gd.jpdl.controller">
+            <input type="org.jbpm.gd.jpdl.model.Task"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.ExceptionHandlerContainerSection"
+               id="org.jbpm.gd.jpdl.exceptions"
+               tab="org.jbpm.gd.jpdl.exceptions">
+            <input type="org.jbpm.gd.jpdl.model.ExceptionHandlerContainer"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.StartStateTaskSection"
+               id="org.jbpm.gd.jpdl.startStateTask"
+               tab="org.jbpm.gd.jpdl.startStateTask">
+            <input type="org.jbpm.gd.jpdl.model.StartState"/>
+          </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.SubProcessSection"
+               id="org.jbpm.gd.jpdl.subprocess"
+               tab="org.jbpm.gd.jpdl.subprocess">
+            <input type="org.jbpm.gd.jpdl.model.ProcessState"/>
+          </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.NodeActionSection"
+               id="org.jbpm.gd.jpdl.nodeAction"
+               tab="org.jbpm.gd.jpdl.action">
+            <input type="org.jbpm.gd.jpdl.model.Node"/>
+         </propertySection>
+          <propertySection
+               class="org.jbpm.gd.jpdl.properties.DecisionHandlerSection"
+               id="org.jbpm.gd.jpdl.decisionHandler"
+               tab="org.jbpm.gd.jpdl.decisionHandler">
+            <input type="org.jbpm.gd.jpdl.model.Decision"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.SwimlaneContainerSection"
+               id="org.jbpm.gd.jpdl.swimlanes"
+               tab="org.jbpm.gd.jpdl.swimlanes">
+            <input type="org.jbpm.gd.jpdl.model.ProcessDefinition"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.EventContainerSection"
+               id="org.jbpm.gd.jpdl.events"
+               tab="org.jbpm.gd.jpdl.events">
+            <input type="org.jbpm.gd.jpdl.model.EventContainer"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.ActionElementContainerSection"
+               id="org.jbpm.gd.jpdl.actionElements"
+               tab="org.jbpm.gd.jpdl.actionElements">
+            <input type="org.jbpm.gd.jpdl.model.ActionElementContainer"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.TaskContainerSection"
+               id="org.jbpm.gd.jpdl.tasks"
+               tab="org.jbpm.gd.jpdl.tasks">
+            <input type="org.jbpm.gd.jpdl.model.TaskContainer"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.TaskReminderSection"
+               id="org.jbpm.gd.jpdl.taskReminder"
+               tab="org.jbpm.gd.jpdl.reminder">
+            <input type="org.jbpm.gd.jpdl.model.Task"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.ConditionSection"
+               id="org.jbpm.gd.jpdl.condition"
+               tab="org.jbpm.gd.jpdl.condition">
+            <input type="org.jbpm.gd.jpdl.model.Transition"/>
+         </propertySection>
+         <propertySection
+               class="org.jbpm.gd.jpdl.properties.TimerContainerSection"
+               id="org.jbpm.gd.jpdl.timer"
+               tab="org.jbpm.gd.jpdl.timer">
+            <input type="org.jbpm.gd.jpdl.model.TimerContainer"/>
+         </propertySection>
+      </propertySections>
+   </extension> 
+   
+   <extension point="org.eclipse.ui.propertyPages"> 
+<!--        <page 
+            id="org.jbpm.ui.GraphElementGeneralPage" 
+            name="General" 
+            objectClass="org.jbpm.gd.jpdl.model.JpdlElement" 
+            class="org.jbpm.gd.jpdl.ui.properties.JpdlElementGeneralPropertyPage"> 
+        </page> 
+        <page 
+            id="org.jbpm.ui.TaskAssignmentPage" 
+            name="Assignment" 
+            objectClass="org.jbpm.ui.model.Task" 
+            class="org.jbpm.gd.jpdl.ui.properties.TaskAssignmentPropertyPage"> 
+        </page> 
+        <page 
+            id="org.jbpm.ui.TaskControllerPage" 
+            name="Controller" 
+            objectClass="org.jbpm.ui.model.Task" 
+            class="org.jbpm.gd.jpdl.ui.properties.TaskControllerPropertyPage"> 
+        </page> 
+        <page 
+            id="org.jbpm.ui.TaskAdvancedPage" 
+            name="Advanced" 
+            objectClass="org.jbpm.ui.model.Task" 
+            class="org.jbpm.gd.jpdl.ui.properties.TaskAdvancedPropertyPage"> 
+        </page> 
+        <page 
+            id="org.jbpm.ui.ActionHandlerPage" 
+            name="Handler" 
+            objectClass="org.jbpm.ui.model.Action" 
+            class="org.jbpm.gd.jpdl.ui.properties.ActionHandlerPropertyPage"> 
+        </page> 
+        <page
+              class="org.jbpm.gd.jpdl.ui.properties.NodeActionPropertyPage"
+              id="org.jbpm.ui.NodeActionPage"
+              name="Handler"
+              objectClass="org.jbpm.ui.model.Node">
+           <filter
+                 name="nodeTagEqualsTo"
+                 value="node"/> 
+        </page> -->
+    </extension> 
+<!--   <extension
+         point="org.jbpm.gd.jpdl.ui.policies">
+      <editPolicy
+            id="org.jbpm.ui.tree.GraphElementComponentEditPolicy"
+            part="org.jbpm.ui.part.tree.ElementTreeEditPart"
+            policy="org.jbpm.ui.policy.GraphElementComponentEditPolicy"
+            role="ComponentEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.tree.ProcessDefinitionComponentEditPolicy"
+            part="org.jbpm.ui.part.tree.ProcessDefinitionTreeEditPart"
+            policy="org.jbpm.ui.policy.ProcessDefinitionComponentEditPolicy"
+            role="ComponentEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.tree.NodeComponentEditPolicy"
+            part="org.jbpm.ui.part.tree.NodeTreeEditPart"
+            policy="org.jbpm.ui.policy.NodeComponentEditPolicy"
+            role="ComponentEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.NodeComponentEditPolicy"
+            part="org.jbpm.ui.part.graph.NodeGraphicalEditPart"
+            policy="org.jbpm.ui.policy.NodeComponentEditPolicy"
+            role="ComponentEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.NodeGraphicalNodeEditPolicy"
+            part="org.jbpm.ui.part.graph.NodeGraphicalEditPart"
+            policy="org.jbpm.ui.policy.NodeGraphicalNodeEditPolicy"
+            role="GraphicalNodeEditPolciy"/>
+      <editPolicy
+            id="org.jbpm.ui.NodeDirectEditPolicy"
+            part="org.jbpm.ui.part.graph.NodeGraphicalEditPart"
+            policy="org.jbpm.ui.policy.NodeDirectEditPolicy"
+            role="DirectEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.TransitionConnectionEndpointsEditPolicy"
+            part="org.jbpm.ui.part.graph.TransitionGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TransitionConnectionEndpointsEditPolicy"
+            role="Connection Endpoint Policy"/>
+      <editPolicy
+            id="org.jbpm.ui.TransitionConnectionEditPolicy"
+            part="org.jbpm.ui.part.graph.TransitionGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TransitionConnectionEditPolicy"
+            role="ConnectionEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.TransitionConnectionBendpointEditPolicy"
+            part="org.jbpm.ui.part.graph.TransitionGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TransitionConnectionBendpointEditPolicy"
+            role="Connection Bendpoint Policy"/>
+      <editPolicy
+            id="org.jbpm.ui.ProcessDefinitionXYLayoutEditPolicy"
+            part="org.jbpm.ui.part.graph.ProcessDefinitionGraphicalEditPart"
+            policy="org.jbpm.ui.policy.ProcessDefinitionXYLayoutEditPolicy"
+            role="LayoutEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.TransitionLabelGraphicalNodeEditPolicy"
+            part="org.jbpm.ui.part.graph.TransitionLabelGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TransitionLabelGraphicalNodeEditPolicy"
+            role="GraphicalNodeEditPolciy"/>
+      <editPolicy
+            id="org.jbpm.ui.TransitionLabelDirectEditPolicy"
+            part="org.jbpm.ui.part.graph.TransitionLabelGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TransitionLabelDirectEditPolicy"
+            role="DirectEditPolicy"/>
+      <editPolicy
+            id="org.jbpm.ui.TaskSelectionFeedbackEditPolicy"
+            part="org.jbpm.ui.part.graph.TaskGraphicalEditPart"
+            policy="org.jbpm.ui.policy.TaskSelectionFeedbackEditPolicy"
+            role="Selection Feedback"/>
+   </extension> -->
+
+	<extension-point id="palette" name="Graphical Designer Palette Extensions" schema="schema/palette.exsd"/>
+
+    <extension point="org.jbpm.gd.jpdl.palette">
+       <paletteContribution id="jpdl" editorClass="org.jbpm.gd.jpdl.editor.JpdlEditor">
+	    <category id="basicNodeTools"/>
+	    <category id="advancedNodeTools"/>
+	    <category id="transitionTools"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.basicNodeTools"
+           icon="icons/full/obj16/start_state_enabled.gif"
+           id="startStateTool"
+           label="Start"
+           node="true"
+           object="org.jbpm.gd.jpdl.startState"
+           tooltip="Creates a start node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.basicNodeTools"
+           icon="icons/full/obj16/state_enabled.gif"
+           id="stateTool"
+           label="State"
+           node="true"
+           object="org.jbpm.gd.jpdl.state"
+           tooltip="Creates a state node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.basicNodeTools"
+           icon="icons/full/obj16/end_state_enabled.gif"
+           id="endStateTool"
+           label="End"
+           node="true"
+           object="org.jbpm.gd.jpdl.endState"
+           tooltip="Creates an end node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/fork_enabled.gif"
+           id="forkTool"
+           label="Fork"
+           node="true"
+           object="org.jbpm.gd.jpdl.fork"
+           tooltip="Creates a fork node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/join_enabled.gif"
+           id="joinTool"
+           label="Join"
+           node="true"
+           object="org.jbpm.gd.jpdl.join"
+           tooltip="Creates a join node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/decision_enabled.gif"
+           id="decisionTool"
+           label="Decision"
+           node="true"
+           object="org.jbpm.gd.jpdl.decision"
+           tooltip="Creates a decision node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/node_enabled.gif"
+           id="nodeTool"
+           label="Node"
+           node="true"
+           object="org.jbpm.gd.jpdl.node"
+           tooltip="Creates a node node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/task_node_enabled.gif"
+           id="taskNodeTool"
+           label="Task Node"
+           node="true"
+           object="org.jbpm.gd.jpdl.taskNode"
+           tooltip="Creates a task node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/mail_node_enabled.gif"
+           id="mailNodeTool"
+           label="Mail Node"
+           node="true"
+           object="org.jbpm.gd.jpdl.mailNode"
+           tooltip="Creates a mail node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/process_state_enabled.gif"
+           id="processStateTool"
+           label="Process State"
+           node="true"
+           object="org.jbpm.gd.jpdl.processState"
+           tooltip="Creates a process state node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.advancedNodeTools"
+           icon="icons/full/obj16/super_state_enabled.gif"
+           id="superStateTool"
+           label="Super State"
+           node="true"
+           object="org.jbpm.gd.jpdl.superState"
+           tooltip="Creates a superstate node"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.transitionTools"
+           icon="icons/full/obj16/transition_enabled.gif"
+           id="transitionTool"
+           label="Transition"
+           node="false"
+           object="org.jbpm.gd.jpdl.transition"
+           tooltip="Creates a superstate node"/>
+	  </paletteContribution>
+   </extension>	
+
+	<extension-point id="notationElements" name="Graphical Editor Notational Extensions" schema="schema/notationElements.exsd"/>
+	
+	<extension point="org.jbpm.gd.jpdl.notationElements">
+	  <notationElement id="root" class="org.jbpm.gd.jpdl.notation.JpdlRootContainer"/>
+	  <notationElement id="container" class="org.jbpm.gd.jpdl.notation.JpdlNodeContainer"/>
+	  <notationElement id="node" class="org.jbpm.gd.jpdl.notation.JpdlNode"/>
+	  <notationElement id="edge" class="org.jbpm.gd.jpdl.notation.JpdlEdge"/>
+	  <notationElement id="label" class="org.jbpm.gd.common.notation.Label"/>
+	  <notationElement id="bendpoint" class="org.jbpm.gd.common.notation.BendPoint"/>
+	</extension>  
+	
+	<extension-point id="xmlMappings" name="Graphical Editor Element to XML Mapping" schema="schema/xmlMappings.exsd"/>
+	
+	<extension point="org.jbpm.gd.jpdl.xmlMappings">
+      <mapping
+      		id="org.jbpm.gd.jpdl.action"
+      		semanticElement="org.jbpm.gd.jpdl.action"
+            adapterClass="org.jbpm.gd.jpdl.xml.ActionDomAdapter"
+            xmlElement="action"/>
+      <mapping
+            id="org.jbpm.gd.jpdl.assignment"
+            semanticElement="org.jbpm.gd.jpdl.assignment"
+            adapterClass="org.jbpm.gd.jpdl.xml.AssignmentDomAdapter"
+            xmlElement="assignment"/>
+      <mapping
+      		id="org.jbpm.gd.jpdl.cancelTimer"
+      		semanticElement="org.jbpm.gd.jpdl.cancelTimer"
+            adapterClass="org.jbpm.gd.jpdl.xml.CancelTimerDomAdapter"
+      		xmlElement="cancel-timer"/>
+      <mapping
+      		id="org.jbpm.gd.jpdl.condition"
+      		semanticElement="org.jbpm.gd.jpdl.condition"
+            adapterClass="org.jbpm.gd.jpdl.xml.ConditionDomAdapter"
       		xmlElement="condition"/>
       <mapping
       		id="org.jbpm.gd.jpdl.controller"
@@ -606,13 +967,6 @@
             adapterClass="org.jbpm.gd.jpdl.xml.NodeDomAdapter"
       		xmlElement="node"/>
       <mapping
-      		id="org.jbpm.gd.jpdl.esbNode"
-      		semanticElement="org.jbpm.gd.jpdl.esbNode"
-            adapterClass="org.jbpm.gd.jpdl.xml.NodeDomAdapter"
-            mapperClass="org.jbpm.gd.jpdl.xml.EsbNodeMapper"
-            mapperClassPriority="999"
-      		xmlElement="node"/>
-      <mapping
       		id="org.jbpm.gd.jpdl.processDefinition"
       		semanticElement="org.jbpm.gd.jpdl.processDefinition"
             adapterClass="org.jbpm.gd.jpdl.xml.ProcessDefinitionDomAdapter"
@@ -694,8 +1048,9 @@
       		xmlElement="variable"/>
 	</extension>
 
-	<extension 
-	      point="org.jbpm.gd.common.notationMappings">
+	<extension-point id="notationMappings" name="Graphical Editor Element to Notation Mappings" schema="schema/notationMappings.exsd"/>
+	
+	<extension point="org.jbpm.gd.jpdl.notationMappings">
 	   <mapping
 	      id="decision"
 	      semanticElement="org.jbpm.gd.jpdl.decision"
@@ -725,10 +1080,6 @@
 	      semanticElement="org.jbpm.gd.jpdl.node"
 	      notationElement="org.jbpm.gd.jpdl.node"/>
 	   <mapping
-	      id="esbNode"
-	      semanticElement="org.jbpm.gd.jpdl.esbNode"
-	      notationElement="org.jbpm.gd.jpdl.node"/>
-	   <mapping
 	      id="processState"
 	      semanticElement="org.jbpm.gd.jpdl.processState"
 	      notationElement="org.jbpm.gd.jpdl.node"/>
@@ -760,6 +1111,87 @@
 	      notationElement="org.jbpm.gd.jpdl.edge"/>
 	</extension>   
 	
+	<extension-point id="graphicalEditParts" name="Graphical EditParts Extensions" schema="schema/editParts.exsd"/>
+	
+	<extension point="org.jbpm.gd.jpdl.graphicalEditParts">
+	  <editPart id="taskNode" class="org.jbpm.gd.jpdl.part.TaskNodeGraphicalEditPart" />
+	  <editPart id="taskList" class="org.jbpm.gd.jpdl.part.TaskListGraphicalEditPart" />
+	  <editPart id="task" class="org.jbpm.gd.jpdl.part.TaskGraphicalEditPart" />
+	  <editPart id="transition" class="org.jbpm.gd.common.part.EdgeGraphicalEditPart" />
+	  <editPart id="transitionLabel" class="org.jbpm.gd.common.part.LabelGraphicalEditPart" />
+	</extension> 
+
+<!--	<extension-point id="editPolicies" name="Graphical Editor EditPolicy Extensions" schema="schema/policies.exsd"/>
+	
+    <extension
+        point="org.jbpm.gd.jpdl.editPolicies">
+      <editPolicy
+            id="nodeComponent"
+            editPart="org.jbpm.gd.jpdl.node"
+            class="org.jbpm.gd.jpdl.ui.policy.NodeComponentEditPolicy"
+            role="ComponentEditPolicy"/>
+      <editPolicy
+            id="nodeGraphicalNode"
+            editPart="org.jbpm.gd.jpdl.node"
+            class="org.jbpm.gd.jpdl.ui.policy.NodeGraphicalNodeEditPolicy"
+            role="GraphicalNodeEditPolciy"/>
+      <editPolicy
+            id="nodeDirect"
+            editPart="org.jbpm.gd.jpdl.node"
+            class="org.jbpm.gd.jpdl.ui.policy.NodeDirectEditPolicy"
+            role="DirectEditPolicy"/>
+      <editPolicy
+            id="transitionConnectionEndpoints"
+            editPart="org.jbpm.gd.jpdl.transition"
+            class="org.jbpm.gd.jpdl.ui.policy.TransitionConnectionEndpointsEditPolicy"
+            role="Connection Endpoint Policy"/>
+      <editPolicy
+            id="transitionConnection"
+            editPart="org.jbpm.gd.jpdl.transition"
+            class="org.jbpm.gd.jpdl.ui.policy.TransitionConnectionEditPolicy"
+            role="ConnectionEditPolicy"/>
+      <editPolicy
+            id="transitionConnectionBendpoint"
+            editPart="org.jbpm.gd.jpdl.transition"
+            class="org.jbpm.gd.jpdl.ui.policy.TransitionConnectionBendpointEditPolicy"
+            role="Connection Bendpoint Policy"/>
+      <editPolicy
+            id="org.jbpm.ui.ProcessDefinitionXYLayoutEditPolicy"
+            editPart="org.jbpm.gd.jpdl.processDefinition"
+            class="org.jbpm.gd.jpdl.ui.policy.ProcessDefinitionXYLayoutEditPolicy"
+            role="LayoutEditPolicy"/>
+      <editPolicy
+            id="transitionLabelGraphicalNode"
+            editPart="org.jbpm.gd.jpdl.transitionLabel"
+            class="org.jbpm.gd.jpdl.ui.policy.TransitionLabelGraphicalNodeEditPolicy"
+            role="GraphicalNodeEditPolciy"/>
+      <editPolicy
+            id="transitionLabelDirect"
+            editPart="org.jbpm.gd.jpdl.transitionLabel"
+            class="org.jbpm.gd.jpdl.ui.policy.TransitionLabelDirectEditPolicy"
+            role="DirectEditPolicy"/>
+      <editPolicy
+            id="taskSelectionFeedback"
+            editPart="org.jbpm.gd.jpdl.task"
+            class="org.jbpm.gd.jpdl.ui.policy.TaskSelectionFeedbackEditPolicy"
+            role="Selection Feedback"/>
+    </extension> -->
+    
+    
+    <extension
+          point="org.eclipse.ui.views">
+       <view
+             allowMultiple="false"
+             category="org.jbpm.gd.jpdl.views"
+             class="org.jbpm.gd.common.editor.BirdsEyeViewer"
+             icon="icons/full/obj16/overview.gif"
+             id="org.jbpm.gd.jpdl.overview"
+             name="Overview"/>
+       <category
+             id="org.jbpm.gd.jpdl.views"
+             name="JBoss jBPM"/>
+    </extension>
+    
     <extension-point id="assignmentType" name="Assignment Type Extensions" schema="schema/assignmentType.exsd"/>
     
     <extension
@@ -801,294 +1233,252 @@
        </type>
     </extension> 
     
+    <!-- Seam Pageflow related extensions -->
+    
+  <extension point ="org.eclipse.ui.editors">
+    <editor
+          class="org.jbpm.gd.pf.editor.PageFlowEditor"
+          contributorClass="org.jbpm.gd.common.editor.ActionBarContributor" 
+          icon="icons/full/obj16/par_obj.gif"
+          id="org.jbpm.gd.pf.editor"
+          name="Seam Graphical Pageflow Designer">
+        <contentTypeBinding contentTypeId="org.jbpm.gd.jpdl.pageflow" /> 
+    </editor> 
+  </extension> 
+  	
+  <extension point="org.eclipse.core.runtime.contentTypes">
+  	<content-type id="pageflow" name="jpdl semantic info"
+		base-type="org.eclipse.core.runtime.xml"
+		default-charset="UTF-8">
+		<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
+			<parameter name="element" value="pageflow-definition"/>
+		</describer>
+	</content-type>
+  </extension>  
+  
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <category
+            name="Seam"
+            id="org.jboss.tools.seam.ui">
+      </category> 
+      <wizard
+            name="Seam Page Flow"
+            icon="icons/full/obj16/process_definition_enabled.gif"
+            category="org.jboss.tools.seam.ui"
+            class="org.jbpm.gd.pf.wizard.NewPageFlowWizard"
+            id="org.jbpm.gd.wizard.new.file">
+         <description>
+            A wizard that creates a pageflow diagram
+         </description>
+         <selection
+               class="org.eclipse.core.resources.IResource">
+         </selection>
+      </wizard>
+   </extension>
+
+   <extension 
+   		 point="org.jbpm.gd.jpdl.dsl">
+      <language 
+            id="org.jbpm.gd.pf" 
+            name="Seam Pageflow Definition Language" 
+            editor="org.jbpm.gd.pf.editor"/>		 
+   </extension>
+    
+   <extension
+         point="org.jbpm.gd.jpdl.semanticElements">
+      <semanticElement
+            icon="icons/full/obj16/decision_enabled.gif"
+            id="org.jbpm.gd.pf.decision"
+            label="Decision"
+            language="org.jbpm.gd.pf"
+            modelClass="org.jbpm.gd.pf.model.Decision"
+            name="decision"/>
+      <semanticElement
+            icon="icons/full/obj16/page_enabled.gif"
+            id="org.jbpm.gd.pf.page"
+            label="Page"
+            language="org.jbpm.gd.pf"
+            modelClass="org.jbpm.gd.pf.model.Page"
+            name="page"/>
+      <semanticElement
+            icon="icons/full/obj16/pageflow_definition_enabled.gif"
+            id="org.jbpm.gd.pf.pageFlowDefinition"
+            label="Pageflow Definition"
+            language="org.jbpm.gd.pf"
+            modelClass="org.jbpm.gd.pf.model.PageFlowDefinition"
+            name="pageflow-definition"/>
+      <semanticElement
+            icon="icons/full/obj16/start_page_enabled.gif"
+            id="org.jbpm.gd.pf.startPage"
+            label="Start Page"
+            language="org.jbpm.gd.pf"
+            modelClass="org.jbpm.gd.pf.model.StartPage"
+            name="start-page"/>
+      <semanticElement
+      		icon="icons/full/obj16/process_state_enabled.gif"
+      		id="org.jbpm.gd.pf.processState"
+      		label="Process State"
+      		language="org.jbpm.gd.pf"
+      		modelClass="org.jbpm.gd.pf.model.ProcessState"
+      		name="process-state"/>
+      <semanticElement
+            icon="icons/full/obj16/transition_enabled.gif"
+            id="org.jbpm.gd.pf.transition"
+            label="Transition"
+            language="org.jbpm.gd.pf"
+            modelClass="org.jbpm.gd.pf.model.Transition"
+            name="transition"/>
+   </extension>
+
+	<extension point="org.jbpm.gd.jpdl.xmlMappings">
+      <mapping
+      		id="org.jbpm.gd.pf.decision"
+      		semanticElement="org.jbpm.gd.pf.decision"
+            adapterClass="org.jbpm.gd.pf.xml.DecisionDomAdapter"
+            xmlElement="decision"/>
+      <mapping
+      		id="org.jbpm.gd.pf.page"
+      		semanticElement="org.jbpm.gd.pf.page"
+            adapterClass="org.jbpm.gd.pf.xml.PageDomAdapter"
+            xmlElement="page"/>
+      <mapping
+      		id="org.jbpm.gd.pf.pageFlowDefinition"
+      		semanticElement="org.jbpm.gd.pf.pageFlowDefinition"
+            adapterClass="org.jbpm.gd.pf.xml.PageFlowDefinitionDomAdapter"
+            xmlElement="pageflow-definition"/>
+      <mapping
+      		id="org.jbpm.gd.pf.startPage"
+      		semanticElement="org.jbpm.gd.pf.startPage"
+            adapterClass="org.jbpm.gd.pf.xml.StartPageDomAdapter"
+            xmlElement="start-page"/>
+      <mapping
+      		id="org.jbpm.gd.pf.processState"
+      		semanticElement="org.jbpm.gd.pf.processState"
+      		adapterClass="org.jbpm.gd.pf.xml.ProcessStateDomAdapter"
+      		xmlElement="process-state"/>
+      <mapping
+      		id="org.jbpm.gd.pf.transition"
+      		semanticElement="org.jbpm.gd.pf.transition"
+            adapterClass="org.jbpm.gd.pf.xml.TransitionDomAdapter"
+            xmlElement="transition"/>
+    </extension>
+    
+    <extension point="org.jbpm.gd.jpdl.palette">
+       <paletteContribution id="pageflow" editorClass="org.jbpm.gd.pf.editor.PageFlowEditor">
+	    <category id="nodeTools"/>
+	    <category id="transitionTools"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.nodeTools"
+           icon="icons/full/obj16/start_page_enabled.gif"
+           id="startPageTool"
+           label="Start"
+           node="true"
+           object="org.jbpm.gd.pf.startPage"
+           tooltip="Creates a start page"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.nodeTools"
+           icon="icons/full/obj16/page_enabled.gif"
+           id="pageTool"
+           label="Page"
+           node="true"
+           object="org.jbpm.gd.pf.page"
+           tooltip="Creates a page"/>
+	    <entry
+           category="org.jbpm.gd.jpdl.nodeTools"
+           icon="icons/full/obj16/decision_enabled.gif"
+           id="decisionTool"
+           label="Decision"
+           node="true"
+           object="org.jbpm.gd.pf.decision"
+           tooltip="Creates a decision node"/>
+        <entry
+           category="org.jbpm.gd.jpdl.nodeTools"
+           icon="icons/full/obj16/process_state_enabled.gif"
+           id="processStateTool"
+           label="Process State"
+           node="true"
+           object="org.jbpm.gd.pf.processState"
+           tooltip="Creates a process state" />
+	    <entry
+           category="org.jbpm.gd.jpdl.transitionTools"
+           icon="icons/full/obj16/transition_enabled.gif"
+           id="transitionTool"
+           label="Transition"
+           node="false"
+           object="org.jbpm.gd.pf.transition"
+           tooltip="Creates a transition"/>
+	  </paletteContribution>
+   </extension>	
+   
+	<extension point="org.jbpm.gd.jpdl.notationElements">
+	  <notationElement id="pfRoot" class="org.jbpm.gd.pf.notation.PageFlowRootContainer"/>
+	  <notationElement id="pfNode" class="org.jbpm.gd.pf.notation.PageFlowNode"/>
+	  <notationElement id="pfEdge" class="org.jbpm.gd.pf.notation.PageFlowEdge"/>
+	</extension>  
+	
+   <extension point="org.jbpm.gd.jpdl.notationMappings">
+	   <mapping
+	      id="pageFlowDefinition"
+	      semanticElement="org.jbpm.gd.pf.pageFlowDefinition"
+	      notationElement="org.jbpm.gd.jpdl.pfRoot"/>
+	   <mapping
+	      id="pfDecision"
+	      semanticElement="org.jbpm.gd.pf.decision"
+	      notationElement="org.jbpm.gd.jpdl.pfNode"/>
+	   <mapping
+	      id="startPage"
+	      semanticElement="org.jbpm.gd.pf.startPage"
+	      notationElement="org.jbpm.gd.jpdl.pfNode"/>
+	   <mapping
+	      id="page"
+	      semanticElement="org.jbpm.gd.pf.page"
+	      notationElement="org.jbpm.gd.jpdl.pfNode"/>
+	   <mapping
+	   	  id="processState"
+	   	  semanticElement="org.jbpm.gd.pf.processState"
+	   	  notationElement="org.jbpm.gd.jpdl.pfNode"/>
+	   <mapping
+	      id="transition"
+	      semanticElement="org.jbpm.gd.pf.transition"
+	      notationElement="org.jbpm.gd.jpdl.pfEdge"/>
+	</extension>   
+	
    <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
       <propertyContributor
-            contributorId="org.jbpm.gd.jpdl.editor"
+            contributorId="org.jbpm.gd.pf.editor"
             labelProvider="org.jbpm.gd.common.properties.ElementLabelProvider"
-            typeMapper="org.jbpm.gd.common.properties.ElementTypeMapper">
-         <propertyCategory category="org.jbpm.gd.jpdl.general"/>
-         <propertyCategory category="org.jbpm.gd.jpdl.specific"/>
-         <propertyCategory category="org.jbpm.gd.jpdl.advanced"/>
+            typeMapper="org.jbpm.gd.common.properties.ElementTypeMapper">
+         <propertyCategory category="org.jbpm.gd.pf.general"/>
       </propertyContributor>
    </extension>
 
    <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.jbpm.gd.jpdl.editor">
+      <propertyTabs contributorId="org.jbpm.gd.pf.editor">
          <propertyTab 
-            category="org.jbpm.gd.jpdl.general"   
-            id="org.jbpm.gd.jpdl.general"
+            category="org.jbpm.gd.pf.general"   
+            id="org.jbpm.gd.pf.general"
             label="General"/>
-         <propertyTab 
-            afterTab="org.jbpm.gd.jpdl.general"
-            category="org.jbpm.gd.jpdl.specific"   
-            id="org.jbpm.gd.jpdl.details"
-            label="Details"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.swimlanes"
-               image="icons/full/obj16/swimlane_enabled.gif"
-               label="Swimlanes"/>
-         <propertyTab
-               afterTab="org.jbpm.gd.jpdl.details"
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.events"
-               image="icons/full/obj16/event_enabled.gif"
-               label="Events"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.actionElements"
-               image="icons/full/obj16/action_enabled.gif"
-               label="Actions"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.tasks"
-               image="icons/full/obj16/task_enabled.gif"
-               label="Tasks"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.exceptions"
-               image="icons/full/obj16/exception_enabled.gif"
-               label="Exceptions"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.startStateTask"
-               image="icons/full/obj16/task_enabled.gif"
-               label="Task"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.subprocess"
-               label="Subprocess"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.mail"
-               label="Mail Info"/>
-         <propertyTab
-               afterTab="org.jbpm.gd.jpdl.details"
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.assignment"
-               label="Assignment"/>
-         <propertyTab
-               afterTab="org.jbpm.gd.jpdl.details"
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.controller"
-               label="Controller"/>
-         <propertyTab
-               afterTab="org.jbpm.gd.jpdl.details"
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.reminder"
-               label="Reminder"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.action"
-               image="icons/full/obj16/action_enabled.gif"
-               label="Action"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.esb"
-               image="icons/full/obj16/esb_enabled.gif"
-               label="ESB"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.decisionHandler"
-               image="icons/full/obj16/decision_enabled.gif"
-               label="Handler"/>
-         <propertyTab
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.condition"
-               image="icons/full/obj16/action_enabled.gif"
-               label="Condition"/>
-         <propertyTab
-               afterTab="org.jbpm.gd.jpdl.details"
-               category="org.jbpm.gd.jpdl.specific"
-               id="org.jbpm.gd.jpdl.timer"
-               image="icons/full/obj16/timer_enabled.gif"
-               label="Timers"/>
-         <propertyTab 
-            category="org.jbpm.gd.jpdl.advanced"   
-            id="org.jbpm.gd.jpdl.advanced"
-            label="Advanced"/>
       </propertyTabs>
    </extension>
    
    <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections contributorId="org.jbpm.gd.jpdl.editor">
+      <propertySections contributorId="org.jbpm.gd.pf.editor">
          <propertySection
                class="org.jbpm.gd.common.properties.NamedElementSection"
-               filter="org.jbpm.gd.jpdl.properties.NamedElementFilter"
-               id="org.jbpm.gd.jpdl.name"
-               tab="org.jbpm.gd.jpdl.general">
-            <input type="org.jbpm.gd.common.model.SemanticElement"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.ActionDetailsSection"
-               id="org.jbpm.gd.jpdl.actionDetails"
-               tab="org.jbpm.gd.jpdl.details">
-            <input type="org.jbpm.gd.jpdl.model.Action"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.EventSection"
-               filter="org.jbpm.gd.jpdl.properties.EventFilter"
-               id="org.jbpm.gd.jpdl.event"
-               tab="org.jbpm.gd.jpdl.general">
-            <input type="org.jbpm.gd.jpdl.model.Event"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.ScriptDetailsSection"
-               id="org.jbpm.gd.jpdl.scriptDetails"
-               tab="org.jbpm.gd.jpdl.details">
-            <input type="org.jbpm.gd.jpdl.model.Script"/>
-          </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.TimerActionSection"
-               id="org.jbpm.gd.jpdl.timerAction"
-               tab="org.jbpm.gd.jpdl.action">
-            <input type="org.jbpm.gd.jpdl.model.Timer"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.MailElementMailInfoSection"
-               id="org.jbpm.gd.jpdl.mail"
-               tab="org.jbpm.gd.jpdl.mail">
-            <input type="org.jbpm.gd.jpdl.model.MailElement"/>
-         </propertySection>
-         <propertySection
-               afterSection="org.jbpm.gd.jpdl.name"
-               class="org.jbpm.gd.jpdl.properties.MailElementTemplateSection"
-               filter="org.jbpm.gd.jpdl.properties.MailElementTemplateFilter"
-               id="org.jbpm.gd.jpdl.template"
-               tab="org.jbpm.gd.jpdl.general">
-            <input type="org.jbpm.gd.common.model.SemanticElement"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.ActionNameSection"
-               id="org.jbpm.gd.jpdl.actionName"
-               tab="org.jbpm.gd.jpdl.general">
-            <input type="org.jbpm.gd.jpdl.model.Action"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.TimerGeneralSection"
-               id="org.jbpm.gd.jpdl.timerGeneral"
-               tab="org.jbpm.gd.jpdl.general">
-            <input type="org.jbpm.gd.jpdl.model.Timer"/>
-         </propertySection>
-         <propertySection
-               afterSection="org.jbpm.gd.jpdl.template"
-               class="org.jbpm.gd.jpdl.properties.DescribableElementSection"
-               filter="org.jbpm.gd.jpdl.properties.DescribableElementFilter"
-               id="org.jbpm.gd.jpdl.description"
-               tab="org.jbpm.gd.jpdl.general">
+               filter="org.jbpm.gd.pf.properties.NamedElementFilter"
+               id="org.jbpm.gd.pf.name"
+               tab="org.jbpm.gd.pf.general">
             <input type="org.jbpm.gd.common.model.SemanticElement"/>
          </propertySection>
          <propertySection
-               class="org.jbpm.gd.jpdl.properties.AsyncableElementSection"
-               filter="org.jbpm.gd.jpdl.properties.AsyncableElementFilter"
-               id="org.jbpm.gd.jpdl.async"
-               tab="org.jbpm.gd.jpdl.advanced">
+               afterSection="org.jbpm.gd.pf.name"
+               class="org.jbpm.gd.pf.properties.ViewIdSection"
+               filter="org.jbpm.gd.pf.properties.ViewIdFilter"
+               id="org.jbpm.gd.pf.viewId"
+               tab="org.jbpm.gd.pf.general">
             <input type="org.jbpm.gd.common.model.SemanticElement"/>
          </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.AcceptPropagatedEventsSection"
-               id="org.jbpm.gd.jpdl.acceptPropagatedEvents"
-               tab="org.jbpm.gd.jpdl.advanced">
-            <input type="org.jbpm.gd.jpdl.model.Action"/>
-            <input type="org.jbpm.gd.jpdl.model.Script"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.TaskDetailsSection"
-               id="org.jbpm.gd.jpdl.taskDetails"
-               tab="org.jbpm.gd.jpdl.details">
-            <input type="org.jbpm.gd.jpdl.model.Task"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.AssignmentSection"
-               id="org.jbpm.gd.jpdl.assignment"
-               tab="org.jbpm.gd.jpdl.assignment">
-            <input type="org.jbpm.gd.jpdl.model.Assignable"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.ControllerSection"
-               id="org.jbpm.gd.jpdl.controller"
-               tab="org.jbpm.gd.jpdl.controller">
-            <input type="org.jbpm.gd.jpdl.model.Task"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.ExceptionHandlerContainerSection"
-               id="org.jbpm.gd.jpdl.exceptions"
-               tab="org.jbpm.gd.jpdl.exceptions">
-            <input type="org.jbpm.gd.jpdl.model.ExceptionHandlerContainer"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.StartStateTaskSection"
-               id="org.jbpm.gd.jpdl.startStateTask"
-               tab="org.jbpm.gd.jpdl.startStateTask">
-            <input type="org.jbpm.gd.jpdl.model.StartState"/>
-          </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.SubProcessSection"
-               id="org.jbpm.gd.jpdl.subprocess"
-               tab="org.jbpm.gd.jpdl.subprocess">
-            <input type="org.jbpm.gd.jpdl.model.ProcessState"/>
-          </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.NodeActionSection"
-               id="org.jbpm.gd.jpdl.nodeAction"
-               filter="org.jbpm.gd.jpdl.properties.NodeActionFilter"
-               tab="org.jbpm.gd.jpdl.action">
-            <input type="org.jbpm.gd.jpdl.model.Node"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.EsbNodeSection"
-               id="org.jbpm.gd.jpdl.esbNode"
-               tab="org.jbpm.gd.jpdl.esb">
-            <input type="org.jbpm.gd.jpdl.model.EsbNode"/>
-         </propertySection>
-          <propertySection
-               class="org.jbpm.gd.jpdl.properties.DecisionHandlerSection"
-               id="org.jbpm.gd.jpdl.decisionHandler"
-               tab="org.jbpm.gd.jpdl.decisionHandler">
-            <input type="org.jbpm.gd.jpdl.model.Decision"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.SwimlaneContainerSection"
-               id="org.jbpm.gd.jpdl.swimlanes"
-               tab="org.jbpm.gd.jpdl.swimlanes">
-            <input type="org.jbpm.gd.jpdl.model.ProcessDefinition"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.EventContainerSection"
-               id="org.jbpm.gd.jpdl.events"
-               tab="org.jbpm.gd.jpdl.events">
-            <input type="org.jbpm.gd.jpdl.model.EventContainer"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.ActionElementContainerSection"
-               id="org.jbpm.gd.jpdl.actionElements"
-               tab="org.jbpm.gd.jpdl.actionElements">
-            <input type="org.jbpm.gd.jpdl.model.ActionElementContainer"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.TaskContainerSection"
-               id="org.jbpm.gd.jpdl.tasks"
-               tab="org.jbpm.gd.jpdl.tasks">
-            <input type="org.jbpm.gd.jpdl.model.TaskContainer"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.TaskReminderSection"
-               id="org.jbpm.gd.jpdl.taskReminder"
-               tab="org.jbpm.gd.jpdl.reminder">
-            <input type="org.jbpm.gd.jpdl.model.Task"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.ConditionSection"
-               id="org.jbpm.gd.jpdl.condition"
-               tab="org.jbpm.gd.jpdl.condition">
-            <input type="org.jbpm.gd.jpdl.model.Transition"/>
-         </propertySection>
-         <propertySection
-               class="org.jbpm.gd.jpdl.properties.TimerContainerSection"
-               id="org.jbpm.gd.jpdl.timer"
-               tab="org.jbpm.gd.jpdl.timer">
-            <input type="org.jbpm.gd.jpdl.model.TimerContainer"/>
-         </propertySection>
       </propertySections>
    </extension> 
    
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/schema/jpdl-3.2.xsd jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/schema/jpdl-3.2.xsd
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/schema/jpdl-3.2.xsd	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/schema/jpdl-3.2.xsd	2009-02-06 09:16:31.000000000 +0100
@@ -57,7 +57,6 @@
         <xs:element ref="exception-handler"/>
       </xs:choice>
       <xs:attribute name="name" type="xs:string" use="required"/>
-      <xs:attribute name="end-complete-process" type="booleanType" use="optional" default="false"/>
     </xs:complexType>
   </xs:element>
 
@@ -117,10 +116,8 @@
     	<xs:choice minOccurs="0" maxOccurs="unbounded">
     		<xs:element name="sub-process">
     			<xs:complexType>
-    				<xs:attribute name="name" type="xs:string"
-    					use="required" />
+            <xs:attribute name="name" type="xs:string" use="required" />
     				<xs:attribute name="version" type="xs:integer" />
-    				<xs:attribute name="binding" type="xs:string" />
     			</xs:complexType>
     		</xs:element>
     		<xs:element ref="variable" />
@@ -128,7 +125,6 @@
     	</xs:choice>
     	<xs:attribute name="name" type="xs:string" use="required" />
     	<xs:attribute name="async" type="xs:string" default="false" />
-    	<xs:attribute name="binding" type="bindingType"></xs:attribute>
     </xs:complexType>
   </xs:element>
 
@@ -226,7 +222,16 @@
         <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xs:sequence>
       <xs:attribute name="class" type="xs:string" />
-      <xs:attribute name="config-type" default="field" type="xs:string" />
+      <xs:attribute name="config-type" default="field">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="field"/>
+            <xs:enumeration value="bean"/>
+            <xs:enumeration value="constructor"/>
+            <xs:enumeration value="configuration-property"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
       <xs:attribute name="name" type="xs:string" />
       <xs:attribute name="ref-name" type="xs:string" />
       <xs:attribute name="accept-propagated-events" type="booleanType" default="true" />
@@ -416,7 +421,16 @@
       <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
     <xs:attribute name="class" type="xs:string" />
-    <xs:attribute name="config-type" default="field" type="xs:string" />
+    <xs:attribute name="config-type" default="field">
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="field"/>
+          <xs:enumeration value="bean"/>
+          <xs:enumeration value="constructor"/>
+          <xs:enumeration value="configuration-property"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:simpleType name="configType">
@@ -491,10 +505,4 @@
     </xs:choice>
   </xs:group>
 
-  <xs:simpleType name="bindingType">
-  	<xs:restriction base="xs:string">
-  		<xs:enumeration value="late"></xs:enumeration>
-  		<xs:enumeration value="early"></xs:enumeration>
-  	</xs:restriction>
-  </xs:simpleType>
 </xs:schema>
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/schema/xmlMappings.exsd jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/schema/xmlMappings.exsd
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/schema/xmlMappings.exsd	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/schema/xmlMappings.exsd	2009-02-06 09:16:31.000000000 +0100
@@ -74,7 +74,7 @@
                   class used to determine which semantic element and adapter will be selected given a particular xml node
                </documentation>
                <appInfo>
-                  <meta.attribute kind="java" basedOn="org.jbpm.gd.common.xml.XmlElemenMapper:"/>
+                  <meta.attribute kind="java" basedOn="org.jbpm.gd.common.xml.SemanticElementDomMapper"/>
                </appInfo>
             </annotation>
          </attribute>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd: common
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/EdgeDeleteCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/EdgeDeleteCommand.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/EdgeDeleteCommand.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/EdgeDeleteCommand.java	2009-02-06 09:16:45.000000000 +0100
@@ -32,6 +32,7 @@
 	}
 	
 	public void undo() {
+		edge.register();
 		((AbstractNode)source.getSemanticElement()).addTransition((Transition)edge.getSemanticElement());
 	}
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/NodeDeleteCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/NodeDeleteCommand.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/NodeDeleteCommand.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/command/NodeDeleteCommand.java	2009-02-06 09:16:45.000000000 +0100
@@ -33,6 +33,7 @@
 public class NodeDeleteCommand extends AbstractNodeDeleteCommand {
 
 	protected void doAdd() {
+		node.register();
 		SemanticElement toAdd = node.getSemanticElement();
 		NodeElementContainer nodeElementContainer = (NodeElementContainer)parent.getSemanticElement();
 		if (toAdd instanceof StartState) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java	2009-02-06 09:16:37.000000000 +0100
@@ -57,7 +57,7 @@
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.FormColors;
 import org.eclipse.ui.forms.widgets.Form;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.Section;
@@ -235,7 +235,7 @@
 
 	private void createServerNameField(Composite infoFormClient) {
 		Label nameLabel = toolkit.createLabel(infoFormClient, "Server Name:");
-		nameLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
+		nameLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
 		nameText = toolkit.createText(infoFormClient, "");
 		String nameString = Plugin.getDefault().getPreferenceStore().getString("server name");
 		nameText.setText(nameString == null || "".equals(nameString) ? "localhost" : nameString);
@@ -251,7 +251,7 @@
 	
 	private void createServerPortField(Composite infoFormClient) {
 		Label portLabel = toolkit.createLabel(infoFormClient, "Server Port:");
-		portLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
+		portLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
 		portText = toolkit.createText(infoFormClient, "");
 		String portString = Plugin.getDefault().getPreferenceStore().getString("server port");
 		portText.setText(portString == null || "".equals(portString)? "8080" : portString);
@@ -267,7 +267,7 @@
 	
 	private void createServerDeployerField(Composite infoFormClient) {
 		Label deployerLabel = toolkit.createLabel(infoFormClient, "Server Deployer:");
-		deployerLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
+		deployerLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
 		deployerText = toolkit.createText(infoFormClient, "");
 		String deployerString = Plugin.getDefault().getPreferenceStore().getString("server deployer");
 		deployerText.setText(deployerString == null || "".equals(deployerString)? "/jbpm-console/upload" : deployerString);
@@ -492,7 +492,7 @@
 	
 	private void createSaveLocationField(Composite localSaveFormclient) {
 		Label locationLabel = toolkit.createLabel(localSaveFormclient, "Location:");
-		locationLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
+		locationLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
 		locationText = toolkit.createText(localSaveFormclient, "");
 		locationText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		locationText.addKeyListener(new KeyAdapter() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java	2009-02-06 09:16:37.000000000 +0100
@@ -23,6 +23,7 @@
 
 import java.util.StringTokenizer;
 
+import org.dom4j.Element;
 import org.jbpm.gd.common.editor.AbstractContentProvider;
 import org.jbpm.gd.common.model.SemanticElement;
 import org.jbpm.gd.common.notation.Edge;
@@ -32,7 +33,6 @@
 import org.jbpm.gd.jpdl.model.NodeElement;
 import org.jbpm.gd.jpdl.model.NodeElementContainer;
 import org.jbpm.gd.jpdl.model.Transition;
-import org.w3c.dom.Element;
 
 public class JpdlContentProvider extends AbstractContentProvider{
 	
@@ -69,7 +69,7 @@
 	
 	protected SemanticElement getNodeSemanticElement(NodeContainer nodeContainer, Element notationInfo, int index) {
 		NodeElementContainer nodeElementContainer = (NodeElementContainer)nodeContainer.getSemanticElement();
-		return nodeElementContainer.getNodeElementByName(notationInfo.getAttribute("name"));
+		return nodeElementContainer.getNodeElementByName(notationInfo.attributeValue("name"));
 	}
 	
 	protected SemanticElement findDestination(Edge edge, Node source) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/AbstractNode.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/AbstractNode.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/AbstractNode.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/AbstractNode.java	2009-02-06 09:16:45.000000000 +0100
@@ -51,13 +51,11 @@
 	}
 	
 	public void addTransition(Transition transition) {
-		if (transitions.contains(transition)) return;
 		transitions.add(transition);
 		firePropertyChange("transitionAdd", null, transition);
 	}
 	
 	public void removeTransition(Transition transition) {
-		if (!(transitions.contains(transition))) return;
 		transitions.remove(transition);
 		firePropertyChange("transitionRemove", transition, null);
 	}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Action.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Action.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Action.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Action.java	2009-02-06 09:16:45.000000000 +0100
@@ -41,8 +41,8 @@
 	
 	public void setExpression(String newExpression) {
 		String oldExpression = expression;
-		expression = newExpression == null ? null : newExpression.trim();
-		firePropertyChange("expression", oldExpression, expression);
+		expression = newExpression;
+		firePropertyChange("expression", oldExpression, newExpression);
 	}
 	
 	public String getExpression() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Assignment.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Assignment.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Assignment.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Assignment.java	2009-02-06 09:16:45.000000000 +0100
@@ -8,8 +8,8 @@
 	
 	public void setExpression(String newExpression) {
 		String oldExpression = expression;
-		expression = newExpression == null ? null : newExpression.trim();
-		firePropertyChange("expression", oldExpression, expression);
+		expression = newExpression;
+		firePropertyChange("expression", oldExpression, newExpression);
 	}
 	
 	public String getExpression() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Condition.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Condition.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Condition.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Condition.java	2009-02-06 09:16:45.000000000 +0100
@@ -19,8 +19,8 @@
 	
 	public void setExpression(String newExpression) {
 		String oldExpression = expression;
-		expression = newExpression == null ? null : newExpression.trim();
-		firePropertyChange("expression", oldExpression, expression);
+		expression = newExpression;
+		firePropertyChange("expression", oldExpression, newExpression);
 	}
 	
 	public String getExpression() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Decision.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Decision.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Decision.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Decision.java	2009-02-06 09:16:45.000000000 +0100
@@ -30,8 +30,8 @@
 	
 	public void setExpression(String newExpression) {
 		String oldExpression = expression;
-		expression = newExpression == null ? null : newExpression.trim();
-		firePropertyChange("expression", oldExpression, expression);
+		expression = newExpression;
+		firePropertyChange("expression", oldExpression, newExpression);
 	}
 	
 	public String getExpression() {
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model: EsbNode.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Node.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Node.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Node.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/Node.java	2009-02-06 09:16:45.000000000 +0100
@@ -71,8 +71,4 @@
 		return null;
 	}
 	
-	public boolean isActionElementConfigurable() {
-		return true;
-	}
-
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/ProcessDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/ProcessDefinition.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/ProcessDefinition.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/model/ProcessDefinition.java	2009-02-06 09:16:45.000000000 +0100
@@ -66,7 +66,7 @@
 	}
 	
 	public void removeStartState(StartState startState) {
-		if (this.startState != startState || this.startState == null) return;
+		if (this.startState != startState) return;
 		this.startState = null;
 		nodeElements.remove(0);
 		firePropertyChange("startStateRemove", startState, null);
@@ -151,7 +151,6 @@
 	}
 	
 	public NodeElement getNodeElementByName(String name) {
-		if (name == null) return null;
 		NodeElement[] nodeElements = getNodeElements();
 		for (int i = 0; i < nodeElements.length; i++) {
 			if (name.equals(nodeElements[i].getName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlEdge.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlEdge.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlEdge.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlEdge.java	2009-02-06 09:16:38.000000000 +0100
@@ -2,38 +2,37 @@
 
 import java.beans.PropertyChangeEvent;
 
+import org.jbpm.gd.common.model.SemanticElement;
 import org.jbpm.gd.common.notation.Edge;
+import org.jbpm.gd.common.notation.Label;
 import org.jbpm.gd.common.notation.Node;
-import org.jbpm.gd.common.notation.NodeContainer;
-import org.jbpm.gd.common.notation.RootContainer;
 import org.jbpm.gd.jpdl.model.NodeElement;
 import org.jbpm.gd.jpdl.model.ProcessDefinition;
 
 public class JpdlEdge extends Edge {
 	
-	private RootContainer getRootContainer() {
-		Node source = getSource();
-		if (source == null) return null;
-		NodeContainer container = source.getContainer();
-		while (container != null && container instanceof Node) {
-			container = ((Node)container).getContainer();
+	public Label getLabel() {
+		Label result = super.getLabel();
+		if (result == null) {
+			result = (Label)getFactory().create("org.jbpm.gd.jpdl.label");
+			addPropertyChangeListener(result);
+			setLabel(result);
+		}
+		return result;
 		}
-		return (RootContainer)container;
+	
+	public void setSemanticElement(SemanticElement semanticElement) {
+		super.setSemanticElement(semanticElement);
+		getLabel().setSemanticElement(semanticElement);
 	}
 	
 	public void propertyChange(PropertyChangeEvent evt) {
 		String eventName = evt.getPropertyName();
 		if (eventName.equals("to")) {
-			if (getSource() == null)
-				return;
-			RootContainer rootContainer = getRootContainer();
-			if (rootContainer == null) return;
-			ProcessDefinition processDefinition = (ProcessDefinition)rootContainer.getSemanticElement();
-			if (processDefinition == null) return;
-			NodeElement newTarget = processDefinition
-					.getNodeElementByName((String) evt.getNewValue());
-			NodeElement oldTarget = processDefinition
-					.getNodeElementByName((String) evt.getOldValue());
+			if (getSource() == null) return;
+			ProcessDefinition processDefinition = (ProcessDefinition)((Node)getSource()).getContainer().getSemanticElement();
+			NodeElement newTarget = processDefinition.getNodeElementByName((String)evt.getNewValue());
+			NodeElement oldTarget = processDefinition.getNodeElementByName((String)evt.getOldValue());
 			if (oldTarget != null) {
 				Node oldTargetNode = (Node) getRegisteredNotationElementFor(oldTarget);
 				if (oldTargetNode != null) {
@@ -46,11 +45,8 @@
 					targetNode.addArrivingEdge(this);
 				}
 			}
-			getSource().propertyChange(
-					new PropertyChangeEvent(this, "leavingEdgeRefresh", null,
-							null));
 		} else {
-			super.propertyChange(evt);
+			firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
 		}
 	}
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNodeContainer.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNodeContainer.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNodeContainer.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNodeContainer.java	2009-02-06 09:16:38.000000000 +0100
@@ -1,11 +1,9 @@
 package org.jbpm.gd.jpdl.notation;
 
 import java.beans.PropertyChangeEvent;
-import java.util.ArrayList;
 import java.util.StringTokenizer;
 
 import org.jbpm.gd.common.editor.CreationFactory;
-import org.jbpm.gd.common.model.NamedElement;
 import org.jbpm.gd.common.model.SemanticElement;
 import org.jbpm.gd.common.notation.AbstractNodeContainer;
 import org.jbpm.gd.common.notation.AbstractNotationElement;
@@ -23,7 +21,7 @@
 			SemanticElement jpdlElement = (SemanticElement)evt.getNewValue();
 			NotationElement notationElement = getRegisteredNotationElementFor(jpdlElement);
 			if (notationElement == null) {
-				CreationFactory factory = new CreationFactory(jpdlElement, getFactory());
+				CreationFactory factory = new CreationFactory(jpdlElement.getElementId(), jpdlElement.getFactory(), getFactory());
 				notationElement = (AbstractNotationElement)factory.getNewObject();
 //				notationElement = getFactory().create(JpdlNotationMapping.getNotationElementId(jpdlElement.getElementId()));
 //				notationElement.setSemanticElement(jpdlElement);
@@ -43,7 +41,7 @@
 			Transition transition = (Transition)evt.getNewValue();
 			Edge edge = (Edge)getRegisteredNotationElementFor(transition);
 			if (edge == null) {
-				CreationFactory factory = new CreationFactory(transition, getFactory());
+				CreationFactory factory = new CreationFactory(transition.getElementId(), getSemanticElement().getFactory(), getFactory());
 				edge = (Edge)factory.getNewObject();
 //				edge = (Edge)getFactory().create(JpdlNotationMapping.getNotationElementId(transition.getElementId()));
 //				edge.setSemanticElement(transition);
@@ -67,8 +65,6 @@
 				removeLeavingEdge(edge);
 //				edge.unregister();
 			}
-		} else {
-			super.propertyChange(evt);
 		}
 	}
 	
@@ -101,17 +97,4 @@
 		return (Node)runner;
 	}
 	
-	protected void addArrivingEdges(Node node) {
-		ArrayList list = new ArrayList(danglingEdges);
-		for (int i = 0; i < danglingEdges.size(); i++) {
-			String name= ((NamedElement)node.getSemanticElement()).getName();
-			Edge edge = (Edge)danglingEdges.get(i);
-			String to = ((Transition)edge.getSemanticElement()).getTo();
-			if (name.equals(to)) {
-				list.add(edge);
-				node.addArrivingEdge(edge);
-			}
-		}
-		danglingEdges.removeAll(list);
-	}
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNode.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNode.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNode.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlNode.java	2009-02-06 09:16:38.000000000 +0100
@@ -18,12 +18,18 @@
 		String eventName = evt.getPropertyName();
 		if (eventName.equals("name")) {
 			firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
-			updateArrivingEdges((String)evt.getNewValue());
+			List edges = getArrivingEdges();
+			for (int i = 0; i < edges.size(); i++) {
+				Edge edge = (Edge)edges.get(i);
+				((SemanticElement)edge.getSemanticElement()).removePropertyChangeListener(edge);
+				((Transition)edge.getSemanticElement()).setTo((String)evt.getNewValue());
+				((SemanticElement)edge.getSemanticElement()).addPropertyChangeListener(edge);
+			}		
 		} else if (eventName.equals("transitionAdd")) {
 			Transition transition = (Transition)evt.getNewValue();
 			Edge edge = (Edge)getRegisteredNotationElementFor(transition);
 			if (edge == null) {
-				CreationFactory factory = new CreationFactory(transition, getFactory());
+				CreationFactory factory = new CreationFactory(transition.getElementId(), getSemanticElement().getFactory(), getFactory());
 				edge = (Edge)factory.getNewObject();
 			}
 			addLeavingEdge(edge);
@@ -44,23 +50,10 @@
 				removeLeavingEdge(edge);
 //				edge.unregister();
 			}
-		} else {
-			super.propertyChange(evt);
-		}
-	}
-
-	private void updateArrivingEdges(String to) {
-		List edges = getArrivingEdges();
-		for (int i = 0; i < edges.size(); i++) {
-			Edge edge = (Edge)edges.get(i);
-			((SemanticElement)edge.getSemanticElement()).removePropertyChangeListener(edge);
-			((Transition)edge.getSemanticElement()).setTo(to);
-			((SemanticElement)edge.getSemanticElement()).addPropertyChangeListener(edge);
 		}
 	}
 	
 	private Node getDestinationNode(String to) {
-		if (to == null) return null;
 		NotationElement runner = getContainer();
 		SemanticElement jpdlElement = null;
 		StringTokenizer tokenizer = new StringTokenizer(to, "/");
@@ -86,7 +79,7 @@
 				}				
 			}
 		}
-		return runner == getContainer() ? null : (Node)runner;
+		return (Node)runner;
 	}
 	
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java	2009-02-06 09:16:38.000000000 +0100
@@ -1,14 +1,8 @@
 package org.jbpm.gd.jpdl.notation;
 
 import java.beans.PropertyChangeEvent;
-import java.util.ArrayList;
 
-import org.jbpm.gd.common.model.NamedElement;
-import org.jbpm.gd.common.notation.Edge;
-import org.jbpm.gd.common.notation.Node;
 import org.jbpm.gd.common.notation.RootContainer;
-import org.jbpm.gd.jpdl.model.NodeElement;
-import org.jbpm.gd.jpdl.model.Transition;
 
 public class JpdlRootContainer extends RootContainer {
 	
@@ -16,33 +10,9 @@
 		String eventName = evt.getPropertyName();
 		if (eventName.equals("startStateAdd") || eventName.equals("nodeElementAdd")) {
 			addNode(evt);
-		} else if (eventName.equals("startStateRemove") || eventName.equals("nodeElementRemove")) {
-			removeNode(evt);
-		} else {
-			super.propertyChange(evt);
-		}
-	}
-
-	protected void addArrivingEdges(Node node) {
-		ArrayList list = new ArrayList();
-		for (int i = 0; i < danglingEdges.size(); i++) {
-			String name= ((NamedElement)node.getSemanticElement()).getName();
-			Edge edge = (Edge)danglingEdges.get(i);
-			String to = ((Transition)edge.getSemanticElement()).getTo();
-			if (name != null && name.equals(to)) {
-				list.add(edge);
-				node.addArrivingEdge(edge);
 			}
-		}
-		danglingEdges.removeAll(list);
-	}
-	
-	protected void addLeavingEdges(Node node) {
-		NodeElement nodeElement = (NodeElement)node.getSemanticElement();
-		Transition[] transitions = nodeElement.getTransitions();
-		for (int i = 0; i < transitions.length; i++) {
-			PropertyChangeEvent evt = new PropertyChangeEvent(nodeElement, "transitionAdd", null, transitions[i]);
-			node.propertyChange(evt);
+		if (eventName.equals("startStateRemove") || eventName.equals("nodeElementRemove")) {
+			removeNode(evt);
 		}
 	}
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeElementOutlineEditPart.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeElementOutlineEditPart.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeElementOutlineEditPart.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeElementOutlineEditPart.java	2009-02-06 09:16:45.000000000 +0100
@@ -24,7 +24,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.jbpm.gd.common.model.NamedElement;
 import org.jbpm.gd.common.part.OutlineEditPart;
 import org.jbpm.gd.jpdl.model.NodeElement;
 
@@ -39,11 +38,7 @@
 	}
 
 	protected String getText() {
-		String result = ((NamedElement)getNode()).getName();
-		if (result == null) {
-			result = getNode().getNamePrefix();
-		}
-		return result;
+		return getNode().getName() == null ? "node" : getNode().getName();
 	}
 	
 	protected List getModelChildren() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeOutlineEditPart.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeOutlineEditPart.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeOutlineEditPart.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/part/NodeOutlineEditPart.java	2009-02-06 09:16:45.000000000 +0100
@@ -39,7 +39,7 @@
 
 	protected List getModelChildren() {
 		List result = new ArrayList();
-		if (getNode().isActionElementConfigurable() && getNode().getAction() != null) {
+		if (getNode().getAction() != null) {
 			result.add(getNode().getAction());
 		}
 		result.addAll(super.getModelChildren());
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/AddJbpmInstallationDialog.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/AddJbpmInstallationDialog.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/AddJbpmInstallationDialog.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/AddJbpmInstallationDialog.java	2009-02-06 09:16:37.000000000 +0100
@@ -23,9 +23,11 @@
 
 
 import java.io.File;
+import java.net.MalformedURLException;
 
-import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.io.SAXReader;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
@@ -45,15 +47,10 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
-import org.jbpm.gd.common.Logger;
 import org.jbpm.gd.jpdl.Plugin;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class AddJbpmInstallationDialog extends StatusDialog {
 	
-	private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-	
 	private static final String pluginId = Plugin.getDefault().getBundle().getSymbolicName();
 	
 	private static final IStatus enterNameStatus = new Status(
@@ -240,15 +237,13 @@
 	}
 
 	public String getVersion() {
-		String result = "3.2";
+		String result = "3.1";
     	try {			
-			Document document = documentBuilderFactory.newDocumentBuilder().parse(getJbpmVersionInfoFile());
-			Element rootElement = document.getDocumentElement();
-			result = rootElement.hasAttribute("name") ? rootElement.getAttribute("name") : result;
-		} 
-		catch (Exception e) {
-			Logger.logError("Problem obtaining jBPM version information", e);
+			Document document = new SAXReader().read(getJbpmVersionInfoFile());
+			result = document.getRootElement().attribute("name").getValue();
 		} 
+		catch (DocumentException e) {} 
+		catch (MalformedURLException e) {}
 		return result;
 	}
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ActionElementContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ActionElementContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ActionElementContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ActionElementContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -277,13 +277,10 @@
 				actionElementTable.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event());
 			}
 		} else if ("name".equals(evt.getPropertyName()) || "refName".equals(evt.getPropertyName())) {
-			if (actionElementTable.getSelectionCount() != 1) return;
 			TableItem tableItem = actionElementTable.getSelection()[0];
-			if (tableItem.getData() == evt.getSource()) {
 				tableItem.setText(getLabel((ActionElement)tableItem.getData()));
 			}
 		}
-	}
 	
 	private TableItem getItemToRemove(Object object) {
 		for (int i = 0; i < actionElementTable.getItemCount(); i++) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/AssignmentConfigurationComposite.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/AssignmentConfigurationComposite.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/AssignmentConfigurationComposite.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/AssignmentConfigurationComposite.java	2009-02-06 09:16:39.000000000 +0100
@@ -93,15 +93,13 @@
 		assignmentTypeCombo.setText("<Choose>");
 		IConfigurationElement[] configElements = AssignmentTypeHelper.getConfigurationElements(assignable);
 		for (int i = 0; i < configElements.length; i++) {
-			if (isAssignmentTypeDisabled(configElements[i])) continue;
 			String id = configElements[i].getAttribute("id");
 			String label = configElements[i].getAttribute("label");
 			labelMap.put(label, configElements[i].getAttribute("id"));
 			assignmentTypeCombo.add(label);
 			Composite page = (Composite)pagesMap.get(id);
 			((AssignmentTypeComposite)page.getData()).setAssignable(assignable);
-			AssignmentTypeMatcher matcher = (AssignmentTypeMatcher)matcherMap.get(id);
-			if (matcher != null && matcher.matches(assignable)) {
+			if (((AssignmentTypeMatcher)matcherMap.get(id)).matches(assignable)) {
 				assignmentTypeCombo.setText(label);
 				page.setVisible(true);
 				activePage = page;
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties: EsbConfigurationComposite.java
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties: EsbGeneralConfigurationComposite.java
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties: EsbInputOutputConfigurationComposite.java
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties: EsbNodeSection.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/EventContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/EventContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/EventContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/EventContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -330,29 +330,20 @@
 			eventTree.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event());
 		} else if ("eventRemove".equals(evt.getPropertyName()) || 
 				"actionElementRemove".equals(evt.getPropertyName())) {
-			if (eventTree.getSelectionCount() != 1) return;
 			eventTree.getSelection()[0].dispose();
 			eventTree.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event());
 		} else if ("type".equals(evt.getPropertyName())) {
-			if (eventTree.getSelectionCount() != 1) return;
 			String newValue = (String)evt.getNewValue();
 			if (newValue == null || "".equals(newValue)) {
 				newValue = "event";
 			}
-			TreeItem treeItem = eventTree.getSelection()[0];
-			if (treeItem.getData() == evt.getSource()) {
-				treeItem.setText(newValue);
-			}
+			eventTree.getSelection()[0].setText(newValue);
 		} else if ("name".equals(evt.getPropertyName()) || "refName".equals(evt.getPropertyName())) {
-			if (eventTree.getSelectionCount() != 1) return;
 			String newValue = (String)evt.getNewValue();
 			if (newValue == null || "".equals(newValue)) {
 				newValue = "action";
 			}
-			TreeItem treeItem = eventTree.getSelection()[0];
-			if (treeItem.getData() == evt.getSource()) {
-				treeItem.setText(newValue);
-			}
+			eventTree.getSelection()[0].setText(newValue);
 		}
 	}
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ExceptionHandlerContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ExceptionHandlerContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ExceptionHandlerContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/ExceptionHandlerContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -305,24 +305,16 @@
 			exceptionHandlerTree.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event());
 		} else if ("exceptionClass".equals(evt.getPropertyName())) {
 			String newValue = (String)evt.getNewValue();
-			if (exceptionHandlerTree.getSelectionCount() != 1) return;
 			if (newValue == null || "".equals(newValue)) {
 				newValue = "exception-handler";
 			}
-			TreeItem treeItem = exceptionHandlerTree.getSelection()[0];
-			if (treeItem.getData() == evt.getSource()) {
-				treeItem.setText(newValue);
-			}
+			exceptionHandlerTree.getSelection()[0].setText(newValue);
 		} else if ("name".equals(evt.getPropertyName()) || "refName".equals(evt.getPropertyName())) {
 			String newValue = (String)evt.getNewValue();
-			if (exceptionHandlerTree.getSelectionCount() != 1) return;
 			if (newValue == null || "".equals(newValue)) {
 				newValue = "action";
 			}
-			TreeItem treeItem = exceptionHandlerTree.getSelection()[0];
-			if (treeItem.getData() == evt.getSource()) {
-				treeItem.setText(newValue);
-			}
+			exceptionHandlerTree.getSelection()[0].setText(newValue);
 		}
 	}
 	
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties: NodeActionFilter.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneConfigurationComposite.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneConfigurationComposite.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneConfigurationComposite.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneConfigurationComposite.java	2009-02-06 09:16:39.000000000 +0100
@@ -74,7 +74,7 @@
 
 	private void createAssignmentTabItem() {
 		CTabItem assignmentTabItem = widgetFactory.createTabItem(swimlaneInfoTabFolder, SWT.NORMAL);
-		assignmentTabItem.setText("Assignment");
+		assignmentTabItem.setText("Assignmnent");
 		Composite assignmentTabControl = widgetFactory.createFlatFormComposite(swimlaneInfoTabFolder);
 		assignmentConfigurationComposite = 
 			AssignmentConfigurationComposite.create(widgetFactory, assignmentTabControl);
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/SwimlaneContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -212,13 +212,10 @@
 				swimlaneTable.notifyListeners(SWT.Selection, new Event());
 			}
 		} else if ("name".equals(evt.getPropertyName())) {
-			if (swimlaneTable.getSelectionCount() != 1) return;
 			TableItem tableItem = swimlaneTable.getItem(swimlaneTable.getSelectionIndex());
-			if (tableItem.getData() == evt.getSource()) {
 				tableItem.setText((String)evt.getNewValue());
 			}
 		}
-	}
 	
 	private TableItem getItemToRemove(Object object) {
 		for (int i = 0; i < swimlaneTable.getItemCount(); i++) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskConfigurationComposite.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskConfigurationComposite.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskConfigurationComposite.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskConfigurationComposite.java	2009-02-06 09:16:39.000000000 +0100
@@ -118,7 +118,7 @@
 
 	private void createAssignmentTabItem() {
 		CTabItem assignmentTabItem = widgetFactory.createTabItem(taskInfoTabFolder, SWT.NORMAL);
-		assignmentTabItem.setText("Assignment");
+		assignmentTabItem.setText("Assignmnent");
 		Composite assignmentTabControl = widgetFactory.createFlatFormComposite(taskInfoTabFolder);
 		assignmentConfigurationComposite = 
 			AssignmentConfigurationComposite.create(widgetFactory, assignmentTabControl);
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -193,9 +193,8 @@
 			}
 			taskTree.notifyListeners(SWT.Selection, new Event());
 		} else if ("name".equals(evt.getPropertyName())) {
-			if (taskTree.getSelectionCount() != 1) return;
 			TreeItem treeItem = taskTree.getSelection()[0];
-			if (treeItem.getData() == evt.getSource()) {
+			if (treeItem != null) {
 				treeItem.setText(getTaskLabel(task));
 			}
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskDetailsConfigurationComposite.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskDetailsConfigurationComposite.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskDetailsConfigurationComposite.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskDetailsConfigurationComposite.java	2009-02-06 09:16:39.000000000 +0100
@@ -1,6 +1,5 @@
 package org.jbpm.gd.jpdl.properties;
 
-import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.events.FocusEvent;
@@ -200,17 +199,7 @@
 	private void handleFormButtonSelected() {	
 		String name = task.getName();
 		if (name == null || "".equals(name)) {
-			new MessageDialog(
-					null, 
-					"Unnamed Task", 
-					null, 
-					"The task for which you want to generate a form has no name. " +
-					"Please return to the 'Name' field on the 'General' properties " +
-					"tab for this task and enter a name before trying to generate " +
-					"the form again.",
-					MessageDialog.INFORMATION,
-					new String[] {"OK"},
-					0).open();
+			name = task.getName();
 		} else {
 			new TaskFormGenerationDialog(parent.getShell(), name).open();
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskFormGenerationDialog.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskFormGenerationDialog.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskFormGenerationDialog.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TaskFormGenerationDialog.java	2009-02-06 09:16:39.000000000 +0100
@@ -23,17 +23,19 @@
 
 
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.SAXReader;
+import org.dom4j.io.XMLWriter;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -64,15 +66,9 @@
 import org.jbpm.gd.jpdl.taskform.Field;
 import org.jbpm.gd.jpdl.taskform.FieldType;
 import org.jbpm.gd.jpdl.taskform.FormGenerator;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
 
 public class TaskFormGenerationDialog extends StatusDialog {
 	
-	private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-	private static TransformerFactory transformerFactory = TransformerFactory.newInstance();
-	
 	private static final String pluginId = Plugin.getDefault().getBundle().getSymbolicName();
 	
 	private static final IStatus okStatus = new Status(
@@ -212,9 +208,18 @@
 		if (taskName == null || "".equals(taskName)) {
 			taskName = "default";
 		}
+		StringBuffer buff = new StringBuffer(taskName);
+		for (int i = 0; i < buff.length(); i++) {
+			char c = buff.charAt(i); 
+			if (!Character.isJavaIdentifierPart(c)) {
+				c = '-';
+			}
+			buff.setCharAt(i, c);
+		}
+		taskName = buff.toString();
 		int i = taskName.length();
 		fileNameText.setText(taskName + ".xhtml");
-		fileNameText.setSelection(0, i);
+		fileNameText.setSelection(0, i - 1);
 		fileNameText.addKeyListener(new KeyAdapter() {
 			public void keyReleased(KeyEvent e) {
 				checkFileName();
@@ -304,23 +309,22 @@
 	
 	private void saveDocument(IFile formFile, Document document) {
 		try {
-			StringWriter writer = new StringWriter();
-			DOMSource domSource = new DOMSource(document.getDocumentElement());
-			Transformer transformer = transformerFactory.newTransformer();
-			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-			StreamResult streamResult = new StreamResult(writer);
-			transformer.transform(domSource, streamResult);
-			formFile.setContents(new ByteArrayInputStream(writer.getBuffer().toString().getBytes()), true, true, null);
-		} catch (Exception e) {
+			StringWriter stringWriter = new StringWriter();
+			XMLWriter xmlWriter = new XMLWriter(stringWriter, OutputFormat.createPrettyPrint());
+			xmlWriter.write(document);
+			formFile.setContents(new ByteArrayInputStream(stringWriter.getBuffer().toString().getBytes()), true, true, null);
+		} catch (IOException e) {
+			Logger.logError("Problem writing xml document to file", e);						
+		} catch (CoreException e) {
 			Logger.logError("Problem writing xml document to file", e);						
 		}
 	}
 	
 	private Element getElementFor(String taskName, Document document) {
-		NodeList list = document.getElementsByTagName("form");
-		for (int i = 0; i < list.getLength(); i++) {
-			Element element = (Element)list.item(i);
-			String candidate = element.hasAttribute("task") ? element.getAttribute("task") : null;
+		List list = document.getRootElement().elements("form");
+		for (int i = 0; i < list.size(); i++) {
+			Element element = (Element)list.get(i);
+			String candidate = element.attributeValue("task");
 			if (candidate != null && candidate.equals(taskName)) {
 				return element;
 			}
@@ -331,19 +335,27 @@
 	private void addForm(Document document) {
 		Element element = getElementFor(taskName, document);
 		if (element == null) {
-			element = document.createElement("form");
-			element.getOwnerDocument().getDocumentElement().appendChild(element);
+			element = document.getRootElement().addElement("form");
+			element.addAttribute("task", taskName);
+		}
+		Attribute form = element.attribute("form"); 
+		if (form == null) {
+			element.addAttribute("form", fileNameText.getText());
+		} else {
+			form.setValue(fileNameText.getText());
 		}
-		element.setAttribute("form", fileNameText.getText());
 	}
 	
 	private Document getDocument(IFile file) {
 		try {
-			return documentBuilderFactory.newDocumentBuilder().parse(file.getContents());
-		} catch (Exception e) {
-			Logger.logError("Problem while obtaining the document", e);
-			return null;
+			return new SAXReader().read(new InputStreamReader(file.getContents()));
+		} catch (DocumentException e) {
+			Logger.logError("Problem creating DOM document from forms.xml", e);			
+		} catch (CoreException e) {
+			Logger.logError("Problem getting the contents from forms.xml", e);			
 		}
+		return null;
+		
 	}
 	
 	private IFile getInputFile() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TimerContainerSection.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TimerContainerSection.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TimerContainerSection.java	2009-02-06 09:11:53.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/properties/TimerContainerSection.java	2009-02-06 09:16:39.000000000 +0100
@@ -186,13 +186,10 @@
 				timerTable.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event());
 			}
 		} else if ("name".equals(evt.getPropertyName()) || "refName".equals(evt.getPropertyName())) {
-			if (timerTable.getSelectionCount() != 1) return;
 			TableItem tableItem = timerTable.getSelection()[0];
-			if (tableItem.getData() == evt.getSource()) {
 				tableItem.setText(getLabel((Timer)tableItem.getData()));
 			}
 		}
-	}
 	
 	private TableItem getItemToRemove(Object object) {
 		for (int i = 0; i < timerTable.getItemCount(); i++) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/Button.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/Button.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/Button.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/Button.java	2009-02-06 09:16:37.000000000 +0100
@@ -14,7 +14,7 @@
   }
 
   public static String getTo(String transitionName) {
-	  return transitionName != null ? " transition=\"" + transitionName + "\"" : ""; 
+	  return transitionName != null ? " to=\"" + transitionName + "\"" : ""; 
   }
   
   public static String getSaveAndClose(String transitionName) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/FieldType.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/FieldType.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/FieldType.java	2009-02-06 09:11:52.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform/FieldType.java	2009-02-06 09:16:37.000000000 +0100
@@ -24,7 +24,7 @@
   }
 
   public String getReadOnlyAttribute(Field field) {
-    return (field.isReadOnly() ? " readonly=\"true\" " : "");
+    return (field.isReadOnly() ? " readonly=\"true\" />" : "");
   }
 
   public String toString() {
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/taskform: GenerationTest.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/util/JbpmClasspathContainer.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/util/JbpmClasspathContainer.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/util/JbpmClasspathContainer.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/util/JbpmClasspathContainer.java	2009-02-06 09:16:45.000000000 +0100
@@ -21,18 +21,19 @@
  */
 package org.jbpm.gd.jpdl.util;
 
-import java.io.File;
-import java.io.FileReader;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathFactory;
-
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.XPath;
+import org.dom4j.io.SAXReader;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.variables.VariablesPlugin;
@@ -43,14 +44,9 @@
 import org.jbpm.gd.jpdl.Constants;
 import org.jbpm.gd.jpdl.Logger;
 import org.jbpm.gd.jpdl.prefs.JbpmInstallation;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
 
 public class JbpmClasspathContainer implements IClasspathContainer, Constants {
 
-	private static XPathFactory xPathFactory = XPathFactory.newInstance();
-	
 	IClasspathEntry[] jbpmLibraryEntries;
 	JbpmInstallation jbpmInstallation;
 
@@ -103,24 +99,24 @@
 		try {
 			String location = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(jbpmInstallation.location);
 			IPath locationPath = new Path(location);
-			File locationFile = locationPath.append("src/resources/gpd/version.info.xml").toFile();
-			XPath xPath = xPathFactory.newXPath();
-			XPathExpression xPathExpression = xPath.compile("/jbpm-version-info/classpathentry");
-			InputSource inputSource = new InputSource(new FileReader(locationFile));
-			NodeList nodeList = (NodeList)xPathExpression.evaluate(inputSource, XPathConstants.NODESET);
-			for (int i = 0; i < nodeList.getLength(); i++) {
-				Element entry = (Element)nodeList.item(i);
+			Document document = new SAXReader().read(locationPath.append("src/resources/gpd/version.info.xml").toFile());
+			XPath xpath = document.createXPath("/jbpm-version-info/classpathentry");
+			List list = xpath.selectNodes(document);
+			for (int i = 0; i < list.size(); i++) {
+				Element entry = (Element)list.get(i);
 				IPath sourcePath = null;
-				if (entry.hasAttribute("src")) {
-					sourcePath = locationPath.append((String)entry.getAttribute("src"));
+				if (entry.attribute("src") != null) {
+					sourcePath = locationPath.append((String)entry.attribute("src").getData());
 				}
 				result.put(
-						locationPath.append((String)entry.getAttribute("path")),
+						locationPath.append((String)entry.attribute("path").getData()),
 						sourcePath);
 			}
 		} 
-		catch (Exception e) {
-			Logger.logError("Problem while getting jar names", e);
+		catch (MalformedURLException e) { }
+		catch (DocumentException e) { } 	
+		catch (CoreException e) {
+			Logger.logError("Problem while resolving expression", e);
 		}
 		return result;
 	}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/ConfigureRuntimePage.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/ConfigureRuntimePage.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/ConfigureRuntimePage.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/ConfigureRuntimePage.java	2009-02-06 09:16:45.000000000 +0100
@@ -22,9 +22,11 @@
 package org.jbpm.gd.jpdl.wizard;
 
 import java.io.File;
+import java.net.MalformedURLException;
 
-import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.io.SAXReader;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
@@ -42,15 +44,10 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Text;
-import org.jbpm.gd.jpdl.Logger;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ConfigureRuntimePage extends WizardPage {
 	
-	private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-
-	private static final String ENTER_NAME_MSG = "Choose a name for the JBoss jBPM Runtime, e.g. 'JBoss jBPM 3.2.3'";
+	private static final String ENTER_NAME_MSG = "Choose a name for the JBoss jBPM Runtime, e.g. 'JBoss jBPM 3.1.1'";
 	private static final String ENTER_LOCATION_MSG = "Enter or search a location for the JBoss jBPM Runtime";
 	private static final String CONTINUE_MSG = "Press next to continue the project creation";
 	private static final String UNEXISTING_LOCATION_MSG = "This location does not exist";
@@ -208,13 +205,11 @@
 			versionInfoFile = getJbpmVersionInfoFile();
 			if (versionInfoFile == null) return result;			
 			try {
-				Document document = documentBuilderFactory.newDocumentBuilder().parse(versionInfoFile);
-				Element element = document.getDocumentElement();
-				result = element.hasAttribute("name") ? element.getAttribute("name") : null;
-			} 
-			catch (Exception e) {
-				Logger.logError("Problem obtaining the version number.", e);
+				Document document = new SAXReader().read(versionInfoFile);
+				result = document.getRootElement().attribute("name").getValue();
 			} 
+			catch (DocumentException e) {} 
+			catch (MalformedURLException e) {}
 		}
 		return result;
 	}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessDefinitionWizard.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessDefinitionWizard.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessDefinitionWizard.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessDefinitionWizard.java	2009-02-06 09:16:45.000000000 +0100
@@ -23,16 +23,18 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.net.MalformedURLException;
 
-import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.io.SAXReader;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.variables.VariablesPlugin;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
@@ -48,12 +50,9 @@
 import org.jbpm.gd.jpdl.Plugin;
 import org.jbpm.gd.jpdl.prefs.JbpmInstallation;
 import org.jbpm.gd.jpdl.prefs.PreferencesManager;
-import org.w3c.dom.Document;
 
 public class NewProcessDefinitionWizard extends Wizard implements INewWizard {
 
-	private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-
 	private IStructuredSelection selection;
 	private NewProcessDefinitionWizardPage page;
 	
@@ -143,9 +142,7 @@
 			if (jbpmName == null) return "";
 			JbpmInstallation jbpmInstallation = PreferencesManager.INSTANCE.getJbpmInstallation(jbpmName);
 			if (jbpmInstallation == null) return "";
-			String location = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(jbpmInstallation.location);
-			if (location == null) return "";
-			File file = new Path(location).append("src/resources/gpd/version.info.xml").toFile();
+			File file = new Path(jbpmInstallation.location).append("src/resources/gpd/version.info.xml").toFile();
 			if (!file.exists()) return "";
 			return getNameSpace(file);
 		} catch (CoreException e) {
@@ -155,10 +152,18 @@
 	
 	private String getNameSpace(File file) {
 		try {
-			Document document = documentBuilderFactory.newDocumentBuilder().parse(file);
-			return document.getDocumentElement().getAttribute("namespace");
-		} catch (Exception e) {
-			Logger.logError("Error getting namespace", e);
+			Document document = new SAXReader().read(file);
+			Attribute attribute = document.getRootElement().attribute("namespace");
+			if (attribute != null) {
+				return attribute.getValue();
+			} else {
+				return "";
+			}
+		} catch (DocumentException e) {
+			Logger.logError(e);
+			return "";
+		} catch (MalformedURLException e) {
+			Logger.logError(e);
 			return "";
 		}
 	}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessProjectWizard.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessProjectWizard.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessProjectWizard.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/wizard/NewProcessProjectWizard.java	2009-02-06 09:16:45.000000000 +0100
@@ -24,20 +24,20 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathFactory;
-
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.XPath;
+import org.dom4j.io.SAXReader;
 import org.eclipse.core.resources.ICommand;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
@@ -86,14 +86,9 @@
 import org.jbpm.gd.jpdl.prefs.JbpmInstallation;
 import org.jbpm.gd.jpdl.prefs.PreferencesManager;
 import org.jbpm.gd.jpdl.util.JbpmClasspathContainer;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
 
 public class NewProcessProjectWizard extends Wizard implements INewWizard {
 
-	private static XPathFactory xPathFactory = XPathFactory.newInstance();
-	
 	private WizardNewProjectCreationPage mainPage;
 	private ConfigureRuntimePage configureRuntimePage;
 	private NewProcessProjectDetailsWizardPage coreJbpmPage;
@@ -324,18 +319,15 @@
 		String result = null;
 		try { 
 			IPath locationPath = new Path(baseLocation);
-			File locationFile = locationPath.append("src/resources/gpd/version.info.xml").toFile();
-			XPath xPath = xPathFactory.newXPath();
-			XPathExpression xPathExpression = xPath.compile("/jbpm-version-info/" + selector);
-			InputSource inputSource = new InputSource(new FileReader(locationFile));
-			NodeList nodeList = (NodeList)xPathExpression.evaluate(inputSource, XPathConstants.NODESET);
-			if (nodeList.getLength() > 0) {
-				result = (String)((Element)nodeList.item(0)).getAttribute("path");
-			}
+			Document document = new SAXReader().read(locationPath.append("src/resources/gpd/version.info.xml").toFile());
+			XPath xpath = document.createXPath("/jbpm-version-info/" + selector);
+			List list = xpath.selectNodes(document);
+			if (!list.isEmpty()) {
+				result = (String)((Element)list.get(0)).attribute("path").getData();
 		} 
-		catch (Exception e) {
-			Logger.logError("Error getting location", e);
 		} 	
+		catch (MalformedURLException e) { }
+		catch (DocumentException e) { } 	
 		return result;
 	}
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ActionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ActionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ActionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ActionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -66,7 +66,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("configInfo".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("className".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/AssignmentDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/AssignmentDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/AssignmentDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/AssignmentDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -59,7 +59,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("configInfo".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("className".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CancelTimerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CancelTimerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CancelTimerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CancelTimerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -24,7 +24,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("name".equals(evt.getPropertyName())) {
 			setAttribute("name", (String)evt.getNewValue());
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ConditionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ConditionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ConditionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ConditionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -25,7 +25,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("script".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("expression".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ControllerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ControllerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ControllerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ControllerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -56,7 +56,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("configInfo".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("className".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CreateTimerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CreateTimerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CreateTimerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/CreateTimerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -47,7 +47,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("action".equals(evt.getPropertyName())) {
 			setElement("action", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("script".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DecisionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DecisionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DecisionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DecisionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -66,7 +66,7 @@
 		decision.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("handler".equals(evt.getPropertyName())) {
 			setElement("handler", (Handler)evt.getOldValue(), (Handler)evt.getNewValue());
 		} else if ("description".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DescriptionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DescriptionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DescriptionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/DescriptionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -23,7 +23,7 @@
 		description.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("description".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EndStateDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EndStateDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EndStateDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EndStateDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -48,7 +48,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("eventAdd".equals(evt.getPropertyName())) {
 			addElement((Event)evt.getNewValue());
 		} else if ("description".equals(evt.getPropertyName())) {
Only in jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml: EsbNodeMapper.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EventDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EventDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EventDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/EventDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -50,7 +50,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("actionElementAdd".equals(evt.getPropertyName())) {
 			addElement((SemanticElement)evt.getNewValue());
 		} else if ("actionElementRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ExceptionHandlerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ExceptionHandlerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ExceptionHandlerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ExceptionHandlerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -45,7 +45,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("actionElementAdd".equals(evt.getPropertyName())) {
 			addElement((ActionElement)evt.getNewValue());
 		} else if ("actionElementRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ForkDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ForkDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ForkDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ForkDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -67,7 +67,7 @@
 		fork.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("scriptAdd".equals(evt.getPropertyName())) {
 			addElement((Script)evt.getNewValue());
 		} else if ("scriptRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/HandlerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/HandlerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/HandlerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/HandlerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -53,7 +53,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("configInfo".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("className".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/JoinDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/JoinDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/JoinDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/JoinDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -63,7 +63,7 @@
 		join.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("eventAdd".equals(evt.getPropertyName())) {
 			addElement((Event)evt.getNewValue());
 		} else if ("eventRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -60,7 +60,7 @@
 		mail.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("subject".equals(evt.getPropertyName())) {
 			setElement("subject", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("text".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailNodeDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailNodeDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailNodeDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/MailNodeDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -76,7 +76,7 @@
 		mailNode.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("eventAdd".equals(evt.getPropertyName())) {
 			addElement((Event)evt.getNewValue());
 		} else if ("eventRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/NodeDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/NodeDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/NodeDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/NodeDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -20,7 +20,7 @@
 
 public class NodeDomAdapter extends XmlAdapter {
 	
-	private static final String[] CHILD_ELEMENTS = {"action-element", "description", "event", "exception-handler", "timer", "transition"};
+	private static final String[] CHILD_ELEMENTS = {"description", "action-element", "event", "exception-handler", "timer", "transition"};
 	private static HashMap NODE_TYPES = null;
 	
 	protected String[] getChildElements() {
@@ -79,7 +79,7 @@
 		node.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("action".equals(evt.getPropertyName())) {
 			setElement("action", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("script".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessDefinitionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessDefinitionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessDefinitionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessDefinitionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -102,7 +102,7 @@
 		processDefinition.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("swimlaneAdd".equals(evt.getPropertyName())) {
 			addElement((Swimlane)evt.getNewValue());
 		} else if ("swimlaneRemove".equals(evt.getPropertyName())) {
@@ -149,20 +149,11 @@
 		}
 	}
 	
-	protected SemanticElement createSemanticElementFor(XmlAdapter child) {
-		SemanticElement result = super.createSemanticElementFor(child);
-		child.initialize(result);
-		return result;
-	}
-	
-	protected SemanticElement getSemanticElementFor(XmlAdapter child) {
-		return child.getSemanticElement() != null  ? child.getSemanticElement() : createSemanticElementFor(child);
-	}
-	
 	protected void doModelAdd(XmlAdapter child) {
-		SemanticElement jpdlElement = getSemanticElementFor(child);
-		if (jpdlElement == null) return;
 		String type = child.getElementType();
+		SemanticElement jpdlElement = createSemanticElementFor(child);
+		if (jpdlElement == null) return;
+		child.initialize(jpdlElement);
 		ProcessDefinition processDefinition = (ProcessDefinition)getSemanticElement();
 		if ("swimlane".equals(type)) {
 			processDefinition.addSwimlane((Swimlane)jpdlElement);
@@ -214,7 +205,6 @@
 	}
 	
 	protected void doModelRemove(XmlAdapter child) {
-		if (child.getSemanticElement() == null) return;
 		String type = child.getElementType();
 		ProcessDefinition processDefinition = (ProcessDefinition)getSemanticElement();
 		if ("swimlane".equals(type)) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessStateDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessStateDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessStateDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ProcessStateDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -70,7 +70,7 @@
 		processState.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("variableAdd".equals(evt.getPropertyName())) {
 			addElement((Variable)evt.getNewValue());
 		} else if ("variableRemove".equals(evt.getPropertyName())) {
@@ -126,7 +126,7 @@
 			processState.addTransition((Transition)jpdlElement);
 		} else if ("variable".equals(type)) {
 			processState.addVariable((Variable)jpdlElement);
-		} else if ("sub-process".equals(type)) {
+		} else if ("subprocess".equals(type)) {
 			processState.setSubProcess((SubProcess)jpdlElement);
 		} else if ("description".equals(getNodeType(type))) {
 			processState.setDescription((Description)jpdlElement);
@@ -146,7 +146,7 @@
 			processState.removeTransition((Transition)child.getSemanticElement());
 		} else if ("variable".equals(type)) {
 			processState.removeVariable((Variable)child.getSemanticElement());
-		} else if ("sub-process".equals(type)) {
+		} else if ("subprocess".equals(type)) {
 			processState.setSubProcess(null);
 		} else if ("description".equals(getNodeType(type))) {
 			processState.setDescription(null);
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ReminderDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ReminderDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ReminderDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ReminderDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -36,7 +36,7 @@
 		reminder.setRepeat(getAttribute("repeat"));
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("duedate".equals(evt.getPropertyName())) {
 			setAttribute("duedate", (String)evt.getNewValue());
 		} else if ("repeat".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ScriptDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ScriptDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ScriptDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/ScriptDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -35,7 +35,7 @@
 		}
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("script".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("name".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StartStateDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StartStateDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StartStateDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StartStateDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -54,7 +54,7 @@
 		startState.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("task".equals(evt.getPropertyName())) {
 			setElement("task", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("description".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StateDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StateDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StateDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/StateDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -64,7 +64,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("eventAdd".equals(evt.getPropertyName())) {
 			addElement((Event)evt.getNewValue());
 		} else if ("eventRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubjectDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubjectDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubjectDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubjectDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -23,7 +23,7 @@
 		subject.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("subject".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubProcessDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubProcessDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubProcessDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SubProcessDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -26,7 +26,7 @@
 		subProcess.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("name".equals(evt.getPropertyName())) {
 			setAttribute("name", (String)evt.getNewValue());
 		} else if ("version".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SuperStateDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SuperStateDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SuperStateDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SuperStateDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -84,7 +84,7 @@
 		superState.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("nodeElementAdd".equals(evt.getPropertyName())) {
 			addElement((SemanticElement)evt.getNewValue());
 		} else if ("nodeElementRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SwimlaneDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SwimlaneDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SwimlaneDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/SwimlaneDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -37,7 +37,7 @@
 		swimlane.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("name".equals(evt.getPropertyName())) {
 			setAttribute("name", (String)evt.getNewValue());
 		} else if ("assignment".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -106,7 +106,7 @@
 		}
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("assignment".equals(evt.getPropertyName())) {
 			setElement("assignment", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("controller".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskNodeDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskNodeDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskNodeDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TaskNodeDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -73,7 +73,7 @@
 		taskNode.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("taskAdd".equals(evt.getPropertyName())) {
 			addElement((Task)evt.getNewValue());
 		} else if ("taskRemove".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TextDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TextDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TextDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TextDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -23,7 +23,7 @@
 		text.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("text".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		}
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TimerDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TimerDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TimerDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TimerDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -46,7 +46,7 @@
 		timer.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("action".equals(evt.getPropertyName())) {
 			setElement("action", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("script".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TransitionDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TransitionDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TransitionDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/TransitionDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -60,7 +60,7 @@
 		transition.addPropertyChangeListener(this);
 	}
 
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("condition".equals(evt.getPropertyName())) {
 			setElement("condition", (SemanticElement)evt.getOldValue(), (SemanticElement)evt.getNewValue());
 		} else if ("description".equals(evt.getPropertyName())) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/VariableDomAdapter.java jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/VariableDomAdapter.java
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/VariableDomAdapter.java	2009-02-06 09:11:54.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/xml/VariableDomAdapter.java	2009-02-06 09:16:45.000000000 +0100
@@ -30,7 +30,7 @@
 		variable.addPropertyChangeListener(this);
 	}
 	
-	protected void doPropertyChange(PropertyChangeEvent evt) {
+	public void propertyChange(PropertyChangeEvent evt) {
 		if ("variable".equals(evt.getPropertyName())) {
 			setTextContent((String)evt.getNewValue());
 		} else if ("access".equals(evt.getPropertyName())) {
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl/src/org/jbpm/gd: pf
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.build/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.build/build.xml
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.build/build.xml	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.build/build.xml	2009-02-06 09:17:19.000000000 +0100
@@ -14,8 +14,8 @@
   <property file="${user.home}/jbpm/build.properties" />          <!-- use this file to override any of the following properties -->
   <property file="${basedir}/../../../build/build.properties" />  <!-- if the build is running within the main jbpm build -->
 
-  <property name="lib.jbpm.designer.version" value="3.2.0.alpha1" />
-  <property name="jbpm.gpd.version.tag" value="HEAD" />  
+  <property name="lib.jbpm.designer.version" value="3.1.0.SP1" />
+  <property name="jbpm.gpd.version.tag" value="jbpm_jpdl_gpd_3_1_0_sp1" />  
   <property file="build.properties" />
 	
   <!-- general properties if not yet set by previously included files -->
@@ -176,6 +176,7 @@
   </target>
 
   <target name="run-eclipse-plugin-builder" description="launch the f**** atomic black box eclipse plugins build">
+  	<echo message="${eclipse.home}"/>
     <java 
       classname="org.eclipse.equinox.launcher.Main"
       classpath="${eclipse.home}/plugins/org.eclipse.equinox.launcher.jar" 
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.build/release.notes.html jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.build/release.notes.html
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.build/release.notes.html	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.build/release.notes.html	2009-02-06 09:17:19.000000000 +0100
@@ -1,14 +1,190 @@
 <html>
 <body>
-<h1>Release Notes - JBoss jBPM JPDL Designer - Version 3.2.x</h1>
+<h1>Release Notes - JBoss jBPM JPDL Designer - Version 3.1.0.GA</h1>
 
+<h2>Updates from 3.1.0.CR1 to 3.1.0.GA</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-78'>GPD-78</a>] - configInfoElements of semantic elements are not always added to XML adapters</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-137'>GPD-137</a>] - problem configuriing exception class</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-139'>GPD-139</a>] - Cannot add tasks to the task node</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-147'>GPD-147</a>] - Removing elements directly from source editor doesnt update the model and adater</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-148'>GPD-148</a>] - NPE opening GPD</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-152'>GPD-152</a>] - todo.jpdl.xml - Error opening the editor (jBPM Graphical Process Designer)</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-157'>GPD-157</a>] - XML comment not handled properly</li>
+</ul>
+        
+<h3>Feature Request</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-81'>GPD-81</a>] - Add support for reconnecting transitions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-111'>GPD-111</a>] - Add ability to forward and reverse map Semantic Elements to/from Dom Node/Xml Adapters jpdl</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-142'>GPD-142</a>] - org.jbpm.gd.common.properties should be exported in MANIFEST:MF</li>
+</ul>
+                    
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-24'>GPD-24</a>] - add convenient way to create loop transitions</li>
+</ul>
+
+
+<h2>Updates from 3.1.0.beta2 to 3.1.0.CR1</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-12'>GPD-12</a>] - Same JBPM project shared with each person having different JBPM installation program</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-78'>GPD-78</a>] - configInfoElements of semantic elements are not always added to XML adapters</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-124'>GPD-124</a>] - problem with semantic element factory in variable container configuration composite (npe)</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-125'>GPD-125</a>] - problem when creating a process project when no jbpm installation is selected</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-126'>GPD-126</a>] - CLONE -New Page Flow broken - exception</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-129'>GPD-129</a>] - ConfigInfoElementDomAdapter doesnt define node types</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-130'>GPD-130</a>] - Class Cast exception in ConfigInfoElement.getConfigInfoElements() </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-131'>GPD-131</a>] - XmlAdapter.getTextContent() appends null</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-132'>GPD-132</a>] - random duedate attributes appear on task elements</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-135'>GPD-135</a>] - bendpoints are not properly drawn when reading a processdefinition from disk</li>
+</ul>
+        
+<h3>Feature Request</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-111'>GPD-111</a>] - Add ability to forward and reverse map Semantic Elements to/from Dom Node/Xml Adapters jpdl</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-127'>GPD-127</a>] - CLONE -Page flow is under "JBoss Seam" instead of "Seam" in Wizard dialog</li>
+</ul>
+                    
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-121'>GPD-121</a>] - remove lookup of current editor to obtain commandstack</li>
+</ul>
+
+<h2>Updates from 3.1.0.beta1 to 3.1.0.beta2</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-79'>GPD-79</a>] - ProcessDefinitionDomAdapter.NODE_TYPES should not be hardcoded</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-82'>GPD-82</a>] - Example process definitions (including "Simple") don't display transitions in GPD 3.1 alpha4</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-87'>GPD-87</a>] - build.xml does not adhere to properties set in ${user.home}//jbpm/build.properties</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-110'>GPD-110</a>] - changing swimlane name in form doesn't update the label in the swimlane table</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-113'>GPD-113</a>] - NPE at ConfigInfoElementDomAdapter.initialize when the "assignment" element is not empty.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-115'>GPD-115</a>] - Fix undo for NodeDeleteCommand and EdgeDeleteCommand</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-116'>GPD-116</a>] - org.jbpm.gd.jpdl plugin is currently not exporting all org.jbpm.gd.* packages</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-117'>GPD-117</a>] - org.jbpm.gd.jbpm v. beta2 is no longer compatible with Eclipse 3.2</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-118'>GPD-118</a>] - Infinite loop in ActionDomAdapter.createSemanticElementFor(XmlAdapter)</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-119'>GPD-119</a>] - type of event reflected in outline view</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-120'>GPD-120</a>] - other action elements as children of transition in outline view</li>
+</ul>
+        
+<h3>Feature Request</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-77'>GPD-77</a>] - Need a way to initialize palette objects in GD 3.1</li>
+</ul>
+                    
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-76'>GPD-76</a>] - Including the xsd reference in the xml file should be a preference.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-114'>GPD-114</a>] - Reintroduce Seam pageflow support</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-122'>GPD-122</a>] - remove lookup of current editor to obtain semantic element factory</li>
+</ul>
+
+<h2>Updates from 3.1.0.alpha4 to 3.1.0.beta1</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-64'>GPD-64</a>] - When opening up processDefintion.xml created in 3.0.13 with the graphic designer all transtions are not showing up visually</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-83'>GPD-83</a>] - A file added to the process folder archive is not included automatically in the deployment page file tree.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-89'>GPD-89</a>] - Selection synchronisation problem between graphical view and outline view</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-90'>GPD-90</a>] - Fix the selection mechanism and the enabling/disabling of actions in the Exception Handler configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-92'>GPD-92</a>] - review the action container configuration form</li>
+</ul>
+        
+<h3>Feature Request</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-71'>GPD-71</a>] - Provide pluggability of assignment handlers</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-88'>GPD-88</a>] - tabbed view of tasks and actions should have the same tabs as the tabbed property view</li>
+</ul>
+                    
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-46'>GPD-46</a>] - Review the different configuration forms</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-70'>GPD-70</a>] - Support for task reminders</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-84'>GPD-84</a>] - Remove the checkboxes for nullable attributes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-85'>GPD-85</a>] - Change edit behaviour of text fields to commit changes on focuslost</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-86'>GPD-86</a>] - include all property pages from tabbed properties view also in embedded property tabbedview for action elements, tasks, swimlanes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-91'>GPD-91</a>] - Review the Exception Handler configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-93'>GPD-93</a>] - revision of the delegation configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-94'>GPD-94</a>] - revision of the action configuration forms</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-95'>GPD-95</a>] - revision of the action configuration for action element containers </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-96'>GPD-96</a>] - revision of the script configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-97'>GPD-97</a>] - revision of the cancel timer configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-99'>GPD-99</a>] - revision of the timer configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-101'>GPD-101</a>] - revision of the mail element configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-102'>GPD-102</a>] - revision of the assignment configuration forms</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-103'>GPD-103</a>] - revision of the swimlane configuration</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-104'>GPD-104</a>] - review the task configuration general form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-105'>GPD-105</a>] - revision of the task container configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-106'>GPD-106</a>] - revision of the controller configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-107'>GPD-107</a>] - revision of the decision handler configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-108'>GPD-108</a>] - give the different nodes decent default sizes</li>
+</ul>
+
+
+<h2>Updates from 3.1.0.alpha3 to 3.1.0.alpha4</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-58'>GPD-58</a>] - Delegation configuration does not always show the right controls</li>
+</ul>
+        
+<h3>Feature Request</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-52'>GPD-52</a>] - Enhanced configuration of actor-ids and pooled-actors</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-55'>GPD-55</a>] - Description support on node elements</li>
+</ul>
+                    
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-21'>GPD-21</a>] - Add support for the process-state</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-30'>GPD-30</a>] -  add support for descriptions on most elements</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-42'>GPD-42</a>] - Add script configuration on fork</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-68'>GPD-68</a>] - Support for Exception Handlers</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-69'>GPD-69</a>] - Support for Timers</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-72'>GPD-72</a>] - Support for the mail node</li>
+</ul>
+
+<h2>Updates from 3.1.0.alpha2 to 3.1.0.alpha3</h2>
+
+<h3>Bug</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-56'>GPD-56</a>] - Label editor does not show in the right place when in a superstate.</li>
+</ul>
+                            
+<h3>Task</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-28'>GPD-28</a>] - Add the decision configuration form</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-41'>GPD-41</a>] - Finish action element configuration forms</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-45'>GPD-45</a>] - Decision node configuration</li>
+</ul>
 
 
+<h2>Updates from 3.1.0.alpha1 to 3.1.0.alpha2</h2>
 
-<h2>Main updates from 3.1.x to 3.2</h2>
+<h3>Bugs</h3>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-11'>GPD-11</a>] - can't install subversion plugin together with gpd</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-53'>GPD-53</a>] - deleting jpdl elements (in treeview as well as in graph view) gives sometimes problems</li>
+</ul>
 
-To be done
+<h3>Feature Request</h3>        
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-4'>GPD-4</a>] - add support for adding Action to Nodes without adding Event</li>
+</ul>
 
+<h3>Task</h3>                    
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-6'>GPD-6</a>] - Review the publishing of build artifacts to the remote/local repositories</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-22'>GPD-22</a>] - Add graphical support for super states</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-44'>GPD-44</a>] - Condition configuration on transitions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-47'>GPD-47</a>] - Split out the graphical overview in a view of its own and redefine the perspective to incorporate it</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/GPD-48'>GPD-48</a>] - Review the outline view </li>
+</ul>
 
 
 <h2>Main updates from 3.0.x to 3.1</h2>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl: org.jbpm.gd.jpdl.core
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.docs/gpd.userguide: build.xml
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.docs/gpd.userguide: dtd
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.docs/gpd.userguide: en
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.docs: .project
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.feature/feature.xml jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.feature/feature.xml
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.feature/feature.xml	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.feature/feature.xml	2009-02-06 09:17:16.000000000 +0100
@@ -2,7 +2,7 @@
 <feature
       id="org.jbpm.gd.jpdl.feature"
       label="org.jbpm.gd.jpdl.feature"
-      version="3.2.0.alpha1">
+      version="3.1.0.SP1">
 
    <license>
       This software is distributed under the LGPL license : 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl: org.jbpm.gd.jpdl.help
diff -urbw --exclude .svn jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.site/site.xml jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.site/site.xml
--- jpdl-3.2.3.GA/designer/jpdl/org.jbpm.gd.jpdl.site/site.xml	2009-02-06 09:11:55.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl/org.jbpm.gd.jpdl.site/site.xml	2009-02-06 09:16:45.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.jbpm.gd.jpdl.feature_3.2.0.alpha1.jar" id="org.jbpm.gd.jpdl.feature" version="3.2.0.alpha1">
+   <feature url="features/org.jbpm.gd.jpdl.feature_3.1.0.SP1.jar" id="org.jbpm.gd.jpdl.feature" version="3.1.0.SP1">
       <category name="org.jbpm.gd"/>
    </feature>
    <category-def name="org.jbpm.gd" label="JBoss jBPM Graphical Designer Updates"/>
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl: org.jbpm.gd.jpdl.ui
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/jpdl: org.jbpm.gd.jpdl.ui.test
Only in jpdl-3.2.3.GA/designer/pf: org.jbpm.gd.pf
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/pf: org.jbpm.gd.pf.core
Only in jpdl-3.2.2-SOA-4.2.0.CP03/designer/pf: org.jbpm.gd.pf.ui
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/build.xml
--- jpdl-3.2.3.GA/enterprise/build.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/build.xml	2009-02-06 09:17:19.000000000 +0100
@@ -55,17 +55,15 @@
         <include name="jbpm-identity.jar" />
       </fileset>
     </copy>
-  	<copy file="${lib.commons.fileupload.local}" todir="target/lib" />
-  	<copy file="${lib.jakarta.io.local}" todir="target/lib" />
-    <ear earfile="target/${lib.jbpm.enterprise.file}"
-         manifest="target/META-INF/MANIFEST.MF"
-         appxml="src/main/ear/META-INF/application.xml">
+    <jar jarfile="target/${lib.jbpm.enterprise.file}"
+         manifest="target/META-INF/MANIFEST.MF">
+      <fileset dir="src/main/resources/ear" />
       <fileset dir="target">
         <include name="lib/*.jar" />
         <include name="jbpm-console.war" />
         <include name="jbpm-enterprise.jar" />
       </fileset>
-    </ear>
+    </jar>
   </target>
 
   <target name="create.manifest">
@@ -83,7 +81,7 @@
     <mkdir dir="target" />
     <jar destfile="target/jbpm-enterprise.jar">
       <fileset dir="target/classes" />
-      <metainf dir="src/main/jar/META-INF" />
+      <fileset dir="src/main/resources/jar" />
       <manifest>
         <attribute name="Implementation-Title" value="jBPM Enterprise Beans"/>
         <attribute name="Implementation-Version" value="${module.version} (date:${now})"/>
@@ -147,8 +145,6 @@
       <fileset dir="target/customizedwar/WEB-INF/lib">
         <include name="jbpm-jpdl.jar" />
         <include name="jbpm-identity.jar" />
-      	<include name="commons-fileupload.jar" />
-      	<include name="commons-io.jar" />
       </fileset>
     </delete>
 
@@ -158,34 +154,24 @@
       <replacevalue><![CDATA[Implementation-Title: jbpm-console.war (JTA configuration)]]></replacevalue>
     </replace>
     
-    <!-- add the local ejb references to web.xml -->
+    <!-- add the local ejb refs to the web.xml -->
     <replace file="target/customizedwar/WEB-INF/web.xml">
-      <replacetoken><![CDATA[<!-- EJB local references (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[<!-- EJB local references (begin) -->]]></replacevalue>
+      <replacetoken><![CDATA[<!-- EJB LOCAL REFS BEGIN ===]]></replacetoken>
+      <replacevalue><![CDATA[<!-- EJB LOCAL REFS BEGIN -->]]></replacevalue>
     </replace>
     <replace file="target/customizedwar/WEB-INF/web.xml">
-      <replacetoken><![CDATA[==== EJB local references (end) -->]]></replacetoken>
-      <replacevalue><![CDATA[<!-- EJB local references (end) -->]]></replacevalue>
+      <replacetoken><![CDATA[==== EJB LOCAL REFS END -->]]></replacetoken>
+      <replacevalue><![CDATA[<!-- EJB LOCAL REFS END -->]]></replacevalue>
     </replace>
 
-    <!-- add the local ejb references to jboss-web.xml -->
-    <replace file="target/customizedwar/WEB-INF/jboss-web.xml">
-      <replacetoken><![CDATA[<!-- EJB local references (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[<!-- EJB local references (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/customizedwar/WEB-INF/jboss-web.xml">
-      <replacetoken><![CDATA[==== EJB local references (end) -->]]></replacetoken>
-      <replacevalue><![CDATA[<!-- EJB local references (end) -->]]></replacevalue>
-    </replace>
-
-    <!-- remove the job executor launcher from web.xml -->
+    <!-- remove the job executor servlet from the web.xml -->
     <replace file="target/customizedwar/WEB-INF/web.xml">
-      <replacetoken><![CDATA[<!-- Job executor launcher (begin) -->]]></replacetoken>
-      <replacevalue><![CDATA[<!-- Job executor launcher (begin) ===]]></replacevalue>
+      <replacetoken><![CDATA[<!-- JbpmJobExecutorServlet BEGIN -->]]></replacetoken>
+      <replacevalue><![CDATA[<!-- JbpmJobExecutorServlet BEGIN ===]]></replacevalue>
     </replace>
     <replace file="target/customizedwar/WEB-INF/web.xml">
-      <replacetoken><![CDATA[<!-- Job executor launcher (end) -->]]></replacetoken>
-      <replacevalue><![CDATA[==== Job executor launcher (end) -->]]></replacevalue>
+      <replacetoken><![CDATA[<!-- JbpmJobExecutorServlet END -->]]></replacetoken>
+      <replacevalue><![CDATA[==== JbpmJobExecutorServlet END -->]]></replacevalue>
     </replace>
 
     <!-- replace the manifest and add the Class-Path entry -->
@@ -196,33 +182,16 @@
       <attribute name="Implementation-URL" value="http://www.jboss.org/"/>
       <attribute name="Implementation-Vendor" value="JBoss Inc."/>
       <attribute name="Implementation-Vendor-Id" value="http://www.jboss.org/"/>
-      <attribute name="Class-Path" value="lib/commons-fileupload.jar lib/jbpm-jpdl.jar lib/jbpm-identity.jar lib/jbpm-configs.jar"/>
+      <attribute name="Class-Path" value="lib/jbpm-jpdl.jar lib/jbpm-identity.jar lib/jbpm-configs.jar"/>
     </manifest>
 
-    <!-- remove the configuration files as they will be deployed in a separate jar file -->
-    <delete>
-      <fileset dir="target/customizedwar/WEB-INF/classes">
-        <include name="jbpm.cfg.xml" />
-        <include name="hibernate.cfg.xml" />
-        <include name="jbpm.mail.templates.xml" />
-      </fileset>
-    </delete>
-
-    <antcall target="package.config" />
-
-    <zip destfile="target/jbpm-console.war">
-      <fileset dir="target/customizedwar" />
-    </zip>
-  </target>
-
-  <target name="package.config">
     <!-- move the configuration files as they will be deployed in a separate jar file -->
     <mkdir dir="target/jbpm.configs" />
-    <copy todir="target/jbpm.configs">
-      <fileset dir="${jbpm.root}/jpdl/jar/src/main/config">
+    <move todir="target/jbpm.configs">
+      <fileset dir="target/customizedwar/WEB-INF/classes">
         <include name="*.xml" />
       </fileset>
-    </copy>
+    </move>
 
     <!-- overwrite the default jbpm.cfg.xml with the test configuration -->
     <copy file="src/main/config/jbpm.cfg.xml" todir="target/jbpm.configs" overwrite="true" />
@@ -247,30 +216,14 @@
       <replacevalue><![CDATA[<!-- JTA transaction properties (end) -->]]></replacevalue>
     </replace>
 
-    <!-- uncomment the data source property -->
-    <replace file="target/jbpm.configs/hibernate.cfg.xml">
-      <replacetoken><![CDATA[<!-- DataSource properties (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[<!-- DataSource properties (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/jbpm.configs/hibernate.cfg.xml">
-      <replacetoken><![CDATA[==== DataSource properties (end) -->]]></replacetoken>
-      <replacevalue><![CDATA[<!-- DataSource properties (end) -->]]></replacevalue>
-    </replace>
-
-    <!-- uncomment the identity mappings -->
-    <replace file="target/jbpm.configs/hibernate.cfg.xml">
-      <replacetoken><![CDATA[<!-- identity mappings (begin) ===]]></replacetoken>
-      <replacevalue><![CDATA[<!-- identity mappings (begin) -->]]></replacevalue>
-    </replace>
-    <replace file="target/jbpm.configs/hibernate.cfg.xml">
-      <replacetoken><![CDATA[==== identity mappings (end) -->]]></replacetoken>
-      <replacevalue><![CDATA[<!-- identity mappings (end) -->]]></replacevalue>
-    </replace>
-
     <mkdir dir="target/lib" />
     <jar destfile="target/lib/jbpm-configs.jar">
       <fileset dir="target/jbpm.configs" />
     </jar>
+    
+    <zip destfile="target/jbpm-console.war">
+      <fileset dir="target/customizedwar" />
+    </zip>
   </target>
 
   <target name="deploy"
@@ -278,8 +231,8 @@
     <get dest="target/deployresult.html" src="http://localhost:8080/jmx-console/HtmlAdaptor?action=invokeOpByName&amp;name=jboss.system:service%3DMainDeployer&amp;methodName=redeploy&amp;argType=java.net.URL&amp;arg0=file://${basedir}/target/jbpm-enterprise.ear" /> 
   </target>
   
-  <target name="package.test" depends="package.enterprise.jar, package.config, compile.test">
-    <mkdir dir="target/jbpm.test.ear.dir" />
+  <target name="package.test" depends="package, compile.test">
+    <unzip src="target/jbpm-enterprise.ear" dest="target/jbpm.test.ear.dir" />
 
     <!-- build the cactus test web archive -->
     <war destfile="target/jbpm.test.ear.dir/test.war"
@@ -287,28 +240,37 @@
       <manifest>
         <attribute name="Class-Path" value="lib/test-classes.jar lib/jbpm-jpdl.jar lib/jbpm-identity.jar lib/jbpm-configs.jar"/>
       </manifest>
-      <webinf dir="src/test/webapp/WEB-INF" excludes="web.xml" />
       <!-- third party libs -->
       <!-- hibernate + other hibernate dependencies are already available on jboss -->
       <lib file="${lib.cactus.local}"/>
       <lib file="${lib.aspectjrt.local}"/>
       <lib file="${lib.junit.local}"/>
       <classes dir="target/test.classes">
-        <exclude name="org/jbpm/enterprise/test/**"/>
+        <exclude name="**/*Recorder.class"/>
       </classes>
     </war>
 
+    <!-- update the application.xml -->
+    <replace file="target/jbpm.test.ear.dir/META-INF/application.xml">
+      <replacetoken><![CDATA[<!-- replacement marker for the test webapp module -->]]></replacetoken>
+      <replacevalue><![CDATA[<module>
+        <web>
+          <web-uri>test.war</web-uri>
+          <context-root>/test</context-root>
+        </web>
+      </module>]]></replacevalue>
+    </replace>
+
     <!-- package the test classes -->
     <mkdir dir="target/jbpm.test.ear.dir/lib" />
     <jar destfile="target/jbpm.test.ear.dir/lib/test-classes.jar">
       <!-- jbpm web application classes -->
       <fileset dir="target/test.classes">
-        <include name="org/jbpm/enterprise/test/**" />
+        <include name="**/*Recorder.class" />
       </fileset>
     </jar>
 
     <!-- include test classes reference in the manifest classpath of the cmdservice jar -->
-    <copy file="target/jbpm-enterprise.jar" todir="target/jbpm.test.ear.dir" />
     <mkdir dir="target/tmpmanifest" />
     <unzip dest="target/tmpmanifest" src="target/jbpm.test.ear.dir/jbpm-enterprise.jar" overwrite="true">
       <patternset><include name="*/MANIFEST.MF" /></patternset>
@@ -318,17 +280,10 @@
       <fileset dir="target/tmpmanifest"><include name="META-INF/MANIFEST.MF" /></fileset>
     </zip>
 
-    <!-- include jbpm libraries -->
-    <copy todir="target/jbpm.test.ear.dir/lib">
-      <fileset file="${lib.jbpm.jpdl.jar.local}" />
-      <fileset file="${lib.jbpm.identity.jar.local}" />
-      <fileset dir="target/lib" includes="*.jar" />
-    </copy>
-
-    <!-- package the test enterprise archive -->
-    <ear destfile="target/jbpm-test.ear" appxml="src/test/ear/META-INF/application.xml">
+    <!-- repackage the test enterprise archive -->
+    <zip destfile="target/jbpm-test.ear">
       <fileset dir="target/jbpm.test.ear.dir" />
-    </ear>
+    </zip>
   </target>
 
 </project>
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/config/jbpm.cfg.xml jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/config/jbpm.cfg.xml
--- jpdl-3.2.3.GA/enterprise/src/main/config/jbpm.cfg.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/config/jbpm.cfg.xml	2009-02-06 09:17:19.000000000 +0100
@@ -3,7 +3,7 @@
   <jbpm-context>
     <service name="persistence" factory="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory" />
     <service name="message" factory="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl" />
-    <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory" />
+    <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory" />
     <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
     <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
     <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
Only in jpdl-3.2.3.GA/enterprise/src/main: ear
Only in jpdl-3.2.3.GA/enterprise/src/main: jar
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/CommandListenerBean.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/CommandListenerBean.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/CommandListenerBean.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/CommandListenerBean.java	2009-02-06 09:17:19.000000000 +0100
@@ -23,207 +23,96 @@
 
 import java.io.Serializable;
 
-import javax.ejb.CreateException;
 import javax.ejb.EJBException;
 import javax.ejb.MessageDrivenBean;
 import javax.ejb.MessageDrivenContext;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
-import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
-import javax.jms.Session;
 import javax.naming.Context;
 import javax.naming.InitialContext;
-import javax.naming.NamingException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.jbpm.JbpmException;
 import org.jbpm.command.Command;
 import org.jbpm.ejb.LocalCommandService;
 import org.jbpm.ejb.LocalCommandServiceHome;
 
 /**
- * This message-driven bean listens for {@link ObjectMessage object messages}
- * containing a command instance. The received commands are 
- * executed by the {@link CommandServiceBean command service} bean, using the
- * local interface.
+ * This message-driven bean listens for ObjectMessages that contain a 
+ * {@link Command} object.  The commands that are received are 
+ * executed by a LocalCommandService bean (using the local interface).
+ * The local command service can be configured in the deployment descriptor. 
+ * The local reference used is java:comp/env/ejb and then LocalCommandServiceHome. 
  * 
- * The body of the message must be a Java object that implements the {@link 
- * Command} interface. The message properties, if any, are ignored.
- * 
- * <h3>Environment</h3>
- * 
- * <p>The environment entries and resources available for customization are
- * summarized in the table below.</p>
- * 
- * <table border="1">
- * <tr>
- * <th>Name</th>
- * <th>Type</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td><code>ejb/LocalCommandServiceBean</code></td>
- * <td>EJB Reference</td>
- * <td>Link to the local {@linkplain CommandServiceBean session bean} that
- * executes commands on a separate jBPM context.
- * </td>
- * </tr>
- * <tr>
- * <td><code>jms/JbpmConnectionFactory</code></td>
- * <td>Resource Manager Reference</td>
- * <td>Logical name of the factory that provides JMS connections for producing
- * result messages. Required for command messages that indicate a reply
- * destination.
- * </td>
- * </tr>
- * <tr>
- * <td><code>jms/DeadLetterQueue</code></td>
- * <td>Message Destination Reference</td>
- * <td>Messages which do not contain a command are sent to the queue referenced
- * here. Optional; if absent, such messages are rejected, which may cause the 
- * container to redeliver.
- * </td>
- * </tr>
- * </table>
- * 
- * @author Jim Rigsbee
- * @author Tom Baeyens
- * @author Alejandro Guizar
+ * @author Jim Rigsbee, Tom Baeyens
  */
 public class CommandListenerBean implements MessageDrivenBean, MessageListener {
 
   private static final long serialVersionUID = 1L;
   
-  MessageDrivenContext messageDrivenContext = null;
-  LocalCommandService commandService;
-  Connection jmsConnection;
-  Destination deadLetterQueue;
+  protected MessageDrivenContext messageDrivenContext = null;
 
   public void onMessage(Message message) {
-    try {
-      // extract command from message
       Command command = extractCommand(message);
-      if (command == null) {
-        discard(message);
-        return;
-      }
-      // execute command via local command executor bean
-      Object result = commandService.execute(command);
-      // send a response back if a "reply to" destination is set
-      Destination replyTo = message.getJMSReplyTo();
-      if (replyTo != null && (result instanceof Serializable || result == null)) {
-        sendResult((Serializable) result, replyTo, message.getJMSMessageID());
+    if (command!=null) {
+      try {
+        log.debug("looking up local command service");
+        Context initial = new InitialContext();
+        Context environment = (Context) initial.lookup("java:comp/env");
+        LocalCommandServiceHome localCommandServiceHome = (LocalCommandServiceHome) environment.lookup("ejb/LocalCommandServiceBean");
+        LocalCommandService localCommandService = localCommandServiceHome.create();
+        try {
+          // TODO add support for sending back the result
+          // not a priority because i don't see much use cases for that.
+          // let me know on the dev forums if you think otherwise.
+          log.debug("executing command with local command service");
+          localCommandService.execute(command);
+        } finally {
+          localCommandService.remove();
       }
+      } catch (Exception e) {
+        // TODO add a retry mechanism or verify how this can be configured in the MDB itself
+        throw new JbpmException("command "+command+" couldn't be executed", e);
     }
-    catch (JMSException e) {
-      messageDrivenContext.setRollbackOnly();
-      log.error("could not process message " + message, e);
     }
   }
 
-  protected Command extractCommand(Message message) throws JMSException {
+  protected Command extractCommand(Message message) {
     Command command = null;
     if (message instanceof ObjectMessage) {
+      try {
       log.debug("deserializing command from jms message...");
       ObjectMessage objectMessage = (ObjectMessage)message;
       Serializable object = objectMessage.getObject();
-      if (object instanceof Command) {
+        if (object== null) {
+          log.warn("ignoring null message");
+        } else if (object instanceof Command) {
         command = (Command) object;
       } else {
-        log.warn("ignoring object message cause it isn't a command '"+object+"'"+(object!=null ? " ("+object.getClass().getName()+")" : ""));
+          log.warn("ignoring object message cause it's not a command '"+object+"' ("+object.getClass().getName()+")");
+        }
+      } catch (Exception e) {
+        // TODO verify that such a message gets redirected to the dead letter queue
+        // or something similar without retrying.
+        throw new JbpmException("command listener bean only can handle object messages with Command's as the object.");
       }
     } else {
-      log.warn("ignoring message '"+message+"' cause it isn't an ObjectMessage ("+message.getClass().getName()+")");
+      log.warn("ignoring message '"+message+"' cause it's not an ObjectMessage ("+message.getClass().getName()+")");
     }
     return command;
   }
 
-  private void discard(Message message) throws JMSException {
-    if (deadLetterQueue == null) {
-      // lookup dead letter queue
-      try {
-        Context initial = new InitialContext();
-        deadLetterQueue = (Destination) initial.lookup("java:comp/env/jms/DeadLetterQueue");
-      } catch (NamingException e) {
-        log.debug("failed to retrieve dead letter queue, rejecting message: " + message);
-        messageDrivenContext.setRollbackOnly();
-        return;
-      }
-    }
-    // send message to dead letter queue
-    Session jmsSession = createSession();
-    try {
-      jmsSession.createProducer(deadLetterQueue).send(message);
-    } finally {
-      jmsSession.close();
-    }
-  }
-
-  private void sendResult(Serializable result, Destination destination, String correlationId) throws JMSException {
-    log.debug("sending result " + result + " to " + destination);
-    Session jmsSession = createSession();
-    try {
-      Message resultMessage = jmsSession.createObjectMessage(result);
-      resultMessage.setJMSCorrelationID(correlationId);
-      jmsSession.createProducer(destination).send(resultMessage);
-    } finally {
-      jmsSession.close();
-    }
-  }
-
-  private Session createSession() throws JMSException {
-    if (jmsConnection == null) {
-      // lookup factory and create jms connection
-      try {
-        Context initial = new InitialContext();
-        ConnectionFactory jmsConnectionFactory = (ConnectionFactory) initial.lookup("java:comp/env/jms/JbpmConnectionFactory");
-        jmsConnection = jmsConnectionFactory.createConnection();
-      }
-      catch (NamingException e) {
-        throw new EJBException("error retrieving jms connection factory", e);
-      }
-    }
-    /*
-     * if the connection supports xa, the session will be transacted, else the
-     * session will auto acknowledge; in either case no explicit transaction
-     * control must be performed - see ejb 2.1 §17.3.5
-     */
-    return jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-  }
-
   public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) {
     this.messageDrivenContext = messageDrivenContext;
   }
 
-  public void ejbRemove() {
-    if (jmsConnection != null) {
-      try {
-        jmsConnection.close();
-      } catch (JMSException e) {
-        log.debug("failed to close jms connection", e);
-      }
-      jmsConnection = null;
-    }
-    deadLetterQueue = null;
-    commandService = null;
+  public void ejbRemove() throws EJBException {
     messageDrivenContext = null;
   }
 
-  public void ejbCreate() {
-    try {
-      Context initial = new InitialContext();
-      LocalCommandServiceHome commandServiceHome = (LocalCommandServiceHome) initial.lookup("java:comp/env/ejb/LocalCommandServiceBean");
-      commandService = commandServiceHome.create();
-    } catch (NamingException e) {
-      throw new EJBException("error retrieving command service home", e);
-    } catch (CreateException e) {
-      throw new EJBException("error creating command service", e);
-    }
-  }
+  public void ejbCreate() {}
 
   private static final Log log = LogFactory.getLog(CommandListenerBean.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/CommandServiceBean.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/CommandServiceBean.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/CommandServiceBean.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/CommandServiceBean.java	2009-02-06 09:17:19.000000000 +0100
@@ -35,77 +35,17 @@
 import org.jbpm.JbpmException;
 import org.jbpm.command.Command;
 import org.jbpm.command.CommandService;
-import org.jbpm.msg.jms.JmsMessageServiceFactoryImpl;
-import org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory;
 
 /**
- * Stateless session bean that executes {@linkplain Command commands} by
- * calling their {@link Command#execute(JbpmContext) execute} method on
- * a separate {@link JbpmContext jBPM context}.
+ * A stateless session bean implementation of the {@link org.jbpm.command.CommandService}. 
  * 
- * <h3>Environment</h3>
- * 
- * <p>The environment entries and resources available for customization are
- * summarized in the table below.</p>
- * 
- * <table border="1">
- * <tr>
- * <th>Name</th>
- * <th>Type</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td><code>JbpmCfgResource</code></td>
- * <td>Environment Entry</td>
- * <td>The classpath resource from which to read the {@linkplain 
- * JbpmConfiguration jBPM configuration}. Optional, defaults to <code>
- * jbpm.cfg.xml</code>.
- * </td>
- * </tr>
- * <tr>
- * <td><code>ejb/LocalTimerEntityBean</code></td>
- * <td>EJB Reference</td>
- * <td>Link to the local {@linkplain TimerEntityBean entity bean} that
- * implements the scheduler service. Required for processes that contain
- * timers.
- * </td>
- * </tr>
- * <tr>
- * <td><code>jdbc/JbpmDataSource</code></td>
- * <td>Resource Manager Reference</td>
- * <td>Logical name of the data source that provides JDBC connections to the
- * {@linkplain JtaDbPersistenceServiceFactory persistence service}. Must match
- * the <code>hibernate.connection.datasource</code> property in the Hibernate 
- * configuration file.
- * </td>
- * </tr>
- * <tr>
- * <td><code>jms/JbpmConnectionFactory</code></td>
- * <td>Resource Manager Reference</td>
- * <td>Logical name of the factory that provides JMS connections to the 
- * {@linkplain JmsMessageServiceFactoryImpl message service}. Required for 
- * processes that contain asynchronous continuations.
- * </td>
- * </tr>
- * <tr>
- * <td><code>jms/JobQueue</code></td>
- * <td>Message Destination Reference</td>
- * <td>The message service sends job messages to the queue referenced here.
- * To ensure this is the same queue from which the {@linkplain JobListenerBean
- * job listener bean} receives messages, the <code>message-destination-link
- * </code> points to a common logical destination, <code>JobQueue</code>.
- * </td>
- * </tr>
- * </table>
- * 
- * @author Jim Rigsbee
- * @author Tom Baeyens
- * @author Alejandro Guizar
+ * @author Jim Rigsbee, Tom Baeyens
  */
 public class CommandServiceBean implements SessionBean, CommandService {
 
   private static final long serialVersionUID = 1L;
 
+  
   JbpmConfiguration jbpmConfiguration = null;
   SessionContext sessionContext = null;
 
@@ -122,7 +62,9 @@
     try {
       log.debug("getting jbpm configuration resource from the environment properties");
       Context initial = new InitialContext();
-      jbpmCfgResource = (String) initial.lookup("java:comp/env/JbpmCfgResource");
+      Context environment = (Context) initial.lookup("java:comp/env");
+      jbpmCfgResource = (String) environment.lookup("JbpmCfgResource");
+      
     } catch (NamingException e) {
       log.debug("couldn't find configuration property JbpmCfgResource through JNDI");
     }
@@ -139,15 +81,15 @@
   }
 
   public Object execute(Command command) {
+    log.debug("handing over the command execution to the command service");
+    
     Object result = null;
     JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     try {
       log.debug("executing " + command);
       result = command.execute(jbpmContext);
-    } catch (RuntimeException e) {
-      throw e;
     } catch (Exception e) {
-      throw new JbpmException("failed to execute " + command, e);
+      throw new JbpmException("couldn't execute "+command, e);
     } finally {
       jbpmContext.close();
     }
@@ -157,14 +99,10 @@
   public void setSessionContext(SessionContext sessionContext) {
     this.sessionContext = sessionContext;
   }
-
   public void ejbRemove() {
-    sessionContext = null;
-    jbpmConfiguration = null;
+    this.sessionContext = null;
   }
-
   public void ejbActivate() {}
-
   public void ejbPassivate() {}
 
   private static final Log log = LogFactory.getLog(CommandServiceBean.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/ExecuteJobCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/ExecuteJobCommand.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/ExecuteJobCommand.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/ExecuteJobCommand.java	2009-02-06 09:17:19.000000000 +0100
@@ -19,13 +19,14 @@
 
   public Object execute(JbpmContext jbpmContext) throws Exception {
     JobSession jobSession = jbpmContext.getJobSession();
+    log.debug("loading job "+jobId);
     Job job = jobSession.loadJob(jobId);
     log.debug("executing job "+jobId);
-    if (job.execute(jbpmContext)) {
-      log.debug("deleting job "+jobId);
-      jobSession.deleteJob(job);
+    if (!job.execute(jbpmContext)) {
+      log.warn("job "+jobId+" was not supposed to be deleted");
     }
-    return job;
+    jobSession.deleteJob(job);
+    return null;
   }
 
   private static Log log = LogFactory.getLog(ExecuteJobCommand.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/JobListenerBean.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/JobListenerBean.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/JobListenerBean.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/JobListenerBean.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,43 +1,46 @@
 package org.jbpm.ejb.impl;
 
-import javax.jms.JMSException;
+import java.util.Enumeration;
+
 import javax.jms.Message;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.jbpm.JbpmException;
 import org.jbpm.command.Command;
 
-/**
- * Message-driven bean that listens for {@link Message messages} containing
- * a reference to a pending {@linkplain Job job. to support asynchronous 
- * continuations.
- * 
- * The message must have a property called <code>jobId</code> of type 
- * <code>long</code> which references a pending <literal>Job</literal> 
- * in the database. The message body, if any, is ignored.
- * 
- * <h3>Environment</h3>
- * 
- * This bean extends the {@link CommandListenerBean} and inherits its
- * environment entries and resources available for customization.
- * 
- * @author Tom Baeyens
- * @author Alejandro Guizar
- */
 public class JobListenerBean extends CommandListenerBean {
 
   private static final long serialVersionUID = 1L;
 
-  protected Command extractCommand(Message message) throws JMSException {
+  protected Command extractCommand(Message message) {
     Command command = null;
+    try {
     // checking for availability of the jobId property
+      boolean isJobIdAvailable = false;
+      Enumeration enumeration = message.getPropertyNames();
+      while ( (!isJobIdAvailable)
+              && (enumeration.hasMoreElements())
+            ) {
+        if ("jobId".equals(enumeration.nextElement())) {
+          isJobIdAvailable = true;
+        }
+      }
+
+      if (isJobIdAvailable) {
     log.debug("getting job id from jms message...");
-    Long jobId = (Long) message.getObjectProperty("jobId");
-    if (jobId != null) {
+        long jobId = message.getLongProperty("jobId");
       log.debug("retrieved jobId '"+jobId+"' via jms message");
-      command = new ExecuteJobCommand(jobId.longValue());
+        command = new ExecuteJobCommand(jobId);
     } else {
-      log.warn("ignoring message '"+message+"' cause it doesn't have property jobId");
+        log.warn("JobListenerBean is ignoring message '"+message+"' that doesn't have jobId property");
+      }
+
+    } catch (Exception e) {
+      e.printStackTrace();
+      // TODO verify that such a message gets redirected to the dead letter queue
+      // or something similar without retrying.
+      throw new JbpmException("job listener bean only can handle messages with a long-property jobId that refers to a Job in the JBPM_JOB tables.");
     }
     return command;
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/TimerEntityBean.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/TimerEntityBean.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/impl/TimerEntityBean.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/impl/TimerEntityBean.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,13 +1,38 @@
+/*
+ * 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.jbpm.ejb.impl;
 
-import java.util.Collection;
-import java.util.Iterator;
+import java.rmi.RemoteException;
+import java.util.Date;
 
 import javax.ejb.CreateException;
 import javax.ejb.EJBException;
+import javax.ejb.EJBLocalHome;
+import javax.ejb.EJBLocalObject;
 import javax.ejb.EntityBean;
 import javax.ejb.EntityContext;
+import javax.ejb.RemoveException;
 import javax.ejb.TimedObject;
+import javax.ejb.Timer;
 import javax.ejb.TimerService;
 import javax.naming.Context;
 import javax.naming.InitialContext;
@@ -15,163 +40,123 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.jbpm.JbpmConfiguration;
+import org.jbpm.JbpmException;
+import org.jbpm.calendar.BusinessCalendar;
+import org.jbpm.calendar.Duration;
 import org.jbpm.ejb.LocalCommandService;
 import org.jbpm.ejb.LocalCommandServiceHome;
-import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
-import org.jbpm.job.Timer;
+import org.jbpm.ejb.LocalTimerEntity;
 import org.jbpm.scheduler.ejbtimer.ExecuteTimerCommand;
-import org.jbpm.scheduler.ejbtimer.TimerInfo;
 
 /**
- * Entity bean that interacts with the EJB timer service to schedule jBPM 
- * {@linkplain Timer timers}.
- * 
- * <h3>Environment</h3>
- * 
- * <p>The environment entries and resources available for customization are
- * summarized in the table below.</p>
+ * A stateless session bean implementation of the {@link org.jbpm.command.CommandService}. 
  * 
- * <table border="1">
- * <tr>
- * <th>Name</th>
- * <th>Type</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td><code>ejb/LocalCommandServiceBean</code></td>
- * <td>EJB Reference</td>
- * <td>Link to the local {@linkplain CommandServiceBean session bean} that
- * executes timers on a separate jBPM context.
- * </td>
- * </tr>
- * </table>
- * 
- * @author Tom Baeyens
- * @author Alejandro Guizar
- * @author Fady Matar
+ * @author Jim Rigsbee, Tom Baeyens
  */
-public abstract class TimerEntityBean implements EntityBean, TimedObject {
-
-	private EntityContext entityContext;
-  private LocalCommandService commandService;
-
-  private static final Log log = LogFactory.getLog(TimerEntityBean.class);
-
-	public abstract Long getTimerId();
+public class TimerEntityBean implements EntityBean, LocalTimerEntity, TimedObject {
 
-	public abstract void setTimerId(Long timerId);
+  private static final long serialVersionUID = 1L;
 
-	public abstract String getName();
+  Long id;
+  String dueDate;
+  String repeat;
 
-	public abstract void setName(String name);
+  JbpmConfiguration jbpmConfiguration = null;
+  EntityContext entityContext = null;
 
-	public abstract Long getTokenId();
-
-	public abstract void setTokenId(Long tokenId);
-
-	public abstract Long getProcessInstanceId();
-
-	public abstract void setProcessInstanceId(Long processInstanceId);
-
-	public void ejbActivate() {
+  /**
+   * creates a command service that will be used to execute the commands that 
+   * are passed in the execute method.  The command service will be build by 
+   * creating a jbpm configuration.  In case the environment key JbpmCfgResource
+   * is specified for this bean, that value will be used to resolve the jbpm 
+   * configuration file as a resource.  If that key is not configured, the default 
+   * jbpm configuration file will be used (jbpm.cfg.xml).
+   */
+  public void ejbCreate() throws CreateException {
+    String jbpmCfgResource = null; 
     try {
+      log.debug("getting jbpm configuration resource from the environment properties");
       Context initial = new InitialContext();
-      LocalCommandServiceHome commandServiceHome = (LocalCommandServiceHome) initial
-          .lookup("java:comp/env/ejb/LocalCommandServiceBean");
-      commandService = commandServiceHome.create();
-    }
-    catch (NamingException e) {
-      throw new EJBException("failed to retrieve command service home", e);
-    }
-    catch (CreateException e) {
-      throw new EJBException("command service creation failed", e);
-    }
-	}
+      Context environment = (Context) initial.lookup("java:comp/env");
+      jbpmCfgResource = (String) environment.lookup("JbpmCfgResource");
 
-	public void ejbPassivate() {
-	  commandService = null;
+    } catch (NamingException e) {
+      log.debug("couldn't find configuration property JbpmCfgResource through JNDI");
 	}
 
-	public void ejbRemove() {
-	  commandService = null;
+    if (log.isDebugEnabled()) {
+      if (jbpmCfgResource==null) {
+        log.debug("getting default jbpm configuration resource (jbpm.cfg.xml)");
+      } else {
+        log.debug("getting jbpm configuration from resource "+jbpmCfgResource);
+      }
 	}
 
-	public void ejbLoad() {}
-
-	public void ejbStore() {}
-
-	public void setEntityContext(EntityContext entityContext) {
-		this.entityContext = entityContext;
+    jbpmConfiguration = JbpmConfiguration.getInstance(jbpmCfgResource);
 	}
 
-	public void unsetEntityContext() {
-		entityContext = null;
+  public void schedule() {
+    log.debug("creating timer "+id+" in the ejb timer service");
+    createTimer(dueDate);
 	}
 
-	/**
-	 * No ejbCreate operation is allowed. One approach of ensuring that an EJB is
-	 * set as read-only.
-	 * 
-	 * @throws CreateException
-	 */
-	public Long ejbCreate() throws CreateException {
-		throw new CreateException("direct creation of timer entities is prohibited");
+  public void createTimer(String duration) {
+    TimerService timerService = entityContext.getTimerService();
+    BusinessCalendar businessCalendar = new BusinessCalendar();
+    Date dueDateTime = businessCalendar.add(new Date(), new Duration(duration));
+    timerService.createTimer(dueDateTime, null);
 	}
 
-	public void ejbPostCreate() {}
+  public void cancel() {
+  }
 
-	public void ejbTimeout(javax.ejb.Timer ejbTimer) {
-		log.debug("ejb timer " + ejbTimer + " fires");
-		TimerInfo timerInfo = (TimerInfo) ejbTimer.getInfo();
-		Timer timer = (Timer) commandService.execute(new ExecuteTimerCommand(timerInfo.getTimerId()));
+  public void ejbTimeout(Timer timer) {
+    log.debug("ejb timer "+timer+" fires");
+    String localCommandServiceJndiName = "java:comp/env/ejb/LocalCommandServiceBean";
+    try {
+      Context initial = new InitialContext();
+      LocalCommandServiceHome localCommandServiceHome = (LocalCommandServiceHome) initial.lookup(localCommandServiceJndiName);
+      LocalCommandService localCommandService = localCommandServiceHome.create();
+      localCommandService.execute(new ExecuteTimerCommand(id.longValue()));
 		// if the timer has repeat
-		if(timer != null && timer.getRepeat() != null) {
+      if (repeat!=null) {
 			// create a new timer
-			log.debug("scheduling timer for repeat at " + timer.getDueDate());
-			createTimer(timer);
+        log.debug("repeating timer "+id);
+        createTimer(repeat);
 		}
+    } catch (Exception e) {
+      JbpmException jbpmException = new JbpmException("couldn't execute timer", e);
+      log.error(jbpmException);
+      throw jbpmException;
 	}
-
-	public void createTimer(org.jbpm.job.Timer timer) {
-		log.debug("Creating timer " + timer + " in the ejb timer service");
-		TimerService timerService = entityContext.getTimerService();
-		timerService.createTimer(timer.getDueDate(), new TimerInfo(timer));
 	}
 
-	public void cancelTimer() {
-		log.debug("Cancelling timer: " + this.getName());
-		Collection timers = entityContext.getTimerService().getTimers();
-		for (Iterator i = timers.iterator(); i.hasNext();) {
-			javax.ejb.Timer ejbTimer = (javax.ejb.Timer) i.next();
-			ejbTimer.cancel();
-		}
+  public EJBLocalHome getEJBLocalHome() throws EJBException {
+    return null;
 	}
 
-	public void cancelTimersByName(String timerName, Token token) {
-		log.debug("cancelling timers with name " + timerName
-				+ " from the ejb timer service");
-		Collection timers = entityContext.getTimerService().getTimers();
-		for (Iterator i = timers.iterator(); i.hasNext();) {
-			javax.ejb.Timer ejbTimer = (javax.ejb.Timer) i.next();
-			TimerInfo timerInfo = (TimerInfo) ejbTimer.getInfo();
-			if(timerInfo.matchesName(timerName, token)) {
-				ejbTimer.cancel();
-			}
-		}
+  public Object getPrimaryKey() throws EJBException {
+    return id;
 	}
 
-	public void deleteTimersForProcessInstance(ProcessInstance processInstance) {
-		log.debug("deleting timers for process instance " + processInstance
-				+ " from the ejb timer service");
-		Collection timers = entityContext.getTimerService().getTimers();
-		for (Iterator i = timers.iterator(); i.hasNext();) {
-			javax.ejb.Timer ejbTimer = (javax.ejb.Timer) i.next();
-			TimerInfo timerInfo = (TimerInfo) ejbTimer.getInfo();
-			if(timerInfo.matchesProcessInstance(processInstance)) {
-				ejbTimer.cancel();
+  public boolean isIdentical(EJBLocalObject elo) throws EJBException {
+    return false;
 			}
+
+  public void setEntityContext(EntityContext entityContext) {
+    this.entityContext = entityContext;
 		}
+  public void unsetEntityContext() throws EJBException, RemoteException {
+    this.entityContext = null;
 	}
 
+  public void remove() throws RemoveException, EJBException {}
+  public void ejbStore() throws EJBException, RemoteException {}
+  public void ejbLoad() throws EJBException, RemoteException {}
+  public void ejbActivate() throws EJBException, RemoteException {}
+  public void ejbPassivate() throws EJBException, RemoteException {}
+  public void ejbRemove() {}
+
+  private static final Log log = LogFactory.getLog(TimerEntityBean.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntityHome.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntityHome.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntityHome.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntityHome.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,21 +1,27 @@
+/*
+ * 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.jbpm.ejb;
 
-import java.util.Collection;
+public interface LocalTimerEntityHome extends javax.ejb.EJBLocalHome {
 
-import javax.ejb.CreateException;
-import javax.ejb.EJBLocalHome;
-import javax.ejb.FinderException;
-
-public interface LocalTimerEntityHome extends EJBLocalHome {
-
-	public LocalTimerEntity create() throws CreateException;
-
-	public LocalTimerEntity findByPrimaryKey(Long key) throws FinderException;
-
-	public Collection findByTokenId(Long key) throws FinderException;
-
-	public Collection findByTokenIdAndName(Long key, String name)
-			throws FinderException;
-
-	public Collection findByProcessInstanceId(Long key) throws FinderException;
+  public LocalTimerEntity findById(long id);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntity.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntity.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntity.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/ejb/LocalTimerEntity.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,18 +1,28 @@
+/*
+ * 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.jbpm.ejb;
 
-import javax.ejb.EJBLocalObject;
-
-import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
-
-public interface LocalTimerEntity extends EJBLocalObject {
-
-	public void cancelTimer();
-
-	public void createTimer(org.jbpm.job.Timer timer);
-
-	public void cancelTimersByName(String timerName, Token token);
-
-	public void deleteTimersForProcessInstance(ProcessInstance processInstance);
+public interface LocalTimerEntity extends javax.ejb.EJBLocalObject {
 
+  void schedule();
+  void cancel();
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceFactoryImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceFactoryImpl.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceFactoryImpl.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceFactoryImpl.java	2009-02-06 09:17:19.000000000 +0100
@@ -24,77 +24,39 @@
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
-import javax.jms.JMSException;
 import javax.jms.Session;
-import javax.naming.Context;
 import javax.naming.InitialContext;
-import javax.naming.NamingException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmException;
-import org.jbpm.ejb.impl.JobListenerBean;
 import org.jbpm.svc.Service;
 import org.jbpm.svc.ServiceFactory;
 
-/**
- * The JMS message service leverages the reliable communication infrastructure
- * accessed through JMS interfaces to deliver asynchronous continuation
- * messages to the {@link JobListenerBean}.
- * 
- * <h3>Configuration</h3>
- * 
- * The JMS message service factory exposes the following configurable fields.
- * 
- * <ul>
- * <li><code>connectionFactoryJndiName</code></li>
- * <li><code>destinationJndiName</code></li>
- * <li><code>isCommitEnabled</code></li>
- * </ul>
- * 
- * Refer to the jBPM manual for details.
- * 
- * @author Tom Baeyens
- */
 public class JmsMessageServiceFactoryImpl implements ServiceFactory {
 
   private static final long serialVersionUID = 1L;
-  private static final Log log = LogFactory.getLog(JmsMessageServiceFactoryImpl.class);
   
-  String connectionFactoryJndiName = "java:comp/env/jms/JbpmConnectionFactory";
-  String destinationJndiName = "java:comp/env/jms/JobQueue";
+  String connectionFactoryJndiName = "java:/JmsXA";
+  String destinationJndiName = "queue/JbpmJobQueue";
   boolean isCommitEnabled = false;
 
-  private ConnectionFactory connectionFactory;
-  private Destination destination;
-
-  public JmsMessageServiceFactoryImpl() {
-    try {
-      Context initial = new InitialContext();
-      connectionFactory = (ConnectionFactory) initial.lookup(connectionFactoryJndiName);
-      destination = (Destination) initial.lookup(destinationJndiName);
-      initial.close();
-    }
-    catch (NamingException e) {
-      log.error("jms object lookup problem", e);
-      throw new JbpmException("jms object lookup problem", e);
-    }
-  }
-
   public Service openService() {
     Connection connection = null;
     Session session = null;
+    Destination destination = null;
     
     try {
+      InitialContext initialContext = new InitialContext();
+      ConnectionFactory connectionFactory = (ConnectionFactory) initialContext.lookup(connectionFactoryJndiName);
+      destination = (Destination) initialContext.lookup(destinationJndiName);
       connection = connectionFactory.createConnection();
       
       // If you use an XA connection factory in JBoss, the parameters will be ignored.  It will always take part in the global JTA transaction.
-      // If you use a non XQ connection factory, the first parameter specifies whether you want to have all message productions and 
-      // consumptions as part of one transaction (TRUE) or whether you want all productions and consumptions to be instantanious (FALSE)
+      // If you use a non XQ connection factory, the first parameter specifies wether you want to have all message productions and 
+      // consumptions as part of one transaction (TRUE) or wether you want all productions and consumptions to be instantanious (FALSE)
       // Of course, we never want messages to be received before the current jbpm transaction commits so we just set it to true.
-      session = connection.createSession(true, Session.SESSION_TRANSACTED);
+      session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
       
-    } catch (JMSException e) {
+    } catch (Exception e) {
       throw new JbpmException("couldn't open jms message session", e);
     }
     
@@ -102,8 +64,6 @@
   }
 
   public void close() {
-    connectionFactory = null;
-    destination = null;
   }
 
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceImpl.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceImpl.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceImpl.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/msg/jms/JmsMessageServiceImpl.java	2009-02-06 09:17:19.000000000 +0100
@@ -43,7 +43,7 @@
   Session session = null;
   Destination destination = null;
   MessageProducer messageProducer = null;
-  boolean isCommitEnabled = false;
+  boolean isCommitEnabled = true;
   
   public JmsMessageServiceImpl(Connection connection, Session session, Destination destination, boolean isCommitEnabled) {
     this.connection = connection;
@@ -80,49 +80,47 @@
   }
 
   public void close() {
-    JbpmException exception = null;
-
-    if (messageProducer!=null) {
+    Throwable exception = null;
       try {
-        messageProducer.close();
+      if (messageProducer!=null) messageProducer.close();
       } catch (Exception e) {
         // NOTE that Error's are not caught because that might halt the JVM and mask the original Error.
-        exception = new JbpmException("couldn't close message producer", e);
-      }
+      exception = e;
     }
-
-    if (session!=null) {
-      if (isCommitEnabled) {
         try {
+      if ( (session!=null)
+           && (isCommitEnabled)
+         ) {
           session.commit();
+      }
         } catch (Exception e) {
-          if (exception==null) {
+      if (exception!=null) {
             exception = new JbpmException("couldn't commit JMS session", e);
+      } else {
+        exception = e;
           }
         }
-      }
-      
       try {
-        session.close();
+      if (session!=null) session.close();
       } catch (Exception e) {
-        if (exception==null) {
+      if (exception!=null) {
           exception = new JbpmException("couldn't close JMS session", e);
+      } else {
+        exception = e;
         }
       }
-    }
-
-    if (connection!=null) {
       try {
-        connection.close();
+      if (connection!=null) connection.close();
       } catch (Exception e) {
-        if (exception==null) {
+      if (exception!=null) {
           exception = new JbpmException("couldn't close JMS connection", e);
-        }
+      } else {
+        exception = e;
       }
     }
 
     if (exception!=null) {
-      throw exception;
+      throw new JbpmException("couldn't close one of the jms objects", exception);
     }
   }
 
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/msg/jms: JmsMessageUtils.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerServiceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerServiceFactory.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerServiceFactory.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerServiceFactory.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,12 +1,5 @@
 package org.jbpm.scheduler.ejbtimer;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jbpm.JbpmException;
 import org.jbpm.svc.Service;
 import org.jbpm.svc.ServiceFactory;
 
@@ -14,27 +7,10 @@
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(EjbSchedulerServiceFactory.class);
-
-  String timerServiceHomeJndiName = "java:comp/env/ejb/LocalTimerServiceBean";
-
-  private LocalTimerServiceHome timerServiceHome;
-
-  public EjbSchedulerServiceFactory() {
-    try {
-      Context initial = new InitialContext();
-      timerServiceHome = (LocalTimerServiceHome) initial.lookup(timerServiceHomeJndiName);
-    } catch (NamingException e) {
-      log.error("ejb timer service lookup problem", e);
-      throw new JbpmException("ejb timer service lookup problem", e);
-    }
-  }
-
   public Service openService() {
-    return new EjbSchedulerService(timerServiceHome);
+    return new EjbSchedulerService();
   }
 
   public void close() {
-    timerServiceHome = null;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerService.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerService.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerService.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerService.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,11 +1,11 @@
 package org.jbpm.scheduler.ejbtimer;
 
-import javax.ejb.CreateException;
-import javax.ejb.RemoveException;
+import javax.ejb.FinderException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.hibernate.Session;
 import org.jbpm.JbpmContext;
 import org.jbpm.JbpmException;
 import org.jbpm.db.JobSession;
@@ -19,51 +19,84 @@
   private static final long serialVersionUID = 1L;
 
   JobSession jobSession;
-  Session session;
-  LocalTimerService timerService;
+	TimerEntityLocal timerEntityLocal;
+	TimerEntityLocalHome timerEntityLocalHome;
   
-  public EjbSchedulerService(LocalTimerServiceHome timerServiceHome) {
+	public EjbSchedulerService() {
     JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
     if (jbpmContext==null) {
-      throw new JbpmException("instantiation of the EjbSchedulerService requires a current JbpmContext");
+			throw new JbpmException(
+					"instantiation of the EjbSchedulerService requires a current JbpmContext");
     }
     this.jobSession = jbpmContext.getJobSession();
-    this.session = jbpmContext.getSession();
 
     try {
-      timerService = timerServiceHome.create();
-    } catch (CreateException e) {
-      throw new JbpmException("ejb local timer creation problem", e);
+			Context initial = new InitialContext();
+			timerEntityLocalHome = (TimerEntityLocalHome) initial
+					.lookup("java:comp/env/ejb/LocalTimerEntityBean");
+		}
+		catch(Exception e) {
+			JbpmException jbpmException = new JbpmException(
+					"ejb local timer lookup problem", e);
+			log.error(e);
+			throw jbpmException;
     }
   }
 
   public void createTimer(Timer timer) {
     log.debug("creating timer "+timer);
     jobSession.saveJob(timer);
-    session.flush();
-    timerService.createTimer(timer);
+		try {
+			timerEntityLocal = timerEntityLocalHome.findByPrimaryKey(Long.valueOf(timer.getId()));
+			timerEntityLocal.createTimer(timer);
+		}
+		catch(FinderException ex) {
+			log.error(ex.getMessage(), ex);
+		}
   }
 
   public void deleteTimersByName(String timerName, Token token) {
     log.debug("deleting timers by name "+timerName);
+		java.util.ArrayList timersList = null;
+		try {
+			if(timerName.equals("") || timerName == null) {
+				timersList = new java.util.ArrayList(timerEntityLocalHome
+						.findByTokenId(Long.valueOf(token.getId())));
+			}
+			else {
+				timersList = new java.util.ArrayList(timerEntityLocalHome
+						.findByTokenIdAndName(Long.valueOf(token.getId()), timerName));
+			}
+			java.util.Iterator i = timersList.iterator();
+			while(i.hasNext()) {
+				TimerEntityLocal localObj = (TimerEntityLocal) i.next();
+				localObj.cancelTimersByName(timerName, token);
+			}
+		}
+		catch(FinderException ex) {
+			log.error(ex.getMessage(), ex);
+		}
     jobSession.cancelTimersByName(timerName, token);
-    timerService.cancelTimersByName(timerName, token);
   }
 
   public void deleteTimersByProcessInstance(ProcessInstance processInstance) {
     log.debug("deleting timers for process instance "+processInstance);
-    jobSession.deleteJobsForProcessInstance(processInstance);
-    timerService.deleteTimersForProcessInstance(processInstance);
-  }
-
-  public void close() {
     try {
-      log.debug("removing the timer service session bean");
-      timerService.remove();
-    } catch (RemoveException e) {
-      throw new JbpmException("ejb local timer service close problem", e);
+			java.util.ArrayList timersList = new java.util.ArrayList(
+					timerEntityLocalHome.findByProcessInstanceId(Long.valueOf(processInstance.getId())));
+			java.util.Iterator i = timersList.iterator();
+			while(i.hasNext()) {
+				TimerEntityLocal localObj = (TimerEntityLocal) i.next();
+				localObj.deleteTimersForProcessInstance(processInstance);
+			}
     }
+		catch(FinderException ex) {
+			log.error(ex.getMessage(), ex);
   }
+		jobSession.deleteJobsForProcessInstance(processInstance);
+	}
+
+	public void close() {}
   
   private static Log log = LogFactory.getLog(EjbSchedulerService.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,60 +1,16 @@
 package org.jbpm.scheduler.ejbtimer;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jbpm.JbpmException;
-import org.jbpm.ejb.LocalTimerEntityHome;
-import org.jbpm.job.Timer;
 import org.jbpm.svc.Service;
 import org.jbpm.svc.ServiceFactory;
 
-/**
- * The entity scheduler service builds on the transactional notification 
- * service for timed events provided by the EJB container to schedule business
- * process {@linkplain Timer timers}.
- * 
- * <h3>Configuration</h3>
- * 
- * The EJB scheduler service factory has the configurable field described below.
- * 
- * <ul>
- * <li>timerEntityHomeJndiName</li>
- * </ul>
- * 
- * Refer to the jBPM manual for details.
- *
- * @author Tom Baeyens
- * @author Fady Matar
- */
 public class EntitySchedulerServiceFactory implements ServiceFactory {
 
   private static final long serialVersionUID = 1L;
 
-  private static final Log log = LogFactory.getLog(EntitySchedulerServiceFactory.class);
-
-  String timerEntityHomeJndiName = "java:comp/env/ejb/LocalTimerEntityBean";
-
-  private LocalTimerEntityHome timerEntityHome;
-
-  public EntitySchedulerServiceFactory() {
-    try {
-      Context initial = new InitialContext();
-      timerEntityHome = (LocalTimerEntityHome) initial.lookup(timerEntityHomeJndiName);
-    } catch (NamingException e) {
-      log.error("ejb timer entity lookup problem", e);
-      throw new JbpmException("ejb timer entity lookup problem", e);
-    }
-  }
-
   public Service openService() {
-    return new EntitySchedulerService(timerEntityHome);
+    return new EntitySchedulerService();
   }
 
   public void close() {
-    timerEntityHome = null;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerService.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerService.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerService.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerService.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,17 +1,13 @@
 package org.jbpm.scheduler.ejbtimer;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.ejb.FinderException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
 import org.jbpm.JbpmContext;
 import org.jbpm.JbpmException;
 import org.jbpm.db.JobSession;
-import org.jbpm.ejb.LocalTimerEntity;
-import org.jbpm.ejb.LocalTimerEntityHome;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 import org.jbpm.job.Timer;
@@ -22,68 +18,56 @@
 	private static final long serialVersionUID = 1L;
 
 	JobSession jobSession;
-	LocalTimerEntityHome timerEntityHome;
+  Session session;
+  LocalTimerService localTimerService;
 
-	public EntitySchedulerService(LocalTimerEntityHome timerEntityHome) {
+  public EntitySchedulerService() {
 		JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
 		if(jbpmContext == null) {
-			throw new JbpmException(
-					"instantiation of the EjbSchedulerService requires a current JbpmContext");
+      throw new JbpmException("instantiation of the EjbSchedulerService requires a current JbpmContext");
 		}
 		this.jobSession = jbpmContext.getJobSession();
-		this.timerEntityHome = timerEntityHome;
+    this.session = jbpmContext.getSession();
+    
+    try {
+      Context initial = new InitialContext();
+      LocalTimerServiceHome localTimerServiceHome = (LocalTimerServiceHome) initial.lookup("java:comp/env/ejb/LocalTimerServiceBean");
+      localTimerService = localTimerServiceHome.create();
+    } catch (Exception e) {
+      JbpmException jbpmException = new JbpmException("ejb local timer lookup problem", e);
+      log.error(e);
+      throw jbpmException;
+    }
 	}
 
 	public void createTimer(Timer timer) {
 		log.debug("creating timer " + timer);
 		jobSession.saveJob(timer);
-		try {
-			LocalTimerEntity timerEntity = timerEntityHome.findByPrimaryKey(new Long(timer.getId()));
-			timerEntity.createTimer(timer);
-		}
-		catch (FinderException e) {
-			log.error("failed to retrieve entity for timer " + timer, e);
-		}
+    session.flush();
+    localTimerService.createTimer(timer);
 	}
 
 	public void deleteTimersByName(String timerName, Token token) {
 		log.debug("deleting timers by name " + timerName);
-		Collection timerEntities = null;
-		try {
-			if(timerName == null || timerName.equals("")) {
-				timerEntities = timerEntityHome.findByTokenId(new Long(token.getId()));
-			}
-			else {
-				timerEntities = timerEntityHome.findByTokenIdAndName(new Long(token.getId()), timerName);
-			}
-			for (Iterator i = timerEntities.iterator(); i.hasNext();) {
-				LocalTimerEntity timerEntity = (LocalTimerEntity) i.next();
-				timerEntity.cancelTimersByName(timerName, token);
-			}
-		}
-		catch (FinderException e) {
-			log.error("failed to retrieve timer entities for name " + timerName + " and token " + token, e);
-		}
 		jobSession.cancelTimersByName(timerName, token);
+    localTimerService.cancelTimersByName(timerName, token);
 	}
 
 	public void deleteTimersByProcessInstance(ProcessInstance processInstance) {
 		log.debug("deleting timers for process instance " + processInstance);
-		try {
-			Collection timerEntities = timerEntityHome.findByProcessInstanceId(new Long(processInstance.getId()));
-			for (Iterator i = timerEntities.iterator(); i.hasNext();) {
-				LocalTimerEntity timerEntity = (LocalTimerEntity) i.next();
-				timerEntity.deleteTimersForProcessInstance(processInstance);
-			}
-		}
-		catch (FinderException e) {
-			log.error("failed to retrieve timer entities for process instance " + processInstance, e);
-		}
 		jobSession.deleteJobsForProcessInstance(processInstance);
+    localTimerService.deleteTimersForProcessInstance(processInstance);
 	}
 
 	public void close() {
-	  timerEntityHome = null;
+    try {
+      log.debug("removing the timer service session bean");
+      localTimerService.remove();
+    } catch (Exception e) {
+      JbpmException jbpmException = new JbpmException("ejb local timer service close problem", e);
+      log.error(e);
+      throw jbpmException;
+    }
 	}
 
 	private static Log log = LogFactory.getLog(EntitySchedulerService.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerServiceHome.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerServiceHome.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerServiceHome.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerServiceHome.java	2009-02-06 09:17:19.000000000 +0100
@@ -21,11 +21,6 @@
  */
 package org.jbpm.scheduler.ejbtimer;
 
-import org.jbpm.ejb.LocalTimerEntityHome;
-
-/**
- * @deprecated use {@link LocalTimerEntityHome} instead
- */
 public interface LocalTimerServiceHome extends javax.ejb.EJBLocalHome {
 
   public LocalTimerService create() throws javax.ejb.CreateException;
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerService.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerService.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerService.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/LocalTimerService.java	2009-02-06 09:17:19.000000000 +0100
@@ -21,14 +21,10 @@
  */
 package org.jbpm.scheduler.ejbtimer;
 
-import org.jbpm.ejb.LocalTimerEntity;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 import org.jbpm.job.Timer;
 
-/**
- * @deprecated use {@link LocalTimerEntity} instead
- */
 public interface LocalTimerService extends javax.ejb.EJBLocalObject {
   
   void createTimer(Timer timer);
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntityBean.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntityHome.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntity.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntityLocalHome.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntityLocal.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer: TimerEntityPK.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/TimerServiceBean.java jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/TimerServiceBean.java
--- jpdl-3.2.3.GA/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/TimerServiceBean.java	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/TimerServiceBean.java	2009-02-06 09:17:19.000000000 +0100
@@ -1,24 +1,3 @@
-/*
- * 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.jbpm.scheduler.ejbtimer;
 
 import java.io.Serializable;
@@ -38,17 +17,10 @@
 import org.jbpm.JbpmException;
 import org.jbpm.ejb.LocalCommandService;
 import org.jbpm.ejb.LocalCommandServiceHome;
-import org.jbpm.ejb.impl.TimerEntityBean;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 import org.jbpm.job.Timer;
 
-/**
- * Session bean that interacts with the EJB timer service to schedule jBPM 
- * {@linkplain Timer timers}.
- * 
- * @deprecated use {@link TimerEntityBean} instead
- */
 public class TimerServiceBean implements SessionBean, TimedObject {
 
   private static final long serialVersionUID = 1L;
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/main: resources
Only in jpdl-3.2.3.GA/enterprise/src/test: ear
Only in jpdl-3.2.3.GA/enterprise/src/test/java/org/jbpm: enterprise
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: ActionRecorder.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: AppServerConfigurationsTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: AsyncProcessingTest.java
Only in jpdl-3.2.3.GA/enterprise/src/test/java/org/jbpm/msg: jms
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: Recorder.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: TimerRecorder.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: TimerRepeatTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/java/org/jbpm/msg: TimerTest.java
Only in jpdl-3.2.3.GA/enterprise/src/test/java/org/jbpm: scheduler
Only in jpdl-3.2.3.GA/enterprise/src/test/webapp/WEB-INF: jboss-web.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/enterprise/src/test/webapp/WEB-INF/web.xml jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/webapp/WEB-INF/web.xml
--- jpdl-3.2.3.GA/enterprise/src/test/webapp/WEB-INF/web.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/enterprise/src/test/webapp/WEB-INF/web.xml	2009-02-06 09:17:19.000000000 +0100
@@ -1,12 +1,14 @@
 <?xml version="1.0"?>
-<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
-    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
+
+<web-app>
 
   <servlet>
     <servlet-name>ServletRedirector</servlet-name>
-    <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
+		<servlet-class>
+			org.apache.cactus.server.ServletTestRedirector
+		</servlet-class>
   </servlet>
 
   <servlet-mapping>
@@ -15,14 +17,6 @@
   </servlet-mapping>
 
   <ejb-local-ref>
-    <ejb-ref-name>ejb/LocalCommandServiceBean</ejb-ref-name>
-    <ejb-ref-type>Session</ejb-ref-type>
-    <local-home>org.jbpm.ejb.LocalCommandServiceHome</local-home>
-    <local>org.jbpm.ejb.LocalCommandService</local>
-    <ejb-link>CommandServiceBean</ejb-link>
-  </ejb-local-ref>
-
-  <ejb-local-ref>
     <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name>
     <ejb-ref-type>Entity</ejb-ref-type>
     <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home>
@@ -30,23 +24,12 @@
     <ejb-link>TimerEntityBean</ejb-link>
   </ejb-local-ref>
 
-  <resource-ref>
-    <res-ref-name>jdbc/JbpmDataSource</res-ref-name>
-    <res-type>javax.sql.DataSource</res-type>
-    <res-auth>Container</res-auth>
-  </resource-ref>
-
-  <resource-ref>
-    <res-ref-name>jms/JbpmConnectionFactory</res-ref-name>
-    <res-type>javax.jms.ConnectionFactory</res-type>
-    <res-auth>Container</res-auth>
-  </resource-ref>
-
-  <message-destination-ref>
-    <message-destination-ref-name>jms/JobQueue</message-destination-ref-name>
-    <message-destination-type>javax.jms.Queue</message-destination-type>
-    <message-destination-usage>Produces</message-destination-usage>
-    <message-destination-link>JobQueue</message-destination-link>
-  </message-destination-ref>
+	<ejb-local-ref>
+		<ejb-ref-name>ejb/LocalCommandServiceBean</ejb-ref-name>
+		<ejb-ref-type>Session</ejb-ref-type>
+		<local-home>org.jbpm.ejb.LocalCommandServiceHome</local-home>
+		<local>org.jbpm.ejb.LocalCommandService</local>
+		<ejb-link>CommandServiceBean</ejb-link>
+	</ejb-local-ref>
 
 </web-app>
diff -urbw --exclude .svn jpdl-3.2.3.GA/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySchema.java jpdl-3.2.2-SOA-4.2.0.CP03/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySchema.java
--- jpdl-3.2.3.GA/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySchema.java	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySchema.java	2009-02-06 09:17:29.000000000 +0100
@@ -35,7 +35,6 @@
 import org.hibernate.mapping.*;
 import org.hibernate.tool.hbm2ddl.*;
 import org.hibernate.util.*;
-import org.jbpm.JbpmException;
 
 public class IdentitySchema {
 
@@ -63,7 +62,7 @@
       mappingField.setAccessible(true);
       this.mapping = (Mapping) mappingField.get(configuration);
     } catch (Exception e) {
-      throw new JbpmException("couldn't get the hibernate mapping", e);
+      throw new RuntimeException("couldn't get the hibernate mapping", e);
     }
   }
 
@@ -149,7 +148,7 @@
         }
       }
     } catch (SQLException e) {
-      throw new JbpmException("couldn't get the jbpm table names");
+      throw new RuntimeException("couldn't get the jbpm table names");
     } finally {
       closeConnection();
     }
@@ -180,35 +179,41 @@
         .setDelimiter(getSqlDelimiter())
         .setOutputFile(dir+"/"+prefix+".drop.create.sql")
         .create(true, false);
-    } catch (IOException e) {
-      throw new JbpmException("couldn't generate scripts", e);
+    } catch (Exception e) {
+      throw new RuntimeException("couldn't generate scripts", e);
     }
   }
 
   // main /////////////////////////////////////////////////////////////////////
   
   public static void main(String[] args) {
-    if (args == null || args.length == 0) {
-      syntax();
-    } else if ("create".equalsIgnoreCase(args[0])) {
+    try {
+      if ( (args!=null)
+           && (args.length==1)
+           && ("create".equalsIgnoreCase(args[0])) ) {
       new IdentitySchema(IdentitySessionFactory.createConfiguration()).createSchema();
-    } else if ("drop".equalsIgnoreCase(args[0])) {
+      } else if ( (args!=null)
+              && (args.length==1)
+              && ("drop".equalsIgnoreCase(args[0])) ) {
       new IdentitySchema(IdentitySessionFactory.createConfiguration()).dropSchema();
-    } else if ("clean".equalsIgnoreCase(args[0])) {
+      } else if ( (args!=null)
+              && (args.length==1)
+              && ("clean".equalsIgnoreCase(args[0])) ) {
       new IdentitySchema(IdentitySessionFactory.createConfiguration()).cleanSchema();
-    } else if ("scripts".equalsIgnoreCase(args[0]) && args.length == 3) {
+      } else if ( (args!=null)
+              && (args.length==3)
+              && ("scripts".equalsIgnoreCase(args[0])) ) {
       new IdentitySchema(IdentitySessionFactory.createConfiguration()).saveSqlScripts(args[1], args[2]);
     } else {
-      syntax();
+        System.err.println("syntax: JbpmSchema create");
+        System.err.println("syntax: JbpmSchema drop");
+        System.err.println("syntax: JbpmSchema clean");
+        System.err.println("syntax: JbpmSchema scripts <dir> <prefix>");
     }
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw new RuntimeException(e);
   }
-  
-  private static void syntax() {
-    System.err.println("syntax:");
-    System.err.println("IdentitySchema create");
-    System.err.println("IdentitySchema drop");
-    System.err.println("IdentitySchema clean");
-    System.err.println("IdentitySchema scripts <dir> <prefix>");
   }
 
   private void saveSqlScript(String fileName, String[] sql) throws FileNotFoundException {
@@ -239,31 +244,26 @@
       }
     
     } catch (SQLException e) {
-      throw new JbpmException("couldn't execute sql '"+sql+"'", e);
+      e.printStackTrace();
+      throw new RuntimeException("couldn't execute sql '"+sql+"'", e);
     } finally {
       closeConnection();
     }
   }
 
   private void closeConnection() {
-    if (statement!=null) {
       try {
-        statement.close();
-      }
-      catch (SQLException e) {
-        log.debug("couldn't close jdbc statement", e);
-      }
-    }
+      if (statement!=null) statement.close();
     if (connection!=null) {
-      try {
         JDBCExceptionReporter.logWarnings( connection.getWarnings() );
         connection.clearWarnings();
         connectionProvider.closeConnection(connection);
         connectionProvider.close();
       }
-      catch (SQLException e) {
-        log.debug("couldn't close jdbc connection", e);
       }
+    catch(Exception e) {
+      System.err.println( "Could not close connection" );
+      e.printStackTrace();
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/identity/src/main/java/org/jbpm/identity/security/IdentityLoginModule.java jpdl-3.2.2-SOA-4.2.0.CP03/identity/src/main/java/org/jbpm/identity/security/IdentityLoginModule.java
--- jpdl-3.2.3.GA/identity/src/main/java/org/jbpm/identity/security/IdentityLoginModule.java	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/identity/src/main/java/org/jbpm/identity/security/IdentityLoginModule.java	2009-02-06 09:17:29.000000000 +0100
@@ -21,7 +21,6 @@
  */
 package org.jbpm.identity.security;
 
-import java.io.IOException;
 import java.util.*;
 import javax.security.auth.*;
 import javax.security.auth.callback.*;
@@ -64,14 +63,9 @@
     PasswordCallback passwordCallback = new PasswordCallback(null,false);
     try {
       callbackHandler.handle(new Callback[]{nameCallback, passwordCallback});
-    } catch (IOException e) {
-      LoginException loginException = new LoginException("callback failed");
-      loginException.initCause(e);
-      throw loginException;
-    }
-    catch (UnsupportedCallbackException e) {
-      // should not happen
-      throw new AssertionError(e);
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw new LoginException("callback failed");
     }
     String userName = nameCallback.getName();
     String pwd = new String(passwordCallback.getPassword());
diff -urbw --exclude .svn jpdl-3.2.3.GA/jboss/configuration/4.0.3SP1/src/main/resources/conf/login-config.xml jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/4.0.3SP1/src/main/resources/conf/login-config.xml
--- jpdl-3.2.3.GA/jboss/configuration/4.0.3SP1/src/main/resources/conf/login-config.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/4.0.3SP1/src/main/resources/conf/login-config.xml	2009-02-06 09:17:19.000000000 +0100
@@ -23,7 +23,7 @@
   </authentication>
 </application-policy>
 
-$Revision: 1238 $
+$Revision: 1800 $
 -->
 
 <policy>
diff -urbw --exclude .svn jpdl-3.2.3.GA/jboss/configuration/4.0.4.GA/src/main/resources/conf/login-config.xml jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/4.0.4.GA/src/main/resources/conf/login-config.xml
--- jpdl-3.2.3.GA/jboss/configuration/4.0.4.GA/src/main/resources/conf/login-config.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/4.0.4.GA/src/main/resources/conf/login-config.xml	2009-02-06 09:17:20.000000000 +0100
@@ -23,7 +23,7 @@
   </authentication>
 </application-policy>
 
-$Revision: 1238 $
+$Revision: 1800 $
 -->
 
 <policy>
Only in jpdl-3.2.3.GA/jboss/configuration: 4.2.2.GA
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration: 4.3.0.GA
diff -urbw --exclude .svn jpdl-3.2.3.GA/jboss/configuration/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/build.xml
--- jpdl-3.2.3.GA/jboss/configuration/build.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jboss/configuration/build.xml	2009-02-06 09:17:20.000000000 +0100
@@ -35,7 +35,7 @@
     <unzip src="${local.repository}/jbossas/${lib.jboss.version}/lib/jboss.zip"  dest="${jboss.home}/.." />
     <delete dir="${jboss.home}/server/jbpm" />
     <copy todir="${jboss.home}/server/jbpm">
-      <fileset dir="${jboss.home}/server/default">
+      <fileset dir="${jboss.home}/server/all">
         <exclude name="data/**" />
         <exclude name="log/**" />
         <exclude name="tmp/**" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/jboss/hsqldb/src/main/resources/hsqldb-ds.xml jpdl-3.2.2-SOA-4.2.0.CP03/jboss/hsqldb/src/main/resources/hsqldb-ds.xml
--- jpdl-3.2.3.GA/jboss/hsqldb/src/main/resources/hsqldb-ds.xml	2009-02-06 09:11:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jboss/hsqldb/src/main/resources/hsqldb-ds.xml	2009-02-06 09:17:20.000000000 +0100
@@ -3,7 +3,7 @@
 <!-- WARNING: modified version: the TCP ports of the HSQLDB are open, resulting in a security vulerability -->
 
 <!-- The Hypersonic embedded database JCA connection factory config
-$Id: hsqldb-ds.xml 1238 2008-06-20 15:31:37Z thomas.diesler@jboss.com $ -->
+$Id: hsqldb-ds.xml 1800 2008-08-01 11:40:21Z thomas.diesler@jboss.com $ -->
 
 
 <datasources>
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/dist/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/build.xml
--- jpdl-3.2.3.GA/jpdl/dist/build.xml	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/build.xml	2009-02-06 09:17:30.000000000 +0100
@@ -15,7 +15,7 @@
                                   identity.jar, identity.src, identity.javadoc,
                                   enterprise, enterprise.src, enterprise.javadoc,
                                   console, designer, 
-                                  jboss.configuration, build.mail.test.webapp, bamconsole, bamconsole.userguide">
+                                  jboss.configuration, build.mail.test.webapp">
 
 		<delete dir="target/jbpm-jpdl" />
 
@@ -64,19 +64,12 @@
 
 		<!-- include identity mappings in the hibernate configuration -->
 		<replace file="target/jbpm-jpdl/config/hibernate.cfg.xml">
-			<replacetoken>
-				<![CDATA[identity mappings (begin) ===]]>
-			</replacetoken>
-			<replacevalue>
-				<![CDATA[identity mappings (begin) -->]]></replacevalue>
+      <replacetoken><![CDATA[identity mappings (begin) ===]]></replacetoken>
+      <replacevalue><![CDATA[identity mappings (begin) -->]]></replacevalue>
 		</replace>
 		<replace file="target/jbpm-jpdl/config/hibernate.cfg.xml">
-			<replacetoken>
-				<![CDATA[==== identity mappings (end)]]>
-			</replacetoken>
-			<replacevalue>
-				<![CDATA[<!-- identity mappings (end)]]>
-			</replacevalue>
+      <replacetoken><![CDATA[==== identity mappings (end)]]></replacetoken>
+      <replacevalue><![CDATA[<!-- identity mappings (end)]]></replacevalue>
 		</replace>
 
 		<!-- adding the identity sources -->
@@ -98,60 +91,24 @@
 		<!-- adding the third party libs -->
 		<mkdir dir="target/jbpm-jpdl/lib" />
 		<copy todir="target/jbpm-jpdl/lib">
-			<fileset dir="${local.repository}/${lib.activation.dir}">
-				<include name="${lib.activation.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.antlr.dir}">
-				<include name="${lib.antlr.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.asm.dir}">
-				<include name="${lib.asm.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.bsh.dir}">
-				<include name="${lib.bsh.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.cglib.dir}">
-				<include name="${lib.cglib.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.commons.logging.dir}">
-				<include name="${lib.commons.logging.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.commons.collections.dir}">
-				<include name="${lib.commons.collections.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.dom4j.dir}">
-				<include name="${lib.dom4j.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.hibernate.dir}">
-				<include name="${lib.hibernate.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.hsqldb.dir}">
-				<include name="${lib.hsqldb.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.javamail.dir}">
-				<include name="${lib.javamail.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.jboss.dir}">
-				<include name="${lib.jboss.j2ee.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.jboss.backport-concurrent.dir}">
-				<include name="${lib.jboss.backport-concurrent.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.jbossretro-rt.dir}">
-				<include name="${lib.jbossretro-rt.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.jcr.dir}">
-				<include name="${lib.jcr.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.junit.dir}">
-				<include name="${lib.junit.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.log4j.dir}">
-				<include name="${lib.log4j.name}*" />
-			</fileset>
-			<fileset dir="${local.repository}/${lib.servlet.dir}">
-				<include name="${lib.servlet.name}*" />
-			</fileset>
+      <fileset dir="${local.repository}/${lib.activation.dir}"><include name="${lib.activation.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.antlr.dir}"><include name="${lib.antlr.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.asm.dir}"><include name="${lib.asm.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.bsh.dir}"><include name="${lib.bsh.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.cglib.dir}"><include name="${lib.cglib.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.commons.logging.dir}"><include name="${lib.commons.logging.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.commons.collections.dir}"><include name="${lib.commons.collections.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.dom4j.dir}"><include name="${lib.dom4j.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.hibernate.dir}"><include name="${lib.hibernate.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.hsqldb.dir}"><include name="${lib.hsqldb.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.javamail.dir}"><include name="${lib.javamail.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.jboss.dir}"><include name="${lib.jboss.j2ee.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.jboss.backport-concurrent.dir}"><include name="${lib.jboss.backport-concurrent.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.jbossretro-rt.dir}"><include name="${lib.jbossretro-rt.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.jcr.dir}"><include name="${lib.jcr.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.junit.dir}"><include name="${lib.junit.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.log4j.dir}"><include name="${lib.log4j.name}*" /></fileset>
+      <fileset dir="${local.repository}/${lib.servlet.dir}"><include name="${lib.servlet.name}*" /></fileset>
 		</copy>
 
 		<!-- adding the .war and .ear deployables -->
@@ -185,23 +142,19 @@
 		<!-- UPDATING THE README -->
 
 		<replace file="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/readme.html">
-			<replacetoken>
-				<![CDATA[<!-- Suite Only]]>
-			</replacetoken>
-			<replacevalue>
-			</replacevalue>
+      <replacetoken><![CDATA[<!-- Suite Only]]></replacetoken>
+      <replacevalue></replacevalue>
 		</replace>
 		<replace file="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/readme.html">
-			<replacetoken>
-				<![CDATA[Suite Only -->]]></replacetoken>
-			<replacevalue>
-			</replacevalue>
+      <replacetoken><![CDATA[Suite Only -->]]></replacetoken>
+      <replacevalue></replacevalue>
 		</replace>
 
 		<!-- ADDING THE SERVER -->
 
-		<unzip src="${local.repository}/jbossas/${jboss.version}/lib/jboss.zip" dest="target/jbpm-jpdl-${lib.jbpm.jpdl.version}" />
-		<move file="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/jboss-${jboss.version}" tofile="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server" />
+    <unzip src="${lib.jboss.as.local}"  dest="target/jbpm-jpdl-${lib.jbpm.jpdl.version}" />
+    <move file="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/${jboss.eap.name}/jboss-as" tofile="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server" />
+  	<delete dir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/${jboss.eap.name}"/>
 		<delete dir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/minimal" />
 		<delete dir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/all" />
 		<move file="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/default" tofile="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/jbpm" />
@@ -210,22 +163,6 @@
 		<!-- ADDING THE .WAR FILE TO THE JBPM CONFIGURATION DEPLOY FOLDER -->
 		<copy file="${lib.jbpm.console.local}" todir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/jbpm/deploy" />
 
-		<!-- ADDING THE .EAR FILE OF THE JBPM BAM CONSOLE -->
-		<!--
-		<copy file="${lib.jbpm.bamconsole.local}" todir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/jbpm/deploy" />
-		-->
-		
-		<!-- adding the bamconsole userguide -->
-		<!--
-		<mkdir dir="target/jbpm-jpdl/doc/userguide" />
-		<unzip dest="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/doc/bam/userguide" src="${lib.jbpm.jpdl.bam.userguide.local}" />
-		-->
-		
-		<!-- ADDING THE DATASOURCE FILE OF THE JBPM BAM CONSOLE -->
-		<!--
-		<copy file="${lib.jbpm.bamconsole.datasource.local}" todir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/server/server/jbpm/deploy" />
-		-->
-		
 		<!-- ADDING THE DESIGNER -->
 
 		<mkdir dir="target/jbpm-jpdl-${lib.jbpm.jpdl.version}/designer" />
@@ -288,21 +225,33 @@
 	<target name="checkout.jbpm.repository" depends="is.cvs.info.available" unless="cvs.info.available">
 		<echo message="${local.repository}/jbpm" />
 		<delete dir="${local.repository}/jbpm" />
-		<cvs command="checkout -d '${local.repository}/jbpm' 'repository.jboss.com/jbpm'" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" failonerror="false">
+    <cvs command="checkout -d '${local.repository}/jbpm' 'repository.jboss.com/jbpm'" 
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" 
+         failonerror="false">
 		</cvs>
 	</target>
 
-	<target name="release.jpdl" depends="tag.jpdl, publish.jpdl, upload.jpdl.docs" />
+  <target name="release.jpdl"
+          depends="tag.jpdl, publish.jpdl, upload.jpdl.docs" />
 
 	<target name="tag.jpdl">
-		<cvs command="tag -cF ${jbpm.jpdl.cvs.tag} ." dest="." cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jbpm" />
+    <cvs command="tag -cF ${jbpm.jpdl.cvs.tag} ." 
+         dest="."
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jbpm" />
 	</target>
 
-	<target name="publish.jpdl" description="uploads the jpdl artifacts from the local repository to the remote repository">
+  <target name="publish.jpdl"
+          description="uploads the jpdl artifacts from the local repository to the remote repository">
 		<echo message="if this fails, make sure that there is cvs information in your repository for the jbpm libs.  you can use target checkout.jbpm.repository for that" />
-		<cvs command="add jpdl" dest="${local.repository}/jbpm" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
-		<cvs command="add jpdl/${lib.jbpm.jpdl.version}" dest="${local.repository}/jbpm" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
-		<cvs command="add jpdl/${lib.jbpm.jpdl.version}/lib" dest="${local.repository}/jbpm" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
+    <cvs command="add jpdl" 
+         dest="${local.repository}/jbpm"
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
+    <cvs command="add jpdl/${lib.jbpm.jpdl.version}"  
+         dest="${local.repository}/jbpm"
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
+    <cvs command="add jpdl/${lib.jbpm.jpdl.version}/lib"
+         dest="${local.repository}/jbpm"
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
 
 		<cvs command="add -kb 
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-console.war
@@ -320,7 +269,9 @@
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-examplesdb.jar
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-javadoc.zip
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-src.jar
-                  jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-userguide.zip" dest="${local.repository}/jbpm" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
+                  jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-userguide.zip"
+         dest="${local.repository}/jbpm"
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
 
 		<cvs command="commit -m 'uploading jpdl ${lib.jbpm.jpdl.version} artifacts' 
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-console.war
@@ -338,7 +289,9 @@
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-examplesdb.jar
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-javadoc.zip
                   jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-src.jar
-                  jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-userguide.zip" dest="${local.repository}/jbpm" cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
+                  jpdl/${lib.jbpm.jpdl.version}/lib/jbpm-jpdl-userguide.zip"
+         dest="${local.repository}/jbpm"
+         cvsroot=":ext:${cvs.username}@cvs.forge.jboss.com:/cvsroot/jboss" />
 	</target>
 
 	<target name="upload.jpdl.docs">
@@ -359,4 +312,5 @@
 		</ftp>
 	</target>
 
+
 </project>
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/dist/src/main/resources/designer.version.info.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/designer.version.info.xml
--- jpdl-3.2.3.GA/jpdl/dist/src/main/resources/designer.version.info.xml	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/designer.version.info.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,4 +1,4 @@
-<jbpm-version-info name="jBPM jPDL 3.2.3"
+<jbpm-version-info name="jBPM jPDL 3.2.2"
                    namespace="urn:jbpm.org:jpdl-3.2">
 
   <classpathentry path="jbpm-jpdl.jar" src="src" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/dist/src/main/resources/runtime/release.notes.html jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/runtime/release.notes.html
--- jpdl-3.2.3.GA/jpdl/dist/src/main/resources/runtime/release.notes.html	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/runtime/release.notes.html	2009-02-06 09:17:29.000000000 +0100
@@ -1,7 +1,14 @@
 <html>
 <body>
 
-<h1>Release Notes - JBoss jBPM - Version jBPM jPDL 3.2.3</h1>
+<h1>Known limitations</h1>
+
+<h3>XML editing in the process designer</h3>
+
+<p>Direct editing of XML can lead to crashes in the graphical designer.
+This will be fixed in one of the next releases.  Before you start
+editing the process XML source, make sure you create a backup copy.
+</p>
 
 <h3>Transition buttons in task forms</h3>
 
@@ -29,66 +36,6 @@
 added in 3.2.2  See also http://jira.jboss.com/jira/browse/JBPM-991
 </p>
 
-
-<h1>Changes from 3.2.2 to 3.2.3</h1>
-
-<h3>WS front end</h3>
-
-<p>There is a basic web services front end to the command executor. It serves as 
-a starting point from which developer's can continue to develop their more elaborated
-needs. You'll find some more information on how to build and test it in the documentation.
-</p>
-
-<h2>Bug</h2>
-<ul>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1022'>JBPM-1022</a>] - 3.2.1 Admin Console: Any user sees all users tasks </li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1024'>JBPM-1024</a>] - Serializable variables are not being deserialized when retrieved from process</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1045'>JBPM-1045</a>] - test suite has to trow a runtime exception on error so meaningful report is generated</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1046'>JBPM-1046</a>] - JobExecutorServlet cannot use local JNDI name to access datasource</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1072'>JBPM-1072</a>] - Concurrent JobExecutors can process the same job in parallel</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1073'>JBPM-1073</a>] - Allow mail attribute 'to' resolve EL Expressions</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1084'>JBPM-1084</a>] - NPE in VariableAccess with Oracle persistence</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1085'>JBPM-1085</a>] - Join of new process instance fails in Oracle</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1098'>JBPM-1098</a>] - businesscalendar is unaware of leapyears</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1109'>JBPM-1109</a>] - StringInstance hbm configuration column length of 4000 is ignored when generating the DDL</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1112'>JBPM-1112</a>] - <mail> action not allowed in <timer></li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1119'>JBPM-1119</a>] - Timers using EjbSchedulerService are not persisted across JBoss restarts</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1154'>JBPM-1154</a>] - jBPM example "action" - wrong package name referenced in JUnit tests</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1155'>JBPM-1155</a>] - jBPM example "mail" - missing import statements, etc.</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1156'>JBPM-1156</a>] - jBPM example:  customTaskInstance fails with classcast exception</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1157'>JBPM-1157</a>] - Broken links in jBPM examples/readme.html</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1167'>JBPM-1167</a>] - JMS message service fails under WebSphere 6.1</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1184'>JBPM-1184</a>] - add end-task attribute to schema</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1186'>JBPM-1186</a>] - jobexecutor (threads) not stopped when JobExecutorServlet is destroyed</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1190'>JBPM-1190</a>] - Allow only one action element in a node</li>
-</ul>
-        
-<h2>Feature Request</h2>
-<ul>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-639'>JBPM-639</a>] - Support Forward Reference in process-state</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-742'>JBPM-742</a>] - Reimplement JobExecutorServlet as a ServletContextListener</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-751'>JBPM-751</a>] - unnecessary warning on valid process definition</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-787'>JBPM-787</a>] - centralize cache configurations</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-886'>JBPM-886</a>] - change ejb timers from SLSB to an entity bean approach</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1097'>JBPM-1097</a>] - Make duedate accept EL in addition to the already existing businesscalendar</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1144'>JBPM-1144</a>] - Calculate dates for timers</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1179'>JBPM-1179</a>] - JtaDbPersistenceService.getUserTransaction()</li>
-</ul>
-    
-<h2>Patch</h2>
-<ul>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1059'>JBPM-1059</a>] - Minor patch to avoid possible integer overflow in DayPart.add() in case of crazy Calendar values</li>
-</ul>
-                
-<h2>Task</h2>
-<ul>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1086'>JBPM-1086</a>] - In FlushDbTest get the connection details from the hibernate configuration</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1180'>JBPM-1180</a>] - describe in detail the ejb components and the enterprise service factories</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1187'>JBPM-1187</a>] - verify code completion in designer</li>
-<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1191'>JBPM-1191</a>] - Enterprise console error: No CurrentSessionContext configured</li>
-</ul>
-    
-
 <h1>Changes from 3.2.1 to 3.2.2</h1>
 
 <h3>Loading process archive resources</h3>
Only in jpdl-3.2.3.GA/jpdl/dist/src/main/resources/suite/designer/workspace/.metadata/.plugins: org.eclipse.core.runtime
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/dist/src/main/resources/suite/designer/workspace/.metadata/.plugins/org.jbpm.gd.jpdl/jbpm-installations.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/suite/designer/workspace/.metadata/.plugins/org.jbpm.gd.jpdl/jbpm-installations.xml
--- jpdl-3.2.3.GA/jpdl/dist/src/main/resources/suite/designer/workspace/.metadata/.plugins/org.jbpm.gd.jpdl/jbpm-installations.xml	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/suite/designer/workspace/.metadata/.plugins/org.jbpm.gd.jpdl/jbpm-installations.xml	2009-02-06 09:17:29.000000000 +0100
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <installations>
-<installation location="${workspace_loc}/../.." name="jBPM jPDL 3.2.3" version="jbpm-jpdl-3.2.3"/>
+<installation location="${workspace_loc}/../.." name="jBPM jPDL 3.2.2" version="jbpm-jpdl-3.2.2"/>
 </installations>
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/dist/src/main/resources/suite/server/readme.html jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/suite/server/readme.html
--- jpdl-3.2.3.GA/jpdl/dist/src/main/resources/suite/server/readme.html	2009-02-06 09:12:56.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/dist/src/main/resources/suite/server/readme.html	2009-02-06 09:17:29.000000000 +0100
@@ -1,5 +1,5 @@
 <html>
-<head><title>JBoss jBPM Suite</title>
+<head><title>JBoss jBPM Starters Kit</title>
 <link rel="stylesheet" type="text/css" href="../jbpm-designer/css/jbpm.css" />
 </head>
 
@@ -68,7 +68,7 @@
 
 <!-- CONTENT -->
 
-<p>This is a pre-configured jBoss <b>4.2.2</b> installation that contains the bundled jBPM suite.
+<p>This is a preconfigured jboss <b>4.0.2</b> installation that contains jBPM.
 </p>
 
 <h2>Deployed components</h2>
@@ -79,7 +79,7 @@
   specify the property <code>jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory</code>
   in your jBPM configuration (e.g. in the jbpm.properties in your WEB-INF/classes in your 
   web application).</li>
-  <li><b>The jBPM database</b>: The server includes a hypersonic database that is pre-configured.  
+  <li><b>The jBPM database</b>: The server includes a hypersonic database that is preconfigured.  
   with the jBPM database tables.  Also an example process is already present in the database. The 
   database can be accessed via a TCP connection to port 1701 with the hsqldb driver.</li>
   <li><b>The jBPM web console application</b>: The jBPM web console application is a simple 
@@ -87,16 +87,10 @@
   the web application is still limited, but a lot of focus is going to go to the web application 
   in the near future for making it easier to manage, maintain and monitor your 
    business processes.</li>
-   <li><b>The BAM console application</b>: The BAM (Business Activity Monitoring) application 
-   is a web application that sits on top of jBPM and provides real-time activity monitoring along 
-   with the integration of reporting tools that can generate reports based on the jBPM logs.
-   This web application is the next layer that will integrate the jBPM console and expand its 
-   functionality to provide to provide a fully integrated business suite. 
-   </li>
 </ul>
 
 <h2>Other customizations</h2>
-<p>To reduce the download to the minimal size , the default and all server configurations have been 
+<p>For reducing download the minimal, default and all server configurations have been 
 removed.  Only the jbpm configuration is available. (start with <code>run.bat -c jbpm</code>).
 </p>
 <p>For improving startup time, some of the default services have been removed.
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/examples/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/build.xml
--- jpdl-3.2.3.GA/jpdl/examples/build.xml	2009-02-06 09:13:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/build.xml	2009-02-06 09:18:12.000000000 +0100
@@ -103,8 +103,6 @@
   
   <target name="build.examples">
     <ant antfile="websale/build.xml" target="package" inheritall="false" />
-  	<ant antfile="raise/build.xml" target="package" inheritall="false" />
-    <ant antfile="businesstrip/build.xml" target="package" inheritall="false" />
   </target>
 
   <target name="install.examplesdb" depends="package.examplesdb">
@@ -157,8 +155,6 @@
     <mkdir dir="target/examples" />
     <unzip dest="target/examples" src="${lib.jbpm.jpdl.examples.local}" />
     <deployprocess process="target/examples/websale/target/websale.jpdl" />
-  	<deployprocess process="target/examples/businesstrip/target/businesstrip.jpdl" />
-  	<deployprocess process="target/examples/raise/target/raise.jpdl" />
 
     <!-- shutdown the hsqldb -->
     <shutdownhsqldb />
Only in jpdl-3.2.3.GA/jpdl/examples: businesstrip
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/examples/example.base.build.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/example.base.build.xml
--- jpdl-3.2.3.GA/jpdl/examples/example.base.build.xml	2009-02-06 09:13:33.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/example.base.build.xml	2009-02-06 09:18:12.000000000 +0100
@@ -16,6 +16,7 @@
       <include name="${lib.commons.logging.path}"/>
       <include name="${lib.commons.collections.path}" />
       <include name="${lib.dom4j.path}"/>
+      <include name="${lib.dumbster.path}"/>
       <include name="${lib.hibernate.path}"/>
       <include name="${lib.hsqldb.path}"/>
       <include name="${lib.javamail.path}"/>
Only in jpdl-3.2.3.GA/jpdl/examples/mail/src/main/java/org/jbpm/mail: MailTest.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/mail/src/main/java/org/jbpm/mail: MyAddressResolver.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/mail/src/main: jpdl
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/mail/src: test
Only in jpdl-3.2.3.GA/jpdl/examples: raise
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples: ruleFlow
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesActionHandler/src: config
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesActionHandler/src: java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesActionHandler/src: jpdl
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesActionHandler/src: rules
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesActionHandler/src/test: org
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src: config
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src: identity
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src: java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src: jpdl
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src: rules
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/rulesAssignmentHandler/src/test: org
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/examples/simple/src/main/jpdl/gpd.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/simple/src/main/jpdl/gpd.xml
--- jpdl-3.2.3.GA/jpdl/examples/simple/src/main/jpdl/gpd.xml	2009-02-06 09:13:32.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/examples/simple/src/main/jpdl/gpd.xml	2009-02-06 09:18:12.000000000 +0100
@@ -1,15 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<root-container name="simple" width="469" height="438">
+<process-diagram name="simple" width="469" height="438">
   <node name="start" x="150" y="25" width="140" height="40">
-    <edge>
-      <label x="5" y="-10"/>
-    </edge>
+    <transition name="to_state"/>
   </node>
   <node name="first" x="150" y="125" width="140" height="40">
-    <edge>
-      <label x="5" y="-10"/>
-    </edge>
+    <transition name="to_end"/>
   </node>
   <node name="end" x="150" y="225" width="140" height="40"/>
-</root-container>
+</process-diagram>
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/build.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/build.xml
--- jpdl-3.2.3.GA/jpdl/jar/build.xml	2009-02-06 09:13:08.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/build.xml	2009-02-06 09:17:38.000000000 +0100
@@ -174,7 +174,7 @@
       <formatter type="xml" />
       <test name="org.jbpm.AllTests" todir="target/test.results/xml"/>
     </junit>
-    <echo message="if the next junitreport task fails due to heap space, set environment variable ANT_OPTS to -Xmx500m and run the target again." />
+    <echo message="if the next junitreport task fails due to heap space, set environment variable ANT_OPTS to -Xmx192m and run the target again." />
     <junitreport todir="target/test.results/xml">
       <fileset dir="." includes="**/TEST-*.xml"/>
       <report todir="target/test.results" />
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/config/hibernate.cfg.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/config/hibernate.cfg.xml
--- jpdl-3.2.3.GA/jpdl/jar/src/main/config/hibernate.cfg.xml	2009-02-06 09:13:08.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/config/hibernate.cfg.xml	2009-02-06 09:17:38.000000000 +0100
@@ -20,7 +20,7 @@
     <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
     
     <!-- DataSource properties (begin) ===
-    <property name="hibernate.connection.datasource">java:comp/env/jdbc/JbpmDataSource</property>
+    <property name="hibernate.connection.datasource">java:/JbpmDS</property>
     ==== DataSource properties (end) -->
     
     <!-- JTA transaction properties (begin) ===
@@ -43,7 +43,7 @@
     <!-- # mapping files with external dependencies # -->
     <!-- ############################################ -->
 
-    <!-- following mapping files have a dependency on  -->
+    <!-- following mapping files have a dependendy on  -->
     <!-- 'jbpm-identity.jar', mapping files            -->
     <!-- of the pluggable jbpm identity component.     -->
     <!-- Uncomment the following 3 lines if you        -->
@@ -55,7 +55,7 @@
     <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
     ==== identity mappings (end) -->
     
-    <!-- following mapping files have a dependency on  -->
+    <!-- following mapping files have a dependendy on  -->
     <!-- the JCR API                                   -->
     <!-- jcr mappings (begin) ===
     <mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
@@ -68,7 +68,7 @@
 
     <!-- hql queries and type defs -->
     <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
-    <!-- hql queries used in simulation for querying historical data
+    <!-- hql queries used in simulation for quering historical data
          uncomment if you want to use the GetSimulationInputCommand
          or maybe you also want to use the queries yourself
          be patient: the queries need the stddev function to be enabled in your dialect
@@ -93,7 +93,7 @@
     <!-- ############################################ -->
     <!-- # another mapping file with external dependencies # -->
     <!-- ############################################ -->
-    <!-- following mapping file has a dependency on   -->
+    <!-- following mapping file has a dependendy on   -->
     <!-- 'bsh-{version}.jar'.                         -->
     <!-- uncomment this if you don't have bsh on your -->
     <!-- classpath.  you won't be able to use the     -->
@@ -117,6 +117,7 @@
     <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
     <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
 
+
     <!-- bytes mapping files -->
     <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
 
@@ -202,11 +203,12 @@
     <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
     <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
 
-    <!-- ################################### -->
+    
+    <!-- ############################################ -->
     <!-- # cache settings                  # -->
     <!-- # strategy="nonstrict-read-write" # -->
     <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # -->
-    <!-- ################################### -->
+    <!-- ############################################ -->
 
     <class-cache	class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" />	
     
@@ -263,11 +265,13 @@
     <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" />			
     <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" />			
 
-    <!-- ############################ -->
+    
+    
+    <!-- ############################################ -->
     <!-- # cache settings           # -->
     <!-- # strategy="transactional" # -->
     <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.TreeCacheProvider # -->
-    <!-- ############################ -->
+    <!-- ############################################ -->
     
     <!--
 	
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/ant/AntHelper.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/ant/AntHelper.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/ant/AntHelper.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/ant/AntHelper.java	2009-02-06 09:17:34.000000000 +0100
@@ -33,6 +33,8 @@
 import org.hibernate.cfg.Configuration;
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmException;
+import org.jbpm.persistence.db.DbPersistenceServiceFactory;
+import org.jbpm.svc.Services;
 
 /**
  * common strategy for jbpm ant tasks to obtain a hibernate SessionFactory.
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/ant/JbpmSchemaTask.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/ant/JbpmSchemaTask.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/ant/JbpmSchemaTask.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/ant/JbpmSchemaTask.java	2009-02-06 09:17:34.000000000 +0100
@@ -21,7 +21,8 @@
  */
 package org.jbpm.ant;
 
-import java.net.URL;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.StringTokenizer;
 
 import org.apache.tools.ant.BuildException;
@@ -61,14 +62,25 @@
          && (hibernateCfg==null) 
        ) {
       // search for the default jbpm.cfg.xml
-      URL defaultJbpmCfgUrl = getClass().getClassLoader().getResource("jbpm.cfg.xml");
-      if (defaultJbpmCfgUrl!=null) {
+      InputStream defaultJbpmCfgStream = getClass().getClassLoader().getResourceAsStream("jbpm.cfg.xml");
+      if (defaultJbpmCfgStream!=null) {
         jbpmCfg = "jbpm.cfg.xml";
+        try {
+          defaultJbpmCfgStream.close();
+        } catch (IOException e) {
+          e.printStackTrace();
+        }
+
       // if still not found, search for the default hibernate.cfg.xml
       } else {
-        URL defaultHibernateCfgUrl = getClass().getClassLoader().getResource("hibernate.cfg.xml");
-        if (defaultHibernateCfgUrl!=null) {
+        InputStream defaultHibernateCfgStream = getClass().getClassLoader().getResourceAsStream("hibernate.cfg.xml");
+        if (defaultHibernateCfgStream!=null) {
           hibernateCfg = "hibernate.cfg.xml";
+          try {
+            defaultHibernateCfgStream.close();
+          } catch (IOException e) {
+            e.printStackTrace();
+          }
         }
       }
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/bytes/ByteArray.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/bytes/ByteArray.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/bytes/ByteArray.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/bytes/ByteArray.java	2009-02-06 09:17:34.000000000 +0100
@@ -48,7 +48,7 @@
   protected String name = null;
   protected List byteBlocks = null;
   
-  private static Log log = LogFactory.getLog(ByteArray.class);
+  private static final Log log = LogFactory.getLog(ByteArray.class);
   
   public ByteArray() {
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/bytes/ByteBlockChopper.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/bytes/ByteBlockChopper.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/bytes/ByteBlockChopper.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/bytes/ByteBlockChopper.java	2009-02-06 09:17:34.000000000 +0100
@@ -22,55 +22,93 @@
 package org.jbpm.bytes;
 
 import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 import org.jbpm.JbpmConfiguration;
 
 /**
  * is used by {@link org.jbpm.bytes.ByteArray} to chop a 
  * byte arrays into a list of chunks and glue them back together. 
  */
-public abstract class ByteBlockChopper {
+public class ByteBlockChopper {
+
+  private static final Log log = LogFactory.getLog(ByteBlockChopper.class);
+
+  private ByteBlockChopper() {
+    // hide default constructor to prevent instantiation
+  }
 
   public static List chopItUp(byte[] byteArray) {
-    int blockSize = JbpmConfiguration.Configs.getInt("jbpm.byte.block.size");
     List bytes = null;
-    if ( (byteArray!=null)
-         && (byteArray.length>0) ){
+    if (byteArray != null) {
+      int blockSize = JbpmConfiguration.Configs.getInt("jbpm.byte.block.size");
+      int byteCount = byteArray.length;
+      if (byteCount > blockSize) {
+        log.debug("chopping " + byteCount + " bytes");
       bytes = new ArrayList();
-      int index = 0;
-      while ( (byteArray.length-index) > blockSize ) {
-        byte[] byteBlock = new byte[blockSize];
-        System.arraycopy(byteArray, index, byteBlock, 0, blockSize);
-        bytes.add(byteBlock);
-        index+=blockSize;
-      }
-      byte[] byteBlock = new byte[byteArray.length-index];
-      System.arraycopy(byteArray, index, byteBlock, 0, byteArray.length-index);
-      bytes.add(byteBlock);
+        int offset;
+        for (offset = 0; byteCount - offset > blockSize; offset += blockSize) {
+          bytes.add(subArray(byteArray, offset, blockSize));
+        }
+        bytes.add(subArray(byteArray, offset, byteCount - offset));
+      }
+      else if (byteCount > 0) {
+        log.debug("no need to chop " + byteCount + " bytes");
+        bytes = Collections.singletonList(byteArray);
+      }
     }
     return bytes;
   }
 
-  public static byte[] glueChopsBackTogether(List bytes) {
-    byte[] value = null;
-    
-    if (bytes!=null) {
-      Iterator iter = bytes.iterator();
-      while (iter.hasNext()) {
-        byte[] byteBlock = (byte[]) iter.next();
-        if (value==null) {
-          value = byteBlock;
-        } else {
-          byte[] oldValue = value;
-          value = new byte[value.length+byteBlock.length];
-          System.arraycopy(oldValue, 0, value, 0, oldValue.length);
-          System.arraycopy(byteBlock, 0, value, oldValue.length, byteBlock.length);
+  private static byte[] subArray(byte[] array, int offset, int length) {
+    byte[] subArray = new byte[length];
+    System.arraycopy(array, offset, subArray, 0, length);
+    log.debug("chopped " + length + " bytes beggining at " + offset);
+    return subArray;
+  }
+
+  public static byte[] glueChopsBackTogether(List byteBlocks) {
+    byte[] byteArray = null;
+    
+    if (byteBlocks != null) {
+      int blockCount = byteBlocks.size();
+      switch (blockCount) {
+      case 0:
+        break;
+      case 1:
+        byteArray = (byte[]) byteBlocks.get(0);
+        log.debug("no need to glue " + byteArray.length + " bytes");
+        break;
+      default:
+        int blockSize = JbpmConfiguration.Configs.getInt("jbpm.byte.block.size");
+        byte[] lastBlock = (byte[]) byteBlocks.get(blockCount - 1);
+        int byteCount = blockSize * (blockCount - 1) + lastBlock.length;
+        log.debug("gluing " + byteCount + " bytes");
+
+        byteArray = new byte[byteCount];
+        int offset = 0;
+        for (int i = 0, n = blockCount; i < n; i++) {
+          byte[] block = (byte[]) byteBlocks.get(i);
+          int length = block.length;
+          System.arraycopy(block, 0, byteArray, offset, length);
+          log.debug("glued " + length + " bytes beggining at " + offset);
+          // JBPM-702 sybase truncates trailing zeros
+          if (length < blockSize && i < n-1) {
+            Arrays.fill(byteArray, offset + length, offset + blockSize, (byte) 0);
+            log.debug("zero filled " + (blockSize - length) + " trailing bytes");
+            offset += blockSize;
         }
+          else {
+            offset += length;            
       }
     }
-
-    return value;
+      }
+    }
+    return byteArray;
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/calendar/BusinessCalendar.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/calendar/BusinessCalendar.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/calendar/BusinessCalendar.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/calendar/BusinessCalendar.java	2009-02-06 09:17:37.000000000 +0100
@@ -41,8 +41,8 @@
   private static final long serialVersionUID = 1L;
   static Properties businessCalendarProperties = null;
   
-  private Day[] weekDays = null;
-  private List holidays = null;
+  Day[] weekDays = null;
+  List holidays = null;
 
   public static synchronized Properties getBusinessCalendarProperties() {
     if (businessCalendarProperties==null) {
@@ -53,9 +53,7 @@
   }
 
   public BusinessCalendar() {
-    // don't load the properties during creation time!
-    // see http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4158259
-    // this(getBusinessCalendarProperties());
+    this(getBusinessCalendarProperties());
   }
   
   public BusinessCalendar(Properties calendarProperties) {
@@ -68,20 +66,6 @@
     }
   }
   
-  public Day[] getWeekDays() {
-    if (weekDays==null)
-      // lazy load properties if not set during creation
-      weekDays = Day.parseWeekDays(getBusinessCalendarProperties(), this);
-    return weekDays;
-  }
-
-  public List getHolidays() {
-    if (holidays==null)
-      // lazy load properties if not set during creation
-      holidays = Holiday.parseHolidays(getBusinessCalendarProperties(), this);
-    return holidays;
-  }
-
   public Date add(Date date, Duration duration) {
     Date end = null;
     if (duration.isBusinessTime()) {
@@ -120,11 +104,11 @@
   public Day findDay(Date date) {
     Calendar calendar = getCalendar();
     calendar.setTime(date);
-    return getWeekDays()[calendar.get(Calendar.DAY_OF_WEEK)];
+    return weekDays[calendar.get(Calendar.DAY_OF_WEEK)];
   }
 
   public boolean isHoliday(Date date) {
-    Iterator iter = getHolidays().iterator();
+    Iterator iter = holidays.iterator();
     while (iter.hasNext()) {
       Holiday holiday = (Holiday) iter.next();
       if (holiday.includes(date)) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/calendar/DayPart.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/calendar/DayPart.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/calendar/DayPart.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/calendar/DayPart.java	2009-02-06 09:17:37.000000000 +0100
@@ -67,7 +67,7 @@
       toMinute = calendar.get(Calendar.MINUTE);
 
     } catch (ParseException e) {
-      throw new IllegalArgumentException("improper format of daypart '" + dayPartText + "'");
+      e.printStackTrace();
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/BatchSignalCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/BatchSignalCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/BatchSignalCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/BatchSignalCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -2,11 +2,14 @@
 
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.hibernate.Query;
 import org.jbpm.JbpmContext;
+import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 
 /**
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,11 +1,18 @@
 package org.jbpm.command;
 
+import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.hibernate.Query;
 import org.jbpm.JbpmContext;
+import org.jbpm.db.JbpmSchema;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.exe.Token;
+import org.jbpm.taskmgmt.exe.TaskInstance;
 
 /**
  * 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/CancelTokenCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/CancelTokenCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/CancelTokenCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/CancelTokenCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,6 +1,11 @@
 package org.jbpm.command;
 
+import java.util.Date;
+import java.util.Iterator;
+
+import org.hibernate.Query;
 import org.jbpm.JbpmContext;
+import org.jbpm.graph.exe.ProcessInstance;
 
 /**
  * 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/DeployProcessCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/DeployProcessCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/DeployProcessCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/DeployProcessCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,11 +1,14 @@
 package org.jbpm.command;
 
 import java.io.ByteArrayInputStream;
+import java.io.StringReader;
 import java.util.zip.ZipInputStream;
 
 import org.jbpm.JbpmContext;
 import org.jbpm.JbpmException;
+import org.jbpm.db.JbpmSchema;
 import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.jpdl.xml.JpdlXmlReader;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -14,7 +17,7 @@
  * like that) or par archive (byte-array). if both is given, the byte-array will
  * be preferred
  * 
- * The deployed process definition is returned
+ * The deplpoyed process definition is returned
  * 
  * @author Bernd Ruecker (bernd.ruecker@camunda.com)
  * 
@@ -46,7 +49,7 @@
   public Object execute(JbpmContext jbpmContext) throws Exception {
     ProcessDefinition processDefinition = null;
     if (par != null && par.length > 0) {
-      log.debug("parse process from archive");
+      log.info("start parsing process from par");
 
       // Thanks to George Mournos who helped to improve this:
       ZipInputStream zipInputStream = new ZipInputStream(
@@ -55,21 +58,20 @@
           .parseParZipInputStream(zipInputStream);
 
       jbpmContext.deployProcessDefinition(processDefinition);
-      log.debug("deployment sucessfull");
+      log.info("deployment sucessfull");
     }
     else if (xml != null && xml.length() > 0) {
-      log.debug("parse process from string");
-      if (log.isTraceEnabled())
-        log.trace("deploy process:\n" + xml);
+      log.info("parse process from String");
+      log.debug("deploy process:\n" + xml);
 
       processDefinition = ProcessDefinition
           .parseXmlString(xml);
 
       jbpmContext.deployProcessDefinition(processDefinition);
-      log.debug("deployment sucessfull");
+      log.info("deployment sucessfull");
     }
     else
-      throw new JbpmException("either xml string or process archive must be given.");
+      throw new JbpmException("either xml string or par archive must be given.");
     return retrieveProcessDefinition(processDefinition);
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessDefinitionCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessDefinitionCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessDefinitionCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessDefinitionCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,5 +1,7 @@
 package org.jbpm.command;
 
+import java.util.List;
+
 import org.jbpm.JbpmContext;
 
 /**
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,7 +1,13 @@
 package org.jbpm.command;
 
+import java.util.Iterator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.exe.Token;
+import org.jbpm.logging.log.ProcessLog;
 
 /**
  * This command can retrieve the matching process instances (e.g. for admin
@@ -13,6 +19,8 @@
 
     private static final long serialVersionUID = -8436697080972165601L;
 
+    private static final Log log = LogFactory.getLog(GetProcessInstanceCommand.class);
+
     private long processInstanceId;
 
     private long tokenId;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceLogCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceLogCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceLogCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstanceLogCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -41,6 +41,8 @@
 	 * but needs to be accesible from the client
 	 * 
 	 * overwrite this method, if you need more details in your client
+	 * 
+	 * @param m
 	 */
 	protected Map loadLogdFromMap(Map logMap) {
         Iterator iter = logMap.keySet().iterator();
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstancesCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstancesCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstancesCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetProcessInstancesCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -4,9 +4,12 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.hibernate.Query;
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.exe.Token;
 
 /**
  * This command can retrieve all process instances (e.g. for admin client).
@@ -20,6 +23,8 @@
 
     private static final long serialVersionUID = -5601050489405283851L;
 
+    private static final Log log = LogFactory.getLog(GetProcessInstancesCommand.class);
+
     /*
      * is true, only the running process instances are retrieved (ended and
      * canceled ones are skipped)
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetTaskInstanceCommand.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetTaskInstanceCommand.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/command/GetTaskInstanceCommand.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/command/GetTaskInstanceCommand.java	2009-02-06 09:17:37.000000000 +0100
@@ -2,8 +2,11 @@
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.jbpm.JbpmContext;
+import org.jbpm.context.exe.VariableContainer;
+import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 
 /**
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/configuration/ValueInfo.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/configuration/ValueInfo.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/configuration/ValueInfo.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/configuration/ValueInfo.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,5 +1,7 @@
 package org.jbpm.configuration;
 
+import org.jbpm.JbpmConfiguration;
+
 public class ValueInfo implements ObjectInfo {
 
   private static final long serialVersionUID = 1L;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/context/exe/converter/SerializableToByteArrayConverter.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/context/exe/converter/SerializableToByteArrayConverter.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/context/exe/converter/SerializableToByteArrayConverter.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/context/exe/converter/SerializableToByteArrayConverter.java	2009-02-06 09:17:34.000000000 +0100
@@ -24,21 +24,22 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmException;
 import org.jbpm.bytes.ByteArray;
 import org.jbpm.context.exe.Converter;
-import org.jbpm.graph.def.ProcessDefinition;
-import org.jbpm.util.ClassLoaderUtil;
-import org.jbpm.util.CustomLoaderObjectInputStream;
+import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.util.ContextObjectInputStream;
 
 public class SerializableToByteArrayConverter implements Converter {
 
 	private static final long serialVersionUID = 1L;
+	private static Log log = LogFactory
+			.getLog(SerializableToByteArrayConverter.class);
 
 	public boolean supports(Object value) {
 		if(value == null)
@@ -49,11 +50,11 @@
 	public Object convert(Object o) {
 		byte[] bytes = null;
 		try {
-			ByteArrayOutputStream memoryStream = new ByteArrayOutputStream();
-			ObjectOutputStream objectStream = new ObjectOutputStream(memoryStream);
-			objectStream.writeObject(o);
-			objectStream.flush();
-			bytes = memoryStream.toByteArray();
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			ObjectOutputStream oos = new ObjectOutputStream(baos);
+			oos.writeObject(o);
+			oos.flush();
+			bytes = baos.toByteArray();
 		}
 		catch(IOException e) {
 			throw new JbpmException("couldn't serialize '" + o + "'", e);
@@ -63,31 +64,48 @@
 
 	public Object revert(Object o) {
 		ByteArray byteArray = (ByteArray) o;
-		InputStream memoryStream = new ByteArrayInputStream(byteArray.getBytes());
+		ByteArrayInputStream bais = new ByteArrayInputStream(byteArray.getBytes());
 		try {
-			ObjectInputStream objectStream = new ObjectInputStream(memoryStream);
-			return objectStream.readObject();
+			ContextObjectInputStream cois = new ContextObjectInputStream(bais);
+			return cois.readObject();
 		}
 		catch(IOException ex) {
-			throw new JbpmException("failed to read object", ex);
+			throw new JbpmException("IOException caused by: " + ex.getCause(), ex);
 		}
 		catch(ClassNotFoundException ex) {
-			throw new JbpmException("serialized object class not found", ex);
+			throw new JbpmException("ClassNotFoundException caused by: "
+					+ ex.getCause(), ex);
 		}
 	}
 
-	public Object revert(Object o, ProcessDefinition processDefinition) {
+	public Object revert(Object o, ProcessInstance processInstance) {
+		if(processInstance == null) {
+			throw new JbpmException("Process instance is null");
+		}
+		else {
 		ByteArray byteArray = (ByteArray) o;
-		InputStream memoryStream = new ByteArrayInputStream(byteArray.getBytes());
+			ByteArrayInputStream bais = new ByteArrayInputStream(byteArray.getBytes());
 		try {
-		  ObjectInputStream objectStream = new CustomLoaderObjectInputStream(memoryStream, ClassLoaderUtil.getProcessClassLoader(processDefinition));
-			return objectStream.readObject();
+				ContextObjectInputStream cois = new ContextObjectInputStream(bais, processInstance);
+				return cois.readObject();
 		}
 		catch(IOException ex) {
-			throw new JbpmException("failed to read object", ex);
+				throw new JbpmException("IOException caused by: " + ex.getCause(), ex);
 		}
 		catch(ClassNotFoundException ex) {
-			throw new JbpmException("serialized object class not found", ex);
+				throw new JbpmException("ClassNotFoundException caused by: "
+						+ ex.getCause(), ex);
+			}
 		}
 	}
+
+	public void setProcessInstance(ProcessInstance processInstance) {
+		this.processInstance = processInstance;
+	}
+
+	public ProcessInstance getProcessInstance() {
+		return this.processInstance;
+	}
+
+	ProcessInstance processInstance;
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/context/exe/VariableInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/context/exe/VariableInstance.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/context/exe/VariableInstance.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/context/exe/VariableInstance.java	2009-02-06 09:17:34.000000000 +0100
@@ -152,9 +152,17 @@
 		}
 		Object value = getObject();
 		if((value != null) && (converter != null)) {
-			if(converter instanceof SerializableToByteArrayConverter && processInstance != null) {
-				SerializableToByteArrayConverter s2bConverter = (SerializableToByteArrayConverter) converter;
-			  value = s2bConverter.revert(value, processInstance.getProcessDefinition());
+			if(converter instanceof SerializableToByteArrayConverter) {
+				converter = (SerializableToByteArrayConverter) converter;
+				SerializableToByteArrayConverter serializableToByteArrayConverter = (SerializableToByteArrayConverter) converter;
+				serializableToByteArrayConverter.setProcessInstance(this.getProcessInstance());
+				if(this.getProcessInstance() != null) {
+					value = serializableToByteArrayConverter.revert(value, this
+							.getProcessInstance());
+				}
+				else {
+					value = serializableToByteArrayConverter.revert(value);
+				}
 			}
 			else {
 				value = converter.revert(value);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/compatibility/JbpmSchemaUpdate.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/compatibility/JbpmSchemaUpdate.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/compatibility/JbpmSchemaUpdate.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/compatibility/JbpmSchemaUpdate.java	2009-02-06 09:17:34.000000000 +0100
@@ -110,6 +110,7 @@
 		}
 		catch (Exception e) {
 			log.error( "Error running schema update", e );
+			e.printStackTrace();
 		}
 	}
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/GraphSession.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/GraphSession.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/GraphSession.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/GraphSession.java	2009-02-06 09:17:34.000000000 +0100
@@ -83,14 +83,13 @@
   
   /**
    * saves the process definitions.  this method does not assign a version 
-   * number.  that is the responsibility of the {@link #deployProcessDefinition(ProcessDefinition)
-   * deployProcessDefinition} method.
+   * number.  that is the responsibility of the {@link org.jbpm.jpdl.par.ProcessArchiveDeployer}.
    */
   public void saveProcessDefinition( ProcessDefinition processDefinition ) {
     try {
       session.save(processDefinition);
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't save process definition '" + processDefinition + "'", e);
     } 
@@ -104,7 +103,7 @@
     try {
       return (ProcessDefinition) session.load( ProcessDefinition.class, new Long(processDefinitionId) );
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load process definition '" + processDefinitionId + "'", e);
     } 
@@ -118,7 +117,7 @@
     try {
       return (ProcessDefinition) session.get( ProcessDefinition.class, new Long(processDefinitionId) );
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't get process definition '" + processDefinitionId + "'", e);
     } 
@@ -135,7 +134,7 @@
       query.setInteger("version", version);
       processDefinition = (ProcessDefinition) query.uniqueResult();
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't get process definition with name '"+name+"' and version '"+version+"'", e);
     } 
@@ -153,7 +152,20 @@
       query.setMaxResults(1);
       processDefinition = (ProcessDefinition) query.uniqueResult();
     } catch (Exception e) {
-      log.error(e);
+      
+      System.out.flush();
+      System.err.flush();
+      try {
+        Thread.sleep(200);
+      } catch (InterruptedException e1) {
+        e1.printStackTrace();
+      }
+      
+      e.printStackTrace(); log.error(e);
+      
+      System.out.flush();
+      System.err.flush();
+
       jbpmSession.handleException();
       throw new JbpmException("couldn't find process definition '" + name + "'", e);
     }
@@ -182,7 +194,7 @@
       }
       processDefinitions = new ArrayList(processDefinitionsByName.values());
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't find latest versions of process definitions", e);
     }
@@ -197,7 +209,7 @@
       Query query = session.getNamedQuery("GraphSession.findAllProcessDefinitions");
       return query.list();
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't find all process definitions", e);
     } 
@@ -212,7 +224,7 @@
       query.setString("name", name);
       return query.list();
     } catch (HibernateException e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       throw new JbpmException("couldn't find all versions of process definition '"+name+"'", e);
     } 
   }
@@ -237,7 +249,7 @@
       session.delete(processDefinition);
 
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't delete process definition '" + processDefinition.getId() + "'", e);
     } 
@@ -264,7 +276,7 @@
       ProcessInstance processInstance = (ProcessInstance) session.load( ProcessInstance.class, new Long(processInstanceId) );
       return processInstance;
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load process instance '" + processInstanceId + "'", e);
     } 
@@ -279,7 +291,7 @@
       ProcessInstance processInstance = (ProcessInstance) session.get( ProcessInstance.class, new Long(processInstanceId) );
       return processInstance;
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't get process instance '" + processInstanceId + "'", e);
     } 
@@ -295,7 +307,7 @@
       Token token = (Token) session.load(Token.class, new Long(tokenId));
       return token;
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load token '" + tokenId + "'", e);
     } 
@@ -310,7 +322,7 @@
       Token token = (Token) session.get(Token.class, new Long(tokenId));
       return token;
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't get token '" + tokenId + "'", e);
     } 
@@ -330,7 +342,7 @@
     try {
       session.lock( processInstance, LockMode.UPGRADE );
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't lock process instance '" + processInstance.getId() + "'", e);
     } 
@@ -348,7 +360,7 @@
       processInstances = query.list();
 
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load process instances for process definition '" + processDefinitionId + "'", e);
     } 
@@ -408,7 +420,7 @@
       session.delete(processInstance);
       
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't delete process instance '" + processInstance.getId() + "'", e);
     } 
@@ -523,7 +535,7 @@
         }
       }
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load process instances for process definition '" + processDefinitionId + "'", e);
     }
@@ -539,7 +551,7 @@
       results = query.list();
 
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't active nodes for process instance '" + processInstance + "'", e);
     }
@@ -555,7 +567,7 @@
       processInstance = (ProcessInstance) query.uniqueResult();
 
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't get process instance with key '" + key + "'", e);
     }
@@ -574,7 +586,7 @@
       }
 
     } catch (Exception e) {
-      log.error(e);
+      e.printStackTrace(); log.error(e);
       jbpmSession.handleException();
       throw new JbpmException("couldn't load process instance with key '" + key + "'", e);
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java	2009-02-06 09:17:34.000000000 +0100
@@ -34,6 +34,17 @@
 import org.hibernate.cfg.Configuration;
 import org.hibernate.tool.hbm2ddl.SchemaExport;
 import org.jbpm.JbpmException;
+import org.jbpm.context.def.VariableAccess;
+import org.jbpm.graph.def.Action;
+import org.jbpm.graph.def.Event;
+import org.jbpm.graph.def.ExceptionHandler;
+import org.jbpm.graph.def.Node;
+import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.graph.def.Transition;
+import org.jbpm.instantiation.Delegation;
+import org.jbpm.module.def.ModuleDefinition;
+import org.jbpm.taskmgmt.def.Task;
+import org.jbpm.taskmgmt.def.TaskController;
 import org.jbpm.util.ClassLoaderUtil;
 
 public abstract class HibernateHelper {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/hibernate.queries.hbm.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/hibernate.queries.hbm.xml
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/hibernate.queries.hbm.xml	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/hibernate.queries.hbm.xml	2009-02-06 09:17:34.000000000 +0100
@@ -11,28 +11,6 @@
   <!-- related to ProcessDefintion -->
   <!-- ########################### -->
 
-  <query name="GraphSession.AllProcessNames">
-    <![CDATA[
-     select distinct (pd.name)
-     from org.jbpm.graph.def.ProcessDefinition pd   
-    ]]>
-  </query>
-  
-  <query name="GraphSession.NumberOfDeployedProcesses">
-    <![CDATA[
-     select count (distinct pd.name)
-     from org.jbpm.graph.def.ProcessDefinition pd 
-    ]]>
-  </query>
-  
-  <query name="GraphSession.NumberOfActiveProcessInstances">
-    <![CDATA[
-     select count (pi.id)
-     from org.jbpm.graph.exe.ProcessInstance pi
-     where pi.end is null 
-    ]]>
-  </query>
-  
   <query name="GraphSession.findLatestProcessDefinitionQuery">
     <![CDATA[
      select pd
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSchema.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSchema.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSchema.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSchema.java	2009-02-06 09:17:34.000000000 +0100
@@ -201,37 +201,42 @@
         .setDelimiter(getSqlDelimiter())
         .setOutputFile(dir+"/"+prefix+".drop.create.sql")
         .create(true, false);
-    } catch (IOException e) {
+    } catch (Exception e) {
       throw new JbpmException("couldn't generate scripts", e);
     }
   }
 
   public static void main(String[] args) {
+    try {
     if ( (args==null) || (args.length==0) ) {
-      syntax();
-    } else if ("create".equalsIgnoreCase(args[0]) && args.length <= 3) {
+        throw new IllegalArgumentException();
+      }
+      
+      String cmd = args[0];
+      
+      if ("create".equalsIgnoreCase(cmd)) {
       Configuration configuration = createConfiguration(args, 1);
       new JbpmSchema(configuration).createSchema();
-    } else if ("drop".equalsIgnoreCase(args[0]) && args.length <= 3) {
+      } else if ("drop".equalsIgnoreCase(cmd)) {
       Configuration configuration = createConfiguration(args, 1);
       new JbpmSchema(configuration).dropSchema();
-    } else if ("clean".equalsIgnoreCase(args[0]) && args.length <= 3) {
+      } else if ("clean".equalsIgnoreCase(cmd)) {
       Configuration configuration = createConfiguration(args, 1);
       new JbpmSchema(configuration).cleanSchema();
-    } else if ("scripts".equalsIgnoreCase(args[0]) && args.length >= 3 && args.length <= 5) {
+      } else if ("scripts".equalsIgnoreCase(cmd)) {
       Configuration configuration = createConfiguration(args, 3);
       new JbpmSchema(configuration).saveSqlScripts(args[1], args[2]);
-    } else {
-      syntax();
-    }
   }
 
-  private static void syntax() {
-    System.err.println("syntax:");
-    System.err.println("JbpmSchema create [<hibernate.cfg.xml> [<hibernate.properties>]]");
-    System.err.println("JbpmSchema drop [<hibernate.cfg.xml> [<hibernate.properties>]]");
-    System.err.println("JbpmSchema clean [<hibernate.cfg.xml> [<hibernate.properties>]]");
-    System.err.println("JbpmSchema scripts <dir> <prefix> [<hibernate.cfg.xml> [<hibernate.properties>]]");
+    } catch (IllegalArgumentException e) {
+      System.err.println("syntax: JbpmSchema create [<hibernate.cfg.xml> [<hibernate.properties>]]");
+      System.err.println("syntax: JbpmSchema drop [<hibernate.cfg.xml> [<hibernate.properties>]]");
+      System.err.println("syntax: JbpmSchema clean [<hibernate.cfg.xml> [<hibernate.properties>]]");
+      System.err.println("syntax: JbpmSchema scripts <dir> <prefix> [<hibernate.cfg.xml> [<hibernate.properties>]]");
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw new JbpmException(e);
+    }
   }
 
   static Configuration createConfiguration(String[] args, int index) {
@@ -246,7 +251,8 @@
         InputStream inputStream = new FileInputStream(hibernateProperties);
         properties.load(inputStream);
         configuration.setProperties(properties);
-      } catch (IOException e) {
+      } catch (Exception e) {
+        e.printStackTrace();
         throw new JbpmException("couldn't load hibernate configuration", e);
       }
     }
@@ -265,7 +271,7 @@
       try { 
         fileOutputStream.close(); 
       } catch (IOException e) { 
-        log.debug("failed to close file", e);
+        e.printStackTrace(); 
       }
     }
   }
@@ -287,6 +293,7 @@
       }
     
     } catch (SQLException e) {
+      e.printStackTrace();
       throw new JbpmException("couldn't execute sql '"+sql+"'", e);
     } finally {
       closeConnection();
@@ -294,24 +301,18 @@
   }
 
   void closeConnection() {
-    if (statement!=null) {
       try {
-        statement.close();
-      }
-      catch (SQLException e) {
-        log.debug("could not close jdbc statement", e);
-      }
-    }
+      if (statement!=null) statement.close();
     if (connection!=null) {
-      try {
         JDBCExceptionReporter.logWarnings( connection.getWarnings() );
         connection.clearWarnings();
         connectionProvider.closeConnection(connection);
         connectionProvider.close();
       }
-      catch (SQLException e) {
-        log.debug("could not close jdbc connection", e);
       }
+    catch(Exception e) {
+      System.err.println( "Could not close connection" );
+      e.printStackTrace();
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSessionFactory.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSessionFactory.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSessionFactory.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSessionFactory.java	2009-02-06 09:17:34.000000000 +0100
@@ -54,7 +54,7 @@
  * and store it somewhere static.  It takes quite some time to create a DbSessionFactory,
  * but you only have to do it once.  After that, creating DbSession's is really fast.
  * 
- * @deprecated use {@link org.jbpm.JbpmContext} and {@link org.jbpm.JbpmConfiguration} instead.
+ * @deprecated use {@link org.jbpm.tc.ContextBuilder} and {@link org.jbpm.tc.db.JbpmSessionContext} instead.
  */
 public class JbpmSessionFactory implements Serializable {
   
@@ -151,6 +151,7 @@
       try {
         hibernateProperties.load( ClassLoaderUtil.getStream(hibernatePropertiesResource) );
       } catch (IOException e) {
+        e.printStackTrace();
         throw new JbpmException("couldn't load the hibernate properties from resource '"+hibernatePropertiesResource+"'", e);
       }
       log.debug("overriding hibernate properties with "+ hibernateProperties);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSession.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSession.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JbpmSession.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JbpmSession.java	2009-02-06 09:17:34.000000000 +0100
@@ -48,17 +48,18 @@
  *   <li>{@link org.jbpm.db.GraphSession}</li>
  *   <li>{@link org.jbpm.db.TaskMgmtSession}</li>
  *   <li>{@link org.jbpm.db.LoggingSession}</li>
- *   <li>{@link org.jbpm.db.ContextSession}</li>
+ *   <li>{@link org.jbpm.db.FileSession}</li>
  * </ul>  
  * The easiest way to obtain the operations is like this :
  * <ul>
  *   <li><pre>jbpmSession.getGraphSession().someGraphDbMethod(...)</pre></li>
  *   <li><pre>jbpmSession.getTaskMgmtSession().someTaskDbMethod(...)</pre></li>
  *   <li><pre>jbpmSession.getLoggingSession().someLoggingDbMethod(...)</pre></li>
- *   <li><pre>jbpmSession.getContextSession().someContextDbMethod(...)</pre></li>
+ *   <li><pre>jbpmSession.getContextSession().someFileDbMethod(...)</pre></li>
+ *   <li><pre>jbpmSession.getFileSession().someFileDbMethod(...)</pre></li>
  * </ul>
  * 
- * @deprecated use {@link org.jbpm.JbpmContext} and {@link org.jbpm.JbpmConfiguration} instead.
+ * @deprecated use {@link org.jbpm.tc.ContextBuilder} and {@link org.jbpm.tc.db.JbpmSessionContext} instead.
  */
 public class JbpmSession {
   
@@ -224,7 +225,7 @@
   }
   
   /**
-   * @deprecated use {@link org.jbpm.JbpmConfiguration#getCurrentJbpmContext()} instead.
+   * @deprecated use {@link org.jbpm.tc.db.JbpmSessionContext} instead.
    */
   public static JbpmSession getCurrentJbpmSession() {
     JbpmSession jbpmSession = null;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JobSession.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JobSession.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/db/JobSession.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/db/JobSession.java	2009-02-06 09:17:34.000000000 +0100
@@ -10,6 +10,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.HibernateException;
 import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.Session;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/default.jbpm.cfg.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/default.jbpm.cfg.xml
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/default.jbpm.cfg.xml	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/default.jbpm.cfg.xml	2009-02-06 09:17:38.000000000 +0100
@@ -39,7 +39,7 @@
   
   <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
     <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
-    <field name="name"><string value="JbpmJobExecutor" /></field>
+    <field name="name"><string value="JbpmJobExector" /></field>
     <field name="nbrOfThreads"><int value="1" /></field>
     <field name="idleInterval"><int value="5000" /></field>
     <field name="maxIdleInterval"><int value="3600000" /></field> <!-- 1 hour -->
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/file/def/FileDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/file/def/FileDefinition.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/file/def/FileDefinition.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/file/def/FileDefinition.java	2009-02-06 09:17:34.000000000 +0100
@@ -135,7 +135,7 @@
     if (isStoredOnFileSystem()) {
       return new File(getFilePath(name)).exists();
     } else {
-      return processFiles == null ? false : processFiles.containsKey(name);
+      return processFiles.containsKey(name);
     }
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/GraphElement.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/GraphElement.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/GraphElement.java	2009-02-06 09:13:04.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/GraphElement.java	2009-02-06 09:17:36.000000000 +0100
@@ -32,14 +32,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmException;
+import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.RuntimeAction;
 import org.jbpm.graph.exe.Token;
 import org.jbpm.graph.log.ActionLog;
+import org.jbpm.instantiation.UserCodeInterceptor;
 import org.jbpm.instantiation.UserCodeInterceptorConfig;
 import org.jbpm.job.ExecuteActionJob;
 import org.jbpm.msg.MessageService;
 import org.jbpm.svc.Services;
+import org.jbpm.taskmgmt.def.AssignmentHandler;
+import org.jbpm.taskmgmt.def.TaskControllerHandler;
+import org.jbpm.taskmgmt.exe.TaskInstance;
 import org.jbpm.util.EqualsUtil;
 
 public abstract class GraphElement implements Serializable {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/Node.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/Node.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/Node.java	2009-02-06 09:13:04.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/Node.java	2009-02-06 09:17:36.000000000 +0100
@@ -38,6 +38,7 @@
 import org.jbpm.graph.exe.Token;
 import org.jbpm.graph.log.NodeLog;
 import org.jbpm.job.ExecuteNodeJob;
+import org.jbpm.job.Job;
 import org.jbpm.jpdl.xml.JpdlXmlReader;
 import org.jbpm.jpdl.xml.Parsable;
 import org.jbpm.msg.MessageService;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/ProcessDefinition.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/ProcessDefinition.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/def/ProcessDefinition.java	2009-02-06 09:13:04.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/def/ProcessDefinition.java	2009-02-06 09:17:36.000000000 +0100
@@ -104,6 +104,7 @@
         processDefinition.addDefinition(moduleDefinition);
         
       } catch (Exception e) {
+        e.printStackTrace();
         throw new JbpmException("couldn't instantiate default module '"+moduleClassName+"'", e);
       }
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/exe/ProcessInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/exe/ProcessInstance.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/exe/ProcessInstance.java	2009-02-06 09:13:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/exe/ProcessInstance.java	2009-02-06 09:17:36.000000000 +0100
@@ -224,6 +224,7 @@
           moduleInstance.setProcessInstance(this);
 
         } catch (Exception e) {
+          e.printStackTrace();
           throw new JbpmException("couldn't instantiate transient module '"+clazz.getName()+"' with the default constructor");
         }
         transientInstances.put(clazz.getName(), moduleInstance);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/exe/Token.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/exe/Token.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/exe/Token.java	2009-02-06 09:13:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/exe/Token.java	2009-02-06 09:17:36.000000000 +0100
@@ -148,6 +148,9 @@
     if (node==null) {
       throw new JbpmException("token '" + this + "' can't be signalled cause it is currently not positioned in a node");
     }
+    if (node.getDefaultLeavingTransition() == null) {
+      throw new JbpmException("couldn't signal token '" + this + "' : node '" + node + "' doesn't have a default transition");
+    }
     Transition leavingTransition = node.getLeavingTransition(transitionName);
     if (leavingTransition==null) {
       throw new JbpmException("transition '"+transitionName+"' does not exist on "+node);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/node/Join.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/node/Join.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/node/Join.java	2009-02-06 09:13:04.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/node/Join.java	2009-02-06 09:17:36.000000000 +0100
@@ -36,6 +36,7 @@
 import org.jbpm.graph.exe.Token;
 import org.jbpm.jpdl.xml.JpdlXmlReader;
 import org.jbpm.jpdl.xml.Parsable;
+import org.jbpm.util.XmlUtil;
 
 public class Join extends Node implements Parsable {
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/node/ProcessState.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/node/ProcessState.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/graph/node/ProcessState.java	2009-02-06 09:13:04.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/graph/node/ProcessState.java	2009-02-06 09:17:36.000000000 +0100
@@ -21,15 +21,32 @@
  */
 package org.jbpm.graph.node;
 
+import java.io.IOException;
+import java.io.Writer;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.dom4j.Attribute;
+import org.dom4j.Branch;
+import org.dom4j.CDATA;
+import org.dom4j.Comment;
+import org.dom4j.Document;
 import org.dom4j.Element;
+import org.dom4j.Entity;
+import org.dom4j.InvalidXPathException;
+import org.dom4j.Namespace;
+import org.dom4j.ProcessingInstruction;
+import org.dom4j.QName;
+import org.dom4j.Text;
+import org.dom4j.Visitor;
+import org.dom4j.XPath;
 import org.dom4j.tree.DefaultElement;
 import org.dom4j.tree.FlyweightAttribute;
 import org.jbpm.JbpmConfiguration;
@@ -43,6 +60,7 @@
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
+import org.jbpm.graph.log.NodeLog;
 import org.jbpm.graph.log.ProcessStateLog;
 import org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator;
 import org.jbpm.jpdl.xml.JpdlXmlReader;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/JbpmConfiguration.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/JbpmConfiguration.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/JbpmConfiguration.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/JbpmConfiguration.java	2009-02-06 09:17:38.000000000 +0100
@@ -278,12 +278,13 @@
             log.info("using jbpm configuration resource '"+resource+"'");
             InputStream jbpmCfgXmlStream = ClassLoaderUtil.getStream(resource);
 
-            // if a resource SHOULD BE used, but is not found in the classpath
-            // throw exception (otherwise, the user wants to load own stuff
-            // but is confused, if it is not found and not loaded, without
+            // if a custom resource is to be used, but is not found in the classpath
+            // log a warning (otherwise, users who want to load custom stuff
+            // will be confused if the resource is not found and not loaded, without
             // any notice)
-            if (jbpmCfgXmlStream==null)
-              throw new JbpmException("jbpm configuration resource '"+resource+"' is not available");
+            if (jbpmCfgXmlStream==null && !"jbpm.cfg.xml".equals(resource)) {
+              log.warn("jbpm configuration resource '"+resource+"' is not available");
+            }
 
             ObjectFactory objectFactory = parseObjectFactory(jbpmCfgXmlStream);
             instance = createJbpmConfiguration(objectFactory);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/JbpmContext.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/JbpmContext.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/JbpmContext.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/JbpmContext.java	2009-02-06 09:17:38.000000000 +0100
@@ -491,7 +491,7 @@
    * @throws ClassCastException if another persistence service is configured then the default.
    */
   public void setSessionFactory(SessionFactory sessionFactory) {
-    DbPersistenceService persistenceService = (DbPersistenceService) getPersistenceService();
+    PersistenceService persistenceService = getPersistenceService();
     if (persistenceService==null) return;
     persistenceService.setSessionFactory(sessionFactory);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutor.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutor.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutor.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutor.java	2009-02-06 09:17:37.000000000 +0100
@@ -111,7 +111,8 @@
     String threadName = getLastThreadName();
     JobExecutorThread thread = (JobExecutorThread) threads.remove(threadName);
     log.debug("removing job executor thread '"+threadName+"'");
-    thread.deactivate();
+    thread.setActive(false);
+    thread.interrupt();
     return thread;
   }
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutorThread.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutorThread.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/JobExecutorThread.java	2009-02-06 09:17:37.000000000 +0100
@@ -48,7 +48,7 @@
 
   Collection history = new ArrayList();
   int currentIdleInterval;
-  volatile boolean isActive = true;
+  boolean isActive = true;
 
   public void run() {
     try {
@@ -79,7 +79,7 @@
           currentIdleInterval = idleInterval;
 
         } catch (InterruptedException e) {
-          log.info((isActive? "active" : "inactive")+" job executor thread '"+getName()+"' got interrupted");
+          log.info((isActive? "active" : "inactivated")+" job executor thread '"+getName()+"' got interrupted");
         } catch (Exception e) {
           log.error("exception in job executor thread. waiting "+currentIdleInterval+" milliseconds", e);
           try {
@@ -96,7 +96,7 @@
       }
     } catch (Exception e) {
       // NOTE that Error's are not caught because that might halt the JVM and mask the original Error.
-      log.error("exception in job executor thread", e);
+      e.printStackTrace();
     } finally {
       log.info(getName()+" leaves cyberspace");
     }
@@ -237,22 +237,8 @@
     return interval;
   }
 
-  /**
-   * @deprecated As of jBPM 3.2.3, replaced by {@link #deactivate()}
-   */
   public void setActive(boolean isActive) {
-    if (isActive == false) 
-      deactivate();
-  }
-
-  /**
-   * Signals this thread to stop running. Execution should cease shortly afterwards.
-   */
-  public void deactivate() {
-    if (isActive) {
-      isActive = false;
-      interrupt();      
-    }
+    this.isActive = isActive;
   }
 
   private static Log log = LogFactory.getLog(JobExecutorThread.class);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/LockMonitorThread.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/LockMonitorThread.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/job/executor/LockMonitorThread.java	2009-02-06 09:13:05.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/job/executor/LockMonitorThread.java	2009-02-06 09:17:37.000000000 +0100
@@ -48,8 +48,8 @@
           }
         }
       }
-    } catch (Exception e) {
-      log.error("exception in lock monitor thread", e);
+    } catch (Throwable t) {
+      t.printStackTrace();
     } finally {
       log.info(getName()+" leaves cyberspace");
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/jpdl/xml/JpdlXmlWriter.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/jpdl/xml/JpdlXmlWriter.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/jpdl/xml/JpdlXmlWriter.java	2009-02-06 09:13:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/jpdl/xml/JpdlXmlWriter.java	2009-02-06 09:17:35.000000000 +0100
@@ -84,6 +84,7 @@
       xmlWriter.flush();
       writer.flush();
     } catch (IOException e) {
+      e.printStackTrace();
       addProblem("couldn't write process definition xml: "+e.getMessage());
     }
     
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/mail/Mail.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/mail/Mail.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/mail/Mail.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/mail/Mail.java	2009-02-06 09:17:34.000000000 +0100
@@ -38,8 +38,6 @@
   String template = null;
   String actors = null;
   String to = null;
-  String bcc = null;
-  String bccActors = null;
   String subject = null;
   String text = null;
   
@@ -60,22 +58,6 @@
     this.text = text;
   }
   
-  public Mail(String template,
-      String actors,
-      String to,
-      String bccActors,
-      String bcc,
-      String subject,
-      String text) {
-    this.template = template;
-    this.actors = actors;
-    this.to = to;
-    this.bccActors = bccActors;
-    this.bcc = bcc;
-    this.subject = subject;
-    this.text = text;
-  }  
-  
   public void execute(ExecutionContext executionContext) {
     this.executionContext = executionContext;
     send();
@@ -97,26 +79,6 @@
     return recipients;
   }
 
-  public List getBccRecipients() {
-    List recipients = new ArrayList();
-    if (bccActors!=null) {
-      String evaluatedActors = evaluate(bccActors);
-      List tokenizedActors = tokenize(evaluatedActors);
-      if (tokenizedActors!=null) {
-        recipients.addAll(resolveAddresses(tokenizedActors));
-      }
-    }
-    if (bcc!=null) {
-      String resolvedTo = evaluate(to);
-      recipients.addAll(tokenize(resolvedTo));
-    }
-    if (JbpmConfiguration.Configs.hasObject("jbpm.mail.bcc.address")) {
-      recipients.addAll(tokenize(
-          JbpmConfiguration.Configs.getString("jbpm.mail.bcc.address")));
-    }
-    return recipients;
-  }
-  
   public String getSubject() {
     if (subject==null) return null;
     return evaluate(subject);
@@ -149,27 +111,16 @@
       if (text==null) {
         text = properties.getProperty("text");
       }
-      if (bcc==null) {
-        bcc = properties.getProperty("bcc");
-      }
-      if (bccActors==null) {
-        bccActors = properties.getProperty("bccActors");
-      }
     }
     
     send(getMailServerProperties(), 
             getFromAddress(), 
             getRecipients(), 
-            getBccRecipients(),
             getSubject(), 
             getText());
   }
   
   public static void send(Properties mailServerProperties, String fromAddress, List recipients, String subject, String text) {
-    send(mailServerProperties, fromAddress, recipients, null, subject, text);
-  }
-  
-  public static void send(Properties mailServerProperties, String fromAddress, List recipients, List bccRecipients, String subject, String text) {
     if ( (recipients==null)
          || (recipients.isEmpty())
        ) {
@@ -188,13 +139,6 @@
         InternetAddress recipient = new InternetAddress((String) iter.next());
         message.addRecipient(Message.RecipientType.TO, recipient);
       }
-      if (bccRecipients!=null) {
-        iter = bccRecipients.iterator();
-        while (iter.hasNext()) {
-          InternetAddress recipient = new InternetAddress((String) iter.next());
-          message.addRecipient(Message.RecipientType.BCC, recipient);
-        }        
-      }
       if (subject!=null) {
         message.setSubject(subject);
       }
@@ -284,8 +228,6 @@
         addTemplateProperty(mailTemplateElement, "to", templateProperties);
         addTemplateProperty(mailTemplateElement, "subject", templateProperties);
         addTemplateProperty(mailTemplateElement, "text", templateProperties);
-        addTemplateProperty(mailTemplateElement, "bcc", templateProperties);
-        addTemplateProperty(mailTemplateElement, "bccActors", templateProperties);
 
         templates.put(mailTemplateElement.getAttribute("name"), templateProperties);
       }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/msg/db/DbMessageService.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/msg/db/DbMessageService.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/msg/db/DbMessageService.java	2009-02-06 09:13:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/msg/db/DbMessageService.java	2009-02-06 09:17:34.000000000 +0100
@@ -29,6 +29,7 @@
 import org.jbpm.JbpmContext;
 import org.jbpm.JbpmException;
 import org.jbpm.db.JobSession;
+import org.jbpm.graph.exe.Token;
 import org.jbpm.job.Job;
 import org.jbpm.job.executor.JobExecutor;
 import org.jbpm.msg.MessageService;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/msg/MessageService.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/msg/MessageService.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/msg/MessageService.java	2009-02-06 09:13:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/msg/MessageService.java	2009-02-06 09:17:34.000000000 +0100
@@ -23,6 +23,7 @@
 
 import java.io.Serializable;
 
+import org.jbpm.graph.exe.Token;
 import org.jbpm.job.Job;
 import org.jbpm.svc.Service;
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java	2009-02-06 09:17:34.000000000 +0100
@@ -101,8 +101,8 @@
        ) {
       Connection connection = getConnection(false);
       if (isCurrentSessionEnabled) {
-        log.debug("using current hibernate session");
         session = getSessionFactory().getCurrentSession();
+        log.debug("using current hibernate session " + session);
         mustSessionBeClosed = false;
         mustSessionBeFlushed = false;
         mustConnectionBeClosed = false;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/jta/JtaDbPersistenceService.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/jta/JtaDbPersistenceService.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/jta/JtaDbPersistenceService.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/jta/JtaDbPersistenceService.java	2009-02-06 09:17:34.000000000 +0100
@@ -30,6 +30,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.hibernate.engine.SessionFactoryImplementor;
 import org.hibernate.util.JTAHelper;
+import org.jbpm.JbpmContext;
 import org.jbpm.JbpmException;
 import org.jbpm.persistence.db.DbPersistenceService;
 import org.jbpm.persistence.db.DbPersistenceServiceFactory;
@@ -38,7 +39,7 @@
 
   private static final long serialVersionUID = 1L;
   
-  private static Log log = LogFactory.getLog(JtaDbPersistenceService.class);  
+  private static Log log = LogFactory.getLog(JbpmContext.class);  
   
   private UserTransaction userTransaction;
 
@@ -78,7 +79,7 @@
   }
 
   void endJtaTransaction() {
-    if (isRollbackOnly() || JTAHelper.isRollback(getJtaTransactionStatus())) {
+    if (isRollbackOnly() || JTAHelper.isMarkedForRollback(getJtaTransactionStatus())) {
       log.debug("end jta transation with ROLLBACK");
       try {
         userTransaction.rollback();
@@ -99,7 +100,7 @@
     String jndiName = persistenceServiceFactory.getConfiguration().getProperty("jta.UserTransaction");
     if (jndiName == null) {
       /*
-       * EJB 2.1 section 20.9 The container must make the UserTransaction interface available to the
+       * EJB 2.1 section 20.9 The container must make the UserTransaction interface available to
        * enterprise beans that are allowed to use this interface (only session and message-
        * driven beans with bean-managed transaction demarcation are allowed to use this 
        * interface) in JNDI under the name java:comp/UserTransaction.
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/PersistenceService.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/PersistenceService.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/persistence/PersistenceService.java	2009-02-06 09:13:00.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/persistence/PersistenceService.java	2009-02-06 09:17:34.000000000 +0100
@@ -21,6 +21,7 @@
  */
 package org.jbpm.persistence;
 
+import org.hibernate.SessionFactory;
 import org.jbpm.db.ContextSession;
 import org.jbpm.db.GraphSession;
 import org.jbpm.db.JobSession;
@@ -46,4 +47,5 @@
   void setLoggingSession(LoggingSession loggingSession);
   void setJobSession(JobSession jobSession);
   void setTaskMgmtSession(TaskMgmtSession taskMgmtSession);
+  void setSessionFactory(SessionFactory sessionFactory);
 }
\ No newline at end of file
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/svc/Services.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/svc/Services.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/svc/Services.java	2009-02-06 09:13:03.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/svc/Services.java	2009-02-06 09:17:35.000000000 +0100
@@ -212,6 +212,7 @@
 
   public void close() {
     if (services!=null) {
+      Map closeExceptions = new HashMap();
       Exception firstException = null;
       Iterator iter = serviceNames.iterator();
       while (iter.hasNext()) {
@@ -229,23 +230,25 @@
             } else {
               log.error("problem closing service '"+serviceName+"'", e);
             }
+            closeExceptions.put(serviceName, e);
             if (firstException==null) {
               firstException = e;
             }
           } catch (Exception e) {
             // NOTE that Error's are not caught because that might halt the JVM and mask the original Error.
             log.error("problem closing service '"+serviceName+"'", e);
+            closeExceptions.put(serviceName, e);
             if (firstException==null) {
               firstException = e;
             }
           }
         }
       }
-      if (firstException != null) {
+      if (!closeExceptions.isEmpty()) {
         if (firstException instanceof JbpmException) {
           throw (JbpmException) firstException;
         } else {
-          throw new JbpmException("problem closing services", firstException);
+          throw new JbpmException("problem closing services: "+closeExceptions, firstException);
         }
       }
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java	2009-02-06 09:13:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java	2009-02-06 09:17:35.000000000 +0100
@@ -31,6 +31,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmException;
+import org.jbpm.calendar.BusinessCalendar;
+import org.jbpm.calendar.Duration;
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.context.exe.VariableContainer;
 import org.jbpm.context.exe.VariableInstance;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java	2009-02-06 09:13:01.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java	2009-02-06 09:17:35.000000000 +0100
@@ -34,6 +34,8 @@
 import java.util.Set;
 import java.util.StringTokenizer;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmException;
 import org.jbpm.calendar.BusinessCalendar;
@@ -332,11 +334,17 @@
   }
 
   TaskInstance instantiateNewTaskInstance(ExecutionContext executionContext) {
+    TaskInstance newTaskInstance = null;
     TaskInstanceFactory taskInstanceFactory = (TaskInstanceFactory) JbpmConfiguration.Configs.getObject("jbpm.task.instance.factory");
-    if (taskInstanceFactory == null) {
-      throw new JbpmException("jbpm.task.instance.factory was not configured in jbpm.cfg.xml");
+    try {
+      newTaskInstance = taskInstanceFactory.createTaskInstance(executionContext);
+    } catch (NullPointerException e) {
+      throw new JbpmException("jbpm.task.instance.factory was not configured in jbpm.cfg.xml", e);
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw new JbpmException("couldn't instantiate task instance with task instance factory '"+taskInstanceFactory+"'", e);
     }
-    return taskInstanceFactory.createTaskInstance(executionContext);
+    return newTaskInstance;
   }
 
   /**
@@ -562,4 +570,5 @@
       }
     }
   }
+  private static final Log log = LogFactory.getLog(TaskMgmtInstance.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ArrayUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ArrayUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ArrayUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ArrayUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -21,7 +21,11 @@
  */
 package org.jbpm.util;
 
-public abstract class ArrayUtil {
+public class ArrayUtil {
+
+  private ArrayUtil() {
+    // hide default constructor to prevent instantiation
+  }
 
   public static String toString(Object[] array) {
     if (array==null) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ByteUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ByteUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ByteUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ByteUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -1,7 +1,10 @@
 package org.jbpm.util;
 
+public class ByteUtil {
 
-public abstract class ByteUtil {
+  private ByteUtil() {
+    // hide default constructor to prevent instantiation
+  }
 
   public static String toString(byte[] bytes) {
     if (bytes == null) return "null";
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ClassLoaderUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ClassLoaderUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/ClassLoaderUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/ClassLoaderUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -34,6 +34,10 @@
  */
 public class ClassLoaderUtil {
 
+  private ClassLoaderUtil() {
+    // hide default constructor to prevent instantiation
+  }
+
   public static Class loadClass(String className) {
     try {
       return getClassLoader().loadClass(className);
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util: ClassUtil.java
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util: ContextObjectInputStream.java
Only in jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util: CustomLoaderObjectInputStream.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/EqualsUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/EqualsUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/EqualsUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/EqualsUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -21,7 +21,11 @@
  */
 package org.jbpm.util;
 
-public abstract class EqualsUtil {
+public class EqualsUtil {
+
+  private EqualsUtil() {
+    // hide default constructor to prevent instantiation
+  }
 
   public static boolean equals(Object thisObject, Object otherObject) {
     if ( (thisObject==null) || (otherObject==null) ) return false;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/IoUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/IoUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/IoUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/IoUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -28,9 +28,13 @@
 
 import org.jbpm.JbpmException;
 
-public abstract class IoUtil {
+public class IoUtil {
 
-  public static final int BUFFERSIZE = 4096;
+  private IoUtil() {
+    // hide default constructor to prevent instantiation
+  }
+
+  private static final int BUFFERSIZE = 4096;
 
   public static byte[] readBytes(InputStream inputStream) throws IOException {
     byte[] bytes = null;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/JndiUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/JndiUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/JndiUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/JndiUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -27,7 +27,11 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public abstract class JndiUtil {
+public class JndiUtil {
+
+  private JndiUtil() {
+    // hide default constructor to prevent instantiation
+  }
   
   public static Object lookup(String jndiName, Class type) {
     Object object = null;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/StaticUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/StaticUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/StaticUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/StaticUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -26,7 +26,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
-public abstract class StaticUtil {
+public class StaticUtil {
 
   /*
   public class MyClass ... {
@@ -56,6 +56,28 @@
     public abstract void init();
   }
 
+  /*
+  public class MyClass ... {
+    static AType aStaticInMyClass = null;
+    static AnotherType anotherStaticInMyClass = null;
+    
+    static {
+      new StaticUtil.Initializer(MyClass.class) {
+        public void init() {
+          // initialize static members here
+          aStaticInMyClass = ...;
+          anotherStaticInMyClass = ...;
+        }
+      };
+    }
+    ...
+  }
+  */
+
+  private StaticUtil() {
+    // hide default constructor to prevent instantiation
+  }
+
   public static void add(Class clazz, Initializer initializer) {
     initializers.put(clazz, initializer);
   }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/StringUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/StringUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/StringUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/StringUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -10,6 +10,10 @@
   static final byte[] HEX_CHAR_TABLE = { (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', (byte) '8',
       (byte) '9', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' };
 
+  private StringUtil() {
+    // hide default constructor to prevent instantiation
+  }
+
   public static String toHexString(byte[] bytes) {
     try {
       byte[] hex = new byte[2 * bytes.length];
@@ -21,11 +25,11 @@
         hex[index++] = HEX_CHAR_TABLE[v >>> 4];
         hex[index++] = HEX_CHAR_TABLE[v & 0xF];
       }
-      return new String(hex, "US-ASCII");
+      return new String(hex, "ASCII");
     } catch (UnsupportedEncodingException e) {
-      // should not happen, US-ASCII is a standard charset
-      throw new AssertionError(e);
+      e.printStackTrace();
     }
+    return "buzzzz";
   }
   
   public static String toHexStringHibernate(byte[] bytes) {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/XmlUtil.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/XmlUtil.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/util/XmlUtil.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/util/XmlUtil.java	2009-02-06 09:17:37.000000000 +0100
@@ -47,7 +47,11 @@
 import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 
-public abstract class XmlUtil {
+public class XmlUtil {
+
+  private XmlUtil() {
+    // hide default constructor to prevent instantiation
+  }
   
   public static Document parseXmlText(String xml) {
     ByteArrayInputStream bais = new ByteArrayInputStream(xml.getBytes());
Only in jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/web: JbpmConfigurationCloser.java
Only in jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/web: JobExecutorLauncher.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/web/ProcessUploadServlet.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/web/ProcessUploadServlet.java
--- jpdl-3.2.3.GA/jpdl/jar/src/main/java/org/jbpm/web/ProcessUploadServlet.java	2009-02-06 09:13:06.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/main/java/org/jbpm/web/ProcessUploadServlet.java	2009-02-06 09:17:37.000000000 +0100
@@ -42,8 +42,6 @@
 
 public class ProcessUploadServlet extends HttpServlet {
 
-    private static final long serialVersionUID = 1L;
-
     static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
 
     public static final String UPLOAD_TYPE_DEFINITION = "definition";
@@ -94,11 +92,10 @@
                 zipInputStream.close();
                 return "Deployed archive " + processDefinition.getName() + " successfully";
             } catch (IOException e) {
-                log.debug("Failed to read process archive", e);
                 return "IOException";
             }
         } catch (FileUploadException e) {
-            log.debug("Failed to parse HTTP request", e);
+            e.printStackTrace();
             return "FileUploadException";
         }
     }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AbstractJbpmTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AbstractJbpmTestCase.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AbstractJbpmTestCase.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AbstractJbpmTestCase.java	2009-02-06 09:17:34.000000000 +0100
@@ -27,7 +27,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public class AbstractJbpmTestCase extends TestCase {
+public abstract class AbstractJbpmTestCase extends TestCase {
 
   private static Log log = LogFactory.getLog(AbstractJbpmTestCase.class);
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllDbTests.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllDbTests.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllDbTests.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllDbTests.java	2009-02-06 09:17:34.000000000 +0100
@@ -21,6 +21,8 @@
  */
 package org.jbpm;
 
+import java.io.Serializable;
+
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
@@ -34,6 +36,8 @@
 import org.jbpm.graph.exe.GraphExeDbTests;
 import org.jbpm.graph.log.GraphLogDbTests;
 import org.jbpm.graph.node.GraphNodeDbTests;
+import org.jbpm.jcr.JcrDbTests;
+import org.jbpm.job.executor.JobExecutorTests;
 import org.jbpm.jpdl.el.JpdlElDbTests;
 import org.jbpm.jpdl.exe.JpdlExeDbTests;
 import org.jbpm.jpdl.par.JpdlParDbTests;
@@ -46,7 +50,9 @@
 import org.jbpm.taskmgmt.exe.TaskMgmtExeDbTests;
 import org.jbpm.taskmgmt.log.TaskMgmtLogDbTests;
 
-public class AllDbTests extends TestCase {
+public class AllDbTests extends TestCase implements Serializable {
+
+	private static final long serialVersionUID = 1L;
 
 	public static Test suite() throws Exception {
     TestSuite suite = new TestSuite("db tests");
@@ -70,6 +76,7 @@
       suite.addTest(PersistenceDbTests.suite());
       suite.addTest(ScenarioDbTests.suite());
       suite.addTest(SchedulerExeDbTests.suite());
+      suite.addTest(JobExecutorTests.suite());
       suite.addTest(TaskMgmtDefDbTests.suite());
       suite.addTest(TaskMgmtExeDbTests.suite());
       suite.addTest(TaskMgmtLogDbTests.suite());
@@ -78,9 +85,9 @@
 			 * dependencies suite.addTest(JcrDbTests.suite());
 			 */
 
-    } catch (Exception e) {
-      e.printStackTrace();
-      throw e;
+    } catch (Throwable t) {
+      t.printStackTrace();
+      throw new RuntimeException(t);
     }
     
     return suite;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllPojoTests.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllPojoTests.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllPojoTests.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllPojoTests.java	2009-02-06 09:17:34.000000000 +0100
@@ -41,6 +41,7 @@
 import org.jbpm.jpdl.patterns.PatternsTests;
 import org.jbpm.jpdl.xml.JpdlXmlTests;
 import org.jbpm.logging.exe.LoggingExeTests;
+import org.jbpm.mail.MailTests;
 import org.jbpm.persistence.db.PersistenceDbPojoTests;
 import org.jbpm.scheduler.exe.SchedulerExeTests;
 import org.jbpm.svc.SvcTests;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllTests.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllTests.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/AllTests.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/AllTests.java	2009-02-06 09:17:34.000000000 +0100
@@ -25,7 +25,8 @@
 
 public class AllTests extends TestCase {
 
-  public static Test suite() throws Exception {
+  public static Test suite() {
+    try {
     TestSuite suite = new TestSuite("org.jbpm");
     //$JUnit-BEGIN$
     suite.addTest(AllPojoTests.suite());
@@ -33,5 +34,9 @@
     suite.addTestSuite(SerializabilityTest.class);
     //$JUnit-END$
     return suite;
+    } catch (Throwable t) {
+      t.printStackTrace();
+      throw new RuntimeException(t);
+    }
   }
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayDbTest.java	2009-02-06 09:17:32.000000000 +0100
@@ -75,7 +75,7 @@
     assertNull(retrievedByteArray.getBytes());
   }
 
-  private byte[] getMultipleBlockBytes() {
+  private static byte[] getMultipleBlockBytes() {
     String text = "muchos bytes"; // (10 bytes)
     for (int i=0; i<8; i++) text+=text;
     // now text should be 2560 bytes
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/bytes/ByteArrayTest.java	2009-02-06 09:17:32.000000000 +0100
@@ -21,30 +21,36 @@
  */
 package org.jbpm.bytes;
 
-import junit.framework.TestCase;
+import java.util.List;
 
-public class ByteArrayTest extends TestCase {
+import org.jbpm.AbstractJbpmTestCase;
+import org.jbpm.JbpmConfiguration;
 
-  public void testByteChopping2Blocks() {
-    ByteArray byteArray = new ByteArray(new byte[2048]);
-    assertEquals(2, byteArray.byteBlocks.size());
-  }
+public class ByteArrayTest extends AbstractJbpmTestCase {
 
-  public void testByteChopping3Blocks() {
-    ByteArray byteArray = new ByteArray(new byte[2049]);
-    assertEquals(3, byteArray.byteBlocks.size());
+  public void testByteChoppingBlockCount() {
+    int blockSize = JbpmConfiguration.Configs.getInt("jbpm.byte.block.size");
+    for (int arrayLength = 125; arrayLength <= 1000; arrayLength *= 2) {
+      ByteArray byteArray = new ByteArray(new byte[arrayLength]);
+      int blockCount = arrayLength / blockSize;
+      if (arrayLength % blockSize > 0) blockCount++;
+      List byteBlocks = byteArray.byteBlocks;
+      assertEquals(blockCount, byteBlocks.size());
+    }
   }
 
   public void testReassembling() {
-    ByteArray byteArray = new ByteArray(new byte[2049]);
-    assertEquals(2049, byteArray.getBytes().length);
+    for (int arrayLength = 125; arrayLength <= 1000; arrayLength *= 2) {
+      ByteArray byteArray = new ByteArray(new byte[arrayLength]);      
+      assertEquals(arrayLength, byteArray.getBytes().length);
+    }
   }
   
   public void testEquals() {
     ByteArray left =  new ByteArray("the same bytes".getBytes());
     ByteArray right = new ByteArray("the same bytes".getBytes());
-    assertTrue(left.equals(right));
-    assertTrue(right.equals(left));
+    assertEquals(left, right);
+    assertEquals(right, left);
   }
 
   public void testNotEquals() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/calendar/BusinessCalendarTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/calendar/BusinessCalendarTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/calendar/BusinessCalendarTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/calendar/BusinessCalendarTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -458,7 +458,7 @@
     Date justAfterLunchOnAprilEight2005 = calendar.getTime();
 
     Day day = businessCalendar.findDay(justAfterLunchOnAprilEight2005);
-    assertSame(businessCalendar.getWeekDays()[Calendar.FRIDAY], day);
+    assertSame(businessCalendar.weekDays[Calendar.FRIDAY], day);
   }
 
   public void testFindNextDayPart() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/ContextExeDbTests.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/ContextExeDbTests.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/ContextExeDbTests.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/ContextExeDbTests.java	2009-02-06 09:17:31.000000000 +0100
@@ -31,7 +31,6 @@
     suite.addTestSuite(ContextInstanceDbTest.class);
     suite.addTestSuite(CustomVariableLongIdDbTest.class);
     suite.addTestSuite(CustomVariableStringIdDbTest.class);
-    suite.addTestSuite(CustomSerializableVariableDbTest.class);
     suite.addTestSuite(TokenVariableMapDbTest.class);
     suite.addTestSuite(VariableInstanceDbTest.class);
     //$JUnit-END$
Only in jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe: CustomSerializableVariableDbTest.java
Only in jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe: CustomSerializable.zip
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -33,6 +33,8 @@
 
 public class CustomVariableLongIdDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   static JbpmConfiguration customLongJbpmConfiguration = createJbpmConfiguration();
 
   private static JbpmConfiguration createJbpmConfiguration() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -33,6 +33,8 @@
 
 public class CustomVariableStringIdDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   static JbpmConfiguration customStringJbpmConfiguration = createJbpmConfiguration();
   
   private static JbpmConfiguration createJbpmConfiguration() {
Only in jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/context: package.html
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/db/AbstractDbTestCase.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/db/AbstractDbTestCase.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/db/AbstractDbTestCase.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/db/AbstractDbTestCase.java	2009-02-06 09:17:30.000000000 +0100
@@ -38,7 +38,7 @@
 import org.jbpm.logging.log.ProcessLog;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 
-public class AbstractDbTestCase extends AbstractJbpmTestCase {
+public abstract class AbstractDbTestCase extends AbstractJbpmTestCase {
 
 	protected static JbpmConfiguration jbpmConfiguration = getDbTestJbpmConfiguration();
 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -7,6 +7,8 @@
 
 public class DeleteProcessInstanceDbTest extends AbstractDbTestCase {
   
+  private static final long serialVersionUID = 1L;
+
   public void testDeleteProcessInstance() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition name='make fondue'>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/action/ScriptTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/action/ScriptTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/action/ScriptTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/action/ScriptTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -28,6 +28,7 @@
 
 import junit.framework.TestCase;
 
+import org.jbpm.JbpmException;
 import org.jbpm.context.def.ContextDefinition;
 import org.jbpm.context.def.VariableAccess;
 import org.jbpm.context.exe.ContextInstance;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -9,6 +9,8 @@
 
 public class SuperStateDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   public void testGetNodesWithSuperState() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition name='processwithsuperstates'>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -1,10 +1,14 @@
 package org.jbpm.graph.exe;
 
+import org.jbpm.JbpmException;
 import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 
+
 public class BusinessKeyDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   public void testSimpleBusinessKey() {
     ProcessDefinition processDefinition = new ProcessDefinition("businesskeytest");
     jbpmContext.deployProcessDefinition(processDefinition);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/EventPropagationTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/EventPropagationTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/EventPropagationTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/EventPropagationTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -312,6 +312,7 @@
     Node c = processDefinition.findNode("phase two/c");
     Node d = processDefinition.findNode("phase two/d");
     Node end = processDefinition.getNode("end");
+    Node cancelled = processDefinition.getNode("cancelled");
 
     // starting a new process instance
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -34,6 +34,8 @@
 
 public class SuperStateActionExecutionDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   static List executedActions = null;
   
   public static class ExecutedAction {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -31,6 +31,8 @@
 
 public class SuspendAndResumeDbTest extends AbstractDbTestCase {
   
+  private static final long serialVersionUID = 1L;
+
   public void testSuspend() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition name='suspendable process'>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -5,6 +5,8 @@
 
 public class TaskNotificationDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   public void testProcessDeleteWithTaskNotification() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition name='tasknotification'>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -5,6 +5,8 @@
 
 import junit.framework.TestCase;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.def.Action;
 import org.jbpm.graph.def.ActionHandler;
@@ -19,6 +21,8 @@
 
 public class UserCodeInterceptorTest extends TestCase {
   
+  private static Log log = LogFactory.getLog(UserCodeInterceptorTest.class);
+
   static List logs = null;
 
   public static class TestInterceptor implements UserCodeInterceptor {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/ConcurrencyTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/ConcurrencyTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/ConcurrencyTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/ConcurrencyTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -1,12 +1,12 @@
 package org.jbpm.job.executor;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Properties;
 
 import junit.framework.TestCase;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.tool.hbm2ddl.SchemaExport;
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.def.ActionHandler;
@@ -19,133 +19,150 @@
  */
 public class ConcurrencyTest extends TestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   private static Log log = LogFactory.getLog(ConcurrencyTest.class);
 
-  protected static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("org/jbpm/jbpm.test.cfg.xml");
+  protected static JbpmConfiguration jbpmConfiguration = 
+    JbpmConfiguration.getInstance("org/jbpm/jbpm.test.cfg.xml");
+  
+  static {
+    jbpmConfiguration.getJobExecutor().nbrOfThreads = 5;
+    jbpmConfiguration.getJobExecutor().start();
+  }
 
-  protected void setUp() throws Exception {
-    jbpmConfiguration.createSchema();
+  protected JbpmContext jbpmContext = null;
+  protected SchemaExport schemaExport = null;
 
-    JobExecutor jobExecutor = jbpmConfiguration.getJobExecutor();
-    jobExecutor.setNbrOfThreads(5);
-    jobExecutor.start();
+  public void setUp() throws Exception {
+    super.setUp();
+    createSchema();
+    createJbpmContext();
 
     log.debug("");
     log.debug("### starting " + getName() + " ####################################################");
   }
 
-  protected void tearDown() throws Exception {
+  public void tearDown() throws Exception {
     log.debug("### " + getName() + " done ####################################################");
     log.debug("");
 
-    jbpmConfiguration.getJobExecutor().stop();
-
-    jbpmConfiguration.dropSchema();
+    closeJbpmContext();
+    dropSchema();
+    super.tearDown();
   }
 
-  static String SUBPROCESS_XML = "<?xml version='1.0' encoding='UTF-8'?>"
-      + "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='simplesubtest'>"
-      + "<start-state name='start-state1'>"
-      + "   <description>start of the process</description>"
-      + "   <transition name='start-to-check' to='fileCheck' />"
-      + "</start-state>"
-      + ""
-      + "<node name='fileCheck' async='exclusive'>"
-      + "   <action name='action_filecheck' class='"
-      + TestAction.class.getName()
-      + "'>"
-      + "   </action>"
-      + "   <transition name='check-to-do' to='doWhatever'></transition>"
-      + "</node>"
-      + ""
-      + "<node name='doWhatever' async='exclusive'>"
-      + "   <action name='action_do' class='"
-      + TestAction.class.getName()
-      + "'>"
-      + "   </action>"
-      + "   <transition name='check-to-end' to='end-state-success'></transition>"
-      + "</node>"
-      + ""
-      + "<end-state name='end-state-success'>"
-      + "   <description>process finished normally</description>"
-      + "</end-state>"
-      + "</process-definition>";
-
-  static String PROCESS_XML = "<?xml version='1.0' encoding='UTF-8'?>"
-      + "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='simpletest'>"
-      + "<start-state name='start-state1'>"
-      + "   <description>start of the process</description>"
-      + "   <transition name='start-to-check' to='fileCheck' />"
-      + "</start-state>"
-      + ""
-      + "<node name='fileCheck' async='true'>"
-      + "   <action name='action_check' class='"
-      + TestAction.class.getName()
-      + "'>"
-      + "   </action>"
-      + "   <transition name='check-to-fork' to='fork1'></transition>"
-      + "</node>"
-      + ""
-      + "<fork name='fork1'>"
-      + "   <transition name='toNode1' to='node1'></transition>"
-      + "   <transition name='toNode2' to='node2'></transition>"
-      + "</fork>"
-      + ""
-      + "<process-state name='node1' async='exclusive'>"
-      + "   <sub-process name='simplesubtest' />"
-      + "   <transition name='node1toJoin1' to='join1'></transition>"
-      + "</process-state>"
-      + ""
-      + "<process-state name='node2' async='exclusive'>"
-      + "   <sub-process name='simplesubtest' />"
-      + "   <transition name='node2toJoin1' to='join1'></transition>"
-      + "</process-state>"
-      + ""
-      + "<join name='join1'>"
-      + "   <transition name='joinToEnd' to='end-state-success'></transition>"
-      + "</join>"
-      + ""
-      + "<end-state name='end-state-success'>"
-      + "   <description>process finished normally</description>"
-      + "</end-state>"
-      + "</process-definition>";
+  
+  protected void runTest() throws Throwable {
+    try {
+      super.runTest();
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+
+  static Log logger = LogFactory.getLog(ConcurrencyTest.class);
+  static String SUBPROCESS_XML = 
+    "<?xml version='1.0' encoding='UTF-8'?>" +
+    "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='simplesubtest'>" +
+    "<start-state name='start-state1'>" + 
+    "   <description>start of the process</description>" +
+    "   <transition name='start-to-check' to='fileCheck' />" +
+    "</start-state>" +
+
+    "<node name='fileCheck' async='exclusive'>" +
+    "   <action name='action_filecheck' class='"+TestAction.class.getName()+"'>" +
+    "   </action>" +
+    "   <transition name='check-to-do' to='doWhatever'></transition>" +
+    "</node>" +
+    
+    "<node name='doWhatever' async='exclusive'>" +
+    "   <action name='action_do' class='"+TestAction.class.getName()+"'>" +
+    "   </action>" +
+    "   <transition name='check-to-end' to='end-state-success'></transition>" +
+    "</node>" +
+    
+    "<end-state name='end-state-success'>" +
+    "   <description>process finished normally</description>" +
+    "</end-state>" +
+    "</process-definition>";
+  
+  static String PROCESS_XML = 
+    "<?xml version='1.0' encoding='UTF-8'?>" +
+    "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='simpletest'>" +
+    "<start-state name='start-state1'>" + 
+    "   <description>start of the process</description>" +
+    "   <transition name='start-to-check' to='fileCheck' />" +
+    "</start-state>" +
+
+    "<node name='fileCheck' async='true'>" +
+    "   <action name='action_check' class='"+TestAction.class.getName()+"'>" +
+    "   </action>" +
+    "   <transition name='check-to-fork' to='fork1'></transition>" +
+    "</node>" +
+
+    "<fork name='fork1'>" +
+    "   <transition name='toNode1' to='node1'></transition>" +
+    "   <transition name='toNode2' to='node2'></transition>" +
+    "</fork>" +
+
+    "<process-state name='node1' async='exclusive'>" +
+    "   <sub-process name='simplesubtest' />" +
+    "   <transition name='node1toJoin1' to='join1'></transition>" +
+    "</process-state>" +
+
+    "<process-state name='node2' async='exclusive'>" +
+    "   <sub-process name='simplesubtest' />" +
+    "   <transition name='node2toJoin1' to='join1'></transition>" +
+    "</process-state>" +
+
+    "<join name='join1'>" +
+    "   <transition name='joinToEnd' to='end-state-success'></transition>" +
+    "</join>" +
+
+    "<end-state name='end-state-success'>" +
+    "   <description>process finished normally</description>" +
+    "</end-state>" +
+    "</process-definition>";
 
   public void testSimple() throws Exception {
     assertTrue(jbpmConfiguration.getJobExecutor().getNbrOfThreads() > 1);
 
-    log.info("### TEST: deploy + start processes ###");
+    logger.info("### TEST: deploy + start processes ###");
+    
+    // create test properties
+    final Properties testProperties =new Properties();
+    testProperties.put("test", "true");
 
     JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     try {
-      jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(SUBPROCESS_XML));
-      jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(PROCESS_XML));
+      jbpmContext.deployProcessDefinition(ProcessDefinition
+              .parseXmlString(SUBPROCESS_XML));
+      jbpmContext.deployProcessDefinition(ProcessDefinition
+              .parseXmlString(PROCESS_XML));
 
-    }
-    finally {
+    } finally {
       jbpmContext.close();
     }
 
-    // create test properties
-    Map testVariables = new HashMap();
-    testVariables.put("test", "true");
-
     for (int i = 0; i < 10; i++) {
-      log.info("#################### TEST: starting process " + i + " ####################");
+      logger.info("#################### TEST: starting process " + i + " ####################");
 
       ProcessInstance pi = null;
 
       jbpmContext = jbpmConfiguration.createJbpmContext();
       try {
         pi = jbpmContext.newProcessInstance("simpletest");
-        pi.getContextInstance().addVariables(testVariables);
+        pi.getContextInstance().addVariables(testProperties);
         jbpmContext.save(pi);
         pi.signal();
 
-      }
-      finally {
+      } finally {
         jbpmContext.close();
       }
-      log.info("### TEST: wait for process completion ###");
+      logger.info("### TEST: wait for process completion ###");
 
       waitFor(pi.getId());
 
@@ -153,18 +170,18 @@
       try {
         ProcessInstance pi2 = jbpmContext.getProcessInstance(pi.getId());
         assertEquals("end-state-success", pi2.getRootToken().getNode().getName());
-      }
-      finally {
+   
+      } finally {
         jbpmContext.close();
       }
 
-      log.info("#################### TEST: finished ####################");
+      logger.info("#################### TEST: finished ####################");
     }
   }
 
   protected void waitFor(final long piId) throws Exception {
     long startTime = System.currentTimeMillis();
-    int SECONDS = 30;
+    int SECONDS = 20;
 
     while (true) {
       if (System.currentTimeMillis() - startTime > SECONDS * 1000) {
@@ -172,67 +189,69 @@
         return;
       }
 
-      log.info("waiting for workflow completion...."); // + pi.getRootToken().getNode().getName()
-      // );
+      logger.info("waiting for workflow completion...."); // + pi.getRootToken().getNode().getName() );
       try {
-        Thread.sleep(5000);
-      }
-      catch (InterruptedException e) {
-        log.error("wait for workflow was interruputed", e);
+          Thread.sleep(1000);
+      } catch (InterruptedException e) {
+          logger.error("", e);
         fail();
       }
 
-      JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+      jbpmContext = jbpmConfiguration.createJbpmContext();
       try {
-        if (jbpmContext.getProcessInstance(piId).hasEnded())
+        if (jbpmContext.getProcessInstance(piId).hasEnded()) {
           break;
       }
-      finally {
+   
+      } finally {
         jbpmContext.close();
       }
     }
   }
 
-  public static class TestAction implements ActionHandler {
 
+  public static class TestAction implements ActionHandler {
     private static final long serialVersionUID = 1L;
-
     public void execute(ExecutionContext executionContext) throws Exception {
-      String processName = executionContext.getProcessDefinition().getName()
-          + ":"
-          + executionContext.getProcessInstance().getId();
+      String threadName = Thread.currentThread().getName();
+      String processName = executionContext.getProcessDefinition().getName() + ":" + executionContext.getProcessInstance().getId();
       String nodeName = executionContext.getToken().getNode().getName();
       String tokenName = executionContext.getToken().toString();
-
-      log.info("ACTION (process="
-          + processName
-          + ",node="
-          + nodeName
-          + ",token="
-          + tokenName
-          + "): begin");
-
+      System.out.println("ACTION (thread="+threadName+",process="+processName+",node="+nodeName+",token="+tokenName+"): begin SimpleActionHandler");
       for (int i = 0; i < 5; i++) {
         Thread.sleep(500);
-        log.info("ACTION (process="
-            + processName
-            + ",node="
-            + nodeName
-            + ",token="
-            + tokenName
-            + "): working...");
+          System.out.println("ACTION (thread="+threadName+",process="+processName+",node="+nodeName+",token="+tokenName+"): working...");
         Thread.sleep(500);
       }
+      System.out.println("ACTION (thread="+threadName+",process="+processName+",node="+nodeName+",token="+tokenName+"): end SimpleActionHandler");
+      executionContext.leaveNode();
+    }
+  }
 
-      log.info("ACTION (process="
-          + processName
-          + ",node="
-          + nodeName
-          + ",token="
-          + tokenName
-          + "): end");
 
-      executionContext.leaveNode();
+  protected void createSchema() {
+    getJbpmConfiguration().createSchema();
     }
+
+  protected JbpmConfiguration getJbpmConfiguration() {
+    return jbpmConfiguration;
+  }
+  
+  protected void dropSchema() {
+    getJbpmConfiguration().dropSchema();
   }
+
+  protected void createJbpmContext() {
+    jbpmContext = getJbpmConfiguration().createJbpmContext();
+  }
+
+  protected void closeJbpmContext() {
+    jbpmContext.close();
+  }
+  
+  protected void startJobExecutor() {
+    JobExecutor jobExecutor = jbpmConfiguration.getJobExecutor();
+    jobExecutor.start();
+  }
+  
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -21,6 +21,8 @@
 
 public class JobExecutorDbTest extends TestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   static int nbrOfConcurrentProcessExecutions = 20;
   static int maxWaitTime = 20000;
   static Set collectedResults = Collections.synchronizedSet(new TreeSet());
Only in jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor: JobExecutorTests.java
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadJoinTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadJoinTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadJoinTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadJoinTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -3,6 +3,8 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
 
 import junit.framework.TestCase;
 
@@ -17,6 +19,8 @@
 
 public class JobLoadJoinTest extends TestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   private static Log log = LogFactory.getLog(JobLoadJoinTest.class);
 
   private static JbpmConfiguration jbpmConfiguration = 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadSubProcessTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadSubProcessTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadSubProcessTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/JobLoadSubProcessTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -12,12 +12,16 @@
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.job.executor.JobLoadJoinTest.ProcessFinished;
+import org.jbpm.job.executor.JobLoadJoinTest.StartNewExecutionThread;
 
 import junit.framework.TestCase;
 
 public class JobLoadSubProcessTest extends TestCase {
 
   // TODO see JobLoadJoinTest, but instead of the joins, use a process with a sub process
+  private static final long serialVersionUID = 1L;
+	  
   private static Log log = LogFactory.getLog(JobLoadJoinTest.class);
 
   static Set finishedProcesses = Collections.synchronizedSet(new HashSet());
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/MultiJobExecutorTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/MultiJobExecutorTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/job/executor/MultiJobExecutorTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/job/executor/MultiJobExecutorTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -18,7 +18,6 @@
 /**
  * Test case for JBPM-1072.
  * @author Jiri Pechanec
- * @author Alejandro Guizar
  */
 public class MultiJobExecutorTest extends TestCase {
 
@@ -31,7 +30,7 @@
   private static CommandService commandService = new CommandServiceImpl(jbpmConfiguration);
 
   public static final String PROCESS_DEFINITION = "<?xml version='1.0' encoding='UTF-8'?>"
-      + "<process-definition xmlns='' name='TestProcess'>"
+      + "<process-definition name='TestProcess'>"
       + "<event type='process-end'>"
       + "<action name='endAction' class='"
       + EndAction.class.getName()
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java	2009-02-06 09:17:33.000000000 +0100
@@ -12,6 +12,8 @@
 
 public class AvailableTransitionsDbTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   public void testSimpleAvailableTransitions() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition name='conditionalavailability' initial='start'>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -26,6 +26,7 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.util.Arrays;
 import java.util.List;
 import java.util.zip.ZipEntry;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/mail/MailTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/mail/MailTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/mail/MailTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/mail/MailTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -79,28 +79,6 @@
     assertEquals("manager@example.domain", email.getHeaderValue("To"));
   }
   
-  public void testMailWithBccAddress() {
-    String to = "sample.shipper@example.domain";
-    String bcc = "bcc@example.domain";
-    String subject = "latest news";
-    String text = "roy is assurancetourix";
-    
-    Mail mail = new Mail(null, null, to, null, bcc, subject, text);
-    mail.send();
-    
-    assertTrue(server.getReceivedEmailSize() == 2);
-    Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email1 = (SmtpMessage) emailIter.next();
-    assertEquals("latest news", email1.getHeaderValue("Subject"));
-    assertEquals("roy is assurancetourix", email1.getBody());
-    assertEquals("sample.shipper@example.domain", email1.getHeaderValue("To"));
-
-    SmtpMessage email2 = (SmtpMessage) emailIter.next();
-    assertEquals("latest news", email2.getHeaderValue("Subject"));
-    assertEquals("roy is assurancetourix", email2.getBody());
-    assertEquals("bcc@example.domain", email2.getHeaderValue("To"));
-}  
-  
   public void testMailNodeAttributes() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java	2009-02-06 09:17:31.000000000 +0100
@@ -35,6 +35,8 @@
 
 public class AsyncExecutionDbTest extends AbstractDbTestCase {
   
+  private static final long serialVersionUID = 1L;
+
   static List recordedNodes = new ArrayList();
   
   public static class RecordNode implements ActionHandler {
@@ -78,7 +80,7 @@
     assertEquals(processDefinition.getNode("one"), processInstance.getRootToken().getNode());
     assertEquals(1, getNbrOfJobsAvailable());
     
-    processJobs(5000);
+    processJobs(30000);
     
     assertEquals(0, getNbrOfJobsAvailable());
     
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/optimisticlocking/LockingTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/optimisticlocking/LockingTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/optimisticlocking/LockingTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/optimisticlocking/LockingTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -18,6 +18,8 @@
 
 public class LockingTest extends TestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   static JbpmConfiguration jbpmConfiguration = AbstractDbTestCase.getDbTestJbpmConfiguration();
   
   static int nbrOfThreads = 5;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/perf/MemLeakTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/perf/MemLeakTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/perf/MemLeakTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/perf/MemLeakTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -22,6 +22,8 @@
 
 public class MemLeakTest extends TestCase {
 
+  private static final long serialVersionUID = 1L;
+
   JbpmConfiguration jbpmConfiguration = createJbpmConfiguration();
   
   public void testLoop() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/perf/PerfWithoutDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/perf/PerfWithoutDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/perf/PerfWithoutDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/perf/PerfWithoutDbTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -1,5 +1,7 @@
 package org.jbpm.perf;
 
+import java.io.FileWriter;
+import java.io.PrintWriter;
 import java.util.Collection;
 
 import junit.framework.TestCase;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -13,6 +13,8 @@
 
 public class AsyncTimerAndSubProcessDbTest extends AbstractDbTestCase {
   
+  private static final long serialVersionUID = 1L;
+
   public static class ToTimedDecisionHandler implements DecisionHandler {
     private static final long serialVersionUID = 1L;
     public String decide(ExecutionContext executionContext) throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -23,6 +23,7 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import org.jbpm.AbstractJbpmTestCase;
@@ -41,6 +42,8 @@
 
 public class SchedulerTest extends AbstractJbpmTestCase {
 
+  private static final long serialVersionUID = 1L;
+
   public static class TestSchedulerServiceFactory implements ServiceFactory {
     private static final long serialVersionUID = 1L;
     public Service openService() {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -40,6 +40,8 @@
 
 public class TimerDbTest extends AbstractDbTestCase {
 
+	private static final long serialVersionUID = 1L;
+
 	static boolean isNoOpExecuted = false;
 
 	public void setUp() throws Exception {
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -1,11 +1,28 @@
 package org.jbpm.scheduler.exe;
 
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+import org.jbpm.JbpmConfiguration;
+import org.jbpm.JbpmContext;
 import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.job.Timer;
+import org.jbpm.persistence.db.DbPersistenceService;
+import org.jbpm.persistence.db.DbPersistenceServiceFactory;
+import org.jbpm.svc.Service;
+import org.jbpm.svc.Services;
 
 public class UnsafeSessionUsageTest extends AbstractDbTestCase {
 
+  private static final long serialVersionUID = 1L;
+  
   public void testTimerRepeat() {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
@@ -32,4 +49,6 @@
 
     processJobs(5000);
   }
+
+  private static Log log = LogFactory.getLog(UnsafeSessionUsageTest.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/SerializabilityTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/SerializabilityTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/SerializabilityTest.java	2009-02-06 09:12:59.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/SerializabilityTest.java	2009-02-06 09:17:34.000000000 +0100
@@ -100,7 +100,6 @@
     "org.jbpm.security.authorizer.JbpmIdentityAuthorizer",
     "org.jbpm.security.authorizer.RolesAuthorizer",
     "org.jbpm.security.filter.JbpmAuthenticationFilter",
-    "org.jbpm.util.ClassLoaderUtil",
     "org.jbpm.command.service.CommandServiceImpl",
     "org.jbpm.msg.jms.JmsCommandFactory",
     "org.jbpm.msg.jms.JmsMessageConstants",
@@ -112,9 +111,8 @@
     "org.jbpm.sim.",
     "org.jbpm.jsf.",
     "org.jbpm.util.Clock",
-    "org.jbpm.util.CustomLoaderObjectInputStream",
-    "org.jbpm.web.JobExecutorLauncher",
-    "org.jbpm.web.JbpmConfigurationCloser"
+    "org.jbpm.util.ClassUtil",
+    "org.jbpm.util.ContextObjectInputStream"
   }));
 
   public void testForNonSerializableClasses() {
@@ -146,9 +144,10 @@
   private void assertSerializabilityOfClass(String className) {
     Class clazz = ClassLoaderUtil.loadClass(className);
     
-    if ( ! ( (Serializable.class.isAssignableFrom(clazz))
-             || (Modifier.isAbstract(clazz.getModifiers()))
-             || (isExcused(className))
+    if ( ! ( Serializable.class.isAssignableFrom(clazz)
+             || Modifier.isAbstract(clazz.getModifiers())
+             || isExcused(className)
+             || clazz.getConstructors().length == 0
            )
        ) {
       fail(className+" is NOT Serializable");
@@ -167,5 +166,4 @@
     return isExcused;
   }
 
-  // private static final Log log = LogFactory.getLog(SerializabilityTest.class);
 }
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java
--- jpdl-3.2.3.GA/jpdl/jar/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java	2009-02-06 09:12:58.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/jar/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java	2009-02-06 09:17:30.000000000 +0100
@@ -23,6 +23,7 @@
 
 import java.util.Calendar;
 import java.util.Date;
+import java.util.Iterator;
 import java.util.List;
 
 import org.jbpm.db.AbstractDbTestCase;
@@ -30,6 +31,7 @@
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.job.Job;
 import org.jbpm.job.Timer;
 
 public class TaskTimerExecutionDbTest extends AbstractDbTestCase {
Only in jpdl-3.2.3.GA/jpdl: simulation
Only in jpdl-3.2.3.GA/jpdl/userguide/en/images: jbpm_logotype_jpdl.svg
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/master.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/master.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/master.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/master.xml	2009-02-06 09:17:48.000000000 +0100
@@ -9,7 +9,6 @@
 <!ENTITY configuration SYSTEM "modules/configuration.xml">
 <!ENTITY persistence SYSTEM "modules/persistence.xml">
 <!ENTITY database SYSTEM "modules/database.xml">
-<!ENTITY enterprise SYSTEM "modules/enterprise.xml">
 <!ENTITY modelling SYSTEM "modules/modelling.xml">
 <!ENTITY context SYSTEM "modules/context.xml">
 <!ENTITY taskmgmt SYSTEM "modules/taskmgmt.xml">
@@ -18,28 +17,20 @@
 <!ENTITY async SYSTEM "modules/async.xml">
 <!ENTITY calendar SYSTEM "modules/calendar.xml">
 <!ENTITY mail SYSTEM "modules/mail.xml">
-<!ENTITY ws SYSTEM "modules/ws.xml">
 <!ENTITY logging SYSTEM "modules/logging.xml">
-<!ENTITY simulation SYSTEM "modules/simulation.xml">
 <!ENTITY jpdl SYSTEM "modules/jpdl.xml">
 <!ENTITY security SYSTEM "modules/security.xml">
 <!ENTITY tdd SYSTEM "modules/tdd.xml">
 <!ENTITY pluggable SYSTEM "modules/pluggable.xml">
-<!ENTITY version "3.2.3">
 ]>
 <book lang="en">
   <bookinfo>
-    <title>JBoss jBPM - Workflow in Java</title>
+    <title>JBoss jBPM jPDL 3.2</title>
+
     <subtitle>jBPM jPDL User Guide</subtitle>
-    <releaseinfo>&version;</releaseinfo>
-    <mediaobject>
-      <imageobject>
-        <imagedata fileref="images/jbpm_logotype_jpdl.svg" align="center" />
-      </imageobject>
-    </mediaobject>
   </bookinfo>
 
-  <toc />
+  <toc></toc>
 
   &introduction;
   &gettingstarted;
@@ -49,7 +40,6 @@
   &configuration;
   &persistence;
   &database;
-  &enterprise;
   &modelling;
   &context;
   &taskmgmt;
@@ -58,9 +48,7 @@
   &async;
   &calendar;
   &mail;
-  &ws;
   &logging;
-  &simulation;
   &jpdl;
   &security;
   &tdd;
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/modules/async.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/async.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/modules/async.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/async.xml	2009-02-06 09:17:48.000000000 +0100
@@ -99,42 +99,41 @@
     </para>
     
   </section>
-  <section id="thejobexecutor">
-    <title>The job executor</title>
+  <section id="thecommandexecutor">
+    <title>The command executor</title>
     
-    <para>The job executor is the component that resumes process executions asynchronously.
-      It waits for job messages to arrive over an asynchronous messaging system and executes 
-      them.  The two job messages used for asynchronous continuations are 
-      <literal>ExecuteNodeJob</literal> and <literal>ExecuteActionJob</literal>.
+    <para>The command executor is the component that resumes process executions asynchronously.
+      It waits for command messages to arrive over an asynchronous messaging system and executes 
+      them.  The two commands used for asynchronous continuations are 
+      <literal>ExecuteNodeCommand</literal> and <literal>ExecuteActionCommand</literal>.
     </para>
 
-    <para>These job messages are produced by the process execution.  During process execution, 
-      for each node or action that has to be executed asynchronously, a <literal>Job</literal>
-      (POJO) will be dispatched to the <literal>MessageService</literal>.  The message service 
-      is associated with the <literal>JbpmContext</literal> and it just collects all the 
+    <para>These commands are produced by the process execution.  During process execution, 
+      for each node that has to be executed asynchronously, an <literal>ExecuteNodeCommand</literal>
+      (POJO) will be created in the <literal>MessageInstance</literal>.  The message instance 
+      is a non-persistent extension of the ProcessInstance and it just collects all the 
       messages that have to be sent.
     </para>
     
-    <para>The messages will be sent as part of <literal>JbpmContext.close()</literal>.
-      That method cascades the <literal>close()</literal> invocation 
-      to all of the associated services.  The actual services can be configured in 
-      <literal>jbpm.cfg.xml</literal>.  One of the services, <literal>DbMessageService</literal>, is 
-      configured by default and will notify the job executor that new job messages are available.
+    <para>The messages will be sent as part of the <literal>GraphSession.saveProcessInstance</literal>.
+      The implementation of that method includes a context builder that acts as an aspect on 
+      the saveProcessInstance method.  The actual interceptors can be configured in the 
+      <literal>jbpm.cfg.xml</literal>.  One of the interceptors, <literal>SendMessagesInterceptor</literal>, is 
+      configured by default and will read the messages from the <literal>MessageInstance</literal> 
+      and send them over the configurable asynchronous messaging system.
     </para>
 
-    <para>The graph execution mechanism uses the interfaces 
+    <para>The <literal>SendMessagesInterceptor</literal> uses the interfaces 
       <literal>MessageServiceFactory</literal> and <literal>MessageService</literal> to 
-      send messages.  This is to make the asynchronous messaging service 
-      configurable (also in <literal>jbpm.cfg.xml</literal>). In Java EE environments, the 
-      <literal>DbMessageService</literal> can be replaced with the <literal>JmsMessageService</literal>
-      to leverage the application server's capabilities.
+      send messages.  This is to make the asynchronous messaging implementation 
+      configurable (also in <literal>jbpm.cfg.xml</literal>).
     </para>
     
     <para>Here's how the job executor works in a nutshell:
     </para>
     
-    <para>Jobs are records in the database.  Jobs are objects and can be executed, too.  Both timers 
-    and async messages are jobs.  For async messages, the dueDate is simply set to the current time when they 
+    <para>Jobs are records in the database.  Jobs are commands and can be executed.  Both timers 
+    and async messages are jobs.  For async messages, the dueDate is simply set to now when they 
     are inserted.  The job executor must execute the jobs.  This is done in 2 phases: 1) a job 
     executor thread must acquire a job and 2) the thread that acquired the job must execute it.  
     </para>
@@ -148,8 +147,8 @@
     transaction.
     </para>
 
-    <para>A thread could die between acquisition and execution of a job.  To clean-up after 
-    those situations, there is one lock-monitor thread per job executor that checks the lock times.  
+    <para>A thread could die inbetween acquisition and execution of a job.  For clean-up of 
+    those situations, there is 1 lock-monitor thread per job executor that checks the lock times.  
     Jobs that are locked for more then 30 mins (by default) will be unlocked so that they can be 
     executed by another job.
     </para>
@@ -164,7 +163,7 @@
 where 
     job.version = 1</programlisting>
 
-    <para>will only result in 1 row updated in exactly 1 of the competing transactions.
+    <para>will only return result 1 row updated in exactly 1 of the competing transactions.
     </para>
   
     <para>Non-Repeatable Reads means that the following anomaly can happen: A transaction re-reads 
@@ -172,19 +171,19 @@
     that has been committed since the transaction's previous read.
     </para>
     
-    <para>Non-Repeatable reads are a problem for optimistic locking and therefore isolation level 
+    <para>Non-Repeatable reads are a problem for optimistic locking and therefor, isolation level 
     READ_COMMITTED is not enough cause it allows for Non-Repeatable reads to occur.  So 
-    REPEATABLE_READ is required if you configure more than one job executor thread.
+    REPEATABLE_READ is required if you configure more then 1 job executor thread.
     </para>
   </section>
 
   <section id="jbpmsbuiltinasynchronousmessaging">
     <title>jBPM's built-in asynchronous messaging</title>
-    <para>When using jBPM's built-in asynchronous messaging, job messages will be sent by persisting 
-      them to the database.  This message persisting can be done in the same transaction/JDBC 
+    <para>When using jBPM's built-in asynchronous messaging, messages will be send by persisting 
+      them to the database.  This message persisting can be done in the same transaction/jdbc 
       connection as the jBPM process updates.
     </para>
-    <para>The job messages will be stored in the <literal>JBPM_JOB</literal> table.
+    <para>The command messages will be stored in the <literal>JBPM_MESSAGE</literal> table.
     </para>
     <para>The POJO command executor (<literal>org.jbpm.msg.command.CommandExecutor</literal>)
       will read the messages from the database table and execute them.  So the typical 
@@ -227,6 +226,11 @@
     </para>
   </section>
 
+  <section id="jmsforasychronousmessaging">
+    <title>JMS for asynchronous messaging</title>
+    <para>TODO (not yet implemented)</para>
+  </section>
+
   <section id="futuredirections">
     <title>Future directions</title>
     <para>TODO's: add support for multiple queues.  So that it becomes possible to 
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/modules/deployment.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/deployment.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/modules/deployment.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/deployment.xml	2009-02-06 09:17:48.000000000 +0100
@@ -182,73 +182,189 @@
   </section>
   
   <section id="enterprisearchive">
-
     <title>Enterprise archive</title>
-
     <para>In the deploy directory of the downloads, you can find 
     <emphasis role="bold">jbpm-enterprise.ear</emphasis>.  That J2EE 1.4 compliant 
     enterprise archive includes: jPDL libraries, jBPM configuration files, the 
     jBPM web console, and a couple of enterprise beans.  In this package, jBPM 
-    is configured for usage in an application server like JBoss.  The asynchronous 
+      is configured for usage in an application server like e.g. JBoss.  Asynchronous 
     messaging service is here bound to JMS and the scheduler service is bound to the 
-    EJB Timer Service.  So here in this .ear file, no <literal>JobExecutor</literal>
-    is started. The persistence service is configured to participate in the overall 
+      EJB Timer Service.  So here in this .ear file, there is no JobExecutor started.  
+      Also the hibernate session that jBPM uses is configured to participate in the overall 
     JTA transaction.
     </para>
     
-    <para>Within the enterprise archive there are the following files:
+    <para>Within jbpm-enterprise.ear there are the following files:
     </para>
 
     <itemizedlist>
-      <listitem><literal>jbpm-console.war</literal>: the console web application, adapted
-      for J2EE integration
+      <listitem>jbpm-console.war - the jbpm console web application
       </listitem>
-      <listitem><literal>jbpm-enterprise.jar</literal>: the supporting enterprise beans
+      <listitem>jbpm-enterprise.jar - several jBPM EJB compnents
       </listitem>
-      <listitem><literal>lib/jbpm-configs.jar</literal>: configuration files
+      <listitem>lib/jbpm-configs.jar - jBPM configuration files
       </listitem>
-      <listitem><literal>lib/jbpm-identity.jar</literal>: identity component classes
+      <listitem>lib/jbpm-identity.jar - jBPM identity component classes
       </listitem>
-      <listitem><literal>lib/jbpm-jpdl.jar</literal>: standard jPDL classes
+      <listitem>lib/jbpm-jpdl.jar - jBPM jpdl classes
       </listitem>
-      <listitem><literal>meta-inf/application.xml</literal>: J2EE app descriptor
+      <listitem>meta-inf/application.xml
       </listitem>
     </itemizedlist>
 
-    <para><literal>jbpm-enterprise.jar</literal> contains the following EJB components:
+    <para>jbpm-enterprise.jar contains the following EJB components:
     </para>
 
     <itemizedlist>
-      <listitem><literal>CommandServiceBean</literal></listitem>
-      <listitem><literal>CommandListenerBean</literal></listitem>
-      <listitem><literal>JobListenerBean</literal></listitem>
-      <listitem><literal>TimerEntityBean</literal></listitem>
+      <listitem>CommandListenerBean - a Message Driven Bean that listens on the 
+      jbpmCommandQueue for jBPM command messages.
+      </listitem>
+      <listitem>CommandServiceBean - a Stateless Session Bean that executes jBPM Commands.
+      </listitem>
+      <listitem>JobListenerBean - a Message Driven Bean that listeners on the jbpmJobQueue 
+      for jBPM job messages to support asynchronous continuations.
+      </listitem>
+      <listitem>TimerServiceBean - a TimerBean that implements the jBPM timer service.
+      </listitem>
     </itemizedlist>
     
     <para>These beans are J2EE 1.4 / EJB 2.1 compliant, to allow them to be deployed on a 
-    variety of application servers. Note however that jBPM only provides deployment descriptors 
-    for JBoss Application Server. All beans are deployed with the transaction-attribute
-    <emphasis>Required</emphasis>. The source for the EJB classes and interfaces is in 
-    <literal>src/enterprise</literal> and the javadocs in <literal>doc/javadoc-enterprise</literal>.
-    A detailed description can be found in <xref linkend="enterprisebeans" />.
+    variety of application servers. Note however that jBPM only provide deployment descriptors 
+    for JBoss Application Servers. All beans are deployed without specifying transaction-attribure, 
+    therefore by default they have transaction-attribure "Required".
+    </para>
+
+    <para>The CommandListenerBean delegates Command execution to the CommandServiceBean, which 
+    in turn delegates to a CommandServiceImpl class that executes the command class by calling 
+    it's execute method.
+    </para>
+
+    <para>The source for these classes is in: src/enterprise.  The javadocs in 
+    doc/javadoc-enterprise.
     </para>
 
-    <para><literal>jbpm-configs.jar</literal> contains the following files:
+    <para>jbpm-enterprise.jar also contains JmsMessageServiceFactoryImpl, which is responsible for 
+    sending Jobs as JMS messages to support asynchronous continuations.
+    </para>
+
+    <para>jbpm-configs.jar contains the following files:
     </para>
 
     <itemizedlist>
-      <listitem><literal>jbpm.cfg.xml</literal>: the jBPM configuration</listitem>
-      <listitem><literal>hibernate.cfg.xml</literal>: the Hibernate configuration</listitem>
-      <listitem><literal>jbpm.mail.templates.xml</literal>: the e-mail templates</listitem>
-    </itemizedlist>
+      <listitem>jbpm.cfg.xml
+      </listitem>
+      <listitem>jbpm.mail.templates.xml
+      </listitem>
+      <listitem>hibernate.cfg.xml includes the following configuration items that may require modification to support other databases or application servers.
+        <programlisting>&lt;!-- hibernate dialect --&gt;
+    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.HSQLDialect&lt;/property&gt;
+
+    &lt;!-- JDBC connection properties (begin) ===
+    &lt;property name="hibernate.connection.driver_class"&gt;org.hsqldb.jdbcDriver&lt;/property&gt;
+    &lt;property name="hibernate.connection.url"&gt;jdbc:hsqldb:mem:jbpm&lt;/property&gt;
+    &lt;property name="hibernate.connection.username"&gt;sa&lt;/property&gt;
+    &lt;property name="hibernate.connection.password"&gt;&lt;/property&gt;
+    ==== JDBC connection properties (end) --&gt;
+    
+    &lt;property name="hibernate.cache.provider_class"&gt;org.hibernate.cache.HashtableCacheProvider&lt;/property&gt;
+    
+    &lt;!-- JBoss transaction manager lookup (begin) --&gt;
+    &lt;property name="hibernate.transaction.manager_lookup_class"&gt;org.hibernate.transaction.JBossTransactionManagerLookup&lt;/property&gt;
+    &lt;!-- JBoss transaction manager lookup (end) --&gt;
+
+    &lt;!-- DataSource properties (begin) --&gt;
+    &lt;property name="hibernate.connection.datasource"&gt;java:/JbpmDS&lt;/property&gt;
+    &lt;!-- DataSource properties (end) --&gt;
+    
+    &lt;!-- JTA transaction properties (begin) ===
+    &lt;property name="hibernate.transaction.factory_class"&gt;org.hibernate.transaction.JTATransactionFactory&lt;/property&gt;
+    &lt;property name="jta.UserTransaction"&gt;java:comp/UserTransaction&lt;/property&gt;
+    ==== JTA transaction properties (end) --&gt;
 
-    <para>Sections <xref linkend="enterprisejbpmconfig"/> and <xref 
-    linkend="enterprisehibernateconfig"/> examine the enterprise-specific settings in the
-    first two files. The last file is described in <xref linkend="mailtemplates"/>.</para>
+    &lt;!-- CMT transaction properties (begin) --&gt;
+    &lt;property name="hibernate.transaction.factory_class"&gt;org.hibernate.transaction.CMTTransactionFactory&lt;/property&gt;
+    &lt;property name="hibernate.transaction.manager_lookup_class"&gt;org.hibernate.transaction.JBossTransactionManagerLookup&lt;/property&gt;
+    &lt;!-- CMT transaction properties (end) --&gt;
+
+    &lt;!-- logging properties (begin) ===
+    &lt;property name="hibernate.show_sql"&gt;true&lt;/property&gt;
+    &lt;property name="hibernate.format_sql"&gt;true&lt;/property&gt;
+    &lt;property name="hibernate.use_sql_comments"&gt;true&lt;/property&gt;
+    ==== logging properties (end) --&gt;</programlisting>
+
+    <para>You may replace the hibernate.dialect with one that corresponds to your 
+    database management system.
+    </para>
+
+    <para>You may replace the HashtableCacheProvider with other Hibernate supported 
+    cache providers, such as EhCache.
+    </para>
+
+    <para>The transaction.manager.lookup may be replace with values appropirate to other 
+    applications servers, e.g. WebSphereTransactionManagerLookup or 
+    WebLogicTransactionManagerLookup when deploying to those application servers.
+    </para>
+
+    <para>Similarly, if deploying on another application server you must change the name 
+    of the hibernate.connection.datasource to the jndi name of the datasource on that 
+    application server.
+    </para>
+
+    <para>Out-of-the-box jBPM is configured to use CMTTransactionFactory.  
+    CMTTransactionFactory always assumes that the container has started a JTA transaction. 
+    This will be true if you use the jBPM CommandListener or CommandService beans, or your 
+    own EJBs that use container managed transaction. If this is not always the case, then 
+    change this configuration to use the JTATransactionFactory. When JTATransactionFactory 
+    is configured, Hibenate will use the JTA transaction if it already exists, but will 
+    start a JTA transaction if it does not.
+    </para>
+    </listitem>
+
+    <listitem>
+    <para>jbpm.cfg.xml included the following configuration items:
+    </para>
+
+    <programlisting> &lt;jbpm-context&gt;
+    &lt;service name="persistence"&gt;
+      &lt;factory&gt;
+        &lt;bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory"&gt;
+          &lt;field name="isCurrentSessionEnabled"&gt;&lt;true /&gt;&lt;/field&gt;
+          &lt;field name="isTransactionEnabled"&gt;&lt;false /&gt;&lt;/field&gt;
+        &lt;/bean&gt;
+      &lt;/factory&gt;
+    &lt;/service&gt;
+    &lt;service name="message"&gt;
+      &lt;factory&gt;
+        &lt;bean class="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl"&gt;
+          &lt;field name="connectionFactoryJndiName"&gt;&lt;string value="java:/JmsXA"/&gt;&lt;/field&gt;
+          &lt;field name="destinationJndiName"&gt;&lt;string value="queue/JbpmJobQueue"/&gt;&lt;/field&gt;
+        &lt;/bean&gt;
+      &lt;/factory&gt;
+    &lt;/service&gt;
+    &lt;service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory" /&gt;</programlisting>
+
+    <para>isCurrentSessionEnabled true means jBPM will request Hibernate to use the current 
+    session associated with the current transaction. If there is no current transaction, 
+    an exception will be thrown stating no session is active. In this case, you may want 
+    to set this isCurrentSessionEnabled to false, and inject the current session into the 
+    JbpmContext via the JbpmContext.setSession(session) method. This will also insure that 
+    jBPM uses the same Hibernate session as other parts of your application. Note, the 
+    Hibenrate session can be injected into a stateless session bean via a persistence context, 
+    for example.
+    </para>
+
+    <para>isTransactionEnabled true means jBPM will begin Hibernate transaction upon 
+    JbpmConfiguraiton().createJbpmContext and commit Hibernate transactions and close 
+    Hibernate sessions upon jbpmContext.close()..This is NOT the desired behaviour when 
+    jBPM is deployed as an ear, hence the value of isTransactionEnabled is set to false by 
+    default in this configuration.
+    </para>
+    </listitem>
+    </itemizedlist>
 
   </section>
 
-  <section id="theruntimeandsuite">
+  <section id="thesuite">
     <title>The jPDL Runtime and Suite</title>
     
     <section id="theruntime">
Only in jpdl-3.2.3.GA/jpdl/userguide/en/modules: enterprise.xml
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/modules/gop.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/gop.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/modules/gop.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/gop.xml	2009-02-06 09:17:48.000000000 +0100
@@ -400,7 +400,7 @@
 
     <section id="synchronousexecution">
       <title>Synchronous execution</title>
-      <para>The default propagation of execution is synchronous.  In <xref linkend="asynchronouscontinuationsingop" /> 
+      <para>The default propagation of execution is synchronous.  In <xref linkend="asynchronouscontinuations" /> 
       we'll see how this default behaviour can be changed.
       </para>
       <para>An execution starts when an event is send to the execution.  That execution will start to propagate 
@@ -517,7 +517,7 @@
       </para>
     </section>
 
-    <section id="processcompositioningop">
+    <section id="processcomposition">
       <title>Process composition</title>
       <para>Process composition is the ability to include a sub process as part of a super process.
         This advanced feature makes it possible to add abstraction to process modelling.  For the 
@@ -575,7 +575,7 @@
       </para>
     </section>
 
-    <section id="asynchronouscontinuationsingop">
+    <section id="asynchronouscontinuations">
       <title>Asynchronous continuations</title>
       <para>Above, we saw that the default behaviour is to execute processes synchronously
         until there is a wait state.  And typically this overall state-change is packaged in one transaction.
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/modules/introduction.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/introduction.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/modules/introduction.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/introduction.xml	2009-02-06 09:17:48.000000000 +0100
@@ -45,17 +45,17 @@
     <para>The preconfigured JBoss application server has the following components installed :
     </para>
     <itemizedlist>
-      <listitem>The <emphasis role="bold">web console</emphasis>, packaged as a web archive. That console can be 
+      <listitem><emphasis role="bold">The jBPM web console</emphasis>, packaged as a web archive. That console can be 
       used by process participants as well as jBPM administrators.</listitem>
-      <listitem>The <emphasis role="bold">job executor</emphasis> enacts timers and asynchronous messages. There is
-      a servlet context listener in the console web app that launches the job executor, which  
+      <listitem><emphasis role="bold">The Job Executor </emphasis> for the execution of timers and messages.  The job 
+      executor is a part of the console webapp.  There is a servlet that launches the Job Executor.  The Job Executor 
       spawns a thread pool for monitoring and executing timers and asynchronous messages.</listitem>
-      <listitem>The <emphasis role="bold">jBPM database</emphasis>, an in-process hypersonic database that 
-      contains the jBPM tables.</listitem>
-      <listitem>One <emphasis role="bold">example process</emphasis> is already deployed into the jBPM database.</listitem>
-      <listitem>The <emphasis role="bold">Identity component</emphasis> libraries are part of 
+      <listitem><emphasis role="bold">The jBPM tables, in the database</emphasis>: the default hypersonic database that 
+      contains the jBPM tables and already contains a process.</listitem>
+      <listitem><emphasis role="bold">One example process</emphasis> is already deployed into the jBPM database.</listitem>
+      <listitem><emphasis role="bold">Identity component</emphasis>. The identity component libraries are part of 
       the console web application.  The tables of the identity component are available in the database (those are the tables 
-      that start with JBPM_ID_)</listitem>
+      that start with JBPM_ID_...)</listitem>
     </itemizedlist>
   </section>
   
@@ -117,16 +117,15 @@
   
   <section>
     <title>The JBoss jBPM Job Executor</title>
-    <para>The job executor is a component for monitoring and executing jobs in 
+    <para>The JBoss jBPM Job Scheduler is a component for monitoring and executing jobs in 
     a standard Java environment.  Jobs are used for timers and asynchronous messages.  In an 
-    enterprise environment, JMS and the EJB Timer Service can be used for that purpose.  Conversely,
-    the job executor can be used in an environment where neither JMS nor EJB are available.
+    enterprise environment, JMS and the EJB TimerSerive can be used for that purpose.  But the 
+    Job Executor can be used in a standard environment.
     </para>
-    <para>The job executor component is packaged in the core jbpm-jpdl library, but it needs 
-    to be deployed in one of the following ways: either register the <literal>JobExecutorLauncher</literal>
-    servlet context listener in the web app deployment descriptor to start/stop the job
-    executor during creation/destruction of the servlet context, or start up a separate JVM
-    and start the job executor in there programatically.</para>
+    <para>The Job Executor component is packaged in the core jbpm-jpdl library, but it needs 
+    to be deployed in one of the following environments: either 
+    you have to configure the JbpmThreadsServlet to start the Job Executor or you  have to 
+    start up a separate JVM and run the Job Executor thread in there.</para>
   </section>
 
 </chapter>
diff -urbw --exclude .svn jpdl-3.2.3.GA/jpdl/userguide/en/modules/mail.xml jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/mail.xml
--- jpdl-3.2.3.GA/jpdl/userguide/en/modules/mail.xml	2009-02-06 09:13:20.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/jpdl/userguide/en/modules/mail.xml	2009-02-06 09:17:48.000000000 +0100
@@ -118,21 +118,6 @@
       <para>In the <literal>actors</literal> and <literal>to</literal> fields, multiple recipients 
       can be separated with a semi colon (;) or a colon (:).</para>
     </section>
-    <section id="BCC">
-      <title>Sending Mails to a BCC target</title>
-      <para>Sometimes you want to send emails to a BCC target in addition to the normal receipient.
-      Currently, there are two supported ways of doing that: First you can specify an <literal>bccActors</literal> 
-      or <literal>bcc</literal> attribute (according to <literal>actors</literal> and <literal>to</literal>) in the process definition.
-      <programlisting>&lt;mail to='#{initiator}' bcc='bcc@mycompany.com' subject='websale' text='your websale of #{quantity} #{item} was approved' /&gt;</programlisting>
-      
-      
-      The second way is to always send an BCC Mail to some location you can configure in the central configuration (jbpm.cfg.xml) in a property:
-          <programlisting>&lt;jbpm-configuration&gt;
-  ...
-  <emphasis role="bold">&lt;string name="jbpm.mail.bcc.address" value="bcc@mycompany.com" /&gt;</emphasis>
-&lt;/jbpm-configuration&gt;</programlisting>
-      </para>
-    </section>
     <section id="addressresolving">
       <title>Address resolving</title>
       <para>In all of jBPM, actors are referenced by actorId's.  This is a string that servers as the identifier 
Only in jpdl-3.2.3.GA/jpdl/userguide/en/modules: simulation.xml
Only in jpdl-3.2.3.GA/jpdl/userguide/en/modules: ws.xml
Only in jpdl-3.2.3.GA/jpdl: ws
diff -urbw --exclude .svn jpdl-3.2.3.GA/.project jpdl-3.2.2-SOA-4.2.0.CP03/.project
--- jpdl-3.2.3.GA/.project	2009-02-06 09:13:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/.project	2009-02-06 09:18:12.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>jbpm.3_HEAD</name>
+	<name>jbpm.3_BRANCH_SOA_4_2</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff -urbw --exclude .svn jpdl-3.2.3.GA/.settings/org.eclipse.jdt.core.prefs jpdl-3.2.2-SOA-4.2.0.CP03/.settings/org.eclipse.jdt.core.prefs
--- jpdl-3.2.3.GA/.settings/org.eclipse.jdt.core.prefs	2009-02-06 09:13:34.000000000 +0100
+++ jpdl-3.2.2-SOA-4.2.0.CP03/.settings/org.eclipse.jdt.core.prefs	2009-02-06 09:18:12.000000000 +0100
@@ -1,4 +1,4 @@
-#Fri Mar 28 11:03:08 CET 2008
+#Fri Jan 04 14:34:06 CET 2008
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5