[jbpm-commits] JBoss JBPM SVN: r5597 - jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 31 05:00:33 EDT 2009
Author: alex.guizar at jboss.com
Date: 2009-08-31 05:00:32 -0400 (Mon, 31 Aug 2009)
New Revision: 5597
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java
Log:
[JBPM-983] stabilize test under hsqldb
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java 2009-08-31 08:26:10 UTC (rev 5596)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java 2009-08-31 09:00:32 UTC (rev 5597)
@@ -20,11 +20,11 @@
*/
public class JBPM983Test extends AbstractDbTestCase {
- private static Log log = LogFactory.getLog(JBPM983Test.class);
-
- private long subProcessDefinitionId;
private long processDefinitionId;
+ private long subProcessDefinitionId;
+ private static Log log = LogFactory.getLog(JBPM983Test.class);
+
protected void setUp() throws Exception {
super.setUp();
@@ -43,11 +43,9 @@
&& dialect.indexOf("HSQL") == -1) { // multiple threads will not be supported on HSQL
jbpmConfiguration.getJobExecutor().setNbrOfThreads(4);
}
- startJobExecutor();
}
protected void tearDown() throws Exception {
- stopJobExecutor();
jbpmConfiguration.getJobExecutor().setNbrOfThreads(1);
graphSession.deleteProcessDefinition(processDefinitionId);
@@ -56,68 +54,51 @@
super.tearDown();
}
- static final String SUBPROCESS_XML = "<?xml version='1.0' encoding='UTF-8'?>"
+ static final String SUBPROCESS_XML = "<?xml version='1.0'?>"
+ "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='subprocess'>"
+ "<start-state name='start-state1'>"
+ " <description>start of the process</description>"
- + " <transition name='start-to-check' to='fileCheck' />"
+ + " <transition name='start-to-check' to='fileCheck'/>"
+ "</start-state>"
- + ""
+ "<node name='fileCheck' async='exclusive'>"
- + " <action name='action_filecheck' class='"
- + TestAction.class.getName()
- + "'>"
+ + " <action name='action_filecheck' class='" + TestAction.class.getName() + "'>"
+ " </action>"
- + " <transition name='check-to-do' to='doWhatever'></transition>"
- + "</node>"
- + ""
+ + " <transition name='check-to-do' to='doWhatever'/>"
+ + "</node>"
+ "<node name='doWhatever' async='exclusive'>"
- + " <action name='action_do' class='"
- + TestAction.class.getName()
- + "'>"
- + " </action>"
- + " <transition name='check-to-end' to='end-state-success'></transition>"
+ + " <action name='action_do' class='" + TestAction.class.getName() + "'/>"
+ + " <transition name='check-to-end' to='end-state-success'/>"
+ "</node>"
- + ""
+ "<end-state name='end-state-success'>"
- + " <description>process finished normally</description>"
+ + " <description>process finished normally</description>"
+ "</end-state>"
+ "</process-definition>";
- static final String PROCESS_XML = "<?xml version='1.0' encoding='UTF-8'?>"
+ static final String PROCESS_XML = "<?xml version='1.0'?>"
+ "<process-definition xmlns='urn:jbpm.org:jpdl-3.2' name='superprocess'>"
+ "<start-state name='start-state1'>"
+ " <description>start of the process</description>"
- + " <transition name='start-to-check' to='fileCheck' />"
- + "</start-state>"
- + ""
+ + " <transition name='start-to-check' to='fileCheck'/>"
+ + "</start-state>" + ""
+ "<node name='fileCheck' async='true'>"
- + " <action name='action_check' class='"
- + TestAction.class.getName()
- + "'>"
- + " </action>"
- + " <transition name='check-to-fork' to='fork1'></transition>"
+ + " <action name='action_check' class='" + TestAction.class.getName() + "'/>"
+ + " <transition name='check-to-fork' to='fork1'/>"
+ "</node>"
- + ""
+ "<fork name='fork1'>"
- + " <transition name='toNode1' to='node1'></transition>"
- + " <transition name='toNode2' to='node2'></transition>"
+ + " <transition name='toNode1' to='node1'/>"
+ + " <transition name='toNode2' to='node2'/>"
+ "</fork>"
- + ""
+ "<process-state name='node1' async='exclusive'>"
- + " <sub-process name='subprocess' />"
- + " <transition name='node1toJoin1' to='join1'></transition>"
+ + " <sub-process name='subprocess'/>"
+ + " <transition name='node1toJoin1' to='join1'/>"
+ "</process-state>"
- + ""
+ "<process-state name='node2' async='exclusive'>"
- + " <sub-process name='subprocess' />"
- + " <transition name='node2toJoin1' to='join1'></transition>"
+ + " <sub-process name='subprocess'/>"
+ + " <transition name='node2toJoin1' to='join1'/>"
+ "</process-state>"
- + ""
+ "<join name='join1'>"
- + " <transition name='joinToEnd' to='end-state-success'></transition>"
+ + " <transition name='joinToEnd' to='end-state-success'/>"
+ "</join>"
- + ""
+ "<end-state name='end-state-success'>"
+ " <description>process finished normally</description>"
+ "</end-state>"
@@ -138,74 +119,35 @@
newTransaction();
}
+ processJobs(5 * 60 * 1000);
+
for (int i = 0; i < processCount; i++) {
long piId = processInstanceIds[i];
- waitFor(piId);
-
ProcessInstance pi = jbpmContext.loadProcessInstance(piId);
assertEquals("end-state-success", pi.getRootToken().getNode().getName());
}
}
- protected void waitFor(long piId) throws Exception {
- final int endTimeout = 60;
- long startTime = System.currentTimeMillis();
-
- while (!jbpmContext.loadProcessInstance(piId).hasEnded()) {
- if (System.currentTimeMillis() - startTime > endTimeout * 1000) {
- fail("Aborting after " + endTimeout + " seconds.");
- break;
- }
-
- newTransaction();
-
- log.info("waiting for workflow completion....");
- try {
- Thread.sleep(200);
- }
- catch (InterruptedException e) {
- log.error("wait for workflow was interruputed", e);
- break;
- }
- }
- }
-
public static class TestAction implements ActionHandler {
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
- String processName = executionContext.getProcessDefinition().getName()
- + ":"
+ String processName = executionContext.getProcessDefinition().getName() + ":"
+ executionContext.getProcessInstance().getId();
- String nodeName = executionContext.getToken().getNode().getName();
+ String nodeName = executionContext.getNode().getName();
String tokenName = executionContext.getToken().toString();
- log.info("ACTION (process="
- + processName
- + ",node="
- + nodeName
- + ",token="
- + tokenName
+ log.info("ACTION (process=" + processName + ",node=" + nodeName + ",token=" + tokenName
+ "): begin");
for (int i = 0; i < 5; i++) {
- log.info("ACTION (process="
- + processName
- + ",node="
- + nodeName
- + ",token="
- + tokenName
+ log.info("ACTION (process=" + processName + ",node=" + nodeName + ",token=" + tokenName
+ "): working...");
Thread.sleep(100);
}
- log.info("ACTION (process="
- + processName
- + ",node="
- + nodeName
- + ",token="
- + tokenName
+ log.info("ACTION (process=" + processName + ",node=" + nodeName + ",token=" + tokenName
+ "): end");
executionContext.leaveNode();
More information about the jbpm-commits
mailing list