[jboss-svn-commits] JBL Code SVN: r11213 - in labs/jbossesb/trunk/product/services/jbpm/src: main/java/org/jboss/soa/esb/services/jbpm/actions and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 22 22:33:56 EDT 2007


Author: estebanschifman
Date: 2007-04-22 22:33:56 -0400 (Sun, 22 Apr 2007)
New Revision: 11213

Added:
   labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testSingleCommands.xml
Removed:
   labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testDeployProcessDef.xml
   labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testNewProcessInstance.xml
Modified:
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessor.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/DefaultMessageFacadeFactoryImpl.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/DeployProcessDefinitionFacade.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/FacadeUtil.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/NewProcessInstanceFacade.java
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/VariableMapping.java
   labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessorUnitTest.java
Log:
Work on jbpm SingleCommandProcessor

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -65,6 +65,7 @@
 	public static final String RETCODE_ERROR				="jbpmReturnError";
 
 	// tag names for xml configuration of actions
+	public static final String COMMAND_CODE_TAG				="command";
 	public static final String PROCESS_DEFINITION_XML_TAG	="ProcessDefinitionXml";
 	public static final String PROCESS_DEFINITION_NAME_TAG	="processDefinitionName";
 	public static final String PROCESS_DEFINITION_ID_TAG	="processDefinitionId";

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessor.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessor.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -29,6 +29,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.jbpm.Constants;
+import org.jboss.soa.esb.services.jbpm.util.Helper;
 
 /**
 *
@@ -58,6 +59,7 @@
 	public Message process(Message message)
 		throws MalformedEPRException, CourierException, ActionProcessingException
 	{
+		message.getBody().add(Constants.COMMAND_CODE,getOpCode().toString());
 		_stuffer.preFormat(message);
 		Message response = super.process(message);
 		return _stuffer.postFormat(response);

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/DefaultMessageFacadeFactoryImpl.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/DefaultMessageFacadeFactoryImpl.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/DefaultMessageFacadeFactoryImpl.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -71,6 +71,12 @@
 						+"- see CommandVehicle.Operation enum for possible values");
 		}
 		
+		if 	(Constants.OpCode.CancelProcessInstanceCommand	.equals(opCode))
+			return new PassThrough(opCode);
+		if 	(Constants.OpCode.CancelTokenCommand			.equals(opCode))
+			return new PassThrough(opCode);
+		if 	(Constants.OpCode.CancelWorkOnTaskCommand		.equals(opCode))
+			return new PassThrough(opCode);
 		if 	(Constants.OpCode.DeployProcessDefinition		.equals(opCode))
 			return new DeployProcessDefinitionFacade(config);
 		if	(Constants.OpCode.GetProcessInstanceCommand		.equals(opCode))

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/DeployProcessDefinitionFacade.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/DeployProcessDefinitionFacade.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/DeployProcessDefinitionFacade.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -77,7 +77,6 @@
 	
 	public void preFormat(Message message) 
 	{
-		message.getBody().add(Constants.COMMAND_CODE,getOpCode().toString());
 		message.getBody().add(Constants.PROCESS_DEFINITION, _processDef);
 	} // ________________________________
     

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/FacadeUtil.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/FacadeUtil.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/FacadeUtil.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -1,5 +1,6 @@
 package org.jboss.soa.esb.services.jbpm.internal.facades;
 
+import java.util.Iterator;
 import java.util.Map;
 
 import org.jboss.soa.esb.ConfigurationException;
@@ -72,11 +73,21 @@
 							+Constants.ESB_VARNAME_TAG +"' must be specified");
 			}
 			String value = curr.getAttribute("value");
-			if (! acceptValue && (null!=value))
-				throw new ConfigurationException("'value' attribute is incompatible with the '"
+			if (acceptValue)
+			{
+				if (null==value)
+					throw new ConfigurationException("'value' attribute is required for the '"
 							+tree.getAttribute(SingleCommandProcessor.COMMAND_ATTRIBUTE_TAG)
 							+"' command");
-
+			}
+			else
+			{
+				if (null!=value)
+					throw new ConfigurationException("'value' attribute is incompatible with the '"
+							+tree.getAttribute(SingleCommandProcessor.COMMAND_ATTRIBUTE_TAG)
+							+"' command");
+			}
+			// add entry even if value is null, so we'll have mapping anyways
 			ret.setVariable(esbName, jbpmName, value);
 		}
 		return ret;
@@ -114,7 +125,6 @@
 		return ret;
 	} //________________________________
 
-	@SuppressWarnings("unchecked")
 	static void jbpmVarsToMessage(Message message, VariableMapping mapping)
 	{
 		Body body = message.getBody();
@@ -122,18 +132,19 @@
 		if (null==obj)
 			return;
 
-		Map<String,Object> jbpmVars = null; 
+		Map map = null;
 		if 		(obj instanceof ProcessInstance)
-			jbpmVars	= ((ProcessInstance)obj).getContextInstance().getVariables();
+			map= ((ProcessInstance)obj).getContextInstance().getVariables();
 		else if	(obj instanceof TaskInstance)
-			jbpmVars	= ((TaskInstance)obj).getContextInstance().getVariables();
+			map = ((TaskInstance)obj).getContextInstance().getVariables();
 		else
 			throw new IllegalArgumentException("Unknown return jbpmObject in message");
 
-		for (Map.Entry<String, Object> curr: jbpmVars.entrySet())
+		for (Iterator II = map.entrySet().iterator();  II.hasNext();)
 		{
-			String keyInMsg = (null==mapping) ? curr.getKey()
-					: mapping.getEsbName(curr.getKey());
+			Map.Entry curr = (Map.Entry)II.next();
+			String keyInMsg = (null==mapping) ? (String)curr.getKey()
+					: mapping.getEsbName((String)curr.getKey());
 			if (null!=curr.getValue())
 				body.add(keyInMsg, curr.getValue());
 		}

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/NewProcessInstanceFacade.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/NewProcessInstanceFacade.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/NewProcessInstanceFacade.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -58,7 +58,7 @@
 			{
 				throw new ConfigurationException("Invalid value for '"+Constants.PROCESS_DEFINITION_ID_TAG+"'");
 			}
-		_variables	= FacadeUtil.variablesFromConfig(config, false);
+		_variables	= FacadeUtil.variablesFromConfig(config, true);
 		
 		if (_start)
 			_transitionName	= config.getAttribute(Constants.TRANSITION_NAME_TAG);

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/VariableMapping.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/VariableMapping.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/internal/facades/VariableMapping.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -57,7 +57,7 @@
 	{ 
 		HashMap<String,Object> map = new HashMap<String, Object>();
 		for (Map.Entry<String, Object> curr: _values.entrySet())
-			map.put(_jbpmNames.get(curr.getKey()), curr.getValue());
+			map.put(getJbpmName(curr.getKey()), curr.getValue());
 		return map;
 	}
 }

Modified: labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessorUnitTest.java	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/SingleCommandProcessorUnitTest.java	2007-04-23 02:33:56 UTC (rev 11213)
@@ -30,6 +30,7 @@
 
 import org.apache.log4j.Logger;
 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.jbpm.Constants;
 import org.jboss.soa.esb.services.jbpm.util.Helper;
@@ -104,40 +105,64 @@
     }
     
     @Test
-    public void testSequence()
-    {
-    	testDeployProcessDef();
-    	testNewProcessInstance();
-    }
-    
-    public void testDeployProcessDef()
-    {
-    	try
-    	{
-    		String tree = JbpmTestUtil.stringFromFile("testDeployProcessDef.xml");
-    		SingleCommandProcessor command = new SingleCommandProcessor(ConfigTree.fromXml(tree));
-    		Message response = command.process(Helper.commandMessageTemplate());
-    		_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
-    		String ret = Helper.getStringValue(response, Constants.RETURN_CODE);
-    		assertTrue(Constants.RETCODE_OK.equals(ret));
-    	}
-    	catch (Exception e)
-    	{
-    		_logger.error(e);
-    		assertTrue(false);
-    	}
-    } //________________________________
- 
-	public void testNewProcessInstance()
+	public void testSingleCommandProcessor()
 	{
+		Message					request, response;
+		SingleCommandProcessor	command;
+		String					ret;
 		try
 		{
-			String tree = JbpmTestUtil.stringFromFile("testDeployProcessDef.xml");
-			SingleCommandProcessor command = new SingleCommandProcessor(ConfigTree.fromXml(tree));
-			Message response = command.process(Helper.commandMessageTemplate());
+			String xml = JbpmTestUtil.stringFromFile("testSingleCommands.xml");
+			ConfigTree[] actions = ConfigTree.fromXml(xml).getChildren("action");
+			int	index	= 0;
+
+			command = new SingleCommandProcessor(actions[index++]);
+    		response = command.process(Helper.commandMessageTemplate());
+    		_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
+    		ret = Helper.getStringValue(response, Constants.RETURN_CODE);
+    		assertTrue(Constants.RETCODE_OK.equals(ret));
+
+    		// Keep the variables for comparison in future steps
+			ConfigTree[] vars = actions[index].getFirstChild("Variables").getChildren("variable");
+
+    		command = new SingleCommandProcessor(actions[index++]);
+			response = command.process(Helper.commandMessageTemplate());
 			_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
-			String ret = Helper.getStringValue(response, Constants.RETURN_CODE);
+			ret = Helper.getStringValue(response, Constants.RETURN_CODE);
 			assertTrue(Constants.RETCODE_OK.equals(ret));
+			
+			Long tokenId	= (Long)response.getBody().get(Constants.TOKEN_ID);
+			Long processId	= (Long)response.getBody().get(Constants.PROCESS_INSTANCE_ID);
+			
+			command	= new SingleCommandProcessor(actions[index++]);
+			request	= Helper.commandMessageTemplate();
+			Helper.setLongValue(request, Constants.TOKEN_ID, tokenId);
+			response	= command.process(request);
+			_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
+			ret = Helper.getStringValue(response, Constants.RETURN_CODE);
+			assertTrue(Constants.RETCODE_OK.equals(ret));
+			
+			// we've mapped differently, so check if mapping worked both ways
+			Body body = response.getBody();
+			assertTrue(vars[0].getAttribute("value").equals(body.get("xxx")));
+			assertTrue(vars[1].getAttribute("value").equals(body.get("yyy")));
+			
+			command	= new SingleCommandProcessor(actions[index++]);
+			request	= Helper.commandMessageTemplate();
+			Helper.setLongValue(request, Constants.PROCESS_INSTANCE_ID, processId);
+			response	= command.process(request);
+			_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
+			ret = Helper.getStringValue(response, Constants.RETURN_CODE);
+			assertTrue(Constants.RETCODE_OK.equals(ret));
+			
+			command	= new SingleCommandProcessor(actions[index++]);
+			request	= Helper.commandMessageTemplate();
+			Helper.setLongValue(request, Constants.PROCESS_INSTANCE_ID, processId);
+			response	= command.process(request);
+			_logger.info(JbpmTestUtil.dumpResponse(response, command.getOpCode()));
+			ret = Helper.getStringValue(response, Constants.RETURN_CODE);
+			assertTrue(Constants.RETCODE_OK.equals(ret));			
+			
 		}
 		catch (Exception e)
 		{

Deleted: labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testDeployProcessDef.xml
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testDeployProcessDef.xml	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testDeployProcessDef.xml	2007-04-23 02:33:56 UTC (rev 11213)
@@ -1,21 +0,0 @@
-<action	name="one" class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
-		command="DeployProcessDefinition">
-	<ProcessDefinitionXml version="1.0" encoding="UTF-8">
-		<process-definition 
-		  xmlns="urn:jbpm.org:jpdl-3.1"
-		  name="simple"
-		 >
-		   <start-state name="start">
-		      <transition name="to_state" to="first">
-		         
-		      </transition>
-		   </start-state>
-		   <state name="first">
-		      <transition name="to_end" to="end">
-		         
-		      </transition>
-		   </state>
-		   <end-state name="end"></end-state>
-			</process-definition>
-	</ProcessDefinitionXml>
-</action>

Deleted: labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testNewProcessInstance.xml
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testNewProcessInstance.xml	2007-04-22 23:28:17 UTC (rev 11212)
+++ labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testNewProcessInstance.xml	2007-04-23 02:33:56 UTC (rev 11213)
@@ -1,4 +0,0 @@
-<action	name="two" class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
-		command="NewProcessInstanceCommand">
-		<ProcessDefinition name="simple" />
-</action>

Added: labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testSingleCommands.xml
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testSingleCommands.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testSingleCommands.xml	2007-04-23 02:33:56 UTC (rev 11213)
@@ -0,0 +1,60 @@
+<testActions>
+	<action	name="TestDeploy" 
+			class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
+			command="DeployProcessDefinition">
+		<ProcessDefinitionXml version="1.0" encoding="UTF-8">
+			<process-definition 
+			  xmlns="urn:jbpm.org:jpdl-3.1"
+			  name="simple"
+			 >
+			   <start-state name="start">
+			      <transition name="to_state" to="first">
+			         
+			      </transition>
+			   </start-state>
+			   <state name="first">
+			      <transition name="to_end" to="end">
+			         
+			      </transition>
+			   </state>
+			   <end-state name="end"></end-state>
+				</process-definition>
+		</ProcessDefinitionXml>
+	</action>
+
+	<action	name="aNewInstance" 
+			class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
+			command="NewProcessInstanceCommand"
+			processDefinitionName="simple"
+			actor="FrankSinatra"
+			>
+			<Variables>
+				<variable esbName="eVar1" jbpmName="j1"  value="AAAbbb111" />
+				<variable esbName="eVar2" jbpmName="vJ22"  value="998877" />
+			</Variables>
+	</action>
+
+	<action	name="nowGetItBack" 
+			class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
+			command="GetProcessInstanceCommand"
+			>
+			<Variables>
+				<variable esbName="yyy" jbpmName="vJ22" />
+				<variable esbName="xxx" jbpmName="j1"  />
+			</Variables>
+	</action>
+
+	<action	name="nowCancelIt" 
+			class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
+			command="CancelProcessInstanceCommand"
+			>
+	</action>
+
+	<action	name="getItAgain" 
+			class="org.jboss.soa.esb.services.jbpm.actions.SingleCommandProcessor"
+			command="GetProcessInstanceCommand"
+			includeAllVariables="true"
+			>
+	</action>
+
+</testActions>


Property changes on: labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/testSingleCommands.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list