[jboss-svn-commits] JBL Code SVN: r38147 - in labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb: services/jbpm5 and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 19 13:07:14 EDT 2012


Author: tcunning
Date: 2012-07-19 13:07:14 -0400 (Thu, 19 Jul 2012)
New Revision: 38147

Added:
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessConstants.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessType.java
Removed:
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/service/
Modified:
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/AbstractBpm5Action.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Callback.java
   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/workitem/esb/ESBActionWorkItemHandler.java
Log:
JBESB-3830
Add SIGNAL_EVENT, remove a duplicated method, and configure replyToOriginator.


Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/AbstractBpm5Action.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/AbstractBpm5Action.java	2012-07-19 16:51:04 UTC (rev 38146)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/AbstractBpm5Action.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -40,7 +40,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 
-import org.jboss.soa.esb.service.jbpm5.model.ProcessConstants;
+import org.jboss.soa.esb.services.jbpm5.model.ProcessConstants;
 import org.jboss.soa.esb.util.ClassUtil;
 import org.jboss.soa.esb.workitem.esb.ESBActionWorkItemHandler;
 import org.jboss.soa.esb.workitem.esb.ESBServiceWorkItemHandler;
@@ -123,25 +123,6 @@
         kbase = kbuilder.newKnowledgeBase();
 	}
 	
-    /**
-     * Verify that the process action matches one of the valid process action values.
-     * @param processAction process action
-     * @throws ConfigurationException 
-     */
-    public void verifyProcessAction(String processAction) throws ConfigurationException 
-    {
-    	if ((ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE.equals(processAction)) ||
-    		(ProcessConstants.START_PROCESS_TYPE.equals(processAction))) {
-    		return;
-    	} else {
-    		throw new ConfigurationException("Process action " + processAction +
-    			"does not match valid process actions (" + 
-    			ProcessConstants.START_PROCESS_TYPE + ", " +
-    			ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE + ")");
-    	}
-    			
-    }
-
 	public WorkItemHandler getHandler(StatefulKnowledgeSession session) throws ClassNotFoundException,
 		NoSuchMethodException, IllegalAccessException, InstantiationException,
 		InvocationTargetException {

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Callback.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Callback.java	2012-07-19 16:51:04 UTC (rev 38146)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Callback.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -12,7 +12,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Body;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.service.jbpm5.model.ProcessConstants;
+import org.jboss.soa.esb.services.jbpm5.model.ProcessConstants;
 
 import org.apache.log4j.Logger;
 

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-07-19 16:51:04 UTC (rev 38146)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/actions/Bpm5Processor.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -35,12 +35,12 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Body;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.jbpm5.model.ProcessConstants;
+import org.jboss.soa.esb.services.jbpm5.model.ProcessType;
 import org.jboss.soa.esb.services.security.SecurityContext;
 import org.jboss.soa.esb.services.security.SecurityService;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
 
-import org.jboss.soa.esb.service.jbpm5.model.ProcessType;
-import org.jboss.soa.esb.service.jbpm5.model.ProcessConstants;
 
 import org.drools.runtime.process.ProcessInstance;
 
@@ -77,6 +77,7 @@
     public void verifyProcessAction(String processAction) throws ConfigurationException 
     {
     	if ((ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE.equals(processAction)) ||
+    		(ProcessConstants.SIGNAL_EVENT_TYPE.equals(processAction)) ||
     		(ProcessConstants.START_PROCESS_TYPE.equals(processAction))) {
     		return;
     	} else {
@@ -103,20 +104,45 @@
 	    int sessionId = ksession.getId();
 		switch (processType) {
 			case START_PROCESS:
-				logger.info(ProcessConstants.START_PROCESS_TYPE);				
+				logger.debug(ProcessConstants.START_PROCESS_TYPE);				
 				Map<String, Object> params = BpmParameterMapper.mapPropertiesToParams(message, configTree);
-				params.put(ProcessConstants.SESSION_ID, Integer.toString(sessionId));
-	            processInstance = ksession.startProcess(processId, params);
+				try {
+					params.remove(ProcessConstants.SESSION_ID);
+					params.put(ProcessConstants.SESSION_ID, Integer.toString(sessionId));
+				} catch (Exception e) {
+					logger.error("", e);
+				}
+				processInstance = ksession.startProcess(processId, params);
 	            processInstanceId = Long.valueOf(processInstance.getId());				
 
 	            final Call call = message.getHeader().getCall() ;
 	            setEPR(message.getBody(), ProcessConstants.REPLY_TO, getEPR(call.getReplyTo())) ;
 	            setEPR(message.getBody(), ProcessConstants.FAULT_TO, getEPR(call.getFaultTo())) ;
 
-	            
                 break;
+			case SIGNAL_EVENT:
+				logger.debug(ProcessConstants.SIGNAL_EVENT_TYPE);
+                Map<String, Object> eventParams = BpmParameterMapper.mapPropertiesToParams(message, configTree);
+                try {
+       				eventParams.remove(ProcessConstants.SESSION_ID);
+                	eventParams.remove(ProcessConstants.PROCESS_EVENT);
+                	eventParams.put(ProcessConstants.PROCESS_EVENT, message.getProperties().getProperty(ProcessConstants.PROCESS_EVENT));
+                	eventParams.put(ProcessConstants.SESSION_ID, Integer.toString(sessionId));
+                } catch (Exception e) {                                 
+                	logger.error("", e);
+                }
+                
+                String processEventType = (String) message.getProperties().getProperty(ProcessConstants.PROCESS_EVENT_TYPE);
+                processInstanceId = getProcessInstanceId(message);
+                if (processInstanceId != null) {
+                    ksession.signalEvent(processEventType, eventParams, processInstanceId.longValue());
+                } else {
+                    throw new ActionProcessingException(ProcessConstants.SIGNAL_EVENT_TYPE
+                        + ": tried to signal event and process id was null");
+                }
+                break;
 	        case ABORT_PROCESS_INSTANCE:
-				logger.info(ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE);
+				logger.debug(ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE);
                 processInstanceId = getProcessInstanceId(message);
 
                 if (processInstanceId != null) {

Added: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessConstants.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessConstants.java	                        (rev 0)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessConstants.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.jbpm5.model;
+
+/**
+ * Constants used in the BPM5Processor.
+ *  
+ * @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
+ * @since Version 4.11
+ */
+public class ProcessConstants {
+	/* EPR reply/fault */
+	public static final String EPR_REPLY = "reply" ;
+    public static final String EPR_FAULT = "fault" ;
+    public static final String REPLY_TO = "jbpmReplyTo";
+    public static final String FAULT_TO = "jbpmFaultTo";
+
+	
+	/* Process Types */
+	public static final String START_PROCESS_TYPE = "startProcess";
+	public static final String SIGNAL_EVENT_TYPE = "signalEvent";
+    public static final String ABORT_PROCESS_INSTANCE_TYPE = "abortProcessInstance";
+
+	/* 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";
+    public static final String PROCESS_ID = "process-id";
+    public static final String PROCESS_COMMAND = "command";
+    public static final String PROCESS_ACTION = "process-action";
+    public static final String ESB_TO_BPM_PARAMS = "esbToBpmParams";
+    public static final String ENTITY_FACTORY_NAME = "entityFactoryName";
+
+    /* Message context properties */
+    public static final String SESSION_ID = "jbpm5-session-id";
+    public static final String PROCESS_INSTANCE_ID = "jbpm5-processinstance-id";
+	public static final String WORK_ITEM_ID					= "jbpmWorkItemId";
+
+}

Added: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessType.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessType.java	                        (rev 0)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/services/jbpm5/model/ProcessType.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.jbpm5.model;
+
+/**
+ * Process type enum.
+ *  
+ * @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
+ * @since Version 4.11
+ */
+public enum ProcessType {
+	/** startProcess . */
+    START_PROCESS(ProcessConstants.START_PROCESS_TYPE),
+    /** signalEvent . */
+    SIGNAL_EVENT(ProcessConstants.SIGNAL_EVENT_TYPE),
+    /** abortProcessInstance . */
+    ABORT_PROCESS_INSTANCE(ProcessConstants.ABORT_PROCESS_INSTANCE_TYPE);
+
+    private final String _action;
+        
+    /**
+     * Constructs a new ProcessActionType with the specified action.
+     * @param action the action
+     */
+    ProcessType(String action) {
+        _action = action;
+    }
+
+    /**
+     * Gets the action.
+     * @return the action
+     */
+    public String action() {
+        return _action;
+    }
+
+    /**
+     * Gets the ProcessActionType matching the specified action.
+     * @param action the action
+     * @return the matching ProcessActionType
+     */
+    public static ProcessType fromAction(String action) {
+        for (ProcessType pat : values()) {
+            if (pat.action().equals(action)) {
+                return pat;
+            }
+        }
+        return null;
+    }
+
+}

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/workitem/esb/ESBActionWorkItemHandler.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/workitem/esb/ESBActionWorkItemHandler.java	2012-07-19 16:51:04 UTC (rev 38146)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/services/jbpm5/src/main/java/org/jboss/soa/esb/workitem/esb/ESBActionWorkItemHandler.java	2012-07-19 17:07:14 UTC (rev 38147)
@@ -46,7 +46,7 @@
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 
-import org.jboss.soa.esb.service.jbpm5.model.ProcessConstants;
+import org.jboss.soa.esb.services.jbpm5.model.ProcessConstants;
 
 public class ESBActionWorkItemHandler implements WorkItemHandler {
 
@@ -80,7 +80,10 @@
     	jbpmSessionId = (String) workItem.getParameter("jbpm5-session-id");
         callbackCategoryName = (String) workItem.getParameter("CallbackServiceCategory");
         callbackServiceName = (String) workItem.getParameter("CallbackServiceName");
-    	
+        if (! "".equals(workItem.getParameter("replyToOriginator"))) {
+            replyToOriginator = (String) workItem.getParameter("replyToOriginator");
+        }
+        
         if (replyToOriginator != null) {
             if (!(ProcessConstants.EPR_REPLY.equals(replyToOriginator) 
             		|| ProcessConstants.EPR_FAULT.equals(replyToOriginator))) {            	



More information about the jboss-svn-commits mailing list