[jbpm-commits] JBoss JBPM SVN: r4225 - in jbpm4/trunk/modules: db and 35 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Mar 11 06:11:59 EDT 2009


Author: heiko.braun at jboss.com
Date: 2009-03-11 06:11:59 -0400 (Wed, 11 Mar 2009)
New Revision: 4225

Added:
   jbpm4/trunk/modules/integration/jboss4/
   jbpm4/trunk/modules/integration/jboss4/pom.xml
   jbpm4/trunk/modules/integration/jboss4/scripts/
   jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml
   jbpm4/trunk/modules/integration/jboss4/src/
   jbpm4/trunk/modules/integration/jboss4/src/main/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml
   jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm.deployer.cfg.xml
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/DeploymentAdaptor.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMDeploymentMetaData.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceImpl.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceLocator.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessDeploymentRef.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineObjectFactory.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineReference.java
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/util/MBeanServerLocator.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PolicyEvaluation.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SavePolicy.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/VersionTimestampPolicy.java
Removed:
   jbpm4/trunk/modules/integration/jboss4/pom.xml
   jbpm4/trunk/modules/integration/jboss4/scripts/
   jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml
   jbpm4/trunk/modules/integration/jboss4/src/
   jbpm4/trunk/modules/integration/jboss4/src/main/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java
   jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/
   jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml
   jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeploymentMetaData.java
   jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMServiceImpl.java
Modified:
   jbpm4/trunk/modules/config/src/main/config/jbpm/wire.bindings/part1.jbpm.wire.bindings.xml
   jbpm4/trunk/modules/db/jbpm4-db.iml
   jbpm4/trunk/modules/distro/pom.xml
   jbpm4/trunk/modules/distro/scripts/assembly-deploy-artifacts.xml
   jbpm4/trunk/modules/distro/src/main/resources/installer/install-definition.xml
   jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml
   jbpm4/trunk/modules/enterprise/pom.xml
   jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java
   jbpm4/trunk/modules/enterprise/src/main/resources/jbpm.cfg.xml
   jbpm4/trunk/modules/examples/jbpm4-examples.iml
   jbpm4/trunk/modules/integration/jboss5/integration-jboss5.iml
   jbpm4/trunk/modules/integration/jboss5/pom.xml
   jbpm4/trunk/modules/integration/jboss5/scripts/assembly-config.xml
   jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeployer.java
   jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMMetaDataDeployer.java
   jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-deployers-jboss-beans.xml
   jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-service-jboss-beans.xml
   jbpm4/trunk/modules/integration/pom.xml
   jbpm4/trunk/modules/integration/spi/integration-spi.iml
   jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMService.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/SaveDeployer.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/StandardTransactionInterceptor.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SaveBinding.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Binding.java
   jbpm4/trunk/modules/test-db/jbpm4-test-db.iml
Log:
JBoss AS integration. svn merge -r4176:HEAD https://svn.jboss.org/repos/jbpm/jbpm4/branches/hbraun

Modified: jbpm4/trunk/modules/config/src/main/config/jbpm/wire.bindings/part1.jbpm.wire.bindings.xml
===================================================================
--- jbpm4/trunk/modules/config/src/main/config/jbpm/wire.bindings/part1.jbpm.wire.bindings.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/config/src/main/config/jbpm/wire.bindings/part1.jbpm.wire.bindings.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -72,6 +72,7 @@
   <binding class="org.jbpm.pvm.internal.wire.binding.CheckProcessBinding" />
   <binding class="org.jbpm.pvm.internal.wire.binding.CheckProblemsBinding" />
   <binding class="org.jbpm.pvm.internal.wire.binding.SaveBinding" />
+  <binding class="org.jbpm.pvm.internal.wire.binding.VersionPolicySaveBinding" />
 
   <!-- interceptors -->
   <binding class="org.jbpm.pvm.internal.wire.binding.EnvironmentInterceptorBinding" />

Modified: jbpm4/trunk/modules/db/jbpm4-db.iml
===================================================================
--- jbpm4/trunk/modules/db/jbpm4-db.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/db/jbpm4-db.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -10,6 +10,8 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="toplevel" />
+    <orderEntry type="module" module-name="jpdl" />
+    <orderEntry type="module" module-name="pvm" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: javax.transaction:jta:jar:1.0.1B:compile">
         <CLASSES>
@@ -29,15 +31,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.hibernate:hibernate:jar:3.2.6.ga:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar!/" />
@@ -56,24 +49,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax-api:jar:1.0.1:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: antlr:antlr:jar:2.7.6:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar!/" />
@@ -92,15 +67,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax:jar:1.2.0:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: jboss:jboss-j2ee:jar:4.2.2.GA:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jboss-j2ee/4.2.2.GA/jboss-j2ee-4.2.2.GA.jar!/" />
@@ -148,15 +114,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: commons-collections:commons-collections:jar:2.1.1:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar!/" />
@@ -166,15 +123,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: log4j:log4j:jar:1.2.14:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar!/" />

Modified: jbpm4/trunk/modules/distro/pom.xml
===================================================================
--- jbpm4/trunk/modules/distro/pom.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/distro/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -86,6 +86,9 @@
       <artifactId>jbpm-test-db</artifactId>
       <version>${version}</version>
     </dependency>
+
+    <!-- server integration -->
+
     <dependency>
       <groupId>org.jbpm.jbpm4</groupId>
       <artifactId>jbpm-spi</artifactId>
@@ -102,6 +105,17 @@
       <classifier>config</classifier>
       <version>${version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.jbpm.jbpm4</groupId>
+      <artifactId>jbpm-jboss4</artifactId>
+      <version>${version}</version>
+    </dependency>
+     <dependency>
+      <groupId>org.jbpm.jbpm4</groupId>
+      <artifactId>jbpm-jboss4</artifactId>
+      <classifier>config</classifier>
+      <version>${version}</version>
+    </dependency>
 
     <!-- GWT Console -->
     <dependency>

Modified: jbpm4/trunk/modules/distro/scripts/assembly-deploy-artifacts.xml
===================================================================
--- jbpm4/trunk/modules/distro/scripts/assembly-deploy-artifacts.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/distro/scripts/assembly-deploy-artifacts.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -64,6 +64,14 @@
       </includes>
       <unpack>true</unpack>
     </dependencySet>
+    <dependencySet>
+      <outputDirectory>resources/jbpm-jboss4-config</outputDirectory>
+      <useStrictFiltering>true</useStrictFiltering>
+      <includes>
+        <include>*:jbpm-jboss4:jar:config</include>
+      </includes>
+      <unpack>true</unpack>
+    </dependencySet>
      <dependencySet>
       <outputDirectory>resources/jbpm-db</outputDirectory>
       <useStrictFiltering>true</useStrictFiltering>

Modified: jbpm4/trunk/modules/distro/src/main/resources/installer/install-definition.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/resources/installer/install-definition.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/distro/src/main/resources/installer/install-definition.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -175,8 +175,7 @@
       <!--fileset dir="@{deploy.artifacts.dir}/resources/jbpm-integration-config" targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm-service.sar" override="true">
         <include name="bpm-process-deployer.xml" />
       </fileset-->
-      <fileset dir="@{deploy.artifacts.dir}/lib" targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm-service.sar" override="true">
-        <include name="jbpm-log.jar" />
+      <fileset dir="@{deploy.artifacts.dir}/lib" targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm-service.sar" override="true">        
         <include name="jbpm-pvm.jar" />
         <include name="jbpm-jpdl.jar" />
         <include name="jbpm-task.jar" />
@@ -227,6 +226,7 @@
                condition="isJBoss422">
         <include name="jbpm-api.jar"/>
         <include name="jbpm-spi.jar"/>
+        <include name="jbpm-log.jar" />
       </fileset>
 
 
@@ -242,8 +242,30 @@
                condition="isJBoss423">
         <include name="jbpm-api.jar"/>
         <include name="jbpm-spi.jar"/>
+        <include name="jbpm-log.jar" />
       </fileset>
 
+       <!-- deployer -->
+      <fileset dir="@{deploy.artifacts.dir}/lib/"
+               targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm.deployer"
+               override="true"
+               condition="isJBoss423">
+        <include name="jbpm-jboss4.jar"/>        
+      </fileset>
+      <fileset dir="@{deploy.artifacts.dir}/resources/jbpm-jboss4-config/jbpm.deployer/META-INF"
+               targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm.deployer/META-INF"
+               override="true"
+               condition="isJBoss423">
+        <include name="jboss-service.xml"/>
+      </fileset>
+
+      <!-- service -->
+      <fileset dir="@{deploy.artifacts.dir}/resources/jbpm-jboss4-config/jbpm.beans/META-INF"
+               targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deploy/jbpm/jbpm-service.sar/jbpm.beans/META-INF"
+               override="true"
+               condition="isJBoss423">
+        <include name="jboss-beans.xml"/>    
+      </fileset>
       <!--
         ==============================
         JBoss 5
@@ -257,6 +279,7 @@
         <include name="jbpm-api.jar"/>
         <include name="jbpm-spi.jar"/>
         <include name="jbpm-jboss5.jar"/>
+        <include name="jbpm-log.jar" />
       </fileset>
       <fileset dir="@{deploy.artifacts.dir}/resources/jbpm-jboss5-config/META-INF"
                targetdir="${jbossInstallPath}/server/${jbossTargetServer}/deployers/jbpm.deployer"
@@ -269,6 +292,7 @@
                override="true"
                condition="isJBoss500">
         <include name="jbpm-service-jboss-beans.xml"/>
+        <!--include name="jbpm.deployer.cfg.xml"/-->
       </fileset>
 
 

Modified: jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml
===================================================================
--- jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/enterprise/jbpm4-enterprise.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -11,9 +11,12 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="gwt-parent" />
-    <orderEntry type="module" module-name="toplevel" />
-    <orderEntry type="module" module-name="gwt-server-integration" />
+    <orderEntry type="module" module-name="toplevel" exported="" />
+    <orderEntry type="module" module-name="jpdl" exported="" />
+    <orderEntry type="module" module-name="gwt-parent" exported="" />
+    <orderEntry type="module" module-name="integration-spi" exported="" />
+    <orderEntry type="module" module-name="pvm" exported="" />
+    <orderEntry type="module" module-name="gwt-server-integration" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: cargo:cargo:jar:0.5:test">
         <CLASSES>

Modified: jbpm4/trunk/modules/enterprise/pom.xml
===================================================================
--- jbpm4/trunk/modules/enterprise/pom.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/enterprise/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -45,6 +45,11 @@
       <artifactId>gwt-console-server-integration</artifactId>
       <scope>compile</scope>
     </dependency>
+    <dependency>
+      <groupId>org.jbpm.jbpm4</groupId>
+      <artifactId>jbpm-spi</artifactId>
+      <version>${version}</version>
+    </dependency>
 
     <!-- Test Dependencies -->
     <dependency>

Modified: jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/mgmt/ProcessManagementImpl.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -25,9 +25,13 @@
 import org.jboss.bpm.console.client.model.ProcessDefinitionRef;
 import org.jboss.bpm.console.client.model.ProcessInstanceRef;
 import org.jbpm.*;
+import org.jbpm.integration.spi.JBPMService;
+import org.jbpm.integration.spi.JBPMServiceLocator;
 import org.jbpm.model.OpenProcessDefinition;
 import org.jbpm.model.OpenExecution;
 
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import java.util.*;
 import java.io.InputStream;
 
@@ -40,7 +44,19 @@
 
   public ProcessManagementImpl()
   {
-    this.processEngine = new Configuration().buildProcessEngine(); 
+    //JBPMService jbpmService = JBPMServiceLocator.locateService();
+    //this.processEngine = jbpmService.getProcessEngine();
+
+      try
+      {
+        InitialContext ctx = new InitialContext();
+        this.processEngine = (ProcessEngine)ctx.lookup("java:/ProcessEngine");
+      }
+      catch (Exception e)
+      {
+        throw new RuntimeException("Failed to lookup process engine");
+      }
+
   }
 
   public List<ProcessDefinitionRef> getProcessDefinitions()

Modified: jbpm4/trunk/modules/enterprise/src/main/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/enterprise/src/main/resources/jbpm.cfg.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/enterprise/src/main/resources/jbpm.cfg.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  jBPM4 enterprise configuration.
-  Uses different command service and environment config.
-  (i.e. skips the TX interceptor)
+  jBPM4 configuration used within the AS.
+  Uses different command service and environment config.  
 -->
 
 <jbpm-configuration xmlns="http://jbpm.org/xsd/cfg">
@@ -15,23 +14,27 @@
         <file extension=".jpdl.xml" type="jpdl" />
       </assign-file-type>
       <parse-jpdl />
-      <check-process />
+      <check-process /> 
       <check-problems />
-      <save />
+      <save policy="org.jbpm.pvm.internal.wire.binding.VersionTimestampPolicy"/>
     </deployer-manager>
 
     <process-service />
     <execution-service />
     <management-service />
 
-    <ejb-local-command-service>
-      <home jndi-name="java:jbpm/CommandExecutor"/>
-    </ejb-local-command-service>
+    <command-service>
+      <retry-interceptor />
+      <environment-interceptor />
+      <!-- TODO: JBPM-2101 TX interceptor with 'required' semantics -->
+    </command-service>
 
     <hibernate-configuration resource="hibernate.cfg.xml"/>
 
     <hibernate-session-factory />
 
+    <job-executor auto-start="true" /> 
+    
     <id-generator />
     <types resource="jbpm.pvm.types.xml" />
 
@@ -47,10 +50,12 @@
   </process-engine-context>
 
   <transaction-context>
-    <hibernate-session current="true" />
+    <hibernate-session current="true"/>
     <pvm-db-session />
     <job-db-session />
-    <ejb-timer-session />
+    <task-db-session />
+    <message-session />
+    <timer-session />
   </transaction-context>
 
 </jbpm-configuration>

Modified: jbpm4/trunk/modules/examples/jbpm4-examples.iml
===================================================================
--- jbpm4/trunk/modules/examples/jbpm4-examples.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/examples/jbpm4-examples.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -10,6 +10,8 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="toplevel" exported="" />
+    <orderEntry type="module" module-name="jpdl" exported="" />
+    <orderEntry type="module" module-name="pvm" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: javax.transaction:jta:jar:1.0.1B:compile">
         <CLASSES>
@@ -168,15 +170,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.jboss.cache:jbosscache-core:jar:3.0.2.GA:test">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/cache/jbosscache-core/3.0.2.GA/jbosscache-core-3.0.2.GA.jar!/" />
@@ -195,24 +188,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax-api:jar:1.0.1:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: juel:juel-engine:jar:2.1.0:test">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/juel/juel-engine/2.1.0/juel-engine-2.1.0.jar!/" />
@@ -258,15 +233,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax:jar:1.2.0:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: juel:juel:jar:2.1.0:test">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/juel/juel/2.1.0/juel-2.1.0.jar!/" />
@@ -352,54 +318,101 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:test">
+      <library name="M2 Dep: org.jboss:jboss-common-core:jar:2.2.10.GA:test">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar!/" />
         </CLASSES>
         <JAVADOC />
+        <SOURCES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA-sources.jar!/" />
+        </SOURCES>
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: org.hibernate:hibernate-entitymanager:jar:3.3.2.GA:test">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.jar!/" />
+        </CLASSES>
+        <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss:jboss-common-core:jar:2.2.10.GA:test">
+      <library name="M2 Dep: org.jboss.logging:jboss-logging-spi:jar:2.0.5.GA:test">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA-sources.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.hibernate:hibernate-entitymanager:jar:3.3.2.GA:test">
+      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:compile">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:test">
+      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:compile">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.logging:jboss-logging-spi:jar:2.0.5.GA:test">
+      <library name="M2 Dep: stax:stax-api:jar:1.0.1:compile">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
         </CLASSES>
         <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: org.codehaus.woodstox:wstx-lgpl:jar:3.2.6:test">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/codehaus/woodstox/wstx-lgpl/3.2.6/wstx-lgpl-3.2.6.jar!/" />
+        </CLASSES>
+        <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/codehaus/woodstox/wstx-lgpl/3.2.6/wstx-lgpl-3.2.6-sources.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: stax:stax:jar:1.2.0:compile">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:compile">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:compile">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
     <orderEntryProperties />
   </component>
 </module>

Copied: jbpm4/trunk/modules/integration/jboss4 (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4)

Deleted: jbpm4/trunk/modules/integration/jboss4/pom.xml
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/pom.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <name>jBPM 4 - Integration JBoss 4</name>
-  <description>JBoss jBPM - JBoss JBoss 4</description>
-
-  <groupId>org.jbpm.jbpm4</groupId>
-  <artifactId>jbpm-jboss4</artifactId>
-  <packaging>jar</packaging>
-
-  <parent>
-    <groupId>org.jbpm.jbpm4</groupId>
-    <artifactId>jbpm-integration</artifactId>
-    <version>4.0.0-SNAPSHOT</version>
-  </parent>
-
-  <!-- Properties -->
-  <properties>
-  </properties>
-
-  <!-- Dependencies -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jbpm.jbpm4</groupId>
-      <artifactId>jbpm-spi</artifactId>
-      <version>${version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-system-jmx</artifactId>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-  <!-- Build -->
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <finalName>${project.build.finalName}</finalName>
-              <appendAssemblyId>true</appendAssemblyId>
-              <descriptors>
-                <descriptor>scripts/assembly-config.xml</descriptor>
-              </descriptors>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <excludes>
-            <exclude>**/jbpm.beans/*</exclude>
-            <exclude>**/jbpm.deployer/*</exclude>  
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>

Copied: jbpm4/trunk/modules/integration/jboss4/pom.xml (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/pom.xml)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/pom.xml	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <name>jBPM 4 - Integration JBoss 4</name>
+  <description>JBoss jBPM - JBoss JBoss 4</description>
+
+  <groupId>org.jbpm.jbpm4</groupId>
+  <artifactId>jbpm-jboss4</artifactId>
+  <packaging>jar</packaging>
+
+  <parent>
+    <groupId>org.jbpm.jbpm4</groupId>
+    <artifactId>jbpm-integration</artifactId>
+    <version>4.0.0-SNAPSHOT</version>
+  </parent>
+
+  <!-- Properties -->
+  <properties>
+  </properties>
+
+  <!-- Dependencies -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jbpm.jbpm4</groupId>
+      <artifactId>jbpm-spi</artifactId>
+      <version>${version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-system-jmx</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <!-- Build -->
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <configuration>
+              <finalName>${project.build.finalName}</finalName>
+              <appendAssemblyId>true</appendAssemblyId>
+              <descriptors>
+                <descriptor>scripts/assembly-config.xml</descriptor>
+              </descriptors>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/jbpm.beans/*</exclude>
+            <exclude>**/jbpm.deployer/*</exclude>  
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>

Copied: jbpm4/trunk/modules/integration/jboss4/scripts (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/scripts)

Deleted: jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/scripts/assembly-config.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,18 +0,0 @@
-<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.1.0-SNAPSHOT.xsd">
-  <id>config</id>
-  <formats>
-    <format>jar</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>${project.build.outputDirectory}</directory>
-      <outputDirectory>/</outputDirectory>
-      <includes>
-        <include>**/jboss-service.xml</include>
-        <include>**/jboss-beans.xml</include>
-      </includes>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file

Copied: jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/scripts/assembly-config.xml)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/scripts/assembly-config.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,18 @@
+<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.1.0-SNAPSHOT.xsd">
+  <id>config</id>
+  <formats>
+    <format>jar</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <fileSets>
+    <fileSet>
+      <directory>${project.build.outputDirectory}</directory>
+      <outputDirectory>/</outputDirectory>
+      <includes>
+        <include>**/jboss-service.xml</include>
+        <include>**/jboss-beans.xml</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</assembly>
\ No newline at end of file

Copied: jbpm4/trunk/modules/integration/jboss4/src (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4 (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4)

Deleted: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,169 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss4;
-
-import org.jboss.deployment.DeploymentException;
-import org.jboss.deployment.DeploymentInfo;
-import org.jboss.deployment.SubDeployer;
-import org.jboss.deployment.SubDeployerSupport;
-import org.jbpm.integration.spi.DeploymentAdaptor;
-import org.jbpm.integration.spi.JBPMDeploymentMetaData;
-import org.jbpm.integration.spi.ProcessDeploymentRef;
-import org.jbpm.internal.log.Log;
-
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
-
-/**
- * An AS 4.2.x deployer for jBPM4 process archives.
- * Delegates to {@link org.jbpm.integration.spi.DeploymentAdaptor}.
- * The deployer retains a {@link org.jbpm.integration.spi.ProcessDeploymentRef} 
- * for subsequent undeployment calls.
- * 
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public class JBPMDeployer extends SubDeployerSupport
-    implements SubDeployer, JBPMDeployerMBean
-{
-
-  private static final Log log = Log.getLog(JBPMDeployer.class.getName());
-
-  private DeploymentAdaptor adaptor;
-  private static final String ARCHIVE_SUFFIX = ".jpdl";
-  private static final String JPDL_FILE_SUFFIX = ".jpdl.xml";
-  private static final String CONTEXT_REFERENCE = "jbpm.deployer.reference";
-
-  /**
-   * Default CTOR used to set default values to the Suffixes and RelativeOrder
-   * attributes. Those are read at subdeployer registration time by the MainDeployer
-   * to alter its SuffixOrder.
-   */
-
-  public JBPMDeployer()
-  {
-    initializeMainDeployer();
-    this.adaptor = new DeploymentAdaptor();
-
-    System.out.println("Started JBPMDeployer");
-  }
-
-  /**
-   * Set the suffixes and relative order attributes.
-   *
-   * Those are read at subdeployer registration time by the MainDeployer
-   * to update its SuffixOrder list.
-   */
-  protected void initializeMainDeployer()
-  {
-    setSuffixes(new String[]{ARCHIVE_SUFFIX, JPDL_FILE_SUFFIX});
-    setRelativeOrder(1000); // Make sure it kicks in after the other deployers
-  }
-
-  /**
-   * Returns true if this deployer can deploy the given DeploymentInfo.
-   *
-   * @return True if this deployer can deploy the given DeploymentInfo.   
-   */
-  public boolean accepts(DeploymentInfo di)
-  {
-    String urlStr = di.url.toString();
-    return urlStr.endsWith(ARCHIVE_SUFFIX) || urlStr.endsWith(JPDL_FILE_SUFFIX);
-  }
-
-
-  public void init(DeploymentInfo deploymentInfo) throws DeploymentException
-  {
-    super.init(deploymentInfo);
-  }
-
-  public void create(DeploymentInfo deploymentInfo) throws DeploymentException
-  {
-    super.create(deploymentInfo);
-  }
-
-  public void start(DeploymentInfo rootDeployment) throws DeploymentException
-  {
-    if(rootDeployment.url.getFile().endsWith(ARCHIVE_SUFFIX))
-    {
-      log.info("Deploy " + rootDeployment.url);
-
-      List<ProcessDeploymentRef> allProcessRefs = new ArrayList<ProcessDeploymentRef>();
-
-      Iterator iterator = rootDeployment.subDeployments.iterator();
-      while(iterator.hasNext())
-      {
-        DeploymentInfo subDeployment = (DeploymentInfo)iterator.next();
-        JBPMDeploymentMetaData md = new JBPMDeploymentMetaData();
-        md.setClassloader(subDeployment.localCl);
-        md.setWatch(rootDeployment.watch);
-        md.setProcessDescriptor(subDeployment.url);
-
-        List<ProcessDeploymentRef> subDeploymentRefs = null;
-
-        try
-        {
-          subDeploymentRefs = adaptor.deploy(md);
-          allProcessRefs.addAll(subDeploymentRefs);
-        }
-        catch (Throwable e)
-        {
-          log.error("Failed to deploy " + rootDeployment.url, e);
-        }                
-      }
-
-      rootDeployment.context.put(CONTEXT_REFERENCE, allProcessRefs);
-    }
-  }
-
-  public void destroy(DeploymentInfo deploymentInfo)
-  {
-    try
-    {
-      super.destroy(deploymentInfo);
-    }
-    catch (DeploymentException e)
-    {
-      throw new RuntimeException(e);
-    }
-  }
-
-  public void stop(DeploymentInfo rootDeployment)
-  {
-    if(rootDeployment.url.getFile().endsWith(ARCHIVE_SUFFIX))
-    {
-      log.info("Undeploy " + rootDeployment.url);
-      
-      List<ProcessDeploymentRef> processRefs = (List<ProcessDeploymentRef>)
-          rootDeployment.context.get(CONTEXT_REFERENCE);
-
-      if(null==processRefs)
-      {
-        log.info("Failed to retrieve process reference information. " +
-            "Ignore undepoyment call: "+ rootDeployment.url);
-        return;
-      }
-
-      adaptor.undeploy(processRefs);
-    }
-  }
-}

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployer.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,169 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss4;
+
+import org.jboss.deployment.DeploymentException;
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.SubDeployer;
+import org.jboss.deployment.SubDeployerSupport;
+import org.jbpm.integration.spi.DeploymentAdaptor;
+import org.jbpm.integration.spi.JBPMDeploymentMetaData;
+import org.jbpm.integration.spi.ProcessDeploymentRef;
+import org.jbpm.internal.log.Log;
+
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+/**
+ * An AS 4.2.x deployer for jBPM4 process archives.
+ * Delegates to {@link org.jbpm.integration.spi.DeploymentAdaptor}.
+ * The deployer retains a {@link org.jbpm.integration.spi.ProcessDeploymentRef} 
+ * for subsequent undeployment calls.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class JBPMDeployer extends SubDeployerSupport
+    implements SubDeployer, JBPMDeployerMBean
+{
+
+  private static final Log log = Log.getLog(JBPMDeployer.class.getName());
+
+  private DeploymentAdaptor adaptor;
+  private static final String ARCHIVE_SUFFIX = ".jpdl";
+  private static final String JPDL_FILE_SUFFIX = ".jpdl.xml";
+  private static final String CONTEXT_REFERENCE = "jbpm.deployer.reference";
+
+  /**
+   * Default CTOR used to set default values to the Suffixes and RelativeOrder
+   * attributes. Those are read at subdeployer registration time by the MainDeployer
+   * to alter its SuffixOrder.
+   */
+
+  public JBPMDeployer()
+  {
+    initializeMainDeployer();
+    this.adaptor = new DeploymentAdaptor();
+
+    System.out.println("Started JBPMDeployer");
+  }
+
+  /**
+   * Set the suffixes and relative order attributes.
+   *
+   * Those are read at subdeployer registration time by the MainDeployer
+   * to update its SuffixOrder list.
+   */
+  protected void initializeMainDeployer()
+  {
+    setSuffixes(new String[]{ARCHIVE_SUFFIX, JPDL_FILE_SUFFIX});
+    setRelativeOrder(1000); // Make sure it kicks in after the other deployers
+  }
+
+  /**
+   * Returns true if this deployer can deploy the given DeploymentInfo.
+   *
+   * @return True if this deployer can deploy the given DeploymentInfo.   
+   */
+  public boolean accepts(DeploymentInfo di)
+  {
+    String urlStr = di.url.toString();
+    return urlStr.endsWith(ARCHIVE_SUFFIX) || urlStr.endsWith(JPDL_FILE_SUFFIX);
+  }
+
+
+  public void init(DeploymentInfo deploymentInfo) throws DeploymentException
+  {
+    super.init(deploymentInfo);
+  }
+
+  public void create(DeploymentInfo deploymentInfo) throws DeploymentException
+  {
+    super.create(deploymentInfo);
+  }
+
+  public void start(DeploymentInfo rootDeployment) throws DeploymentException
+  {
+    if(rootDeployment.url.getFile().endsWith(ARCHIVE_SUFFIX))
+    {
+      log.info("Deploy " + rootDeployment.url);
+
+      List<ProcessDeploymentRef> allProcessRefs = new ArrayList<ProcessDeploymentRef>();
+
+      Iterator iterator = rootDeployment.subDeployments.iterator();
+      while(iterator.hasNext())
+      {
+        DeploymentInfo subDeployment = (DeploymentInfo)iterator.next();
+        JBPMDeploymentMetaData md = new JBPMDeploymentMetaData();
+        md.setClassloader(subDeployment.localCl);
+        md.setWatch(rootDeployment.watch);
+        md.setProcessDescriptor(subDeployment.url);
+
+        List<ProcessDeploymentRef> subDeploymentRefs = null;
+
+        try
+        {
+          subDeploymentRefs = adaptor.deploy(md);
+          allProcessRefs.addAll(subDeploymentRefs);
+        }
+        catch (Throwable e)
+        {
+          log.error("Failed to deploy " + rootDeployment.url, e);
+        }                
+      }
+
+      rootDeployment.context.put(CONTEXT_REFERENCE, allProcessRefs);
+    }
+  }
+
+  public void destroy(DeploymentInfo deploymentInfo)
+  {
+    try
+    {
+      super.destroy(deploymentInfo);
+    }
+    catch (DeploymentException e)
+    {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public void stop(DeploymentInfo rootDeployment)
+  {
+    if(rootDeployment.url.getFile().endsWith(ARCHIVE_SUFFIX))
+    {
+      log.info("Undeploy " + rootDeployment.url);
+      
+      List<ProcessDeploymentRef> processRefs = (List<ProcessDeploymentRef>)
+          rootDeployment.context.get(CONTEXT_REFERENCE);
+
+      if(null==processRefs)
+      {
+        log.info("Failed to retrieve process reference information. " +
+            "Ignore undepoyment call: "+ rootDeployment.url);
+        return;
+      }
+
+      adaptor.undeploy(processRefs);
+    }
+  }
+}

Deleted: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,77 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss4;
-
-import org.jboss.deployment.SubDeployerMBean;
-import org.jboss.mx.util.ObjectNameFactory;
-
-import javax.management.ObjectName;
-
-/**
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public interface JBPMDeployerMBean extends SubDeployerMBean
-{
-  public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("org.jbpm:JBPMDeployer");
-
-  /**
-   * Returns true if this deployer can deploy the given DeploymentInfo.
-   * @return True if this deployer can deploy the given DeploymentInfo.
-   */
-  boolean accepts(org.jboss.deployment.DeploymentInfo di) ;
-
-  /**
-   * Describe <code>init</code> method here.
-   * @param di a <code>DeploymentInfo</code> value
-   * @throws org.jboss.deployment.DeploymentException if an error occurs
-   */
-  void init(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
-
-  /**
-   * Describe <code>create</code> method here.
-   * @param di a <code>DeploymentInfo</code> value
-   * @throws org.jboss.deployment.DeploymentException if an error occurs
-   */
-  void create(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
-
-  /**
-     * The <code>start</code> method starts all the mbeans in this DeploymentInfo..
-     * @param di a <code>DeploymentInfo</code> value
-     * @throws org.jboss.deployment.DeploymentException if an error occurs
-     */
-   void start(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
-
-    /**
-     * Undeploys the package at the url string specified. This will: Undeploy packages depending on this one. Stop, destroy,
-     * and unregister all the specified mbeans Unload this package and packages this package deployed via the classpath tag.
-     * Keep track of packages depending on this one that we undeployed so that they can be redeployed should this one be redeployed
-     * @param di the <code>DeploymentInfo</code> value to stop.
-     */
-   void stop(org.jboss.deployment.DeploymentInfo di) ;
-
-  /**
-     * Describe <code>destroy</code> method here.
-     * @param di a <code>DeploymentInfo</code> value
-     */
-   void destroy(org.jboss.deployment.DeploymentInfo di) ;
-  
-}

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/java/org/jbpm/integration/jboss4/JBPMDeployerMBean.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss4;
+
+import org.jboss.deployment.SubDeployerMBean;
+import org.jboss.mx.util.ObjectNameFactory;
+
+import javax.management.ObjectName;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public interface JBPMDeployerMBean extends SubDeployerMBean
+{
+  public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("org.jbpm:JBPMDeployer");
+
+  /**
+   * Returns true if this deployer can deploy the given DeploymentInfo.
+   * @return True if this deployer can deploy the given DeploymentInfo.
+   */
+  boolean accepts(org.jboss.deployment.DeploymentInfo di) ;
+
+  /**
+   * Describe <code>init</code> method here.
+   * @param di a <code>DeploymentInfo</code> value
+   * @throws org.jboss.deployment.DeploymentException if an error occurs
+   */
+  void init(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
+
+  /**
+   * Describe <code>create</code> method here.
+   * @param di a <code>DeploymentInfo</code> value
+   * @throws org.jboss.deployment.DeploymentException if an error occurs
+   */
+  void create(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
+
+  /**
+     * The <code>start</code> method starts all the mbeans in this DeploymentInfo..
+     * @param di a <code>DeploymentInfo</code> value
+     * @throws org.jboss.deployment.DeploymentException if an error occurs
+     */
+   void start(org.jboss.deployment.DeploymentInfo di) throws org.jboss.deployment.DeploymentException;
+
+    /**
+     * Undeploys the package at the url string specified. This will: Undeploy packages depending on this one. Stop, destroy,
+     * and unregister all the specified mbeans Unload this package and packages this package deployed via the classpath tag.
+     * Keep track of packages depending on this one that we undeployed so that they can be redeployed should this one be redeployed
+     * @param di the <code>DeploymentInfo</code> value to stop.
+     */
+   void stop(org.jboss.deployment.DeploymentInfo di) ;
+
+  /**
+     * Describe <code>destroy</code> method here.
+     * @param di a <code>DeploymentInfo</code> value
+     */
+   void destroy(org.jboss.deployment.DeploymentInfo di) ;
+  
+}

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.beans)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF)

Deleted: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,18 +0,0 @@
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
-            xmlns="urn:jboss:bean-deployer">
-
-  <!--
-  Locate the single instance of the kernel
-  -->
-  <bean name="org.jbpm:service=KernelLocator"
-        class="org.jbpm.integration.util.KernelLocator">
-    <property name="kernel">
-      <inject bean="jboss.kernel:service=Kernel" />
-    </property>
-  </bean>
-
-  <bean name="org.jbpm:service=ProcessEngine"
-        class="org.jbpm.integration.spi.JBPMServiceImpl"/>
-
-</deployment>
\ No newline at end of file

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.beans/META-INF/jboss-beans.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,18 @@
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+
+  <!--
+  Locate the single instance of the kernel
+  -->
+  <bean name="org.jbpm:service=KernelLocator"
+        class="org.jbpm.integration.util.KernelLocator">
+    <property name="kernel">
+      <inject bean="jboss.kernel:service=Kernel" />
+    </property>
+  </bean>
+
+  <bean name="org.jbpm:service=ProcessEngine"
+        class="org.jbpm.integration.spi.JBPMServiceImpl"/>
+
+</deployment>
\ No newline at end of file

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.deployer)

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF)

Deleted: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml
===================================================================
--- jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id: jboss-service.xml 44143 2006-04-24 18:19:21Z kkhan $ -->
-
-<!-- ===================================================================== -->
-<!--  JBoss Server Configuration                                           -->
-<!-- ===================================================================== -->
-
-<server>
-
-  <mbean code="org.jbpm.integration.jboss4.JBPMDeployer"
-         name="org.jbpm:service=JBPMDeployer">
-  </mbean>
-
-</server>

Copied: jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml)
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss4/src/main/resources/jbpm.deployer/META-INF/jboss-service.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: jboss-service.xml 44143 2006-04-24 18:19:21Z kkhan $ -->
+
+<!-- ===================================================================== -->
+<!--  JBoss Server Configuration                                           -->
+<!-- ===================================================================== -->
+
+<server>
+
+  <mbean code="org.jbpm.integration.jboss4.JBPMDeployer"
+         name="org.jbpm:service=JBPMDeployer">
+  </mbean>
+
+</server>

Modified: jbpm4/trunk/modules/integration/jboss5/integration-jboss5.iml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/integration-jboss5.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/integration-jboss5.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -9,7 +9,10 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="toplevel" />
+    <orderEntry type="module" module-name="toplevel" exported="" />
+    <orderEntry type="module" module-name="jpdl" exported="" />
+    <orderEntry type="module" module-name="integration-spi" exported="" />
+    <orderEntry type="module" module-name="pvm" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.jboss.identity:idm-spi:jar:1.0.0-SNAPSHOT:compile">
         <CLASSES>
@@ -185,15 +188,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax-api:jar:1.0:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax-api/1.0/stax-api-1.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.hibernate:hibernate-entitymanager:jar:3.3.2.GA:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.jar!/" />
@@ -321,15 +315,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax:jar:1.2.0:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: jgroups:jgroups:jar:2.6.7.GA:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/jgroups/jgroups/2.6.7.GA/jgroups-2.6.7.GA.jar!/" />
@@ -381,15 +366,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.jboss:jbossxb:jar:2.0.0.GA:provided">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jboss/jbossxb/2.0.0.GA/jbossxb-2.0.0.GA.jar!/" />
@@ -519,15 +495,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.apache.ant:ant-junit:jar:1.7.0:provided">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar!/" />
@@ -839,15 +806,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.hibernate:hibernate:jar:3.2.6.ga:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar!/" />
@@ -1086,15 +1044,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.jboss.jpa:jboss-jpa-deployers:jar:0.1.2:provided">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jboss/jpa/jboss-jpa-deployers/0.1.2/jboss-jpa-deployers-0.1.2.jar!/" />
@@ -1145,6 +1094,15 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: stax:stax-api:jar:1.0:provided">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax-api/1.0/stax-api-1.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
     <orderEntryProperties />
   </component>
 </module>

Modified: jbpm4/trunk/modules/integration/jboss5/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/pom.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -60,6 +60,7 @@
           <excludes>
             <exclude>META-INF/jbpm-service-jboss-beans.xml</exclude>
             <exclude>META-INF/jbpm-deployers-jboss-beans.xml</exclude>
+            <exclude>META-INF/jbpm.deployer.cfg.xml</exclude>            
           </excludes>
         </configuration>
       </plugin>

Modified: jbpm4/trunk/modules/integration/jboss5/scripts/assembly-config.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/scripts/assembly-config.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/scripts/assembly-config.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -11,6 +11,7 @@
       <outputDirectory>/</outputDirectory>
       <includes>
         <include>**/*beans.xml</include>
+        <include>**/jbpm.deployer.cfg.xml</include>
       </includes>
     </fileSet>
   </fileSets>

Modified: jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeployer.java
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeployer.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeployer.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -21,43 +21,66 @@
  */
 package org.jbpm.integration.jboss5;
 
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jbpm.integration.spi.DeploymentAdaptor;
+import org.jbpm.integration.spi.JBPMDeploymentMetaData;
+import org.jbpm.integration.spi.ProcessDeploymentRef;
+import org.jbpm.internal.log.Log;
 
-import org.jbpm.integration.spi.JBPMService;
-import org.jbpm.integration.util.KernelAwareSPIFactory;
+import java.util.List;
 
 /**
- * Deploys JBPM processes and associates a classloader.
+ * An AS 5.0.x deployer for jBPM4 process archives.
+ * Delegates to {@link org.jbpm.integration.spi.DeploymentAdaptor}.
+ * The deployer retains a {@link org.jbpm.integration.spi.ProcessDeploymentRef}
+ * for subsequent undeployment calls.
  * 
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public class JBPMDeployer extends AbstractSimpleVFSRealDeployer<JBPMDeploymentMetaData>
 {
 
+  private static final Log log = Log.getLog(JBPMDeployer.class.getName());
+
+  private DeploymentAdaptor adaptor;
+
   public JBPMDeployer()
   {
     super(JBPMDeploymentMetaData.class);
+    this.adaptor = new DeploymentAdaptor();
   }
 
   public void deploy(VFSDeploymentUnit unit, JBPMDeploymentMetaData deployment)
       throws DeploymentException
   {
-    System.out.println("*** JBPM : Working on " + deployment);
+    log.info("Deploy " + deployment);
+    
+    // associate classloader
+    deployment.setClassloader(unit.getClassLoader());
 
-    JBPMService jbpmService = new KernelAwareSPIFactory().getKernelProvidedSPI(
-        "org.jbpm:service=ProcessEngine", JBPMService.class
-    );
+    List<ProcessDeploymentRef> processRefs = adaptor.deploy(deployment);
 
-    System.out.println("*** JBPM Service: " + jbpmService);
+     // TODO: mark the process 'ready', classloader assoc
+    unit.addAttachment("jbpm.deployer.reference", processRefs);
+
   }
 
   public void undeploy(DeploymentUnit unit, JBPMDeploymentMetaData deployment)
   {
-    System.out.println("*** JBPM : Undeploy "+deployment);
-    
-    super.undeploy(unit, deployment);
+    log.info("Undeploy "+deployment);
+
+    List<ProcessDeploymentRef> processRefs =
+        (List<ProcessDeploymentRef>)unit.getAttachment("jbpm.deployer.reference");
+
+    if(null==processRefs)
+    {
+      log.info("Failed to retrieve process reference information. Ignore undepoyment call: "+ deployment);
+      return;
+    }
+
+    adaptor.undeploy(processRefs);
   }
 }

Deleted: jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeploymentMetaData.java
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeploymentMetaData.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMDeploymentMetaData.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,29 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss5;
-
-/**
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public class JBPMDeploymentMetaData
-{
-}

Modified: jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMMetaDataDeployer.java
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMMetaDataDeployer.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMMetaDataDeployer.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -24,26 +24,35 @@
 import org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.virtual.VirtualFile;
+import org.jbpm.internal.log.Log;
+import org.jbpm.integration.spi.JBPMDeploymentMetaData;
 
 /**
- * Prepares {@link org.jbpm.integration.jboss5.JBPMDeploymentMetaData}
+ * Prepares {@link org.jbpm.integration.spi.JBPMDeploymentMetaData}
+ * which will be consumed by {@link org.jbpm.integration.jboss5.JBPMDeployer}
  * 
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public class JBPMMetaDataDeployer extends AbstractVFSParsingDeployer<JBPMDeploymentMetaData>
 {
+  private static final Log log = Log.getLog(JBPMMetaDataDeployer.class.getName());
 
   public JBPMMetaDataDeployer()
   {
     super(JBPMDeploymentMetaData.class);
   }
 
-  protected JBPMDeploymentMetaData parse(VFSDeploymentUnit unit, VirtualFile file, JBPMDeploymentMetaData root) throws Exception
+  protected JBPMDeploymentMetaData parse(
+      VFSDeploymentUnit unit,
+      VirtualFile file, JBPMDeploymentMetaData root) throws Exception
   {
-    System.out.println("*** JBPM: Creating structure from " + file);
+    log.debug("Creating structure from " + file);
 
-    // TODO: implement parsing logic
+    JBPMDeploymentMetaData md = new JBPMDeploymentMetaData();
+
+    md.setProcessDescriptor(file.toURL());
+    md.setWatch(unit.getTopLevel().getRoot().toURL());
     
-    return new JBPMDeploymentMetaData();
+    return md;
   }
 }

Deleted: jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMServiceImpl.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/java/org/jbpm/integration/jboss5/JBPMServiceImpl.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.integration.jboss5;
-
-import org.jbpm.integration.spi.JBPMService;
-import org.jbpm.ProcessEngine;
-import org.jbpm.Configuration;
-
-/**
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public class JBPMServiceImpl implements JBPMService
-{
-  private ProcessEngine processEngine;
-
-  public void start()
-  {
-    this.processEngine = new Configuration().buildProcessEngine();
-    System.out.println("** JBPMService started: " + this.processEngine);
-  }
-
-  public void stop()
-  {
-    this.processEngine = null;
-    System.out.println("** JBPMService stopped");
-  }
-
-  public ProcessEngine getProcessEngine()
-  {
-    return this.processEngine;
-  }
-}

Modified: jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-deployers-jboss-beans.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-deployers-jboss-beans.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-deployers-jboss-beans.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -5,29 +5,39 @@
   <!--
     Locate the single instance of the kernel
     -->
-  <bean name="org.jbpm:service=KernelLocator" class="org.jbpm.integration.util.KernelLocator">
-    <property name="kernel"><inject bean="jboss.kernel:service=Kernel" /></property>
+  <bean name="org.jbpm:service=KernelLocator"
+        class="org.jbpm.integration.util.KernelLocator">
+    <property name="kernel">
+      <inject bean="jboss.kernel:service=Kernel" />
+    </property>
   </bean>
 
   <!--
     The JBPM Meta Data Deployer
     -->
-  <bean name="org.jbpm:service=MetaDataDeployer" class="org.jbpm.integration.jboss5.JBPMMetaDataDeployer">
-    <property name="suffix">jpdl.xml</property>
-    <property name="jarExtension">par</property>
+  <bean name="org.jbpm:service=MetaDataDeployer"
+        class="org.jbpm.integration.jboss5.JBPMMetaDataDeployer">
+
+    <property name="suffix">.jpdl.xml</property>
+
+    <!-- Move to .par when https://jira.jboss.org/jira/browse/JBAS-6274 is done -->
+    <property name="jarExtension">jar</property>
+
     <property name="allowMultipleFiles">true</property>
 
     <!-- files the deployer can process -->
     <!--property name="names">
       <set elementClass="java.lang.String">
-        <value>processdefinition.xml</value>
+        <value>process.jpdl.xml</value>
       </set>
     </property-->
+
   </bean>
 
   <!--
     The actual jBPM Deployer
     -->
-  <bean name="org.jbpm:service=Deployer" class="org.jbpm.integration.jboss5.JBPMDeployer"/>
-  
+  <bean name="org.jbpm:service=Deployer"
+        class="org.jbpm.integration.jboss5.JBPMDeployer"/>
+
 </deployment>
\ No newline at end of file

Modified: jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-service-jboss-beans.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-service-jboss-beans.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm-service-jboss-beans.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -5,5 +5,7 @@
   <!--
      JBPM Service
   -->
-  <bean name="org.jbpm:service=ProcessEngine" class="org.jbpm.integration.jboss5.JBPMServiceImpl"/>
+  <bean name="org.jbpm:service=ProcessEngine"
+        class="org.jbpm.integration.spi.JBPMServiceImpl"/>
+  
 </deployment>
\ No newline at end of file

Copied: jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm.deployer.cfg.xml (from rev 4224, jbpm4/branches/hbraun/modules/integration/jboss5/src/main/resources/META-INF/jbpm.deployer.cfg.xml)
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm.deployer.cfg.xml	                        (rev 0)
+++ jbpm4/trunk/modules/integration/jboss5/src/main/resources/META-INF/jbpm.deployer.cfg.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  jBPM4 deployer configuration.
+  The deployer deals with the transaction management on it's own.
+  (UserTransaction)
+-->
+
+<jbpm-configuration xmlns="http://jbpm.org/xsd/cfg">
+
+  <process-engine-context>
+
+    <deployer-manager>
+      <assign-file-type>
+        <file extension=".jpdl.xml" type="jpdl" />
+      </assign-file-type>
+      <parse-jpdl />
+      <check-process /> <!--Covered by VersionTimestampPolicy -->
+      <check-problems />
+      <save policy="org.jbpm.pvm.internal.wire.binding.VersionTimestampPolicy"/>
+    </deployer-manager>
+
+    <process-service />
+    <execution-service />
+    <management-service />
+
+    <command-service>
+      <retry-interceptor />
+      <environment-interceptor />
+    </command-service>
+
+    <hibernate-configuration resource="hibernate.cfg.xml"/>
+
+    <hibernate-session-factory />
+
+    <id-generator />
+    <types resource="jbpm.pvm.types.xml" />
+
+    <business-calendar>
+      <monday    hours="9:00-12:00 and 12:30-17:00"/>
+      <tuesday   hours="9:00-12:00 and 12:30-17:00"/>
+      <wednesday hours="9:00-12:00 and 12:30-17:00"/>
+      <thursday  hours="9:00-12:00 and 12:30-17:00"/>
+      <friday    hours="9:00-12:00 and 12:30-17:00"/>
+      <holiday period="01/07/2008 - 31/08/2008"/>
+    </business-calendar>
+
+  </process-engine-context>
+
+  <transaction-context>
+    <hibernate-session current="true"/>    
+    <pvm-db-session />
+    <job-db-session />
+    <ejb-timer-session />
+  </transaction-context>
+
+</jbpm-configuration>

Modified: jbpm4/trunk/modules/integration/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/pom.xml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/pom.xml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -119,6 +119,7 @@
   <modules>
     <module>spi</module>
     <module>jboss5</module>
+    <module>jboss4</module>
   </modules>
 
 </project>

Modified: jbpm4/trunk/modules/integration/spi/integration-spi.iml
===================================================================
--- jbpm4/trunk/modules/integration/spi/integration-spi.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/spi/integration-spi.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -9,7 +9,9 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="toplevel" />
+    <orderEntry type="module" module-name="toplevel" exported="" />
+    <orderEntry type="module" module-name="jpdl" exported="" />
+    <orderEntry type="module" module-name="pvm" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: hsqldb:hsqldb:jar:1.8.0.7:test">
         <CLASSES>
@@ -65,15 +67,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: commons-logging:commons-logging:jar:1.0.4:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar!/" />
@@ -110,24 +103,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax-api:jar:1.0.1:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: juel:juel-engine:jar:2.1.0:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/juel/juel-engine/2.1.0/juel-engine-2.1.0.jar!/" />
@@ -173,15 +148,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax:jar:1.2.0:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: juel:juel:jar:2.1.0:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/juel/juel/2.1.0/juel-2.1.0.jar!/" />
@@ -303,15 +269,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: commons-collections:commons-collections:jar:2.1.1:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar!/" />
@@ -330,15 +287,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:compile">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.jboss.logging:jboss-logging-spi:jar:2.0.5.GA:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar!/" />
@@ -1143,6 +1091,15 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module-library" exported="">
+      <library name="M2 Dep: stax:stax-api:jar:1.0:provided">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../../../.m2/repository/stax/stax-api/1.0/stax-api-1.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
     <orderEntryProperties />
   </component>
 </module>

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/DeploymentAdaptor.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/DeploymentAdaptor.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/DeploymentAdaptor.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/DeploymentAdaptor.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,155 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import org.jbpm.Deployment;
+import org.jbpm.ProcessDefinition;
+import org.jbpm.ProcessService;
+import org.jbpm.internal.log.Log;
+
+import javax.naming.InitialContext;
+import javax.transaction.SystemException;
+import javax.transaction.UserTransaction;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Adopts AS 4 and AS 5 deployer invocations to jBPM invocations.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class DeploymentAdaptor
+{
+  private static final Log log = Log.getLog(DeploymentAdaptor.class.getName());
+
+  public List<ProcessDeploymentRef> deploy(JBPMDeploymentMetaData deploymentMetData)
+  {
+    JBPMService jbpmService = JBPMServiceLocator.locateService();
+    
+    UserTransaction tx = null;
+
+    try
+    {
+      InitialContext ctx = new InitialContext();
+      tx = (UserTransaction)ctx.lookup("UserTransaction");
+
+      tx.begin();
+
+      // deploy to process engine
+      ProcessService processService = jbpmService.getProcessEngine().getProcessService();
+      String pathToDeployment = deploymentMetData.getWatch().getPath();
+      File deploymentFile = new File(pathToDeployment);
+
+      Deployment dpl = processService.createDeployment()
+          .addUrl(deploymentMetData.getProcessDescriptor())
+          .addObject("jbpmdeployer.deploymentArtifact.timestamp", Long.valueOf(deploymentFile.lastModified()))
+          .addObject("jbpmdeployer.deploymentArtifact.location", deploymentMetData.getWatch().getPath());
+
+      List<ProcessDefinition> processesInScope =
+          dpl
+              .deploy()
+              .getProcessDefinitions();
+
+      // pass reference to the deployment unit for undeployment
+      List<ProcessDeploymentRef> processRefs = new ArrayList<ProcessDeploymentRef>();
+      for(ProcessDefinition pd : processesInScope)
+      {
+        ProcessDeploymentRef ref = new ProcessDeploymentRef(
+            pd.getId(),
+            pd.getVersion(),
+            deploymentMetData.getWatch().getPath()
+        );
+        processRefs.add(ref);
+      }
+
+      tx.commit();
+
+      return processRefs;
+
+    }
+    catch(Throwable e)
+    {
+      if(tx!=null)
+      {
+        try
+        {
+          tx.rollback();
+        }
+        catch (SystemException e1) {}
+      }
+
+      throw new RuntimeException("Failed to deploy process", e);
+    }
+
+  }
+
+  public void undeploy(List<ProcessDeploymentRef> processRefs)
+  {
+    UserTransaction tx = null;
+
+    try
+    {
+
+      JBPMService jbpmService = JBPMServiceLocator.locateService();
+      ProcessService processService = jbpmService.getProcessEngine().getProcessService();
+
+      InitialContext ctx = new InitialContext();
+      tx = (UserTransaction)ctx.lookup("UserTransaction");
+
+      tx.begin();
+
+      for(ProcessDeploymentRef ref : processRefs)
+      {
+        // if the physical artifact has been removed the process can be deleted
+        File deploymentArtifact = new File(ref.getLocation());
+        if(!deploymentArtifact.exists())
+        {
+          log.info("The deployment artifact for process '"+ref+" has been removed."+
+              " The process will be deleted");
+
+          processService.deleteProcessDefinition(ref.getProcessId());
+        }
+        else
+        {
+          // TODO: if the file reamains, mark the process as 'shutdown'
+        }
+      }
+
+      tx.commit();
+
+    }
+    catch(Throwable e)
+    {
+      if(tx!=null)
+      {
+        try
+        {
+          tx.rollback();
+        }
+        catch (SystemException e1) {}
+      }
+
+       throw new RuntimeException("Failed to undeploy process", e);       
+    }
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMDeploymentMetaData.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMDeploymentMetaData.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMDeploymentMetaData.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMDeploymentMetaData.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import java.net.URL;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class JBPMDeploymentMetaData
+{
+  private URL watch;
+  private URL processDescriptor;
+  private ClassLoader classloader;
+
+  public void setProcessDescriptor(URL processDescriptor)
+  {
+    this.processDescriptor = processDescriptor;
+  }
+
+  public void setWatch(URL watch)
+  {
+    this.watch = watch;
+  }
+
+  public void setClassloader(ClassLoader classloader)
+  {
+    this.classloader = classloader;
+  }
+
+  public URL getWatch()
+  {
+    return watch;
+  }
+
+  public URL getProcessDescriptor()
+  {
+    return processDescriptor;
+  }
+
+  public ClassLoader getClassloader()
+  {
+    return classloader;
+  }
+
+  public String toString()
+  {
+    return "JBPMDeploymentMetaData {unit="+ watch +", jpdl="+processDescriptor+", cl="+classloader+"}";
+  }
+}

Modified: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMService.java
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMService.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMService.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -24,14 +24,14 @@
 import org.jbpm.ProcessEngine;
 
 /**
- * A JBPM service implementation
- * 
+ * A JBPM service implementation that will be installed into the AS kernel.
+ *
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
 public interface JBPMService
-{
+{  
   void start();
   void stop();
-  
+
   ProcessEngine getProcessEngine();
 }

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceImpl.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceImpl.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceImpl.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceImpl.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import org.jbpm.Configuration;
+import org.jbpm.ProcessEngine;
+import org.jbpm.internal.log.Log;
+
+import javax.naming.InitialContext;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class JBPMServiceImpl implements JBPMService
+{
+  private static final Log log = Log.getLog(JBPMServiceImpl.class.getName());
+
+  private final static String DEFAULT_JNDI_NAME = "java:/ProcessEngine";
+  
+  private ProcessEngine processEngine;
+
+  public void start()
+  {
+    this.processEngine = new Configuration().buildProcessEngine();
+
+    try
+    {
+      InitialContext ctx = new InitialContext();
+      ctx.bind(DEFAULT_JNDI_NAME, new ProcessEngineReference("default", this.processEngine));
+      log.info("ProcessEngine bound to: " + DEFAULT_JNDI_NAME);
+    }
+    catch (Exception e)
+    {
+      throw new RuntimeException("Failed to create JBPMService", e);
+    }
+
+  }
+
+  public void stop()
+  {
+    this.processEngine = null;
+    log.info("JBPMService stopped");
+  }
+
+  public ProcessEngine getProcessEngine()
+  {
+    return this.processEngine;
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceLocator.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceLocator.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceLocator.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/JBPMServiceLocator.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import org.jbpm.integration.util.KernelAwareSPIFactory;
+
+/**
+ * Locates a {@link org.jbpm.integration.spi.JBPMService}
+ * through the {@link org.jbpm.integration.util.KernelAwareSPIFactory}
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class JBPMServiceLocator
+{
+  public static JBPMService locateService()
+  {
+    return new KernelAwareSPIFactory().getKernelProvidedSPI(
+        "org.jbpm:service=ProcessEngine", JBPMService.class
+    );
+  }
+
+  public static JBPMService locateService(String configName)
+  {
+    return new KernelAwareSPIFactory().getKernelProvidedSPI(
+        "org.jbpm:service=ProcessEngine,name="+configName, JBPMService.class
+    );
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessDeploymentRef.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessDeploymentRef.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessDeploymentRef.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessDeploymentRef.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+/**
+ * Retains with a deployer for undeployment calls.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public final class ProcessDeploymentRef
+{
+  private String processId;
+  private int version;
+  private String location;
+
+  public ProcessDeploymentRef(String processId, int version, String location)
+  {
+    this.processId = processId;
+    this.version = version;
+    this.location = location;
+  }
+
+  public String toString()
+  {
+    return "ProcessDeploymentRef {id="+processId+", version="+version+", location="+location+"}";
+  }
+
+  public String getProcessId()
+  {
+    return processId;
+  }
+
+  public int getVersion()
+  {
+    return version;
+  }
+
+  public String getLocation()
+  {
+    return location;
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineObjectFactory.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineObjectFactory.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineObjectFactory.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineObjectFactory.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import org.jbpm.ProcessEngine;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.RefAddr;
+import javax.naming.Reference;
+import javax.naming.spi.ObjectFactory;
+import java.util.Hashtable;
+
+/**
+ * Constructs a {@link org.jbpm.ProcessEngine} on the JNDI client side.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class ProcessEngineObjectFactory implements ObjectFactory
+{
+  public Object getObjectInstance(
+      Object obj, Name name,
+      Context nameCtx, Hashtable<?, ?> environment) throws Exception
+  {
+    if (obj instanceof Reference) {
+      Reference ref = (Reference)obj;
+      if (ref.getClassName().equals(ProcessEngine.class.getName())) {
+        RefAddr engineName = ref.get(ProcessEngineReference.ENGINE_NAME); // currently not used
+        return JBPMServiceLocator.locateService().getProcessEngine();
+      }
+    }
+
+    return null;
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineReference.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineReference.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineReference.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/spi/ProcessEngineReference.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.spi;
+
+import org.jbpm.ProcessEngine;
+
+import javax.naming.Referenceable;
+import javax.naming.Reference;
+import javax.naming.NamingException;
+import javax.naming.StringRefAddr;
+
+/**
+ * Stored in JNDI. Will be used to reference a {@link org.jbpm.ProcessEngine}
+ * when the {@link org.jbpm.integration.spi.ProcessEngineObjectFactory} is invoked.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class ProcessEngineReference implements Referenceable
+{
+  private String name;
+  private transient ProcessEngine processEngine;
+  public static final String ENGINE_NAME = "process.engine.name";
+
+  public ProcessEngineReference(String name, ProcessEngine processEngine)
+  {
+    this.name = name;
+    this.processEngine = processEngine;
+  }
+
+  public Reference getReference() throws NamingException
+  {
+    return new Reference(
+        ProcessEngine.class.getName(),
+        new StringRefAddr(ProcessEngineReference.ENGINE_NAME, this.name), 
+        ProcessEngineObjectFactory.class.getName(),
+        null
+    );
+  }
+}

Copied: jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/util/MBeanServerLocator.java (from rev 4224, jbpm4/branches/hbraun/modules/integration/spi/src/main/java/org/jbpm/integration/util/MBeanServerLocator.java)
===================================================================
--- jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/util/MBeanServerLocator.java	                        (rev 0)
+++ jbpm4/trunk/modules/integration/spi/src/main/java/org/jbpm/integration/util/MBeanServerLocator.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.integration.util;
+
+import java.util.Iterator;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+
+/**
+ * Locate the single instance of the MBeanServer
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 30-Jul-2007
+ */
+public class MBeanServerLocator
+{
+  private MBeanServer mbeanServer;
+
+  public MBeanServer getMbeanServer()
+  {
+    // In jboss-4.2 the MBeanServer cannot be injected
+    if (mbeanServer == null)
+    {
+      for (Iterator i = MBeanServerFactory.findMBeanServer(null).iterator(); i.hasNext();)
+      {
+        mbeanServer = (MBeanServer)i.next();
+        break;
+      }
+    }
+    return mbeanServer;
+  }
+
+  public void setMbeanServer(MBeanServer mbeanServer)
+  {
+    this.mbeanServer = mbeanServer;
+  }
+}

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/SaveDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/SaveDeployer.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/SaveDeployer.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -23,12 +23,15 @@
 
 import java.io.InputStream;
 import java.io.Serializable;
+import java.util.Map;
 
 import org.jbpm.ProcessDefinition;
 import org.jbpm.env.Environment;
 import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
 import org.jbpm.pvm.internal.svc.DeploymentImpl;
+import org.jbpm.pvm.internal.wire.binding.SavePolicy;
+import org.jbpm.pvm.internal.wire.binding.PolicyEvaluation;
 import org.jbpm.session.PvmDbSession;
 
 /**
@@ -38,7 +41,20 @@
 
   private static final long serialVersionUID = 1L;
   private static Log log = Log.getLog(SaveDeployer.class.getName());
-  
+
+  // the default policy does always apply
+  private final static SavePolicy DEFAULT_POLICY = new SavePolicy()
+  {
+    public PolicyEvaluation evaluate(DeploymentImpl deployment)
+    {
+      PolicyEvaluation evaluation = new PolicyEvaluation();
+      evaluation.setDoesApply(true);
+      return evaluation;
+    }
+  };
+
+  private SavePolicy policy = DEFAULT_POLICY;
+
   public void deploy(DeploymentImpl deployment) {
     Environment environment = Environment.getCurrent();
     if (environment==null) {
@@ -46,21 +62,30 @@
       return;
     }
 
+    // if the save policy doesn't apply,
+    // then the process will not be stored
+    PolicyEvaluation policyEvaluation = policy.evaluate(deployment);
+    if( policyEvaluation.doesApply() == false)
+    {
+      log.info("Policy " + policy.getClass().getName() + " doesn't appply. Skip deployment.");
+      return;
+    }
+
     PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
     if (pvmDbSession==null) {
       deployment.addProblem(PvmDbSession.class.getName()+" is required in the environment by "+getClass().getName());
       return;
     }
-    
+
     ProcessDefinitionImpl lastProcessDefinition = null;
-    
+
     boolean deployedProcess = false;
     for (String objectName : deployment.getObjectNames()) {
       Object object = deployment.getObject(objectName);
       if (object instanceof ProcessDefinition) {
         deployedProcess = true;
-        lastProcessDefinition = (ProcessDefinitionImpl) object; 
-        
+        lastProcessDefinition = (ProcessDefinitionImpl) object;
+
         log.debug("saving process definition "+object);
         pvmDbSession.save(object);
       }
@@ -70,6 +95,16 @@
       for (String fileName : deployment.getFileNames()) {
         InputStream inputStream = deployment.getFile(fileName);
         lastProcessDefinition.addAttachment(fileName, inputStream);
+
+        // persist policy evaluation results
+        // policies may require this information upon subsequent calls
+        // i.e. redeployment of process definitions
+        Map<String,String> policyEvaluationResults = policyEvaluation.getResults();
+        for(String key : policyEvaluationResults.keySet())
+        {
+          lastProcessDefinition.addAttachment(key, policyEvaluationResults.get(key).getBytes());
+        }
+
       }
     }
 
@@ -81,4 +116,9 @@
   public String toString() {
     return "save";
   }
+
+  public void setPolicy(SavePolicy policy)
+  {
+    this.policy = policy;
+  }
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -40,7 +40,8 @@
 /**
  * @author Tom Baeyens
  */
-public class ProcessDefinitionImpl extends CompositeElementImpl implements OpenProcessDefinition, ClientProcessDefinition {
+public class ProcessDefinitionImpl extends CompositeElementImpl
+    implements OpenProcessDefinition, ClientProcessDefinition {
 
   private static final long serialVersionUID = 1L;
   private static final Log log = Log.getLog(ProcessDefinitionImpl.class.getName());

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/StandardTransactionInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/StandardTransactionInterceptor.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/StandardTransactionInterceptor.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -28,8 +28,11 @@
 import org.jbpm.pvm.internal.svc.Interceptor;
 
 
-/** calls setRollbackOnly on the transaction in the environment 
+/**
+ * Calls setRollbackOnly on the transaction in the environment
  * in case an exception occurs during execution of the command.
+ * <p>
+ * Models "requires-new" semantic.
  * 
  * @author Tom Baeyens
  */

Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PolicyEvaluation.java (from rev 4224, jbpm4/branches/hbraun/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PolicyEvaluation.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PolicyEvaluation.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PolicyEvaluation.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.pvm.internal.wire.binding;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class PolicyEvaluation
+{
+  private boolean doesApply = true;
+  private Map<String, String> results = new HashMap<String,String>();
+
+  public boolean doesApply()
+  {
+    return doesApply;
+  }
+
+  public void setDoesApply(boolean doesApply)
+  {
+    this.doesApply = doesApply;
+  }
+
+  public Map<String, String> getResults()
+  {
+    return results;
+  }
+}

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SaveBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SaveBinding.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SaveBinding.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -42,6 +42,23 @@
 
   public Object parse(Element element, Parse parse, Parser parser) {
     SaveDeployer saveDeployer = new SaveDeployer();
+
+    if (element.hasAttribute("policy")) {
+      String policyClassName = element.getAttribute("policy");
+      SavePolicy policy = null;
+      try
+      {
+        Class<?> policyClass = Thread.currentThread().getContextClassLoader().loadClass(policyClassName);
+        policy = (SavePolicy)policyClass.newInstance();
+      }
+      catch (Exception e)
+      {
+        throw new IllegalArgumentException("Failed to load policy " +policyClassName, e);
+      }
+
+      saveDeployer.setPolicy(policy);
+    }
+
     return new ProvidedObjectDescriptor(saveDeployer);
   }
 }

Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SavePolicy.java (from rev 4224, jbpm4/branches/hbraun/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SavePolicy.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SavePolicy.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SavePolicy.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.pvm.internal.wire.binding;
+
+import org.jbpm.pvm.internal.svc.DeploymentImpl;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public interface SavePolicy
+{
+  PolicyEvaluation evaluate(DeploymentImpl deployment);
+}

Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/VersionTimestampPolicy.java (from rev 4224, jbpm4/branches/hbraun/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/VersionTimestampPolicy.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/VersionTimestampPolicy.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/VersionTimestampPolicy.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -0,0 +1,151 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.pvm.internal.wire.binding;
+
+import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.svc.DeploymentImpl;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.env.Environment;
+import org.jbpm.ProcessService;
+import org.jbpm.ProcessDefinitionQuery;
+import org.jbpm.ProcessDefinition;
+import org.jbpm.client.ClientProcessDefinition;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import java.io.Serializable;
+import java.util.List;
+import java.net.URL;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class VersionTimestampPolicy implements SavePolicy, Serializable
+{
+  private static Log log = Log.getLog(VersionTimestampPolicy.class.getName());
+  
+  private static final String DEPLOYER_TIMESTAMP =  "jbpmdeployer.deploymentArtifact.timestamp";
+  private static final String DEPLOYER_LOCATION =   "jbpmdeployer.deploymentArtifact.location";
+
+  public PolicyEvaluation evaluate(DeploymentImpl deployment)
+  {
+    log.debug("Apply " + this.getClass().getName());
+
+    PolicyEvaluation evaluation = new PolicyEvaluation();
+
+    for (String fileName: deployment.getFileNamesForType("jpdl"))
+    {
+      Document doc = deployment.getDocument(fileName);
+      if(null==doc)
+        throw new IllegalArgumentException("Policy expects JPDL document");
+
+      Element processEl = doc.getDocumentElement();
+      String nameAttribute = XmlUtil.attribute(processEl, "name");
+      String keyAttribute = XmlUtil.attribute(processEl, "key");
+      String versionAttribute = XmlUtil.attribute(processEl, "version");
+
+      // @see DeploymentAdaptor, it provides the timestamp
+      long currentTimestamp = (Long)deployment.getObject(DEPLOYER_TIMESTAMP);
+      String deloymentLocation = (String)deployment.getObject(DEPLOYER_LOCATION);
+
+      // provide evaluation properties
+      evaluation.getResults().put(DEPLOYER_TIMESTAMP, String.valueOf(currentTimestamp));
+      evaluation.getResults().put(DEPLOYER_LOCATION, deloymentLocation);
+
+      // can either be key or name given
+      String identifier = nameAttribute!=null ? nameAttribute : keyAttribute;
+
+      // query exisisting processes
+      ProcessService processService = getEnvironment().get(ProcessService.class);
+      ProcessDefinitionQuery query = processService.createProcessDefinitionQuery();
+      if(nameAttribute!=null)
+        query.nameLike(nameAttribute);
+      else
+        query.keyLike(keyAttribute);
+      List<ProcessDefinition> deployedProcesses = query.execute();
+
+      // apply either version or timestamp policy
+      if(versionAttribute!=null)
+      {
+        log.info("Version driven policy evaluation: process '"+identifier+"', version " +versionAttribute);
+
+        long processVersion = Long.valueOf(versionAttribute);
+        for(ProcessDefinition pd : deployedProcesses)
+        {
+          if(processVersion == pd.getVersion())
+          {
+            // explicit version version match
+            // the process will not be saved
+            evaluation.setDoesApply(false);
+
+            log.info("A process definition '"+identifier+"' with version "+versionAttribute+
+                " does already exist. The process will not be deployed: " + deloymentLocation);
+            break;
+          }
+        }
+      }
+      else
+      {
+        log.info("Timestamp driven policy evaluation: process '"+identifier+"', timestamp " +currentTimestamp);
+
+        for(ProcessDefinition pd : deployedProcesses)
+        {
+
+          byte[] bytes = ((ClientProcessDefinition)pd).getAttachment(DEPLOYER_TIMESTAMP);
+          if(null==bytes)
+          {
+            log.error("Failed to retrieve 'jbpmdeployer.deploymentArtifact.timestamp' from process attachments");
+            continue;
+          }
+
+          String s = new String(bytes);
+          long processTimestamp = Long.valueOf(s);
+
+          if(currentTimestamp <= processTimestamp)
+          {
+            // the timestamp of a given deployment artifact
+            // is less or equal to the already deployed process definition
+            // this prevents redeployments upon AS boot
+            evaluation.setDoesApply(false);
+
+            log.info("The deployment artifact doesn't seem to have changed: '"+deloymentLocation+"'."
+                +" Process "+identifier+" will not be deployed");
+            break;
+          }
+
+        }
+      }
+
+    }
+
+    return evaluation;
+  }
+
+  private Environment getEnvironment()
+  {
+    Environment environment = Environment.getCurrent();
+    if (environment==null)
+      throw new RuntimeException("Failed to access current environment");
+    return environment;
+
+  }
+}

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Binding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Binding.java	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Binding.java	2009-03-11 10:11:59 UTC (rev 4225)
@@ -34,7 +34,7 @@
   
   String getCategory();
 
-  /** does this binding apply to the given element? */
+  /** does this binding appliesTo to the given element? */
   boolean matches(Element element);
 
   /** translates the given element into a domain model java object.

Modified: jbpm4/trunk/modules/test-db/jbpm4-test-db.iml
===================================================================
--- jbpm4/trunk/modules/test-db/jbpm4-test-db.iml	2009-03-10 20:07:45 UTC (rev 4224)
+++ jbpm4/trunk/modules/test-db/jbpm4-test-db.iml	2009-03-11 10:11:59 UTC (rev 4225)
@@ -14,7 +14,9 @@
     <orderEntry type="module" module-name="jbpm4-test-base" exported="" />
     <orderEntry type="module" module-name="jbpm4-task" exported="" />
     <orderEntry type="module" module-name="jbpm4-toplevel" exported="" />
-    <orderEntry type="module" module-name="toplevel" />
+    <orderEntry type="module" module-name="toplevel" exported="" />
+    <orderEntry type="module" module-name="jpdl" exported="" />
+    <orderEntry type="module" module-name="pvm" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="M2 Dep: javax.transaction:jta:jar:1.0.1B:compile">
         <CLASSES>
@@ -34,15 +36,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:jbossesb-rosetta:jar:4.4.0.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/jbossesb-rosetta/4.4.0.GA/jbossesb-rosetta-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: org.hibernate:hibernate:jar:3.2.6.ga:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar!/" />
@@ -61,24 +54,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax-api:jar:1.0.1:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jboss.client:jbossall-client:jar:4.2.2.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jboss/client/jbossall-client/4.2.2.GA/jbossall-client-4.2.2.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: antlr:antlr:jar:2.7.6:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar!/" />
@@ -97,15 +72,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: stax:stax:jar:1.2.0:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/stax/stax/1.2.0/stax-1.2.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: jboss:jboss-j2ee:jar:4.2.2.GA:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jboss-j2ee/4.2.2.GA/jboss-j2ee-4.2.2.GA.jar!/" />
@@ -162,15 +128,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: org.jbpm.jbpm4.dependencies.esb:test-util:jar:4.4.0.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/org/jbpm/jbpm4/dependencies/esb/test-util/4.4.0.GA/test-util-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: commons-collections:commons-collections:jar:2.1.1:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar!/" />
@@ -180,15 +137,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library" exported="">
-      <library name="M2 Dep: jboss.jbossts:jbossts-common:jar:4.4.0.GA:test">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library" exported="">
       <library name="M2 Dep: log4j:log4j:jar:1.2.14:compile">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../../.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar!/" />




More information about the jbpm-commits mailing list