[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