[jboss-svn-commits] JBL Code SVN: r11382 - in labs/jbossesb/trunk/product: samples/quickstarts/jbpm_simple1/src/quickstart/jbpm_simple1/test and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Apr 26 17:04:44 EDT 2007
Author: estebanschifman
Date: 2007-04-26 17:04:44 -0400 (Thu, 26 Apr 2007)
New Revision: 11382
Removed:
labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/processimage.jpg
labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/readme.txt
Modified:
labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/jboss-esb.xml
labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/src/quickstart/jbpm_simple1/test/TestBpmProcessor.java
labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java
Log:
Work on jbpm_simple1 quickstart
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/build.xml 2007-04-26 21:00:57 UTC (rev 11381)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/build.xml 2007-04-26 21:04:44 UTC (rev 11382)
@@ -40,10 +40,15 @@
<target name="runtest" depends="compile"
description="run full jBPM process lifecycle test">
- <echo>Example of a full jBPM process lifecycle</echo>
+ <echo>Configure and invoke several jbpm processors</echo>
- <java fork="yes" classname="quickstart.jbpm_simple1.test.TestCommandMessages" failonerror="true">
- <classpath refid="exec-classpath"/>
+ <java fork="yes" classname="quickstart.jbpm_simple1.test.TestBpmProcessor" failonerror="true">
+ <classpath>
+ <pathelement location="." />
+ <pathelement location="${basedir}/src" />
+ <pathelement location="${classes}" />
+ <path refid="compile-classpath" />
+ </classpath>
<sysproperty key="log4j.configuration" value="log4j.xml" />
</java>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/jboss-esb.xml 2007-04-26 21:00:57 UTC (rev 11381)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/jboss-esb.xml 2007-04-26 21:04:44 UTC (rev 11382)
@@ -3,61 +3,118 @@
<providers>
<fs-provider name="FSprovider1">
- <fs-bus busid="jbpmFileChannel" >
+ <fs-bus busid="jbpmProcessDeployerChannel" >
<fs-message-filter
directory="/tmp"
- input-suffix=".toJbpmQs1"
+ input-suffix=".deployProcess"
post-delete="true"
error-delete="true"
/>
</fs-bus>
+
+ <fs-bus busid="jbpmProcessInstantiatorChannel" >
+ <fs-message-filter
+ directory="/tmp"
+ input-suffix=".newProcessInstance"
+ post-delete="true"
+ error-delete="true"
+ />
+ </fs-bus>
+
+ <fs-bus busid="jbpmProcessGetterChannel" >
+ <fs-message-filter
+ directory="/tmp"
+ input-suffix=".getProcessInstance"
+ post-delete="true"
+ error-delete="true"
+ />
+ </fs-bus>
</fs-provider>
</providers>
<services>
<service
category="jbpmQsCat1"
- name="jbpmQsName1"
- description="Hello World File Action (esb listener)" >
+ name="deployer"
+ description="Deploys a process definition" >
<listeners>
- <fs-listener name="JbpmQuickstart_1"
- busidref="jbpmFileChannel"
+ <fs-listener name="OrderProcessDeployer"
+ busidref="jbpmProcessDeployerChannel"
maxThreads="1"
poll-frequency-seconds="3"
/>
</listeners>
<actions>
- <action name="TestDeployFromFile"
+ <action name="DeployFromFile"
class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor"
>
<property name="command" value="DeployProcessDefinition" />
- <property name="process-definition-file" value="simpleProcessDefinition.xml" />
+ <property name="process-definition-file" value="/simpleProcessDefinition.xml" />
</action>
+ </actions>
+ </service>
+
+ <service
+ category="jbpmQsCat2"
+ name="instantiator"
+ description="New Instance of 'simple' process" >
+ <listeners>
+ <fs-listener name="ProcessInstantiator"
+ busidref="jbpmProcessInstantiatorChannel"
+ maxThreads="1"
+ poll-frequency-seconds="3"
+ />
+ </listeners>
+
+ <actions>
<action name="aNewInstance"
class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor"
>
<property name="command" value="NewProcessInstanceCommand" />
<property name="process-definition-name" value="simple"/>
<property name="actor" value="FrankSinatra"/>
- <property name="variables">
- <variable esb-name="eVar1" jbpm-name="j1" value="AAAbbb111" />
- <variable esb-name="eVar2" jbpm-name="vJ22" value="998877" />
+ <property name="esb-to-jbpm">
+ <variables>
+ <variable esb-name="eVar1" jbpm-name="orderNumber" value="111-223344-5" />
+ <variable esb-name="eVar2" jbpm-name="orderDate" value="2007/04/26" />
+ </variables>
</property>
</action>
- <action name="nowGetItBack"
+ </actions>
+
+ </service>
+
+ <service
+ category="jbpmQsCat3"
+ name="retriever"
+ description="Retrieve process instance" >
+ <listeners>
+ <fs-listener name="ProcessInterrogator"
+ busidref="jbpmProcessGetterChannel"
+ maxThreads="1"
+ poll-frequency-seconds="3"
+ />
+ </listeners>
+
+ <actions>
+ <action name="aInterrogate"
class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor"
>
<property name="command" value="GetProcessInstanceCommand" />
- <property name="variables">
- <variable esb-name="yyy" jbpm-name="vJ22" />
- <variable esb-name="xxx" jbpm-name="j1" />
+ <property name="jbpm-to-esb">
+ <variables>
+ <variable name="orderNumber" />
+ <variable name="orderDate" />
+ </variables>
</property>
</action>
</actions>
+
</service>
+
</services>
</jbossesb>
Deleted: labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/processimage.jpg
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/readme.txt 2007-04-26 21:00:57 UTC (rev 11381)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/readme.txt 2007-04-26 21:04:44 UTC (rev 11382)
@@ -1,36 +0,0 @@
-Overview:
-=========
- This test assumes that .../product/services/jbpm/build/jbpm.esb has been deployed
- in the esb container deploy directory, and that the esb container is up and running
-
- The jbpm service is configured to use JMS transport, queue/B with a message
- selector: type='toJbpm' (see .../product/services/jbpm/jboss-esb.xml)
-
- It illustrates the lowest level method to invoke the jBPM API:
- all jBPM parameters travel in the Message in a predefined format
- (see org.jboss.soa.esb.services.jbpm.util.CommandVehicle)
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- 1. In a command terminal window in the quickstart folder type 'ant deploy-jms-dests'.
- 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
- 3. Switch to the application server console to see the output from the ESB
-
-
-What to look for in this Quickstart:
-====================================
- 1) A simple process definition (processdefinition.xml) is added to the jBPM DB
- 2) new process instance for it is created
- 3) a signal is sent to the token id returned in the previous call
- 4) a signal is sent to the current process instance id
- 5) the process instance is interrogated to see if it has ended
-
-
- Other quickstarts will use higher level jBPM related specialized services that
- require simpler interfaces, but that under the covers will still use this low
- level command message interface
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/src/quickstart/jbpm_simple1/test/TestBpmProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/src/quickstart/jbpm_simple1/test/TestBpmProcessor.java 2007-04-26 21:00:57 UTC (rev 11381)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jbpm_simple1/src/quickstart/jbpm_simple1/test/TestBpmProcessor.java 2007-04-26 21:04:44 UTC (rev 11382)
@@ -25,7 +25,6 @@
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
import java.io.PrintStream;
import org.apache.log4j.Logger;
@@ -35,7 +34,6 @@
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.services.jbpm.Constants;
import org.jboss.soa.esb.services.jbpm.util.Helper;
-import org.jbpm.graph.exe.Token;
import com.arjuna.common.util.propertyservice.PropertyManager;
@@ -44,84 +42,48 @@
static Logger _logger = Logger.getLogger(TestBpmProcessor.class);
- private static final String TEST_SVC_CATEGORY ="categoryJbpmService";
- private static final String TEST_SVC_NAME ="nameJbpmService";
- private static final String TEST_PROCESS_NAME ="simple";
-
public static void main(String[] args) throws Exception
{
+ setupRegistry();
new TestBpmProcessor().run();
}
-
public void run() throws Exception
{
-
- setupRegistry();
-
- long instanceId=0 , tokenId=0;
- Constants.OpCode opCode = null;
Message request, response;
-
- _logger.info("testFullProcessLifecycle() invoked");
+ String[] curr;
try
{
- opCode = Constants.OpCode.DeployProcessDefinition;
- request = Helper.commandMessageTemplate();
- Helper.setStringValue(request, Constants.COMMAND_CODE, opCode);
- Helper.setStringValue(request, Constants.PROCESS_DEFINITION_XML
- , getProcessDefinitionXml("process_01.xml"));
-
- response = invokeJbpm(request);
- _logger.info(dumpResponse(response, opCode));
- assertTrue(Constants.RETCODE_OK.equals(Helper.getStringValue(response, Constants.RETURN_CODE)));
-
- opCode = Constants.OpCode.NewProcessInstanceCommand;
- request = Helper.commandMessageTemplate();
- Helper.setStringValue(request, Constants.COMMAND_CODE, opCode);
- Helper.setStringValue(request, Constants.PROCESS_DEFINITION_NAME, TEST_PROCESS_NAME);
- response = invokeJbpm(request);
- _logger.info(dumpResponse(response, opCode));
- assertTrue(Constants.RETCODE_OK.equals(Helper.getStringValue(response, Constants.RETURN_CODE)));
-
- instanceId = Helper.getLongValue(response,Constants.PROCESS_INSTANCE_ID);
- tokenId = Helper.getLongValue(response,Constants.TOKEN_ID);
- boolean signalToken = true;
- for (boolean continueLooping = true; continueLooping;)
- {
- opCode = Constants.OpCode.SignalCommand;
- // for this test, alternatively signal: token - process - token ...
-
- request = Helper.commandMessageTemplate();
- Helper.setStringValue(request, Constants.COMMAND_CODE, opCode);
- if (signalToken)
- Helper.setLongValue(request, Constants.TOKEN_ID, tokenId);
- else
- Helper.setLongValue(request, Constants.PROCESS_INSTANCE_ID, instanceId);
- response = invokeJbpm(request);
- signalToken = ! signalToken;
-
- if (null!=response)
- _logger.info(dumpResponse(response, opCode));
- else
- _logger.info("Response was not received");
- assertTrue(Constants.RETCODE_OK.equals(Helper.getObjectValue(response, Constants.RETURN_CODE)));
-
- Token token = (Token)Helper.getObjectValue(response, Constants.JBPM_RETURN_OBJECT);
- if (token.hasEnded())
- break;
- instanceId = Helper.getLongValue(response,Constants.PROCESS_INSTANCE_ID);
- tokenId = Helper.getLongValue(response,Constants.TOKEN_ID);
- }
-
+ curr = new String[]{"jbpmQsCat1" ,"deployer"};
+ request = Helper.commandMessageTemplate();
+ // nothing extra required in message for 'deployer' service
+ response = Invoker.invokeAndAwaitResponse(request,curr[0], curr[1], 30000);
+ System.out.println(dumpResponse(response));
+
+ curr = new String[]{"jbpmQsCat2" ,"instantiator"};
+ request = Helper.commandMessageTemplate();
+ // nothing extra required in message for 'instantiator' service
+ response = Invoker.invokeAndAwaitResponse(request,curr[0], curr[1], 5000);
+ System.out.println(dumpResponse(response));
+
+ Long tokenId = Helper.getLongValue(response, Constants.TOKEN_ID);
+
+ curr = new String[]{"jbpmQsCat3" ,"retriever"};
+ request = Helper.commandMessageTemplate();
+ // we need to specify which token_id we wish to retrieve
+ // it was returned in the response received in the previous step
+ Helper.setLongValue(request, Constants.TOKEN_ID, tokenId);
+
+ response = Invoker.invokeAndAwaitResponse(request,curr[0], curr[1], 5000);
+ System.out.println(dumpResponse(response));
+
}
catch (Exception _ex)
{
_ex.printStackTrace();
assertTrue(false);
}
-
}
/**
@@ -129,7 +91,7 @@
* Had to invoke it because I had trouble to have the properties loaded from jbossesb-properties.xml
* Once that is solved, you can get rid of the invocation to this method (up in the run() )
*/
- protected void setupRegistry() {
+ protected static void setupRegistry() {
PropertyManager mgr = null;
mgr = ModulePropertyManager.getPropertyManager("registry");
@@ -147,41 +109,28 @@
}
- protected Message invokeJbpm(Message request) throws Exception
- {
- return Invoker.invokeAndAwaitResponse(request,TEST_SVC_CATEGORY, TEST_SVC_NAME, 20000);
- }
-
-
- protected String getProcessDefinitionXml(String pFileName) throws Exception
+ public static String dumpResponse(Message response)
{
- InputStream in = this.getClass().getClassLoader().getResourceAsStream(pFileName);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[]ba = new byte[1000];
- int iQ = -1;
- while (-1<(iQ=in.read(ba)))
- if (iQ>0) out.write(ba,0,iQ);
- return out.toString();
- }
+ if (null==response)
+ return "No response received";
+ StringBuilder sb = new StringBuilder("\nResponse from service:\n");
+ sb.append(getObject(response,Constants.RETURN_CODE));
+ sb.append(getObject(response,Constants.ERROR_MESSAGE));
+ sb.append(getObject(response,Constants.EXCEPTION));
+ sb.append(getObject(response,Constants.ACTOR_ID));
+ sb.append(getObject(response,Constants.ACTOR_NAMES_ARRAY));
+ sb.append(getObject(response,Constants.CURRENT_NODE_NAME));
+ sb.append(getObject(response,Constants.JBPM_RETURN_OBJECT));
+ sb.append(getObject(response,Constants.PROCESS_DEFINITION_NAME));
+ sb.append(getObject(response,Constants.PROCESS_DEFINITION_VERSION));
+ sb.append(getObject(response,Constants.PROCESS_INSTANCE_ID));
+ sb.append(getObject(response,Constants.TASK_INSTANCE_ID));
+ sb.append(getObject(response,Constants.TOKEN_ID));
+ sb.append(getObject(response,Constants.HAS_ENDED));
- public static String dumpResponse(Message message, Constants.OpCode opCode)
- {
- StringBuilder sb = new StringBuilder("\nInvoked: ").append(opCode.toString()).append("\n");
- if (null==message)
- return sb.append(" - No response received").toString();
- sb.append(getObject(message,Constants.RETURN_CODE));
- sb.append(getObject(message,Constants.ERROR_MESSAGE));
- sb.append(getObject(message,Constants.EXCEPTION));
- sb.append(getObject(message,Constants.ACTOR_ID));
- sb.append(getObject(message,Constants.ACTOR_NAMES_ARRAY));
- sb.append(getObject(message,Constants.CURRENT_NODE_NAME));
- sb.append(getObject(message,Constants.JBPM_RETURN_OBJECT));
- sb.append(getObject(message,Constants.PROCESS_DEFINITION_NAME));
- sb.append(getObject(message,Constants.PROCESS_DEFINITION_VERSION));
- sb.append(getObject(message,Constants.PROCESS_INSTANCE_ID));
- sb.append(getObject(message,Constants.TASK_INSTANCE_ID));
- sb.append(getObject(message,Constants.TOKEN_ID));
- sb.append(getObject(message,Constants.HAS_ENDED));
+ sb.append(getObject(response,"orderDate"));
+ sb.append(getObject(response,"orderNumber"));
+
return sb.append("_______________________________________________________________________")
.toString();
}
Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java 2007-04-26 21:00:57 UTC (rev 11381)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java 2007-04-26 21:04:44 UTC (rev 11382)
@@ -52,10 +52,10 @@
public class CommandInterpreter implements ActionLifecycle
{
public void destroy() throws ActionLifecycleException {
- System.out.println("destroy() invoked");
+ _logger.info("destroy() invoked");
}
public void initialise() throws ActionLifecycleException {
- System.out.println("initialise() invoked - config="+_config);
+ _logger.info("initialise() invoked - config="+_config);
if (null==_config)
_config = new ConfigTree("autoGenerated");
More information about the jboss-svn-commits
mailing list