[jboss-svn-commits] JBL Code SVN: r38066 - in labs/jbossesb/branches/JBESB_4_11_CP/product: install and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 30 15:57:42 EDT 2012


Author: tcunning
Date: 2012-04-30 15:57:39 -0400 (Mon, 30 Apr 2012)
New Revision: 38066

Added:
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/drools-compiler-5.4.0.CR1.jar
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/protobuf-java-2.4.1.jar
Removed:
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/drools-compiler-5.3.1.Final.jar
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/resources/META-INF/JBPMorm.xml
Modified:
   labs/jbossesb/branches/JBESB_4_11_CP/product/build-distr.xml
   labs/jbossesb/branches/JBESB_4_11_CP/product/install/build.xml
   labs/jbossesb/branches/JBESB_4_11_CP/product/ivy.xml
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/ivy.xml
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/service/jbpm5/model/ProcessConstants.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Processor.java
Log:
JBESB-3793
Make jbpm5.esb an optional install per platform, and upgrade jbpm
to version 5.3.0.CR1 (and make corresponding drools/mvel upgrades).


Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/build-distr.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/build-distr.xml	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/build-distr.xml	2012-04-30 19:57:39 UTC (rev 38066)
@@ -46,6 +46,21 @@
                 <include name="*.txt"/>
             </fileset>
         </copy>
+
+        <mkdir dir="${build.dir}/jbossesb/install/jUDDI-registryV3"/>
+        <copy todir="${build.dir}/jbossesb/install/jUDDI-registryV3">
+            <fileset dir="${installation.files.dir}/jUDDI-registryV3">
+                <include name="*.xml"/>
+            </fileset>
+        </copy>
+
+	<mkdir dir="${build.dir}/jbossesb/install/jbpm5-extras"/>
+        <copy todir="${build.dir}/jbossesb/install/jbpm5-extras">
+            <fileset dir="${installation.files.dir}/jbpm5-extras"> 
+               <include name="*.mvel"/>
+               <include name="*.xml"/>
+            </fileset>
+        </copy> 
     </target>
 
     <target name="ftp-server" unless="skip.ftp.server">

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/install/build.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/install/build.xml	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/install/build.xml	2012-04-30 19:57:39 UTC (rev 38066)
@@ -294,6 +294,22 @@
 -->	
 	        <!-- licence file -->
 	        <copy file="${org.jboss.esb.dist.lib}/Licenses.txt" tofile="${org.jboss.esb.server.home}/EsbLicences.txt"/>
+
+		<!-- Set up human task WAR -->
+		<mkdir dir="${deploy.dir}/jbpm-human-task.war"/>
+       	 	<unzip src="${org.jboss.esb.dist.lib}/jbpm-human-task-5.3.0.BRMS-ER6.war"
+			dest="${deploy.dir}/jbpm-human-task.war"/>
+		<copy todir="${deploy.dir}"
+                	file="${basedir}/task-ds.xml"/>
+		<copy todir="${deploy.dir}/jbpm-human-task.war/WEB-INF"
+			overwrite="true">
+	    		<fileset dir="${basedir}/jbpm5-extras" includes="web.xml"/>
+        	</copy>
+		<copy todir="${deploy.dir}/jbpm-human-task.war/WEB-INF/classes/org/jbpm"
+			overwrite="true">
+            	<fileset dir="${basedir}/jbpm5-extras" includes="*.mvel"/>
+		</copy>
+
 	    </target>
 
 	<target name="internal.deploy.jbossas5.only" if="jbossas5" unless="jbossas6">
@@ -363,9 +379,16 @@
                 <include name="publicKeyStore"/>
             </fileset>
 		</copy>
-		
+	
+        <!-- install trove4j jar -->
         <copy todir="${server.lib.dir}" overwrite="true">
             <fileset dir="${org.jboss.esb.dist.lib}">
+               <include name="trove4j-*.jar"/>
+            </fileset>
+        </copy>
+
+        <copy todir="${server.lib.dir}" overwrite="true">
+            <fileset dir="${org.jboss.esb.dist.lib}">
                 <include name="picketlink-*.jar"/>
                 <include name="commons-httpclient-*.jar"/>
             </fileset>
@@ -424,8 +447,16 @@
 		dest="${deploy.dir}/jbpm-human-task.war"/>
 	<copy todir="${deploy.dir}"
                 file="${basedir}/task-ds.xml"/>
-	
+	<copy todir="${deploy.dir}/jbpm-human-task.war/WEB-INF"
+		overwrite="true">
+	    <fileset dir="${basedir}/jbpm5-extras" includes="web.xml"/>
+        </copy>
+	<copy todir="${deploy.dir}/jbpm-human-task.war/WEB-INF/classes/org/jbpm"
+		overwrite="true">
+            <fileset dir="${basedir}/jbpm5-extras" includes="*.mvel"/>
+	</copy>
 
+
 	<copy tofile="${deploy.dir}/jbossesb.sar/META-INF/jboss-service.xml" file="${basedir}/jboss-service-jbossas5.xml" overwrite="true"/>
 
         <copy todir="${deploy.dir}/jbossesb-registry.sar" includeemptydirs="false" overwrite="true">
@@ -496,10 +527,12 @@
 	    	<param name="esbModuleName" value="slsb.esb" />
 	    </antcall>
 
-        <!-- slsb.esb -->
+        <!-- jbpm5.esb -->
+	<!-- jbpm5.esb is optional within SOA-P, not deployed by default
             <antcall target="deployEsbModule">
                 <param name="esbModuleName" value="jbpm5.esb" />
             </antcall>
+	-->
         </target>
 
     <target name="deploySoapModule">
@@ -580,7 +613,6 @@
         <delete dir="${deploy.dir}/smooks.esb" quiet="true" />
         <delete dir="${deploy.dir}/spring.esb" quiet="true"/>
         <delete dir="${deploy.dir}/soap.esb" quiet="true"/>
-	<delete dir="${deploy.dir}/jbpm5.esb" quiet="true"/>
         <delete dir="${deploy.dir}/soapui-client.sar" quiet="true"/>
         <delete file="${deploy.dir}/contract.war" quiet="true"/>
         <delete file="${deploy.dir}/esb-console.war" quiet="true" />

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/ivy.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/ivy.xml	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/ivy.xml	2012-04-30 19:57:39 UTC (rev 38066)
@@ -86,7 +86,7 @@
         <dependency org="org.freemarker" name="freemarker" rev="2.3.15"/>
         <dependency org="org.codehaus.jackson" name="jackson-core-lgpl" rev="1.0.1"/>
 	<!-- Use the drools version of mvel -->
-        <dependency org="org.mvel" name="mvel2" rev="2.1.Beta6"/>
+        <dependency org="org.mvel" name="mvel2" rev="2.1.0.drools10"/>
         <dependency org="jaxen" name="jaxen" rev="1.1.1">
             <exclude org="dom4j" module="dom4j"/>
             <exclude org="xerces" module="xmlParserAPIs"/>
@@ -192,12 +192,6 @@
         <!-- trove4j for human-task-server -->
         <dependency org="net.sf.trove4j" name="trove4j" rev="3.0.2" transitive="false"/>
 
-<!--
-        <dependency org="org.jbpm" name="jbpm-gwt-console" rev="5.2.0.Final"
-		transitive="false">
-             <artifact name="jbpm-gwt-console" type="war"/>
-        </dependency>
--->   
         <exclude org="apache-httpclient" module="commons-httpclient"/>
 
     </dependencies>

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/ivy.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/ivy.xml	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/ivy.xml	2012-04-30 19:57:39 UTC (rev 38066)
@@ -2,15 +2,15 @@
     <info organisation="org.jboss" module="jbossesb"/>    
     <dependencies>
 
-	<dependency org="org.jbpm" name="jbpm-bpmn2" rev="5.2.0.Final" transitive="false"/>
-	<dependency org="org.jbpm" name="jbpm-human-task" rev="5.2.0.Final" transitive="false"/>
-        <dependency org="org.jbpm" name="jbpm-flow-builder" rev="5.2.0.Final" transitive="false"/>
-        <dependency org="org.jbpm" name="jbpm-flow" rev="5.2.0.Final" transitive
+	<dependency org="org.jbpm" name="jbpm-bpmn2" rev="5.3.0.CR1" transitive="false"/>
+	<dependency org="org.jbpm" name="jbpm-human-task" rev="5.3.0.CR1" transitive="false"/>
+        <dependency org="org.jbpm" name="jbpm-flow-builder" rev="5.3.0.CR1" transitive="false"/>
+        <dependency org="org.jbpm" name="jbpm-flow" rev="5.3.0.CR1" transitive
 ="false"/>
-	<dependency org="org.jbpm" name="jbpm-persistence-jpa" rev="5.2.0.Final" transitive="false"/>
-        <dependency org="org.drools" name="drools-persistence-jpa" rev="5.3.1.Final" transitive="false"/>
+	<dependency org="org.jbpm" name="jbpm-persistence-jpa" rev="5.3.0.CR1" transitive="false"/>
+        <dependency org="org.drools" name="drools-persistence-jpa" rev="5.4.0.CR1" transitive="false"/>
 
-        <dependency org="org.drools" name="drools-core" rev="5.3.1.Final" transitive="false"/>
-	<dependency org="org.drools" name="knowledge-api" rev="5.3.1.Final" transitive="false"/>
+        <dependency org="org.drools" name="drools-core" rev="5.4.0.CR1" transitive="false"/>
+	<dependency org="org.drools" name="knowledge-api" rev="5.4.0.CR1" transitive="false"/>
     </dependencies>
 </ivy-module>

Deleted: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/drools-compiler-5.3.1.Final.jar
===================================================================
(Binary files differ)

Added: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/drools-compiler-5.4.0.CR1.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/drools-compiler-5.4.0.CR1.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/protobuf-java-2.4.1.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/lib/ext/build-time/protobuf-java-2.4.1.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/service/jbpm5/model/ProcessConstants.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/service/jbpm5/model/ProcessConstants.java	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/service/jbpm5/model/ProcessConstants.java	2012-04-30 19:57:39 UTC (rev 38066)
@@ -37,6 +37,11 @@
 	/* Events */
     public static final String PROCESS_EVENT_TYPE = "processEventType";
     public static final String PROCESS_EVENT = "processEvent";
+    
+    /* Handler Class properties */
+    public static final String PROCESS_HANDLER_CLASS = "processHandlerClass";
+    public static final String PROCESS_HANDLER_HOST = "processHandlerHost";
+    public static final String PROCESS_HANDLER_PORT = "processHandlerPort";
         
     /* Tags */
     public static final String PROCESS_DEFINITION_NAME = "process-definition-name";

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Processor.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Processor.java	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Processor.java	2012-04-30 19:57:39 UTC (rev 38066)
@@ -21,6 +21,8 @@
  */
 package org.jboss.soa.esb.services.jbpm5.actions;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
@@ -40,6 +42,7 @@
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.actions.ActionLifecycle;
 import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.common.ModulePropertyManager;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.security.SecurityContext;
@@ -48,6 +51,7 @@
 
 import org.jboss.soa.esb.service.jbpm5.model.ProcessType;
 import org.jboss.soa.esb.service.jbpm5.model.ProcessConstants;
+import org.jboss.soa.esb.util.ClassUtil;
 import org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler;
 
 import org.drools.KnowledgeBase;
@@ -67,11 +71,16 @@
 
 import org.drools.runtime.Environment;
 import org.drools.runtime.EnvironmentName;
+import org.drools.runtime.KnowledgeRuntime;
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.runtime.conf.ClockTypeOption;
 import org.drools.runtime.process.ProcessInstance;
+import org.drools.runtime.process.WorkItemHandler;
+
 import org.drools.runtime.StatefulKnowledgeSession;
 
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
 /**
  * The Bpm5Processor processes an action on a single JBPM process.
  *  
@@ -81,6 +90,11 @@
 public class Bpm5Processor implements ActionLifecycle {
     protected ConfigTree configTree;
     private static Logger logger = Logger.getLogger(Bpm5Processor.class);
+    
+    private static final String DEFAULT_HANDLER_CLASS = "org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler";
+    private static final String DEFAULT_HANDLER_HOST = "127.0.0.1";
+    private static final String DEFAULT_HANDLER_PORT = "9123";
+    
     private UserTransaction emfUserTransaction;
     
     private String entityFactoryName;
@@ -88,13 +102,18 @@
     private String processId;
     private String processAction;
     
+    /* Handler settings */
+    private String handlerClass;
+    private String handlerHost;
+    private String handlerPort;
+    
     KnowledgeBuilder kbuilder;
     KnowledgeBase kbase;
     private Environment kenvironment;
     private KnowledgeSessionConfiguration config;
     private StatefulKnowledgeSession ksession = null;
     private KnowledgeRuntimeLogger klogger;
-    private CommandBasedWSHumanTaskHandler khandler;
+    private WorkItemHandler khandler;
         
     
     /**
@@ -121,9 +140,14 @@
 	public Bpm5Processor(ConfigTree configTree) throws ConfigurationException
 	{
 		this.configTree = configTree;
+
 		this.processDefName = configTree.getRequiredAttribute(ProcessConstants.PROCESS_DEFINITION_NAME);
 		this.processId = configTree.getRequiredAttribute(ProcessConstants.PROCESS_ID);
 		this.entityFactoryName = configTree.getAttribute(ProcessConstants.ENTITY_FACTORY_NAME, "jbpm5Persistence");
+
+		this.handlerClass = configTree.getAttribute(ProcessConstants.PROCESS_HANDLER_CLASS, DEFAULT_HANDLER_CLASS);
+		this.handlerHost = configTree.getAttribute(ProcessConstants.PROCESS_HANDLER_HOST, DEFAULT_HANDLER_HOST);
+		this.handlerPort = configTree.getAttribute(ProcessConstants.PROCESS_HANDLER_PORT, DEFAULT_HANDLER_PORT);
 		
 		// verify the process action
 		this.processAction = configTree.getRequiredAttribute(ProcessConstants.PROCESS_ACTION);
@@ -140,10 +164,29 @@
 		config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);
 	}
 
+	public WorkItemHandler getHandler(StatefulKnowledgeSession session) throws ClassNotFoundException,
+		NoSuchMethodException, IllegalAccessException, InstantiationException,
+		InvocationTargetException {
+		Class handlerKlass = ClassUtil.forName(handlerClass, Bpm5Processor.class);
+		WorkItemHandler wih = (WorkItemHandler) handlerKlass.getDeclaredConstructor(KnowledgeRuntime.class).newInstance(session);
+		return wih;
+	}
+	
+	public void connectHandler(WorkItemHandler wih) 
+	    throws ClassNotFoundException, InstantiationException, NoSuchMethodException, IllegalAccessException,
+	    InvocationTargetException {
+		Class handlerKlass = ClassUtil.forName(handlerClass, Bpm5Processor.class);
+		Method connectionMethod = handlerKlass.getMethod("setConnection", String.class, Integer.TYPE);
+		connectionMethod.invoke(wih, handlerHost, Integer.valueOf(handlerPort));
+				
+		Method connectMethod = handlerKlass.getMethod("connect");
+		connectMethod.invoke(wih);
+	}
+	
 	public Message process(Message message) throws ConfigurationException {		
 		
 		int sessionId = getSessionId(message);
-		if ((ksession == null) || (ksession.getId() != sessionId)) {
+		if ((ksession == null) || (sessionId < 0) || (ksession.getId() != sessionId)) {
 			if (sessionId >= 0) {
 				ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( sessionId, kbase, config, kenvironment );		
 			} else {		
@@ -153,10 +196,20 @@
 		
 			klogger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "test", 1000);
 		}
-		khandler = new CommandBasedWSHumanTaskHandler(ksession);
+		try {
+			khandler = getHandler(ksession);
+		} catch (Exception e) {
+			throw new ConfigurationException(e);
+		}
+		
 		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", khandler);
-		khandler.connect();
 
+		try {
+			connectHandler(khandler);
+		} catch (Exception e) {
+			throw new ConfigurationException(e);
+		}
+			
 		// Add security context to message context.
 		addSecurityContext(message);
 		// Add authentication request context to message context.
@@ -198,7 +251,7 @@
 
                 if (processInstanceId != null) {
 	                ksession.abortProcessInstance(processInstanceId.longValue());
-	            } else {
+                } else {
 	                throw new ConfigurationException(ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE 
 	                    + ": tried to abort and process id was null");
 	            }
@@ -209,8 +262,6 @@
 		message.getContext().setContext(ProcessConstants.SESSION_ID, sessionId);
 		message.getContext().setContext(ProcessConstants.PROCESS_INSTANCE_ID, 
 				processInstanceId);
-
-		ksession.dispose();
 		
 		return message;
 	}

Deleted: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/resources/META-INF/JBPMorm.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/resources/META-INF/JBPMorm.xml	2012-04-26 19:08:27 UTC (rev 38065)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/resources/META-INF/JBPMorm.xml	2012-04-30 19:57:39 UTC (rev 38066)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
-               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
-               version="1.0">  
-      <named-query name="ProcessInstancesWaitingForEvent">
-          <query>
-select 
-    processInstanceInfo.processInstanceId
-from 
-    ProcessInstanceInfo processInstanceInfo join processInstanceInfo.eventTypes eventTypes
-where
-    eventTypes = :type
-          </query>
-      </named-query>
-</entity-mappings>



More information about the jboss-svn-commits mailing list