Author: alex.guizar(a)jboss.com
Date: 2010-03-18 16:29:41 -0400 (Thu, 18 Mar 2010)
New Revision: 6230
Added:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/JbpmConfigurationTestHelper.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/.gpd.timerprocess.xml
Removed:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfigurationTestHelper.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/db/
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm.test.cfg.xml
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/resources/ehcache.xml
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmContext.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/GetTaskListCommand.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/StartProcessInstanceCommand.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/def/Access.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/action/Script.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/EventCallback.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/ProcessDefinition.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/SuperState.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Fork.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveEnd.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveStart.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/StartState.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/TaskNode.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/BeanInstantiator.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/Delegation.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/FieldInstantiator.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/parser/ELParserTokenManager.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/par/ProcessArchive.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/JpdlXmlReader.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/ProblemListener.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/mail/Mail.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/PersistenceService.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/Services.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CascadeSaveOperation.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/HibernateSaveOperation.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Semaphore.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/hibernate.common.xml
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/SerializabilityTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ChangeProcessInstanceVersionCommandTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ProcessInstanceCommandTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/TokenCommandTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableQueryDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableScopingTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/TaskMgmtSessionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/MultipleProcessDefinitionEventsDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/NodeDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/NodeActionTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/ProcessInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionsTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessCancellationTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/TokenDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JoinDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JpdlDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/BeanInstantiatorTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/FieldInstantiatorTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1072/JBPM1072Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1106/JBPM1106Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1135/JBPM1135Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1755/JBPM1755Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1775/JBPM1775Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1921/JBPM1921Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2017/JBPM2017Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2036/JBPM2036Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2263/JBPM2263Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2489/JBPM2489Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2574/JBPM2574Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2603/JBPM2603Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2630/JBPM2630Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2637/JBPM2637Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2691/JBPM2691Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2778/JBPM2778Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2787/JBPM2787Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2812/JBPM2812Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2828/JBPM2828Test.java
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/job/executor/JobExecutorDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveClassLoadingDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ResourceAction.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp13MiWithoutSynchronizationTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp18InterleavedParallelRoutingTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/MailTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/Jdbc.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/SimplePerformanceTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/persistence/db/PersistenceConfigurationDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/TwoSubProcessesInOneTransactionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/svc/ServicesTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/BlockingTaskDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/EndTasksDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskAssignmentDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskExecutionTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariableAccessDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/timerprocess.xml
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/mail/MailTest.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Entity.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Group.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Membership.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/User.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySession.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/IdentityDbTestCase.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/MembershipTest.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/GroupDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/UserDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/exe/JbpmSimulationExperimentRunner.java
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/report/jasper/AbstractBaseJasperReport.java
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/test/java/org/jbpm/sim/VariableSourceAndFilterTest.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/CancelActionListener.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/GetDiagramInfoActionListener.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/ListTasksForProcessInstanceActionListener.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/StartProcessActionListener.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateGroupActionListener.java
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateUserActionListener.java
Log:
JBPM-2787: delete process definitions on test case teardown automatically
wait for lock monitor thread in jobExecutor.stopAndJoin
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -65,39 +65,46 @@
* </p>
* <ul>
* <li>from a resource (by default <code>jbpm.cfg.xml</code> is used):
+ *
* <pre>
* JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
* </pre>
+ *
* or
+ *
* <pre>
* String myXmlResource = "...";
* JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance(myXmlResource);
* </pre>
+ *
* </li>
+ * <li>from an XML string:
*
- * <li>from an XML string:
* <pre>
* JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
* "<jbpm-configuration>" +
* ...
* "</jbpm-configuration>");
* </pre>
+ *
* </li>
- *
* <li>By specifying a custom implementation of an object factory. This can be
* used to specify a JbpmConfiguration in other bean-style notations such as
* used by JBoss Microcontainer or Spring.
+ *
* <pre>
* ObjectFactory of = new <i>MyCustomObjectFactory</i>();
* JbpmConfiguration.Configs.setDefaultObjectFactory(of);
* JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
* </pre>
+ *
* </li>
* </ul>
* <p>
* JbpmConfigurations can be configured using a spring-like XML notation (in
* relax ng compact notation):
* </p>
+ *
* <pre>
* datatypes xs = "http://www.w3.org/2001/XMLSchema-datatypes"
*
@@ -225,6 +232,7 @@
* false = element false {}
* null = element null {}
* </pre>
+ *
* </p>
*/
public class JbpmConfiguration implements Serializable {
@@ -233,16 +241,15 @@
static ObjectFactory defaultObjectFactory;
static final Map instances = new HashMap();
- static final ThreadLocal jbpmConfigurationStacks = new StackThreadLocal();
+ private static final ThreadLocal jbpmConfigurationStacks = new StackThreadLocal();
- private final ObjectFactory objectFactory;
+ final ObjectFactory objectFactory;
private final String resourceName;
private JobExecutor jobExecutor;
private boolean isClosed;
private final ThreadLocal jbpmContextStacks = new StackThreadLocal();
static class StackThreadLocal extends ThreadLocal {
-
protected Object initialValue() {
return new ArrayList();
}
@@ -309,8 +316,7 @@
log.debug("loading defaults in jbpm configuration");
ObjectFactoryParser objectFactoryParser = new ObjectFactoryParser();
ObjectFactoryImpl objectFactoryImpl = new ObjectFactoryImpl();
-
objectFactoryParser.parseElementsFromResource("org/jbpm/default.jbpm.cfg.xml",
- objectFactoryImpl);
+
objectFactoryParser.parseElementsFromResource("org/jbpm/default.jbpm.cfg.xml",
objectFactoryImpl);
if (inputStream != null) {
log.debug("loading specific configuration...");
@@ -363,10 +369,8 @@
if (log.isDebugEnabled()) {
log.debug("creating jbpm configuration from resource: " + resource);
}
- InputStream inputStream = null;
- if (resource != null) {
- inputStream = ClassLoaderUtil.getStream(resource, false);
- }
+ InputStream inputStream = resource != null ? ClassLoaderUtil.getStream(resource,
false)
+ : null;
ObjectFactory objectFactory = parseObjectFactory(inputStream);
return createJbpmConfiguration(objectFactory);
}
@@ -379,8 +383,9 @@
ensureOpen();
JbpmContext jbpmContext = (JbpmContext) objectFactory.createObject(name);
+ jbpmContext.name = name;
jbpmContext.jbpmConfiguration = this;
- jbpmContextCreated(jbpmContext);
+ pushJbpmContext(jbpmContext);
return jbpmContext;
}
@@ -491,8 +496,7 @@
}
private DbPersistenceServiceFactory getPersistenceServiceFactory(String
jbpmContextName) {
- return (DbPersistenceServiceFactory)
getServiceFactory(Services.SERVICENAME_PERSISTENCE,
- jbpmContextName);
+ return (DbPersistenceServiceFactory)
getServiceFactory(Services.SERVICENAME_PERSISTENCE, jbpmContextName);
}
public boolean isClosed() {
@@ -554,7 +558,7 @@
return currentJbpmConfiguration;
}
- static List getJbpmConfigurationStack() {
+ private static List getJbpmConfigurationStack() {
return (List) jbpmConfigurationStacks.get();
}
@@ -578,20 +582,22 @@
}
}
- synchronized void pushJbpmConfiguration() {
+ private void pushJbpmConfiguration() {
getJbpmConfigurationStack().add(this);
}
- synchronized void popJbpmConfiguration() {
+ private void popJbpmConfiguration() {
List stack = getJbpmConfigurationStack();
int index = stack.lastIndexOf(this);
if (index == -1) {
- log.warn(this + " was not found in thread-local stack;"
+ log.warn(this
+ + " was not found in thread-local stack;"
+ "do not access JbpmContext instances from multiple threads");
}
else {
if (index != stack.size() - 1) {
- log.warn(this + " was not closed in reverse creation order;"
+ log.warn(this
+ + " was not closed in reverse creation order;"
+ " check your try-finally clauses around JbpmContext blocks");
}
// prevent configuration from remaining in the stack, no matter what
@@ -610,11 +616,12 @@
return currentJbpmContext;
}
- List getJbpmContextStack() {
+ private List getJbpmContextStack() {
return (List) jbpmContextStacks.get();
}
void pushJbpmContext(JbpmContext jbpmContext) {
+ pushJbpmConfiguration();
getJbpmContextStack().add(jbpmContext);
}
@@ -622,26 +629,19 @@
List stack = getJbpmContextStack();
int index = stack.lastIndexOf(jbpmContext);
if (index == -1) {
- log.warn(jbpmContext + " was not found in thread-local stack;"
+ log.warn(jbpmContext
+ + " was not found in thread-local stack;"
+ " do not access JbpmContext instances from multiple threads");
}
else {
if (index != stack.size() - 1) {
- log.warn(jbpmContext + " was not closed in reverse creation order;"
+ log.warn(jbpmContext
+ + " was not closed in reverse creation order;"
+ " check your try-finally clauses around JbpmContext blocks");
}
// prevent context from remaining in the stack, no matter what
stack.remove(index);
}
- }
-
- void jbpmContextCreated(JbpmContext jbpmContext) {
- pushJbpmConfiguration();
- pushJbpmContext(jbpmContext);
- }
-
- void jbpmContextClosed(JbpmContext jbpmContext) {
- popJbpmContext(jbpmContext);
popJbpmConfiguration();
}
Deleted:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfigurationTestHelper.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfigurationTestHelper.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfigurationTestHelper.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,29 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, 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.jbpm;
-
-public class JbpmConfigurationTestHelper {
-
- public static JbpmConfiguration getCurrentJbpmConfiguration() {
- return JbpmConfiguration.getCurrentJbpmConfiguration();
- }
-}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmContext.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmContext.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmContext.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -52,7 +52,8 @@
/**
* is used to surround persistent operations to processes.
* <p>
- * Obtain JbpmContext's via {@link org.jbpm.JbpmConfiguration#createJbpmContext()}
and put it in a
+ * Obtain JbpmContext's via
+ * {@link org.jbpm.JbpmConfiguration#createJbpmContext()} and put it in a
* try-finally block like this:
* </p>
*
@@ -71,30 +72,33 @@
* }
* </pre>
* <p>
- * A JbpmContext separates jBPM from a sprecific environment. For each service that jBPM
uses, there
- * is an interface specified in the jBPM codebase. jBPM also includes implementations
that implement
- * these services by using services in a specific environment. e.g. a hibernate session,
a JMS
- * asynchronous messaging system, ...
+ * A JbpmContext separates jBPM from a sprecific environment. For each service
+ * that jBPM uses, there is an interface specified in the jBPM codebase. jBPM
+ * also includes implementations that implement these services by using services
+ * in a specific environment. e.g. a hibernate session, a JMS asynchronous
+ * messaging system, ...
* </p>
* <p>
- * A JbpmContext can demarcate a transaction. When a PersistenceService is fetched from
the
- * JbpmContext, the default implementation for the persistence service will create a
hibernate
- * session and start a transaction. So that transactions can be configured in the
hibernate
- * configuration.
+ * A JbpmContext can demarcate a transaction. When a PersistenceService is
+ * fetched from the JbpmContext, the default implementation for the persistence
+ * service will create a hibernate session and start a transaction. So that
+ * transactions can be configured in the hibernate configuration.
* </p>
* <p>
- * A JbpmContext allows the user to overwrite (or make complete) the configuration by
injecting
- * objects programmatically. like e.g. a hibernate session factory or a hibernate session
or any
- * other resource that can be fetched or created from the configuration.
+ * A JbpmContext allows the user to overwrite (or make complete) the
+ * configuration by injecting objects programmatically. like e.g. a hibernate
+ * session factory or a hibernate session or any other resource that can be
+ * fetched or created from the configuration.
* </p>
* <p>
- * Last but not least, JbpmContext provides convenient access to the most common
operations such as
- * {@link #getTaskList(String)}, {@link #newProcessInstance(String)}
- * {@link #loadTaskInstanceForUpdate(long)} and {@link #save(ProcessInstance)}.
+ * Last but not least, JbpmContext provides convenient access to the most common
+ * operations such as {@link #getTaskList(String)},
+ * {@link #newProcessInstance(String)} {@link #loadTaskInstanceForUpdate(long)}
+ * and {@link #save(ProcessInstance)}.
* </p>
* <p>
- * All the <code>...ForUpdate(...)</code> methods will automatically save the
loaded objects at
- * <code>jbpmContext.close();</code>
+ * All the <code>...ForUpdate(...)</code> methods will automatically save
the
+ * loaded objects at <code>jbpmContext.close();</code>
* </p>
*/
public class JbpmContext implements Serializable {
@@ -103,16 +107,17 @@
public static final String DEFAULT_JBPM_CONTEXT_NAME =
"default.jbpm.context";
+ String name;
ObjectFactory objectFactory;
Services services;
+ JbpmConfiguration jbpmConfiguration;
List autoSaveProcessInstances;
- JbpmConfiguration jbpmConfiguration;
/**
* normally, JbpmContext object are created via a {@link JbpmConfiguration}.
*/
public JbpmContext(Services services, ObjectFactory objectFactory) {
- log.debug("creating " + toString());
+ log.debug("creating " + this);
this.services = services;
this.objectFactory = objectFactory;
}
@@ -121,7 +126,7 @@
* make sure you close your JbpmContext in a finally block.
*/
public void close() {
- log.debug("closing jbpmContext " + toString());
+ log.debug("closing " + this);
try {
if (services != null) {
try {
@@ -133,18 +138,20 @@
}
}
finally {
- if (jbpmConfiguration != null) {
- jbpmConfiguration.jbpmContextClosed(this);
- }
+ if (jbpmConfiguration != null) jbpmConfiguration.popJbpmContext(this);
}
}
/**
- * obtains the current JbpmContext from a thread local. The current contexts are
maintained in
- * a stack so that you can do nested context operations for different jbpm
configurations.
+ * obtains the current JbpmContext from a thread local. The current contexts
+ * are maintained in a stack so that you can do nested context operations for
+ * different jbpm configurations.
*
- * <p>it is <strong>strongly recommended</strong> that client code
invokes
- * {@link JbpmConfiguration#getCurrentJbpmContext()} in preference to this
method.</p>
+ * <p>
+ * it is <strong>strongly recommended</strong> that client code invokes
+ * {@link JbpmConfiguration#getCurrentJbpmContext()} in preference to this
+ * method.
+ * </p>
*/
public static JbpmContext getCurrentJbpmContext() {
JbpmContext currentJbpmContext = null;
@@ -158,17 +165,18 @@
// convenience methods //////////////////////////////////////////////////////
/**
- * deploys a process definition. For parsing process definitions from archives, see the
static
- * parseXxx methods on {@link ProcessDefinition}.
+ * deploys a process definition. For parsing process definitions from
+ * archives, see the static parseXxx methods on {@link ProcessDefinition}.
*/
public void deployProcessDefinition(ProcessDefinition processDefinition) {
getGraphSession().deployProcessDefinition(processDefinition);
}
/**
- * fetches the tasklist for the current authenticated actor. With the default
configured
- * authentication service, you can set the authenticated user with {@link
#setActorId(String)},
- * then all the subsequent operations will be performed on behalf of that actor.
+ * fetches the tasklist for the current authenticated actor. With the default
+ * configured authentication service, you can set the authenticated user with
+ * {@link #setActorId(String)}, then all the subsequent operations will be
+ * performed on behalf of that actor.
*/
public List getTaskList() {
String actorId = getActorId();
@@ -183,12 +191,14 @@
}
/**
- * fetches all the task instances for which at least one of the given actorIds is a
candidate
- * (pooled actor). Typically, for an actor, his/her personal actorId plus all the
actorIds
- * representing the groups that person belongs to form the actorIds. Then the user
interface
- * should show only the option to take these tasks to the actor's personal task
list (with
- * {@link TaskInstance#setActorId(String)}). Only task instances that are assigned to
the actor
- * directly should be offered the possibility for performing the actual task.
+ * fetches all the task instances for which at least one of the given actorIds
+ * is a candidate (pooled actor). Typically, for an actor, his/her personal
+ * actorId plus all the actorIds representing the groups that person belongs
+ * to form the actorIds. Then the user interface should show only the option
+ * to take these tasks to the actor's personal task list (with
+ * {@link TaskInstance#setActorId(String)}). Only task instances that are
+ * assigned to the actor directly should be offered the possibility for
+ * performing the actual task.
*/
public List getGroupTaskList(List actorIds) {
return getTaskMgmtSession().findPooledTaskInstances(actorIds);
@@ -219,9 +229,10 @@
}
/**
- * loads a task instance from the db and registers it for auto-save. The loaded task
instance will
- * be save automatically at the {@link #close()}. This is a convenience method in case
you plan to
- * do update operations on this task instance.
+ * loads a task instance from the db and registers it for auto-save. The
+ * loaded task instance will be save automatically at the {@link #close()}.
+ * This is a convenience method in case you plan to do update operations on
+ * this task instance.
*
* @throws JbpmException in case no such task instance exists
* @see #loadTaskInstance(long)
@@ -235,9 +246,10 @@
}
/**
- * gets a task instance from the db and registers it for auto-save. The loaded task
instance will
- * be save automatically at the {@link #close()}. This is a convenience method in case
you plan to
- * do update operations on this task instance.
+ * gets a task instance from the db and registers it for auto-save. The loaded
+ * task instance will be save automatically at the {@link #close()}. This is a
+ * convenience method in case you plan to do update operations on this task
+ * instance.
*
* @return the task instance or null in case no such task instance exists.
* @see #loadTaskInstance(long)
@@ -277,9 +289,10 @@
}
/**
- * loads a token from the db and registers it for auto-save. The loaded token will be
- * {@link #save(Token)}d automatically at the {@link #close()}. This is a convenience
method in
- * case you plan to do update operations on this token.
+ * loads a token from the db and registers it for auto-save. The loaded token
+ * will be {@link #save(Token)}d automatically at the {@link #close()}. This
+ * is a convenience method in case you plan to do update operations on this
+ * token.
*
* @throws JbpmException in case no such token exists.
* @see #getToken(long)
@@ -293,9 +306,10 @@
}
/**
- * get a token from the db and registers it for auto-save. The loaded token will be
- * {@link #save(Token)}d automatically at the {@link #close()}. This is a convenience
method in
- * case you plan to do update operations on this token.
+ * get a token from the db and registers it for auto-save. The loaded token
+ * will be {@link #save(Token)}d automatically at the {@link #close()}. This
+ * is a convenience method in case you plan to do update operations on this
+ * token.
*
* @return the token or null in case no such token exists.
* @see #getToken(long)
@@ -312,8 +326,8 @@
/**
* loads a process instance from the db. Consider using
- * {@link #loadProcessInstanceForUpdate(long)} if you plan to perform an update
operation on the
- * process instance.
+ * {@link #loadProcessInstanceForUpdate(long)} if you plan to perform an
+ * update operation on the process instance.
*
* @throws JbpmException in case no such process instance exists.
* @see #getProcessInstance(long)
@@ -325,8 +339,9 @@
}
/**
- * gets a process instance from the db. Consider using {@link
#loadProcessInstanceForUpdate(long)}
- * if you plan to perform an update operation on the process instance.
+ * gets a process instance from the db. Consider using
+ * {@link #loadProcessInstanceForUpdate(long)} if you plan to perform an
+ * update operation on the process instance.
*
* @return the token or null in case no such token exists.
* @see #loadProcessInstance(long)
@@ -338,9 +353,10 @@
}
/**
- * loads a process instances from the db and registers it for auto-save. The loaded
process
- * instance will be {@link #save(ProcessInstance)}d automatically at the {@link
#close()}. This is
- * a convenience method in case you plan to do update operations on this process
instance.
+ * loads a process instances from the db and registers it for auto-save. The
+ * loaded process instance will be {@link #save(ProcessInstance)}d
+ * automatically at the {@link #close()}. This is a convenience method in case
+ * you plan to do update operations on this process instance.
*
* @throws JbpmException in case no such process instance exists.
* @see #loadProcessInstance(long)
@@ -354,9 +370,10 @@
}
/**
- * gets a process instances from the db and registers it for auto-save. The loaded
process
- * instance will be {@link #save(ProcessInstance)}d automatically at the {@link
#close()}. This is
- * a convenience method in case you plan to do update operations on this process
instance.
+ * gets a process instances from the db and registers it for auto-save. The
+ * loaded process instance will be {@link #save(ProcessInstance)}d
+ * automatically at the {@link #close()}. This is a convenience method in case
+ * you plan to do update operations on this process instance.
*
* @return the token or null in case no such token exists.
* @see #loadProcessInstance(long)
@@ -372,25 +389,28 @@
}
/**
- * returns the process instance with the given key or null if no such instance exists.
+ * returns the process instance with the given key or null if no such instance
+ * exists.
*/
public ProcessInstance getProcessInstance(ProcessDefinition processDefinition, String
key) {
return getGraphSession().getProcessInstance(processDefinition, key);
}
/**
- * returns the process instance with the given key or throws an exception if no such
instance
- * exists.
+ * returns the process instance with the given key or throws an exception if
+ * no such instance exists.
*/
public ProcessInstance loadProcessInstance(ProcessDefinition processDefinition, String
key) {
return getGraphSession().loadProcessInstance(processDefinition, key);
}
/**
- * returns the process instance with the given key or null if no such instance exists.
Upon close
- * of this jbpmContext, the fetched process instance will be automatically saved.
+ * returns the process instance with the given key or null if no such instance
+ * exists. Upon close of this jbpmContext, the fetched process instance will
+ * be automatically saved.
*/
- public ProcessInstance getProcessInstanceForUpdate(ProcessDefinition processDefinition,
String key) {
+ public ProcessInstance getProcessInstanceForUpdate(ProcessDefinition
processDefinition,
+ String key) {
ProcessInstance processInstance =
getGraphSession().getProcessInstance(processDefinition, key);
if (processInstance != null) {
addAutoSaveProcessInstance(processInstance);
@@ -399,12 +419,12 @@
}
/**
- * returns the process instance with the given key or throws an exception if no such
instance
- * exists. Upon close of this jbpmContext, the fetched process instance will be
automatically
- * saved.
+ * returns the process instance with the given key or throws an exception if
+ * no such instance exists. Upon close of this jbpmContext, the fetched
+ * process instance will be automatically saved.
*/
public ProcessInstance loadProcessInstanceForUpdate(ProcessDefinition
processDefinition,
- String key) {
+ String key) {
ProcessInstance processInstance =
getGraphSession().loadProcessInstance(processDefinition, key);
if (processInstance != null) {
addAutoSaveProcessInstance(processInstance);
@@ -413,10 +433,11 @@
}
/**
- * creates a new process instance for the latest version of the process definition with
the given
- * name.
+ * creates a new process instance for the latest version of the process
+ * definition with the given name.
*
- * @throws JbpmException when no processDefinition with the given name is deployed.
+ * @throws JbpmException when no processDefinition with the given name is
+ * deployed.
*/
public ProcessInstance newProcessInstance(String processDefinitionName) {
ProcessDefinition processDefinition =
getGraphSession().findLatestProcessDefinition(processDefinitionName);
@@ -424,10 +445,11 @@
}
/**
- * creates a new process instance for the latest version of the process definition with
the given
- * name and registers it for auto-save.
+ * creates a new process instance for the latest version of the process
+ * definition with the given name and registers it for auto-save.
*
- * @throws JbpmException when no processDefinition with the given name is deployed.
+ * @throws JbpmException when no processDefinition with the given name is
+ * deployed.
*/
public ProcessInstance newProcessInstanceForUpdate(String processDefinitionName) {
ProcessDefinition processDefinition =
getGraphSession().findLatestProcessDefinition(processDefinitionName);
@@ -460,8 +482,8 @@
}
/**
- * mark this transaction for rollback only in the persistence service. The {@link
#close()}
- * operation will then perform a rollback.
+ * mark this transaction for rollback only in the persistence service. The
+ * {@link #close()} operation will then perform a rollback.
*/
public void setRollbackOnly() {
TxService txService = (services != null ? services.getTxService() : null);
@@ -487,8 +509,8 @@
}
/**
- * gives access to the object factory containing the configuration for creating the
service
- * factories.
+ * gives access to the object factory containing the configuration for
+ * creating the service factories.
*/
public ObjectFactory getObjectFactory() {
return objectFactory;
@@ -497,21 +519,23 @@
// persistence methods //////////////////////////////////////////////////////
/**
- * gets the hibernate session factory from the default configured persistence service.
+ * gets the hibernate session factory from the default configured persistence
+ * service.
*
- * @return the hibernate session factory, or <code>null</code> if a
nonstandard persistence
- * service is configured
+ * @return the hibernate session factory, or <code>null</code> if a
+ * nonstandard persistence service is configured
*/
public SessionFactory getSessionFactory() {
PersistenceService persistenceService = getPersistenceService();
return persistenceService instanceof DbPersistenceService ? ((DbPersistenceService)
persistenceService).getSessionFactory()
- : null;
+ : null;
}
/**
- * sets the hibernate session factory into the default configured persistence service,
overwriting
- * the configured session factory (if there is one configured). if a nonstandard
persistence
- * service is configured, then this call has no effect.
+ * sets the hibernate session factory into the default configured persistence
+ * service, overwriting the configured session factory (if there is one
+ * configured). if a nonstandard persistence service is configured, then this
+ * call has no effect.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
PersistenceService persistenceService = getPersistenceService();
@@ -524,19 +548,20 @@
/**
* gets the hibernate session from the default configured persistence service.
*
- * @return the hibernate session, or <code>null</code> if a nonstandard
persistence service is
- * configured.
+ * @return the hibernate session, or <code>null</code> if a nonstandard
+ * persistence service is configured.
*/
public Session getSession() {
PersistenceService persistenceService = getPersistenceService();
return persistenceService instanceof DbPersistenceService ? ((DbPersistenceService)
persistenceService).getSession()
- : null;
+ : null;
}
/**
- * sets the hibernate session into the default configured persistence service,
preventing the
- * creation of a session from the configured session factory (if there is one
configured). if a
- * nonstandard persistence service is configured, then this call has no effect.
+ * sets the hibernate session into the default configured persistence service,
+ * preventing the creation of a session from the configured session factory
+ * (if there is one configured). if a nonstandard persistence service is
+ * configured, then this call has no effect.
*/
public void setSession(Session session) {
PersistenceService persistenceService = getPersistenceService();
@@ -549,18 +574,19 @@
/**
* gets the jdbc connection from the default configured persistence service.
*
- * @return the jdbc connectoin, or <code>null</code> if a nonstandard
persistence service is
- * configured.
+ * @return the jdbc connectoin, or <code>null</code> if a nonstandard
+ * persistence service is configured.
*/
public Connection getConnection() {
PersistenceService persistenceService = getPersistenceService();
return persistenceService instanceof DbPersistenceService ? ((DbPersistenceService)
persistenceService).getConnection()
- : null;
+ : null;
}
/**
- * allows users to provide a jdbc connection to be used when the hibernate session is
created. if
- * a nonstandard persistence service is configured, then this call has no effect.
+ * allows users to provide a jdbc connection to be used when the hibernate
+ * session is created. if a nonstandard persistence service is configured,
+ * then this call has no effect.
*/
public void setConnection(Connection connection) {
PersistenceService persistenceService = getPersistenceService();
@@ -625,7 +651,7 @@
* sets the currently authenticated actorId.
*/
public void setActorId(String actorId) {
- AuthenticationService authenticationService = (AuthenticationService)
services.getAuthenticationService();
+ AuthenticationService authenticationService = services.getAuthenticationService();
authenticationService.setActorId(actorId);
}
@@ -664,4 +690,9 @@
}
private static Log log = LogFactory.getLog(JbpmContext.class);
+
+ public String toString() {
+ return "JbpmContext"
+ + (name != null ? '(' + name + ')' : '@' +
Integer.toHexString(hashCode()));
+ }
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/GetTaskListCommand.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/GetTaskListCommand.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/GetTaskListCommand.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -19,7 +19,7 @@
*
* @author Bernd Ruecker (bernd.ruecker(a)camunda.com)
*/
-public class GetTaskListCommand extends AbstractGetObjectBaseCommand implements Command
{
+public class GetTaskListCommand extends AbstractGetObjectBaseCommand {
private static final long serialVersionUID = -1627380259541998349L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/StartProcessInstanceCommand.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/StartProcessInstanceCommand.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command/StartProcessInstanceCommand.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -10,7 +10,7 @@
*
* @author Jim Rigsbee, Tom Baeyens, Bernd Ruecker
*/
-public class StartProcessInstanceCommand extends NewProcessInstanceCommand implements
Command {
+public class StartProcessInstanceCommand extends NewProcessInstanceCommand {
private static final long serialVersionUID = -2428234069404269048L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/def/Access.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/def/Access.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/def/Access.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,20 +28,21 @@
private static final long serialVersionUID = 1L;
String access = "read,write";
-
+
public Access() {
}
public Access(String access) {
- if (access!=null) {
+ if (access != null) {
if ("".equals(access)) {
this.access = " ";
- } else {
+ }
+ else {
this.access = access;
}
}
}
-
+
public boolean isReadable() {
return hasAccess("read");
}
@@ -62,22 +63,23 @@
* verifies if the given accessLiteral is included in the access text.
*/
public boolean hasAccess(String accessLiteral) {
- if (access==null) return false;
- return (access.indexOf(accessLiteral.toLowerCase())!=-1);
+ if (access == null) return false;
+ return (access.indexOf(accessLiteral.toLowerCase()) != -1);
}
-
+
public String toString() {
return access;
}
-
+
public boolean equals(Object object) {
if (object instanceof Access) {
Access other = (Access) object;
- return (isReadable()==other.isReadable())
- && (isWritable()==other.isWritable())
- && (isRequired()==other.isRequired())
- && (isLock()==other.isLock());
- } else {
+ return isReadable() == other.isReadable()
+ && isWritable() == other.isWritable()
+ && isRequired() == other.isRequired()
+ && isLock() == other.isLock();
+ }
+ else {
return false;
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,7 +21,6 @@
*/
package org.jbpm.context.exe;
-import java.io.Serializable;
import java.util.Map;
import org.jbpm.graph.exe.Token;
@@ -31,7 +30,7 @@
* Each token has it's own map of variableInstances, thereby creating hierarchy
* and scoping of process variableInstances.
*/
-public class TokenVariableMap extends VariableContainer implements Serializable {
+public class TokenVariableMap extends VariableContainer {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -23,18 +23,24 @@
// $Id$
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
+import org.hibernate.criterion.Projections;
+import org.hibernate.criterion.Restrictions;
import org.jbpm.AbstractJbpmTestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.job.Job;
+import org.jbpm.job.Timer;
import org.jbpm.job.executor.JobExecutor;
import org.jbpm.logging.log.ProcessLog;
import org.jbpm.persistence.db.DbPersistenceServiceFactory;
@@ -55,6 +61,8 @@
protected JobExecutor jobExecutor;
+ private List processDefinitionIds;
+
protected void setUp() throws Exception {
super.setUp();
beginSessionTransaction();
@@ -72,12 +80,26 @@
}
protected void tearDown() throws Exception {
+ if (processDefinitionIds != null) deleteProcessDefinitions();
commitAndCloseSession();
ensureCleanDatabase();
super.tearDown();
}
+ private void deleteProcessDefinitions() {
+ for (Iterator i = processDefinitionIds.iterator(); i.hasNext();) {
+ newTransaction();
+ try {
+ Long processDefinitionId = (Long) i.next();
+ graphSession.deleteProcessDefinition(processDefinitionId.longValue());
+ }
+ catch (RuntimeException e) {
+ jbpmContext.setRollbackOnly();
+ }
+ }
+ }
+
private void ensureCleanDatabase() {
DbPersistenceServiceFactory persistenceServiceFactory =
(DbPersistenceServiceFactory)
getJbpmConfiguration().getServiceFactory("persistence");
@@ -139,7 +161,7 @@
protected ProcessDefinition saveAndReload(ProcessDefinition pd) {
graphSession.saveProcessDefinition(pd);
- newTransaction();
+ registerForDeletion(pd);
return graphSession.loadProcessDefinition(pd.getId());
}
@@ -162,7 +184,7 @@
}
protected String getJbpmTestConfig() {
- return "org/jbpm/db/jbpm.db.test.cfg.xml";
+ return null;
}
protected JbpmConfiguration getJbpmConfiguration() {
@@ -223,12 +245,12 @@
}
log.debug("waiting " + waitPeriod + " ms for " + currentCount
- + " jobs to be executed");
+ + " jobs to execute");
try {
Thread.sleep(waitPeriod);
}
catch (InterruptedException e) {
- fail("wait for jobs got interrupted");
+ fail("wait for jobs to execute got interrupted");
}
previousCount = currentCount;
@@ -252,14 +274,18 @@
}
private int getJobCount(Session session) {
- Number jobCount = (Number) session.createQuery("select count(*) "
- + "from org.jbpm.job.Job where retries > 0").uniqueResult();
+ Number jobCount = (Number) session.createCriteria(Job.class)
+ .add(Restrictions.gt("retries", new Integer(0)))
+ .setProjection(Projections.rowCount())
+ .uniqueResult();
return jobCount.intValue();
}
protected int getTimerCount() {
- Number timerCount = (Number) session.createQuery("select count(*) "
- + "from org.jbpm.job.Timer where retries > 0").uniqueResult();
+ Number timerCount = (Number) session.createCriteria(Timer.class)
+ .add(Restrictions.gt("retries", new Integer(0)))
+ .setProjection(Projections.rowCount())
+ .uniqueResult();
return timerCount.intValue();
}
@@ -281,11 +307,23 @@
jobExecutor.stopAndJoin();
}
catch (InterruptedException e) {
- log.debug("wait for job executor to stop and join got interrupted",
e);
+ fail("wait for job executor to stop got interrupted");
}
}
}
+ protected void deployProcessDefinition(ProcessDefinition processDefinition) {
+ jbpmContext.deployProcessDefinition(processDefinition);
+ registerForDeletion(processDefinition);
+ }
+
+ private void registerForDeletion(ProcessDefinition processDefinition) {
+ // start new transaction to avoid registering an uncommitted process definition
+ newTransaction();
+ if (processDefinitionIds == null) processDefinitionIds = new ArrayList();
+ processDefinitionIds.add(new Long(processDefinition.getId()));
+ }
+
protected void initializeMembers() {
session = jbpmContext.getSession();
graphSession = jbpmContext.getGraphSession();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/action/Script.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/action/Script.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/action/Script.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -37,14 +37,13 @@
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
import bsh.EvalError;
import bsh.Interpreter;
import bsh.ParseException;
import bsh.TargetError;
-public class Script extends Action implements Parsable {
+public class Script extends Action {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/EventCallback.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/EventCallback.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/EventCallback.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -42,7 +42,7 @@
public static final int DEFAULT_TIMEOUT = 5 * 60 * 1000;
private static final long serialVersionUID = 1L;
- private static final Log log = LogFactory.getLog(EventCallback.class);
+ static final Log log = LogFactory.getLog(EventCallback.class);
private static Map eventSemaphores = new HashMap();
@@ -95,7 +95,6 @@
eventSemaphore.release();
}
}
-
};
JbpmContext.getCurrentJbpmContext().getSession().getTransaction().registerSynchronization(
notification);
@@ -129,7 +128,7 @@
}
}
- private static Semaphore getEventSemaphore(String event) {
+ static Semaphore getEventSemaphore(String event) {
synchronized (eventSemaphores) {
Semaphore semaphore = (Semaphore) eventSemaphores.get(event);
if (semaphore == null) {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/ProcessDefinition.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/ProcessDefinition.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/ProcessDefinition.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -63,7 +63,7 @@
protected Map definitions;
// event types //////////////////////////////////////////////////////////////
-
+
private static final String[] EVENT_TYPES = {
Event.EVENTTYPE_PROCESS_START, Event.EVENTTYPE_PROCESS_END,
Event.EVENTTYPE_NODE_ENTER,
Event.EVENTTYPE_NODE_LEAVE, Event.EVENTTYPE_TASK_CREATE,
Event.EVENTTYPE_TASK_ASSIGN,
@@ -74,8 +74,8 @@
};
/**
- * @deprecated arrays are mutable and thus vulnerable to external manipulation.
- * use {@link #getSupportedEventTypes()} instead
+ * @deprecated arrays are mutable and thus vulnerable to external
+ * manipulation. use {@link #getSupportedEventTypes()} instead
*/
public static final String[] supportedEventTypes = (String[]) EVENT_TYPES.clone();
@@ -97,16 +97,16 @@
Properties defaultModulesProperties = ClassLoaderUtil.getProperties(resource);
for (Iterator iter = defaultModulesProperties.keySet().iterator(); iter.hasNext();)
{
String moduleClassName = (String) iter.next();
+ Class moduleClass = ClassLoaderUtil.classForName(moduleClassName);
try {
- ModuleDefinition moduleDefinition = (ModuleDefinition)
ClassLoaderUtil.classForName(moduleClassName)
- .newInstance();
+ ModuleDefinition moduleDefinition = (ModuleDefinition)
moduleClass.newInstance();
processDefinition.addDefinition(moduleDefinition);
}
catch (InstantiationException e) {
- throw new JbpmException("could not instantiate " + moduleClassName,
e);
+ throw new JbpmException("failed to instantiate " + moduleClass, e);
}
catch (IllegalAccessException e) {
- throw new JbpmException("illegal access to " + moduleClassName, e);
+ throw new JbpmException(ProcessDefinition.class + " has no access to "
+ moduleClass, e);
}
}
return processDefinition;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/SuperState.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/SuperState.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/SuperState.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -31,13 +31,12 @@
import org.jbpm.JbpmException;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
/**
* brings hierarchy into the elements of a process definition by creating a
* parent-child relation between {@link GraphElement}s.
*/
-public class SuperState extends Node implements Parsable, NodeCollection {
+public class SuperState extends Node implements NodeCollection {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/ProcessInstance.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -124,8 +124,7 @@
* fired, which is also before the execution of the initial node.
* @throws JbpmException if processDefinition is null.
*/
- public ProcessInstance(ProcessDefinition processDefinition, Map variables,
- String key) {
+ public ProcessInstance(ProcessDefinition processDefinition, Map variables, String key)
{
if (processDefinition == null) {
throw new IllegalArgumentException("process definition is null");
}
@@ -180,8 +179,7 @@
// fire the process start event
if (initialNode != null) {
ExecutionContext executionContext = new ExecutionContext(rootToken);
- processDefinition.fireEvent(Event.EVENTTYPE_PROCESS_START,
- executionContext);
+ processDefinition.fireEvent(Event.EVENTTYPE_PROCESS_START, executionContext);
// execute the start node
initialNode.execute(executionContext);
@@ -215,7 +213,7 @@
ModuleInstance removedModuleInstance = null;
if (instances != null) {
removedModuleInstance = (ModuleInstance)
instances.remove(moduleInstance.getClass()
- .getName());
+ .getName());
if (removedModuleInstance != null) {
moduleInstance.setProcessInstance(null);
}
@@ -226,9 +224,9 @@
/**
* looks up an optional module instance by its class.
*/
- public ModuleInstance getInstance(Class clazz) {
+ public ModuleInstance getInstance(Class moduleClass) {
ModuleInstance moduleInstance = null;
- String className = clazz.getName();
+ String className = moduleClass.getName();
if (instances != null) {
moduleInstance = (ModuleInstance) instances.get(className);
}
@@ -241,16 +239,14 @@
moduleInstance = (ModuleInstance) transientInstances.get(className);
if (moduleInstance == null) {
try {
- moduleInstance = (ModuleInstance) clazz.newInstance();
+ moduleInstance = (ModuleInstance) moduleClass.newInstance();
moduleInstance.setProcessInstance(this);
}
catch (InstantiationException e) {
- throw new JbpmException("could not instantiate transient module "
- + className, e);
+ throw new JbpmException("failed to instantiate " + moduleClass, e);
}
catch (IllegalAccessException e) {
- throw new JbpmException("could not access transient module "
- + className, e);
+ throw new JbpmException(getClass() + " has no access to " +
moduleClass, e);
}
transientInstances.put(className, moduleInstance);
}
@@ -345,8 +341,7 @@
if (superProcessToken != null && !superProcessToken.hasEnded()) {
addCascadeProcessInstance(superProcessToken.getProcessInstance());
- ExecutionContext superExecutionContext = new ExecutionContext(
- superProcessToken);
+ ExecutionContext superExecutionContext = new
ExecutionContext(superProcessToken);
superExecutionContext.setSubProcessInstance(this);
superProcessToken.signal(superExecutionContext);
}
@@ -358,10 +353,8 @@
Services services = jbpmContext.getServices();
MessageService messageService = services.getMessageService();
PersistenceService persistenceService = services.getPersistenceService();
- if (messageService != null
- && persistenceService != null
- && persistenceService.getJobSession()
- .countDeletableJobsForProcessInstance(this) > 0) {
+ if (messageService != null && persistenceService != null
+ &&
persistenceService.getJobSession().countDeletableJobsForProcessInstance(this) > 0) {
CleanUpProcessJob job = new CleanUpProcessJob(rootToken);
job.setDueDate(new Date());
messageService.send(job);
@@ -513,7 +506,7 @@
public String toString() {
return "ProcessInstance"
+ (key != null ? '(' + key + ')' : id != 0 ? "(" + id +
')'
- : '@' + Integer.toHexString(hashCode()));
+ : '@' + Integer.toHexString(hashCode()));
}
// getters and setters //////////////////////////////////////////////////////
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -94,8 +94,7 @@
this.start = Clock.getCurrentTime();
this.processInstance = processInstance;
this.node = processInstance.getProcessDefinition().getStartState();
- this.isTerminationImplicit = processInstance.getProcessDefinition()
- .isTerminationImplicit();
+ this.isTerminationImplicit =
processInstance.getProcessDefinition().isTerminationImplicit();
// assign an id to this token before events get fired
Services.assignId(this);
@@ -166,8 +165,7 @@
}
if (leavingTransition == null) {
- throw new JbpmException(node + " has no leaving transition named "
- + transitionName);
+ throw new JbpmException(node + " has no leaving transition named " +
transitionName);
}
signal(leavingTransition, new ExecutionContext(this));
@@ -239,18 +237,16 @@
* adds available transitions of that node to the Set and after that calls
* itself recursivly for the SuperSate of the Node if it has a super state
*/
- private void addAvailableTransitionsOfNode(Node currentNode,
- Set availableTransitions) {
+ private void addAvailableTransitionsOfNode(Node currentNode, Set availableTransitions)
{
List leavingTransitions = currentNode.getLeavingTransitions();
if (leavingTransitions != null) {
for (Iterator iter = leavingTransitions.iterator(); iter.hasNext();) {
Transition transition = (Transition) iter.next();
String conditionExpression = transition.getCondition();
if (conditionExpression != null) {
- Object result = JbpmExpressionEvaluator.evaluate(conditionExpression,
- new ExecutionContext(this));
- if ((result instanceof Boolean)
- && (((Boolean) result).booleanValue())) {
+ Object result = JbpmExpressionEvaluator.evaluate(conditionExpression, new
ExecutionContext(
+ this));
+ if ((result instanceof Boolean) && (((Boolean) result).booleanValue()))
{
availableTransitions.add(transition);
}
}
@@ -260,8 +256,7 @@
}
}
if (currentNode.getSuperState() != null) {
- addAvailableTransitionsOfNode(currentNode.getSuperState(),
- availableTransitions);
+ addAvailableTransitionsOfNode(currentNode.getSuperState(), availableTransitions);
}
}
@@ -377,8 +372,7 @@
* convenience method for adding a process log.
*/
public void addLog(ProcessLog processLog) {
- LoggingInstance li =
- (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+ LoggingInstance li = (LoggingInstance)
processInstance.getInstance(LoggingInstance.class);
if (li != null) {
processLog.setToken(this);
li.addLog(processLog);
@@ -390,8 +384,7 @@
* logs, make sure you put the {@link #endCompositeLog()} in a finally block.
*/
public void startCompositeLog(CompositeLog compositeLog) {
- LoggingInstance li =
- (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+ LoggingInstance li = (LoggingInstance)
processInstance.getInstance(LoggingInstance.class);
if (li != null) {
compositeLog.setToken(this);
li.startCompositeLog(compositeLog);
@@ -403,8 +396,7 @@
* finally block.
*/
public void endCompositeLog() {
- LoggingInstance li =
- (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+ LoggingInstance li = (LoggingInstance)
processInstance.getInstance(LoggingInstance.class);
if (li != null) {
li.endCompositeLog();
}
@@ -616,10 +608,9 @@
Token other = (Token) o;
if (id != 0 && id == other.getId()) return true;
- return (name != null ? name.equals(other.getName())
- : other.getName() == null)
+ return (name != null ? name.equals(other.getName()) : other.getName() == null)
&& (parent != null ? parent.equals(other.getParent())
- : processInstance.equals(other.getProcessInstance()));
+ : processInstance.equals(other.getProcessInstance()));
}
public int hashCode() {
@@ -630,11 +621,10 @@
}
public String toString() {
- return "Token(" + getFullName() + ')';
+ return "Token(" + (id != 0 ? String.valueOf(id) : getFullName()) +
')';
}
- public ProcessInstance createSubProcessInstance(
- ProcessDefinition subProcessDefinition) {
+ public ProcessInstance createSubProcessInstance(ProcessDefinition subProcessDefinition)
{
// create the new sub process instance
subProcessInstance = new ProcessInstance(subProcessDefinition);
// bind the subprocess to the super-process-token
@@ -662,8 +652,13 @@
log.debug('\'' + lockOwnerId + "' locked " + this);
}
else if (!lock.equals(lockOwnerId)) {
- throw new JbpmException('\'' + lockOwnerId + "' cannot lock
" + this
- + " because '" + lock + "' already locked it");
+ throw new JbpmException('\''
+ + lockOwnerId
+ + "' cannot lock "
+ + this
+ + " because '"
+ + lock
+ + "' already locked it");
}
}
@@ -673,8 +668,13 @@
public void unlock(String lockOwnerId) {
if (lock != null) {
if (!lock.equals(lockOwnerId)) {
- throw new JbpmException('\'' + lockOwnerId + "' cannot
unlock " + this
- + " because '" + lock + "' locked it");
+ throw new JbpmException('\''
+ + lockOwnerId
+ + "' cannot unlock "
+ + this
+ + " because '"
+ + lock
+ + "' locked it");
}
lock = null;
log.debug('\'' + lockOwnerId + "' unlocked " + this);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,12 +36,11 @@
import org.jbpm.instantiation.Delegation;
import org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
/**
* decision node.
*/
-public class Decision extends Node implements Parsable {
+public class Decision extends Node {
private List decisionConditions;
private Delegation decisionDelegation;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Fork.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Fork.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Fork.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -37,7 +37,6 @@
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
/**
* specifies configurable fork behaviour.
@@ -56,7 +55,7 @@
* </ul>
* </p>
*/
-public class Fork extends Node implements Parsable {
+public class Fork extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveEnd.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveEnd.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveEnd.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,12 +21,16 @@
*/
package org.jbpm.graph.node;
-import java.util.*;
+import java.util.Collection;
+
import org.dom4j.Element;
-import org.jbpm.graph.def.*;
-import org.jbpm.graph.exe.*;
-import org.jbpm.jpdl.xml.*;
+import org.jbpm.graph.def.Node;
+import org.jbpm.graph.def.Transition;
+import org.jbpm.graph.exe.ExecutionContext;
+import org.jbpm.graph.exe.Token;
+import org.jbpm.jpdl.xml.JpdlXmlReader;
+
/**
* a interleaving end node should have 2 leaving transitions.
* one with the name 'back' that has the interleaving start node as
@@ -35,7 +39,7 @@
* Alternatively, the back and done transitions can be specified
* in this interleave handler.
*/
-public class InterleaveEnd extends Node implements Parsable {
+public class InterleaveEnd extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveStart.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveStart.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/InterleaveStart.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -33,7 +33,6 @@
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
/**
* is an unordered set of child nodeMap. the path of execution will
@@ -49,7 +48,7 @@
* Instead of supplying a script, its also possible to subclass this
* class and override the selectTransition method.
*/
-public class InterleaveStart extends Node implements Parsable {
+public class InterleaveStart extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,9 +36,8 @@
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
-public class Join extends Node implements Parsable {
+public class Join extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -46,10 +46,9 @@
import org.jbpm.graph.log.ProcessStateLog;
import org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
import org.jbpm.util.Clock;
-public class ProcessState extends Node implements Parsable {
+public class ProcessState extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/StartState.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/StartState.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/StartState.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -52,11 +52,18 @@
// event types //////////////////////////////////////////////////////////////
- public static final String[] supportedEventTypes = new String[] {
Event.EVENTTYPE_NODE_LEAVE,
- Event.EVENTTYPE_AFTER_SIGNAL };
+ private static final String[] EVENT_TYPES = {
+ Event.EVENTTYPE_NODE_LEAVE, Event.EVENTTYPE_AFTER_SIGNAL
+ };
+ /**
+ * @deprecated arrays are mutable and thus vulnerable to external
+ * manipulation; call {@link #getSupportedEventTypes()} instead
+ */
+ public static final String[] supportedEventTypes = (String[]) EVENT_TYPES.clone();
+
public String[] getSupportedEventTypes() {
- return supportedEventTypes;
+ return (String[]) EVENT_TYPES.clone();
}
// xml //////////////////////////////////////////////////////////////////////
@@ -73,23 +80,19 @@
public void write(Element nodeElement) {
}
- public void leave(ExecutionContext executionContext, Transition transition) {
- // leave this node as usual
- super.leave(executionContext, transition);
- }
-
public void execute(ExecutionContext executionContext) {
}
public Transition addArrivingTransition(Transition t) {
throw new UnsupportedOperationException(
- "illegal operation : its not possible to add a transition that is arriving
in a start state");
+ "illegal operation : its not possible to add a transition that is arriving in
a start state");
}
+ /**
+ * @deprecated start states do not have arriving transitions
+ * @throws UnsupportedOperationException to prevent invocation
+ */
public void setArrivingTransitions(Map arrivingTransitions) {
- if ((arrivingTransitions != null) && (arrivingTransitions.size() > 0)) {
- throw new UnsupportedOperationException(
- "illegal operation : its not possible to set a non-empty map in the
arriving transitions of a start state");
- }
+ throw new UnsupportedOperationException("cannot set arriving transitions for
start state");
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/TaskNode.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/TaskNode.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/TaskNode.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,7 +36,6 @@
import org.jbpm.graph.exe.Token;
import org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator;
import org.jbpm.jpdl.xml.JpdlXmlReader;
-import org.jbpm.jpdl.xml.Parsable;
import org.jbpm.taskmgmt.def.Task;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
@@ -45,7 +44,7 @@
* is a node that relates to one or more tasks. Property <code>signal</code>
* specifies how task completion triggers continuation of execution.
*/
-public class TaskNode extends Node implements Parsable {
+public class TaskNode extends Node {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/BeanInstantiator.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/BeanInstantiator.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/BeanInstantiator.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,7 +28,7 @@
import org.apache.commons.logging.LogFactory;
import org.dom4j.Element;
-public class BeanInstantiator extends FieldInstantiator implements Instantiator {
+public class BeanInstantiator extends FieldInstantiator {
protected void setPropertyValue(Class clazz, Object newInstance, String propertyName,
Element propertyElement) {
@@ -51,13 +51,13 @@
method.invoke(newInstance, new Object[] { value });
}
catch (IllegalArgumentException e) {
- log.error("property '" + propertyName + "' cannot be set
to value: " + value, e);
+ log.error("could not set '" + propertyName + "' to: "
+ value, e);
}
catch (IllegalAccessException e) {
- log.error("property '" + propertyName + "' is
inaccessible", e);
+ log.error(getClass() + " has no access to " + method, e);
}
catch (InvocationTargetException e) {
- log.error("property setter '" + setterMethodName + "'
threw exception", e.getCause());
+ log.error(method + " threw exception", e.getCause());
}
}
else {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/Delegation.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/Delegation.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/Delegation.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -24,8 +24,8 @@
import java.io.IOException;
import java.io.Serializable;
import java.io.StringWriter;
+import java.io.Writer;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.commons.logging.Log;
@@ -55,18 +55,17 @@
instantiators.put("field", new FieldInstantiator());
instantiators.put("bean", new BeanInstantiator());
instantiators.put("constructor", new ConstructorInstantiator());
- instantiators.put("configuration-property",
- new ConfigurationPropertyInstantiator());
+ instantiators.put("configuration-property", new
ConfigurationPropertyInstantiator());
instantiators.put("xml", new XmlInstantiator());
return instantiators;
}
- long id;
+ private long id;
protected String className;
protected String configuration;
protected String configType;
protected ProcessDefinition processDefinition;
- transient Object instance;
+ private transient Object instance;
public Delegation() {
}
@@ -83,32 +82,37 @@
processDefinition = jpdlReader.getProcessDefinition();
className = delegateElement.attributeValue("class");
if (className == null) {
- jpdlReader.addWarning("no class specified in delegation: "
- + delegateElement.getPath());
+ jpdlReader.addWarning("no class specified in delegation: " +
delegateElement.getPath());
}
configType = delegateElement.attributeValue("config-type");
if (delegateElement.hasContent()) {
try {
StringWriter stringWriter = new StringWriter();
- // when parsing, it could be to store the config in the database,
- // so we want to make the configuration compact
- XMLWriter xmlWriter =
- new XMLWriter(stringWriter, OutputFormat.createCompactFormat());
- for (Iterator iter = delegateElement.content().iterator(); iter.hasNext();) {
- Object node = iter.next();
- xmlWriter.write(node);
- }
+ // configuration is saved to database, write in a compact format
+ CompactXmlWriter xmlWriter = new CompactXmlWriter(stringWriter);
+ xmlWriter.writeElementContent(delegateElement);
xmlWriter.flush();
configuration = stringWriter.toString();
}
catch (IOException e) {
jpdlReader.addProblem(new Problem(Problem.LEVEL_WARNING,
- "failed to write configuration xml", e));
+ "failed to write configuration xml", e));
}
}
}
+ private static class CompactXmlWriter extends XMLWriter {
+
+ CompactXmlWriter(Writer writer) {
+ super(writer, OutputFormat.createCompactFormat());
+ }
+
+ public void writeElementContent(Element element) throws IOException {
+ super.writeElementContent(element);
+ }
+ }
+
public void write(Element element) {
element.addAttribute("class", className);
element.addAttribute("config-type", configType);
@@ -116,11 +120,11 @@
if (configuration != null) {
try {
Element actionElement = DocumentHelper.parseText(
- "<action>" + configuration +
"</action>").getRootElement();
+ "<action>" + configuration +
"</action>").getRootElement();
element.appendContent(actionElement);
}
catch (DocumentException e) {
- log.error("could not parse action configuration: " + configuration,
e);
+ log.error("could not parse configuration: " + configuration, e);
}
}
}
@@ -133,12 +137,13 @@
}
public Object instantiate() {
- // The thread class loader was set before the instantiation correctly
- // to the ProcessClassLoader (PCL) which can be directly used here
- // If we would construct a JbpmConfiguration.getProcessClassLoder here
- // we would have the hierarchy PCL -> PCL -> Context...
- // this is one PCL too much
+ /*
+ * The context class loader for the current thread should already be a
+ * ProcessClassLoader that this delegation can use directly. There is no
+ * need to introduce an extra process class loader.
+ */
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ assert classLoader instanceof ProcessClassLoader : classLoader.getClass();
// find the instantiator
Instantiator instantiator = (Instantiator) instantiatorCache.get(configType);
@@ -146,20 +151,21 @@
try {
// load the instantiator class
Class instantiatorClass = Class.forName(configType, false, classLoader);
- // instantiate the instantiator with the default constructor
- instantiator = (Instantiator) instantiatorClass.newInstance();
- instantiatorCache.put(configType, instantiator);
+ try {
+ // instantiate the instantiator with the default constructor
+ instantiator = (Instantiator) instantiatorClass.newInstance();
+ instantiatorCache.put(configType, instantiator);
+ }
+ catch (InstantiationException e) {
+ throw new JbpmException("failed to instantiate " + instantiatorClass,
e);
+ }
+ catch (IllegalAccessException e) {
+ throw new JbpmException(getClass() + " has no access to " +
instantiatorClass, e);
+ }
}
catch (ClassNotFoundException e) {
- throw new JbpmException("could not load instantiator class "
- + configType, e);
+ throw new JbpmException("could not load instantiator class " +
configType, e);
}
- catch (InstantiationException e) {
- throw new JbpmException("could not instantiate " + configType, e);
- }
- catch (IllegalAccessException e) {
- throw new JbpmException("could not access " + configType, e);
- }
}
try {
@@ -169,8 +175,7 @@
return instantiator.instantiate(delegationClass, configuration);
}
catch (ClassNotFoundException e) {
- throw new DelegationException("could not load delegation class "
- + className, e);
+ throw new DelegationException("could not load delegation class " +
className, e);
}
}
@@ -185,13 +190,12 @@
return className.equals(other.getClassName())
&& (configuration != null ? configuration.equals(other.getConfiguration())
- : other.getConfiguration() == null);
+ : other.getConfiguration() == null);
}
public int hashCode() {
int result = 2131399759 + className.hashCode();
- result = 702058657 * result + configuration != null ? configuration.hashCode()
- : 0;
+ result = 702058657 * result + configuration != null ? configuration.hashCode() : 0;
return result;
}
@@ -229,8 +233,12 @@
return id;
}
+ /**
+ * @deprecated database identifier is not meant to be mutable
+ * @throws UnsupportedOperationException to prevent invocation
+ */
public void setId(long id) {
- this.id = id;
+ throw new UnsupportedOperationException();
}
public ProcessDefinition getProcessDefinition() {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/FieldInstantiator.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/FieldInstantiator.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/instantiation/FieldInstantiator.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -67,7 +67,7 @@
}
protected void setPropertyValue(Class clazz, Object instance, String propertyName,
- Element propertyElement) {
+ Element propertyElement) {
Field field = findField(clazz, propertyName);
if (field != null) {
field.setAccessible(true);
@@ -76,14 +76,14 @@
field.set(instance, value);
}
catch (IllegalArgumentException e) {
- log.error("field '" + propertyName + "' cannot be set to
value: " + value, e);
+ log.error("could not set '" + propertyName + "' to: "
+ value, e);
}
catch (IllegalAccessException e) {
- log.error(" field '" + propertyName + "' is
inaccessible", e);
+ log.error(getClass() + " has no access to " + field, e);
}
}
else {
- log.error("field '" + propertyName + "' was not
found");
+ log.error("field not found: " + propertyName);
}
}
@@ -103,11 +103,11 @@
protected Element parseConfiguration(String configuration) {
Element element = null;
try {
- element = DocumentHelper.parseText("<action>" + configuration +
"</action>").getRootElement();
+ element = DocumentHelper.parseText("<action>" + configuration +
"</action>")
+ .getRootElement();
}
catch (DocumentException e) {
- log.error("couldn't parse bean configuration : " + configuration,
e);
- throw new JbpmException(e);
+ throw new JbpmException("failed to parse configuration", e);
}
return element;
}
@@ -117,10 +117,10 @@
return clazz.newInstance();
}
catch (InstantiationException e) {
- throw new JbpmException("could not instantiate " + clazz, e);
+ throw new JbpmException("failed to instantiate " + clazz, e);
}
catch (IllegalAccessException e) {
- throw new JbpmException("could not access " + clazz, e);
+ throw new JbpmException(getClass() + " has no access to " + clazz, e);
}
}
@@ -130,28 +130,28 @@
if (type == String.class) {
value = propertyElement.getText();
}
- else if ((type == Integer.class) || (type == int.class)) {
+ else if (type == Integer.class || type == int.class) {
value = new Integer(propertyElement.getTextTrim());
}
- else if ((type == Long.class) || (type == long.class)) {
+ else if (type == Long.class || type == long.class) {
value = new Long(propertyElement.getTextTrim());
}
- else if ((type == Float.class) || (type == float.class)) {
+ else if (type == Float.class || type == float.class) {
value = new Float(propertyElement.getTextTrim());
}
- else if ((type == Double.class) || (type == double.class)) {
+ else if (type == Double.class || type == double.class) {
value = new Double(propertyElement.getTextTrim());
}
- else if ((type == Boolean.class) || (type == boolean.class)) {
+ else if (type == Boolean.class || type == boolean.class) {
value = Boolean.valueOf(propertyElement.getTextTrim());
}
- else if ((type == Character.class) || (type == char.class)) {
+ else if (type == Character.class || type == char.class) {
value = new Character(propertyElement.getTextTrim().charAt(0));
}
- else if ((type == Short.class) || (type == short.class)) {
+ else if (type == Short.class || type == short.class) {
value = new Short(propertyElement.getTextTrim());
}
- else if ((type == Byte.class) || (type == byte.class)) {
+ else if (type == Byte.class || type == byte.class) {
value = new Byte(propertyElement.getTextTrim());
}
else if (type == List.class || type == Collection.class) {
@@ -180,32 +180,30 @@
else if (Map.class.isAssignableFrom(type)) {
value = getMap(propertyElement, (Map) type.newInstance());
}
- else {
+ else if (propertyElement.isTextOnly()) {
+ Constructor constructor = type.getConstructor(new Class[] { String.class });
try {
- Constructor constructor = type.getConstructor(new Class[] { String.class });
- if (propertyElement.isTextOnly()) {
- value = constructor.newInstance(new Object[] {
propertyElement.getTextTrim() });
- }
- else {
- log.error("element '" + propertyElement.getName() +
"' has non-text content");
- }
+ value = constructor.newInstance(new Object[] { propertyElement.getTextTrim()
});
}
- catch (NoSuchMethodException e) {
- log.error(type + " does not have a string constructor", e);
+ catch (IllegalAccessException e) {
+ log.error(FieldInstantiator.class + " has no access to " +
constructor);
}
- catch (IllegalArgumentException e) {
- log.error(type + " cannot be constructed with value " +
propertyElement.getTextTrim(), e);
+ catch (InvocationTargetException e) {
+ log.error(constructor + " threw exception", e.getCause());
}
}
+ else {
+ log.error("element '" + propertyElement.getName() + "'
has non-text content");
+ }
}
catch (InstantiationException e) {
- log.error("could not instantiate " + type, e);
+ log.error("failed to instantiate " + type, e);
}
catch (IllegalAccessException e) {
- log.error(type + " is inaccessible", e);
+ log.error(FieldInstantiator.class + " has no access to " + type, e);
}
- catch (InvocationTargetException e) {
- log.error("constructor for " + type + " threw exception",
e.getCause());
+ catch (NoSuchMethodException e) {
+ log.error("constructor not found: " + type.getName() +
"(String)", e);
}
}
return value;
@@ -225,7 +223,7 @@
return map;
}
- static Object getCollection(Element collectionElement, Collection collection) {
+ private static Object getCollection(Element collectionElement, Collection collection)
{
Class elementClass = classForAttributeValue(collectionElement,
"element-type");
for (Iterator iter = collectionElement.elementIterator(); iter.hasNext();) {
@@ -236,7 +234,8 @@
}
/**
- * Returns the <code>Class</code> associated with the value for the
attribute with the given name.
+ * Returns the <code>Class</code> associated with the value for the
attribute
+ * with the given name.
*/
private static Class classForAttributeValue(Element element, String attributeName) {
Class type = String.class;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,25 +36,45 @@
protected int lockBufferTime;
private ThreadGroup threadGroup;
- protected Map threads = new HashMap();
+ /** @deprecated call {@link #getThreads()} instead */
+ protected Map threads;
protected LockMonitorThread lockMonitorThread;
+
protected Map monitoredJobIds = new Hashtable();
protected boolean isStarted = false;
+ /** @deprecated this field should never have been exposed */
protected static String hostName;
+ private static String hostAddress;
public synchronized void start() {
if (!isStarted) {
- log.debug("starting job executor '" + name + '\'');
+ log.debug("starting " + name);
+
+ // create thread group
+ threadGroup = new ThreadGroup(name) {
+ public void uncaughtException(Thread thread, Throwable throwable) {
+ if (thread instanceof JobExecutorThread) {
+ startThread(thread.getName());
+ }
+ else if (thread instanceof LockMonitorThread) {
+ startLockMonitorThread();
+ }
+ super.uncaughtException(thread, throwable);
+ }
+ };
+
+ // start executor threads
for (int i = 0; i < nbrOfThreads; i++) {
startThread();
}
+
startLockMonitorThread();
isStarted = true;
}
else {
- log.debug("ignoring start: job executor '" + name + "'
already started'");
+ log.debug("ignoring start: " + name + " already
started'");
}
}
@@ -69,24 +89,20 @@
*/
public synchronized List stop() {
if (!isStarted) {
- log.debug("ignoring stop: job executor '" + name + "' not
started");
+ log.debug("ignoring stop, " + name + " not started");
return Collections.EMPTY_LIST;
}
- log.debug("stopping job executor '" + name + '\'');
+ log.debug("stopping " + name);
isStarted = false;
- Thread[] stoppedThreads = new Thread[threads.size()];
- for (int i = 0; i < nbrOfThreads; i++) {
- stoppedThreads[i] = stopThread();
+ Thread[] activeThreads = new Thread[threadGroup.activeCount()];
+ int threadCount = threadGroup.enumerate(activeThreads);
+ for (int i = 0; i < threadCount; i++) {
+ stopThread(activeThreads[i]);
}
- if (lockMonitorThread != null) {
- lockMonitorThread.deactivate();
- lockMonitorThread = null;
- }
-
- return Arrays.asList(stoppedThreads);
+ return Arrays.asList(activeThreads);
}
public void stopAndJoin() throws InterruptedException {
@@ -94,38 +110,33 @@
Thread thread = (Thread) i.next();
thread.join();
}
-
- if (lockMonitorThread != null) lockMonitorThread.join();
}
public void ensureThreadsAreActive() {
- String[] deceasedNames = new String[threads.size()];
- int deathToll = 0;
- for (Iterator i = threads.values().iterator(); i.hasNext();) {
- Thread thread = (Thread) i.next();
- if (!thread.isAlive()) {
- deceasedNames[deathToll++] = thread.getName();
+ int activeCount = threadGroup.activeCount();
+ if (activeCount < nbrOfThreads + 1) {
+ // find out who is missing
+ Thread[] activeThreads = new Thread[activeCount];
+ activeCount = threadGroup.enumerate(activeThreads);
+
+ for (int i = 1; i <= nbrOfThreads; i++) {
+ String threadName = getThreadName(i);
+ if (!contains(activeThreads, activeCount, threadName)) {
+ // thread-i is missing, restart it
+ startThread(threadName);
+ }
}
}
- for (int i = 0; i < deathToll; i++) {
- startThread(deceasedNames[i]);
+ }
+
+ private static boolean contains(Thread[] threads, int count, String threadName) {
+ for (int i = 0; i < count; i++) {
+ if (threadName.equals(threads[i].getName())) return true;
}
+ return false;
}
- synchronized ThreadGroup getThreadGroup() {
- if (threadGroup == null) {
- threadGroup = new ThreadGroup(name) {
- public void uncaughtException(Thread thread, Throwable throwable) {
- if (thread instanceof JobExecutorThread) {
- startThread(thread.getName());
- }
- else if (thread instanceof LockMonitorThread) {
- startLockMonitorThread();
- }
- super.uncaughtException(thread, throwable);
- }
- };
- }
+ ThreadGroup getThreadGroup() {
return threadGroup;
}
@@ -133,11 +144,10 @@
startThread(getNextThreadName());
}
- protected synchronized void startThread(String threadName) {
+ protected void startThread(String threadName) {
Thread thread = createThread(threadName);
- threads.put(threadName, thread);
- log.debug("starting new job executor thread '" + threadName +
'\'');
+ log.debug("starting " + threadName);
thread.start();
}
@@ -146,19 +156,43 @@
}
protected String getNextThreadName() {
- return getThreadName(threads.size() + 1);
+ return getThreadName(threadGroup.activeCount() + 1);
}
protected String getLastThreadName() {
- return getThreadName(threads.size());
+ return getThreadName(threadGroup.activeCount());
}
+ /** @deprecated */
+ protected synchronized Thread stopThread() {
+ String threadName = getLastThreadName();
+ log.debug("stopping " + threadName);
+
+ Thread thread = (Thread) threads.remove(threadName);
+ stopThread(thread);
+ return thread;
+ }
+
+ private void stopThread(Thread thread) {
+ if (thread instanceof JobExecutorThread) {
+ JobExecutorThread executor = (JobExecutorThread) thread;
+ executor.deactivate();
+ }
+ else if (thread instanceof LockMonitorThread) {
+ LockMonitorThread monitor = (LockMonitorThread) thread;
+ monitor.deactivate();
+ }
+ }
+
private String getThreadName(int index) {
return name + '@' + getHostAddress() + ":Executor-" + index;
}
- private void startLockMonitorThread() {
- lockMonitorThread = new LockMonitorThread(getLockMonitorThreadName(), this);
+ void startLockMonitorThread() {
+ String threadName = getLockMonitorThreadName();
+ lockMonitorThread = new LockMonitorThread(threadName, this);
+
+ log.debug("starting " + threadName);
lockMonitorThread.start();
}
@@ -167,29 +201,17 @@
}
private static String getHostAddress() {
- if (hostName == null) {
+ if (hostAddress == null) {
try {
- hostName = InetAddress.getLocalHost().getHostAddress();
+ hostAddress = InetAddress.getLocalHost().getHostAddress();
}
catch (UnknownHostException e) {
- hostName = "127.0.0.1";
+ hostAddress = "127.0.0.1";
}
}
- return hostName;
+ return hostAddress;
}
- protected synchronized Thread stopThread() {
- String threadName = getLastThreadName();
- log.debug("removing job executor thread '" + threadName +
'\'');
-
- Thread thread = (Thread) threads.remove(threadName);
- if (thread instanceof JobExecutorThread) {
- JobExecutorThread jobThread = (JobExecutorThread) thread;
- jobThread.deactivate();
- }
- return thread;
- }
-
public Set getMonitoredJobIds() {
return new HashSet(monitoredJobIds.values());
}
@@ -282,12 +304,20 @@
}
public Map getThreads() {
- return threads;
+ Thread[] threadList = new Thread[threadGroup.activeCount()];
+ int threadCount = threadGroup.enumerate(threadList);
+
+ Map threadMap = new HashMap(threadCount);
+ for (int i = 0; i < threadCount; i++) {
+ Thread thread = threadList[i];
+ threadMap.put(thread.getName(), thread);
+ }
+ return threadMap;
}
/**
+ * @deprecated <code>threads</code> is an internal control field
* @throws UnsupportedOperationException to prevent invocation
- * @deprecated <code>threads</code> is an internal control field
*/
public void setThreads(Map threads) {
throw new UnsupportedOperationException();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/parser/ELParserTokenManager.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/parser/ELParserTokenManager.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/parser/ELParserTokenManager.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -183,7 +183,7 @@
}
else
{
- int hiByte = (int)(curChar >> 8);
+ int hiByte = curChar >> 8;
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6;
@@ -785,7 +785,7 @@
}
else
{
- int hiByte = (int)(curChar >> 8);
+ int hiByte = curChar >> 8;
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/par/ProcessArchive.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/par/ProcessArchive.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/par/ProcessArchive.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -24,6 +24,7 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -45,7 +46,7 @@
import org.jbpm.util.IoUtil;
import org.jbpm.util.XmlUtil;
-public class ProcessArchive implements ProblemListener {
+public class ProcessArchive implements ProblemListener, Serializable {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/JpdlXmlReader.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/JpdlXmlReader.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/JpdlXmlReader.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -234,10 +234,10 @@
}
}
catch (InstantiationException e) {
- throw new JbpmException("could not instantiate " + nodeType, e);
+ throw new JbpmException("failed to instantiate " + nodeType, e);
}
catch (IllegalAccessException e) {
- throw new JbpmException("illegal access to " + nodeType, e);
+ throw new JbpmException(getClass() + " has no access to " + nodeType,
e);
}
}
}
@@ -586,12 +586,12 @@
}
}
+ /** Reads actions associated to the given event. */
public void readActions(Element eventElement, GraphElement graphElement, String
eventType) {
// for all the elements in the event element
for (Iterator iter = eventElement.elementIterator(); iter.hasNext();) {
Element actionElement = (Element) iter.next();
- String actionName = actionElement.getName();
- if (ActionTypes.hasActionName(actionName)) {
+ if (ActionTypes.hasActionName(actionElement.getName())) {
Action action = createAction(actionElement);
if (graphElement != null && eventType != null) {
// add the action to the event
@@ -610,6 +610,7 @@
event.addAction(action);
}
+ /** Reads the action associated to the given node. */
public Action readSingleAction(Element nodeElement) {
// search for the first action element in the node
for (Iterator iter = nodeElement.elementIterator(); iter.hasNext();) {
@@ -622,6 +623,7 @@
return null;
}
+ /** Instantiates and configures an action. */
public Action createAction(Element actionElement) {
String actionName = actionElement.getName();
Class actionType = ActionTypes.getActionType(actionName);
@@ -638,10 +640,11 @@
throw new JbpmException("failed to instantiate " + actionType, e);
}
catch (IllegalAccessException e) {
- throw new JbpmException("illegal access to " + actionType, e);
+ throw new JbpmException(getClass() + " has no access to " + actionType,
e);
}
}
+ /** Configures the common action parts. */
public void readAction(Element actionElement, Action action) {
// if a name is specified for this action
String actionName = actionElement.attributeValue("name");
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/ProblemListener.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/ProblemListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/xml/ProblemListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,9 +21,7 @@
*/
package org.jbpm.jpdl.xml;
-import java.io.Serializable;
+public interface ProblemListener {
-public interface ProblemListener extends Serializable {
-
void addProblem(Problem problem);
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/mail/Mail.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/mail/Mail.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/mail/Mail.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -244,7 +244,7 @@
Object resolvedAddresses = addressResolver.resolveAddress(actorId);
if (resolvedAddresses != null) {
if (resolvedAddresses instanceof String) {
- emailAddresses.add((String) resolvedAddresses);
+ emailAddresses.add(resolvedAddresses);
}
else if (resolvedAddresses instanceof Collection) {
emailAddresses.addAll((Collection) resolvedAddresses);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/PersistenceService.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/PersistenceService.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/PersistenceService.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -27,9 +27,10 @@
import org.jbpm.db.LoggingSession;
import org.jbpm.db.TaskMgmtSession;
import org.jbpm.svc.Service;
+import org.jbpm.tx.TxService;
public interface PersistenceService extends Service {
-
+
void assignId(Object object);
GraphSession getGraphSession();
@@ -37,20 +38,17 @@
JobSession getJobSession();
ContextSession getContextSession();
TaskMgmtSession getTaskMgmtSession();
+ Object getCustomSession(Class sessionClass);
- /**
- * @deprecated use {@link org.jbpm.tx.TxService} instead.
- */
+ /** @deprecated call {@link TxService#isRollbackOnly()} instead */
boolean isRollbackOnly();
- /**
- * @deprecated use {@link org.jbpm.tx.TxService} instead.
- */
- void setRollbackOnly(boolean isRollbackOnly);
- /**
- * @deprecated use {@link org.jbpm.tx.TxService} instead.
- */
+
+ /** @deprecated call {@link TxService#setRollbackOnly()} instead */
void setRollbackOnly();
+ /** @deprecated call {@link TxService#setRollbackOnly()} instead */
+ void setRollbackOnly(boolean isRollbackOnly);
+
void setGraphSession(GraphSession graphSession);
void setLoggingSession(LoggingSession loggingSession);
void setJobSession(JobSession jobSession);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,8 +21,12 @@
*/
package org.jbpm.persistence.db;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.SQLException;
+import java.util.IdentityHashMap;
+import java.util.Map;
import javax.sql.DataSource;
@@ -33,6 +37,8 @@
import org.hibernate.SessionFactory;
import org.hibernate.StaleStateException;
import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
import org.hibernate.exception.LockAcquisitionException;
import org.jbpm.JbpmContext;
@@ -71,6 +77,8 @@
protected ContextSession contextSession;
protected LoggingSession loggingSession;
+ private Map customSessions;
+
/**
* @deprecated for access to other services, invoke
* {@link JbpmContext#getServices()}
@@ -92,30 +100,28 @@
if (session == null && getSessionFactory() != null) {
Connection connection = getConnection(false);
if (isCurrentSessionEnabled) {
- log.debug("using current hibernate session");
session = getSessionFactory().getCurrentSession();
+ log.debug("using current " + session);
mustSessionBeClosed = false;
mustSessionBeFlushed = false;
mustConnectionBeClosed = false;
}
else if (connection != null) {
- log.debug("creating hibernate session on " + connection);
session = getSessionFactory().openSession(connection);
+ log.debug("created " + session);
mustSessionBeClosed = true;
mustSessionBeFlushed = true;
mustConnectionBeClosed = false;
}
else {
- log.debug("creating hibernate session");
session = getSessionFactory().openSession();
+ log.debug("created " + session);
mustSessionBeClosed = true;
mustSessionBeFlushed = true;
mustConnectionBeClosed = false;
}
- if (isTransactionEnabled) {
- beginTransaction();
- }
+ if (isTransactionEnabled) beginTransaction();
}
return session;
}
@@ -129,7 +135,8 @@
public void endTransaction() {
if (isTransactionManagedExternally()) {
if (session != null && getTxService().isRollbackOnly()) {
- throw new JbpmException("cannot mark externally managed transaction for
rollback");
+ throw new JbpmException(
+ "cannot honor rollback request under an external transaction
manager");
}
return;
}
@@ -178,15 +185,30 @@
}
if (session != null) {
connection = session.connection();
- log.debug("fetched " + connection
- + " from hibernate session, client is responsible for closing
it!");
- mustConnectionBeClosed = false;
+ /*
+ * If the session is using aggressive collection release (as in a CMT
+ * environment), the application is responsible for closing the
+ * returned connection. Otherwise, the application should not close
+ * the connection.
+ */
+ Configuration configuration = persistenceServiceFactory.getConfiguration();
+ String releaseMode =
configuration.getProperty(Environment.RELEASE_CONNECTIONS);
+ if ("after_statement".equals(releaseMode)
+ || ("auto".equals(releaseMode) &&
isJtaOrCmtStrategy(configuration))) {
+ mustConnectionBeClosed = true;
+ }
}
}
}
return connection;
}
+ private static boolean isJtaOrCmtStrategy(Configuration configuration) {
+ String transactionStrategy =
configuration.getProperty(Environment.TRANSACTION_STRATEGY);
+ return transactionStrategy != null
+ && (transactionStrategy.indexOf("JTA") != -1 ||
transactionStrategy.indexOf("CMT") != -1);
+ }
+
public boolean isTransactionActive() {
return transaction != null && transaction.isActive();
}
@@ -227,36 +249,36 @@
}
protected Exception commit() {
+ log.debug("committing " + transaction);
+ mustSessionBeFlushed = false; // commit does a flush anyway
try {
- log.debug("committing " + transaction);
- mustSessionBeFlushed = false; // commit does a flush anyway
transaction.commit();
+ return null;
}
catch (HibernateException e) {
// avoid log and throw antipattern
return e;
}
- return null;
}
protected Exception rollback() {
+ log.debug("rolling back " + transaction);
+ // flushing updates that will be rolled back is not very clever :-)
+ mustSessionBeFlushed = false;
try {
- log.debug("rolling back " + transaction);
- // flushing updates that will be rolled back is not very clever :-)
- mustSessionBeFlushed = false;
transaction.rollback();
+ return null;
}
catch (HibernateException e) {
// avoid log and throw antipattern
return e;
}
- return null;
}
private Exception flushSession() {
if (mustSessionBeFlushed) {
+ log.debug("flushing " + session);
try {
- log.debug("flushing " + session);
session.flush();
}
catch (HibernateException e) {
@@ -270,8 +292,8 @@
private Exception closeSession() {
if (mustSessionBeClosed) {
if (session.isOpen()) {
+ log.debug("closing hibernate session");
try {
- log.debug("closing hibernate session");
session.close();
}
catch (HibernateException e) {
@@ -289,8 +311,8 @@
private Exception closeConnection() {
if (mustConnectionBeClosed) {
if (connection != null) {
+ log.debug("closing jdbc connection");
try {
- log.debug("closing jdbc connection");
connection.close();
}
catch (SQLException e) {
@@ -321,9 +343,7 @@
public GraphSession getGraphSession() {
if (graphSession == null) {
Session session = getSession();
- if (session != null) {
- graphSession = new GraphSession(session);
- }
+ if (session != null) graphSession = new GraphSession(session);
}
return graphSession;
}
@@ -331,9 +351,7 @@
public LoggingSession getLoggingSession() {
if (loggingSession == null) {
Session session = getSession();
- if (session != null) {
- loggingSession = new LoggingSession(session);
- }
+ if (session != null) loggingSession = new LoggingSession(session);
}
return loggingSession;
}
@@ -341,9 +359,7 @@
public JobSession getJobSession() {
if (jobSession == null) {
Session session = getSession();
- if (session != null) {
- jobSession = new JobSession(session);
- }
+ if (session != null) jobSession = new JobSession(session);
}
return jobSession;
}
@@ -351,9 +367,7 @@
public ContextSession getContextSession() {
if (contextSession == null) {
Session session = getSession();
- if (session != null) {
- contextSession = new ContextSession(session);
- }
+ if (session != null) contextSession = new ContextSession(session);
}
return contextSession;
}
@@ -361,13 +375,45 @@
public TaskMgmtSession getTaskMgmtSession() {
if (taskMgmtSession == null) {
Session session = getSession();
- if (session != null) {
- taskMgmtSession = new TaskMgmtSession(session);
- }
+ if (session != null) taskMgmtSession = new TaskMgmtSession(session);
}
return taskMgmtSession;
}
+ public Object getCustomSession(Class sessionClass) {
+ if (customSessions == null) {
+ customSessions = new IdentityHashMap();
+ }
+ else {
+ Object customSession = customSessions.get(sessionClass);
+ if (customSession != null) return customSession;
+ }
+ try {
+ Constructor constructor = sessionClass.getConstructor(new Class[] { Session.class
});
+ try {
+ Object customSession = constructor.newInstance(new Object[] { session });
+ customSessions.put(sessionClass, customSession);
+ return customSession;
+ }
+ catch (InstantiationException e) {
+ throw new JbpmException(sessionClass + " is not instantiable", e);
+ }
+ catch (IllegalAccessException e) {
+ throw new JbpmException(getClass() + " has no access to " +
constructor, e);
+ }
+ catch (InvocationTargetException e) {
+ throw new JbpmException(constructor + " threw exception",
e.getCause());
+ }
+ }
+ catch (NoSuchMethodException e) {
+ throw new JbpmException("constructor not found: "
+ + sessionClass.getName()
+ + '('
+ + Session.class.getName()
+ + ')', e);
+ }
+ }
+
public DataSource getDataSource() {
return persistenceServiceFactory.dataSource;
}
@@ -413,7 +459,7 @@
* Injects an external Hibernate session without affecting transaction
* management.
*
- * @deprecated use {@link #setSession(Session, boolean) setSession(session,
+ * @deprecated call {@link #setSession(Session, boolean) setSession(session,
* true)} instead
*/
public void setSessionWithoutDisablingTx(Session session) {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -39,19 +39,19 @@
private static final long serialVersionUID = 1L;
- Configuration configuration = null;
+ Configuration configuration;
- String sessionFactoryJndiName = null;
- SessionFactory sessionFactory = null;
+ String sessionFactoryJndiName;
+ SessionFactory sessionFactory;
- String dataSourceJndiName = null;
- DataSource dataSource = null;
+ String dataSourceJndiName;
+ DataSource dataSource;
boolean isTransactionEnabled = true;
- boolean isCurrentSessionEnabled = false;
+ boolean isCurrentSessionEnabled;
- SchemaExport schemaExport = null;
- JbpmSchema jbpmSchema = null;
+ SchemaExport schemaExport;
+ JbpmSchema jbpmSchema;
public Service openService() {
log.debug("creating persistence service");
@@ -78,7 +78,6 @@
*/
public synchronized SchemaExport getSchemaExport() {
if (schemaExport == null) {
- log.debug("creating schema export");
schemaExport = new SchemaExport(getConfiguration());
}
return schemaExport;
@@ -86,7 +85,6 @@
public synchronized JbpmSchema getJbpmSchema() {
if (jbpmSchema == null) {
- log.debug("creating jbpm schema tool");
jbpmSchema = new JbpmSchema(getConfiguration());
}
return jbpmSchema;
@@ -95,12 +93,10 @@
public synchronized SessionFactory getSessionFactory() {
if (sessionFactory == null) {
if (sessionFactoryJndiName != null) {
- log.debug("looking up hibernate session factory in jndi '" +
sessionFactoryJndiName + "'");
+ log.debug("looking up session factory bound to " +
sessionFactoryJndiName);
sessionFactory = (SessionFactory) JndiUtil.lookup(sessionFactoryJndiName,
SessionFactory.class);
-
}
else {
- log.debug("building hibernate session factory");
sessionFactory = getConfiguration().buildSessionFactory();
}
}
@@ -108,8 +104,8 @@
}
public DataSource getDataSource() {
- if ((dataSource == null) && (dataSourceJndiName != null)) {
- log.debug("looking up datasource from jndi location '" +
dataSourceJndiName + "'");
+ if (dataSource == null && dataSourceJndiName != null) {
+ log.debug("looking up data source bound to " + dataSourceJndiName);
dataSource = (DataSource) JndiUtil.lookup(dataSourceJndiName, DataSource.class);
}
return dataSource;
@@ -140,10 +136,7 @@
}
public void close() {
- if (sessionFactory != null) {
- log.debug("closing hibernate session factory");
- sessionFactory.close();
- }
+ if (sessionFactory != null) sessionFactory.close();
}
public void finalize() throws Throwable {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/Services.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/Services.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/Services.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -156,13 +156,8 @@
}
public void save(ProcessInstance processInstance, JbpmContext jbpmContext) {
- if (log.isDebugEnabled()) {
- if (saveOperations == defaultSaveOperations) {
- log.debug("executing default save operations");
- }
- else {
- log.debug("executing custom save operations");
- }
+ if (saveOperations != defaultSaveOperations && log.isDebugEnabled()) {
+ log.debug("executing custom save operations: " + saveOperations);
}
for (Iterator iter = saveOperations.iterator(); iter.hasNext();) {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CascadeSaveOperation.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CascadeSaveOperation.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CascadeSaveOperation.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,31 +36,32 @@
private static final long serialVersionUID = 1L;
public void save(ProcessInstance processInstance, JbpmContext jbpmContext) {
- log.debug("cascading save of '"+processInstance+"'");
Set cascadedProcessInstances = new HashSet();
cascadedProcessInstances.add(processInstance);
cascadeSave(processInstance.removeCascadeProcessInstances(), jbpmContext,
cascadedProcessInstances);
}
- void cascadeSave(Collection cascadeProcessInstances, JbpmContext jbpmContext, Set
cascadedProcessInstances) {
- if (cascadeProcessInstances!=null) {
- Iterator iter = cascadeProcessInstances.iterator();
- while (iter.hasNext()) {
+ private void cascadeSave(Collection cascadeProcessInstances, JbpmContext jbpmContext,
+ Set cascadedProcessInstances) {
+ if (cascadeProcessInstances != null) {
+ for (Iterator iter = cascadeProcessInstances.iterator(); iter.hasNext();) {
ProcessInstance cascadeInstance = (ProcessInstance) iter.next();
saveCascadeInstance(cascadeInstance, jbpmContext, cascadedProcessInstances);
}
}
}
-
- void saveCascadeInstance(ProcessInstance cascadeInstance, JbpmContext jbpmContext, Set
cascadedProcessInstances) {
- if (! cascadedProcessInstances.contains(cascadeInstance)) {
- Collection cascadeProcessInstances =
cascadeInstance.removeCascadeProcessInstances();
- log.debug("cascading save to process instance
'"+cascadeInstance+"'");
+
+ private void saveCascadeInstance(ProcessInstance cascadeInstance, JbpmContext
jbpmContext,
+ Set cascadedProcessInstances) {
+ if (!cascadedProcessInstances.contains(cascadeInstance)) {
+ log.debug("cascading save to " + cascadeInstance);
jbpmContext.save(cascadeInstance);
cascadedProcessInstances.add(cascadeInstance);
+
+ Collection cascadeProcessInstances =
cascadeInstance.removeCascadeProcessInstances();
cascadeSave(cascadeProcessInstances, jbpmContext, cascadedProcessInstances);
}
}
- private static Log log = LogFactory.getLog(CascadeSaveOperation.class);
+ private Log log = LogFactory.getLog(CascadeSaveOperation.class);
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/HibernateSaveOperation.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/HibernateSaveOperation.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/HibernateSaveOperation.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -33,12 +33,13 @@
public void save(ProcessInstance processInstance, JbpmContext jbpmContext) {
Session session = jbpmContext.getSession();
- if (session!=null) {
- log.debug("saving process instance");
+ if (session != null) {
+ log.debug("saving " + processInstance);
session.save(processInstance);
- } else {
- log.debug("ignoring hibernate save. no session available.");
}
+ else {
+ log.debug("ignoring hibernate save, no session available");
+ }
}
private static Log log = LogFactory.getLog(HibernateSaveOperation.class);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -22,6 +22,7 @@
package org.jbpm.svc.save;
import java.util.Iterator;
+import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -29,7 +30,6 @@
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.logging.LoggingService;
-import org.jbpm.logging.exe.LoggingInstance;
import org.jbpm.logging.log.ProcessLog;
public class SaveLogsOperation implements SaveOperation {
@@ -38,25 +38,27 @@
public void save(ProcessInstance processInstance, JbpmContext jbpmContext) {
LoggingService loggingService = jbpmContext.getServices().getLoggingService();
-
- if (loggingService!=null) {
- LoggingInstance loggingInstance = processInstance.getLoggingInstance();
- log.debug("flushing logs to logging service.");
- Iterator iter = loggingInstance.getLogs().iterator();
- while (iter.hasNext()) {
- ProcessLog processLog = (ProcessLog) iter.next();
- Token token = processLog.getToken();
- if (token!=null) {
- int index = token.nextLogIndex();
- processLog.setIndex(index);
+
+ if (loggingService != null) {
+ List logs = processInstance.getLoggingInstance().getLogs();
+ if (!logs.isEmpty()) {
+ log.debug("pushing " + logs.size() + " logs to logging
service");
+
+ for (Iterator iter = logs.iterator(); iter.hasNext();) {
+ ProcessLog processLog = (ProcessLog) iter.next();
+ Token token = processLog.getToken();
+ if (token != null) {
+ int index = token.nextLogIndex();
+ processLog.setIndex(index);
+ }
+ loggingService.log(processLog);
}
- loggingService.log(processLog);
}
-
- } else {
- log.debug("ignoring logs. no logging service available.");
}
+ else {
+ log.debug("ignoring logs, no logging service available");
+ }
}
-
- private static Log log = LogFactory.getLog(SaveLogsOperation.class);
+
+ private Log log = LogFactory.getLog(SaveLogsOperation.class);
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -591,8 +591,12 @@
return id;
}
+ /**
+ * @deprecated database identifier is not meant to be mutable
+ * @throws UnsupportedOperationException to prevent invocation
+ */
public void setId(long id) {
- this.id = id;
+ throw new UnsupportedOperationException();
}
public Date getStart() {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -103,8 +103,7 @@
/**
* creates an instance of the given task, in the given execution context.
*/
- public TaskInstance createTaskInstance(Task task,
- ExecutionContext executionContext) {
+ public TaskInstance createTaskInstance(Task task, ExecutionContext executionContext) {
// instantiate the new task instance
TaskInstance taskInstance = instantiateNewTaskInstance(executionContext);
@@ -130,10 +129,8 @@
String durationString = null;
if (dueDateString.startsWith("#")) {
- String baseDateEL = dueDateString.substring(0,
- dueDateString.indexOf("}") + 1);
- Object result = JbpmExpressionEvaluator.evaluate(baseDateEL,
- executionContext);
+ String baseDateEL = dueDateString.substring(0,
dueDateString.indexOf("}") + 1);
+ Object result = JbpmExpressionEvaluator.evaluate(baseDateEL,
executionContext);
if (result instanceof Date) {
baseDate = (Date) result;
}
@@ -145,9 +142,7 @@
}
int endOfELIndex = dueDateString.indexOf("}");
if (endOfELIndex < (dueDateString.length() - 1)) {
- char durationSeparator = dueDateString.substring(endOfELIndex + 1)
- .trim()
- .charAt(0);
+ char durationSeparator = dueDateString.substring(endOfELIndex +
1).trim().charAt(0);
if (durationSeparator != '+' && durationSeparator !=
'-') {
throw new JbpmException("'+' or '-' missing after
expression");
}
@@ -179,8 +174,7 @@
if (task != null) {
String description = task.getDescription();
if ((description != null) && (description.indexOf("#{") !=
-1)) {
- Object result = JbpmExpressionEvaluator.evaluate(description,
- executionContext);
+ Object result = JbpmExpressionEvaluator.evaluate(description,
executionContext);
if (result != null) {
taskInstance.setDescription(result.toString());
}
@@ -213,8 +207,8 @@
return taskInstance;
}
- public SwimlaneInstance getInitializedSwimlaneInstance(
- ExecutionContext executionContext, Swimlane swimlane) {
+ public SwimlaneInstance getInitializedSwimlaneInstance(ExecutionContext
executionContext,
+ Swimlane swimlane) {
// initialize the swimlane
if (swimlaneInstances == null) swimlaneInstances = new HashMap();
SwimlaneInstance swimlaneInstance = (SwimlaneInstance)
swimlaneInstances.get(swimlane.getName());
@@ -222,31 +216,26 @@
swimlaneInstance = new SwimlaneInstance(swimlane);
addSwimlaneInstance(swimlaneInstance);
// assign the swimlaneInstance
- performAssignment(swimlane.getAssignmentDelegation(),
- swimlane.getActorIdExpression(),
- swimlane.getPooledActorsExpression(), swimlaneInstance,
- executionContext);
+ performAssignment(swimlane.getAssignmentDelegation(),
swimlane.getActorIdExpression(),
+ swimlane.getPooledActorsExpression(), swimlaneInstance, executionContext);
}
return swimlaneInstance;
}
- public void performAssignment(Delegation assignmentDelegation,
- String actorIdExpression, String pooledActorsExpression,
- Assignable assignable, ExecutionContext executionContext) {
+ public void performAssignment(Delegation assignmentDelegation, String
actorIdExpression,
+ String pooledActorsExpression, Assignable assignable, ExecutionContext
executionContext) {
try {
if (assignmentDelegation != null) {
- performAssignmentDelegation(assignmentDelegation, assignable,
- executionContext);
+ performAssignmentDelegation(assignmentDelegation, assignable, executionContext);
}
else {
if (actorIdExpression != null) {
- performAssignmentActorIdExpr(actorIdExpression, assignable,
- executionContext);
+ performAssignmentActorIdExpr(actorIdExpression, assignable, executionContext);
}
if (pooledActorsExpression != null) {
performAssignmentPooledActorsExpr(pooledActorsExpression, assignable,
- executionContext);
+ executionContext);
}
}
}
@@ -261,11 +250,9 @@
}
}
- void performAssignmentDelegation(Delegation assignmentDelegation,
- Assignable assignable, ExecutionContext executionContext)
- throws Exception {
- ClassLoader surroundingClassLoader = Thread.currentThread()
- .getContextClassLoader();
+ void performAssignmentDelegation(Delegation assignmentDelegation, Assignable
assignable,
+ ExecutionContext executionContext) throws Exception {
+ ClassLoader surroundingClassLoader = Thread.currentThread().getContextClassLoader();
try {
// set context class loader correctly for delegation class
//
https://jira.jboss.org/jira/browse/JBPM-1448
@@ -277,8 +264,7 @@
// invoke the assignment handler
UserCodeInterceptor userCodeInterceptor =
UserCodeInterceptorConfig.getUserCodeInterceptor();
if (userCodeInterceptor != null) {
- userCodeInterceptor.executeAssignment(assignmentHandler, assignable,
- executionContext);
+ userCodeInterceptor.executeAssignment(assignmentHandler, assignable,
executionContext);
}
else {
assignmentHandler.assign(assignable, executionContext);
@@ -289,31 +275,31 @@
}
}
- void performAssignmentActorIdExpr(String actorIdExpression,
- Assignable assignable, ExecutionContext executionContext) {
- Object result = JbpmExpressionEvaluator.evaluate(actorIdExpression,
- executionContext);
+ void performAssignmentActorIdExpr(String actorIdExpression, Assignable assignable,
+ ExecutionContext executionContext) {
+ Object result = JbpmExpressionEvaluator.evaluate(actorIdExpression,
executionContext);
if (result == null) {
- throw new JbpmException("actor-id expression '" + actorIdExpression
- + "' returned null");
+ throw new JbpmException("actor-id expression '" + actorIdExpression +
"' returned null");
}
if (result instanceof String) {
assignable.setActorId((String) result);
}
else {
- throw new JbpmException("actor-id expression '" + actorIdExpression
- + "' did not evaluate to string: '" + result);
+ throw new JbpmException("actor-id expression '"
+ + actorIdExpression
+ + "' did not evaluate to string: '"
+ + result);
}
}
- void performAssignmentPooledActorsExpr(String pooledActorsExpression,
- Assignable assignable, ExecutionContext executionContext) {
+ void performAssignmentPooledActorsExpr(String pooledActorsExpression, Assignable
assignable,
+ ExecutionContext executionContext) {
String[] pooledActors = null;
- Object result = JbpmExpressionEvaluator.evaluate(pooledActorsExpression,
- executionContext);
+ Object result = JbpmExpressionEvaluator.evaluate(pooledActorsExpression,
executionContext);
if (result == null) {
throw new JbpmException("pooled-actors expression '"
- + pooledActorsExpression + "' returned null");
+ + pooledActorsExpression
+ + "' returned null");
}
if (result instanceof String[]) {
@@ -332,11 +318,10 @@
pooledActors = (String[]) pooledActorList.toArray(new
String[pooledActorList.size()]);
}
else {
- throw new JbpmException(
- "pooled-actors expression '"
- + pooledActorsExpression
- + "' did not evaluate to comma-separated string, collection or
string array: "
- + result);
+ throw new JbpmException("pooled-actors expression '"
+ + pooledActorsExpression
+ + "' did not evaluate to comma-separated string, collection or string
array: "
+ + result);
}
assignable.setPooledActors(pooledActors);
@@ -371,8 +356,10 @@
if (taskInstances != null) {
for (Iterator i = taskInstances.iterator(); i.hasNext();) {
TaskInstance taskInstance = (TaskInstance) i.next();
- if (!taskInstance.hasEnded() && taskInstance.isBlocking()
- && token != null && token.equals(taskInstance.getToken())) {
+ if (!taskInstance.hasEnded()
+ && taskInstance.isBlocking()
+ && token != null
+ && token.equals(taskInstance.getToken())) {
return true;
}
}
@@ -464,22 +451,21 @@
public SwimlaneInstance getSwimlaneInstance(String swimlaneName) {
return swimlaneInstances != null ? (SwimlaneInstance)
swimlaneInstances.get(swimlaneName)
- : null;
+ : null;
}
public SwimlaneInstance createSwimlaneInstance(String swimlaneName) {
- Swimlane swimlane = (taskMgmtDefinition != null ?
taskMgmtDefinition.getSwimlane(swimlaneName)
- : null);
- if (swimlane != null) {
- return createSwimlaneInstance(swimlane);
+ Swimlane swimlane = taskMgmtDefinition != null ?
taskMgmtDefinition.getSwimlane(swimlaneName)
+ : null;
+ if (swimlane == null) {
+ throw new JbpmException("swimlane does not exist: " + swimlaneName);
}
- throw new JbpmException("swimlane does not exist: " + swimlaneName);
+ return createSwimlaneInstance(swimlane);
}
public SwimlaneInstance createSwimlaneInstance(Swimlane swimlane) {
- if (swimlaneInstances == null) {
- swimlaneInstances = new HashMap();
- }
+ if (swimlaneInstances == null) swimlaneInstances = new HashMap();
+
SwimlaneInstance swimlaneInstance = new SwimlaneInstance(swimlane);
swimlaneInstance.setTaskMgmtInstance(this);
swimlaneInstances.put(swimlaneInstance.getName(), swimlaneInstance);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Semaphore.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Semaphore.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Semaphore.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -7,8 +7,8 @@
* {@linkplain #acquire acquire} blocks if necessary until a permit is available, and
then takes it.
* Each {@linkplain #release() release} adds a permit, potentially releasing a blocking
acquirer.
*
- * @see <a
href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/S...
- * <code>java.util.concurrent.Semaphore</code></a>
+ * @see <a
href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/S...
+ * >java.util.concurrent.Semaphore</a>
*/
public class Semaphore implements Serializable {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/hibernate.common.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/hibernate.common.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/hibernate.common.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -19,10 +19,10 @@
<!-- Simple memory-only cache -->
<property
name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
- <!-- SQL rendering properties (begin) -->
+ <!-- SQL rendering properties (begin) ===
<property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
- <!-- SQL rendering properties (end) -->
+ ==== SQL rendering properties (end) -->
<!-- ############################################ -->
<!-- # mapping files with external dependencies # -->
Copied:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/JbpmConfigurationTestHelper.java
(from rev 6228,
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/JbpmConfigurationTestHelper.java)
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/JbpmConfigurationTestHelper.java
(rev 0)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/JbpmConfigurationTestHelper.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.jbpm;
+
+public class JbpmConfigurationTestHelper {
+
+ public static JbpmConfiguration getCurrentJbpmConfiguration() {
+ return JbpmConfiguration.getCurrentJbpmConfiguration();
+ }
+}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/SerializabilityTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -31,68 +31,58 @@
public class SerializabilityTest extends AbstractJbpmTestCase {
- static final String[] excusedClasses = { "org.jbpm.JbpmConfiguration$",
- "org.jbpm.JbpmConfigurationTestHelper",
- "org.jbpm.ant.",
- "org.jbpm.context.exe.JbpmType",
- "org.jbpm.db.AbstractDbTestCase",
- "org.jbpm.db.ContextSession",
- "org.jbpm.db.FileSession",
- "org.jbpm.db.GraphSession",
- "org.jbpm.db.JbpmSession",
- "org.jbpm.db.JbpmSchema",
- "org.jbpm.db.JobSession",
- "org.jbpm.db.LoggingSession",
- "org.jbpm.db.SchedulerSession",
- "org.jbpm.db.TaskMgmtSession",
- "org.jbpm.db.compatibility.JbpmSchemaUpdate",
- "org.jbpm.db.hibernate.JbpmNamingStrategy",
- "org.jbpm.db.hibernate.MySQLDialect",
- "org.jbpm.db.hibernate.SybaseDialect",
- "org.jbpm.db.hibernate.SybaseRowLockDialect",
- "org.jbpm.graph.action.ActionTypes",
- "org.jbpm.graph.exe.ExecutionContext",
- "org.jbpm.graph.node.Fork$ForkedToken",
- "org.jbpm.graph.node.InterleaveStart$DefaultInterleaver",
- "org.jbpm.graph.node.NodeTypes",
- "org.jbpm.graph.node.ProcessFactory",
- "org.jbpm.instantiation.BeanInstantiator",
- "org.jbpm.instantiation.ConfigurationPropertyInstantiator",
- "org.jbpm.instantiation.ConstructorInstantiator",
- "org.jbpm.instantiation.DefaultInstantiator",
- "org.jbpm.instantiation.FieldInstantiator",
- "org.jbpm.instantiation.ProcessClassLoader",
- "org.jbpm.instantiation.XmlInstantiator",
- "org.jbpm.job.executor.JobExecutorThread",
- "org.jbpm.job.executor.LockMonitorThread",
- "org.jbpm.jpdl.convert.Converter",
- "org.jbpm.jpdl.el.",
- "org.jbpm.jpdl.par.FileArchiveParser",
- "org.jbpm.jpdl.par.JpdlArchiveParser",
- "org.jbpm.jpdl.par.ProcessArchive",
- "org.jbpm.jpdl.par.ProcessArchiveDeployer",
- "org.jbpm.jpdl.par.ProcessArchiveDeployerTask",
- "org.jbpm.jpdl.xml.JpdlXmlReader",
- "org.jbpm.jpdl.xml.JpdlXmlWriter",
- "org.jbpm.security.authenticator.JBossAuthenticator",
- "org.jbpm.security.authenticator.JbpmDefaultAuthenticator",
- "org.jbpm.security.authenticator.SubjectAuthenticator",
- "org.jbpm.security.Authorization",
- "org.jbpm.security.authorizer.AccessControllerAuthorizer",
- "org.jbpm.security.authorizer.JbpmIdentityAuthorizer",
- "org.jbpm.security.authorizer.RolesAuthorizer",
- "org.jbpm.security.filter.JbpmAuthenticationFilter",
- "org.jbpm.sim.",
- "org.jbpm.util.Clock",
- "org.jbpm.util.CustomLoaderObjectInputStream",
- "org.jbpm.web.JobExecutorLauncher",
- "org.jbpm.web.JbpmConfigurationCloser", };
+ static final String[] excusedClasses = {
+ "org.jbpm.JbpmConfiguration$",
+ "org.jbpm.ant.",
+ "org.jbpm.context.exe.JbpmType",
+ "org.jbpm.db.AbstractDbTestCase",
+ "org.jbpm.db.ContextSession",
+ "org.jbpm.db.FileSession",
+ "org.jbpm.db.GraphSession",
+ "org.jbpm.db.JbpmSession",
+ "org.jbpm.db.JbpmSchema",
+ "org.jbpm.db.JobSession",
+ "org.jbpm.db.LoggingSession",
+ "org.jbpm.db.SchedulerSession",
+ "org.jbpm.db.TaskMgmtSession",
+ "org.jbpm.db.compatibility.JbpmSchemaUpdate",
+ "org.jbpm.db.hibernate.JbpmNamingStrategy",
+ "org.jbpm.db.hibernate.MySQLDialect",
+ "org.jbpm.db.hibernate.SybaseDialect",
+ "org.jbpm.db.hibernate.SybaseRowLockDialect",
+ "org.jbpm.graph.action.ActionTypes",
+ "org.jbpm.graph.exe.ExecutionContext",
+ "org.jbpm.graph.node.Fork$ForkedToken",
+ "org.jbpm.graph.node.InterleaveStart$DefaultInterleaver",
+ "org.jbpm.graph.node.NodeTypes",
+ "org.jbpm.graph.node.ProcessFactory",
+ "org.jbpm.instantiation.BeanInstantiator",
+ "org.jbpm.instantiation.ConfigurationPropertyInstantiator",
+ "org.jbpm.instantiation.ConstructorInstantiator",
+ "org.jbpm.instantiation.DefaultInstantiator",
+ "org.jbpm.instantiation.Delegation$CompactXmlWriter",
+ "org.jbpm.instantiation.FieldInstantiator",
+ "org.jbpm.instantiation.ProcessClassLoader",
+ "org.jbpm.instantiation.XmlInstantiator",
+ "org.jbpm.job.executor.JobExecutorThread",
+ "org.jbpm.job.executor.LockMonitorThread",
+ "org.jbpm.jpdl.convert.Converter",
+ "org.jbpm.jpdl.el.",
+ "org.jbpm.jpdl.par.FileArchiveParser",
+ "org.jbpm.jpdl.par.JpdlArchiveParser",
+ "org.jbpm.jpdl.xml.JpdlXmlReader",
+ "org.jbpm.jpdl.xml.JpdlXmlWriter",
+ "org.jbpm.util.Clock$DefaultDateGenerator",
+ "org.jbpm.util.CustomLoaderObjectInputStream",
+ "org.jbpm.web.JobExecutorLauncher",
+ "org.jbpm.web.JbpmConfigurationCloser"
+ };
public void testForNonSerializableClasses() throws URISyntaxException {
File classDir = new File(ClassLoaderUtil.class.getProtectionDomain()
- .getCodeSource()
- .getLocation()
- .getPath());
+ .getCodeSource()
+ .getLocation()
+ .getPath());
File[] files = classDir.listFiles();
for (int i = 0; i < files.length; i++) {
@@ -114,8 +104,7 @@
scanForClasses(file, packageName + '.' + fileName);
}
else if (fileName.endsWith(".class")) {
- String className = packageName + '.'
- + fileName.substring(0, fileName.length() - 6);
+ String className = packageName + '.' + fileName.substring(0,
fileName.length() - 6);
assertSerializabilityOfClass(className);
}
}
@@ -125,8 +114,9 @@
Class clazz = ClassLoaderUtil.classForName(className);
if (!(Serializable.class.isAssignableFrom(clazz)
- || Modifier.isAbstract(clazz.getModifiers()) || isAnonymous(clazz)
- || isUtility(clazz) || isExcused(className))) {
+ || Modifier.isAbstract(clazz.getModifiers())
+ || isAnonymous(clazz)
+ || isUtility(clazz) || isExcused(className))) {
fail(className + " is NOT Serializable");
}
}
@@ -144,7 +134,7 @@
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
if (!Modifier.isStatic(method.getModifiers())
- && method.getDeclaringClass() != Object.class) return false;
+ && method.getDeclaringClass() != Object.class) return false;
}
return clazz.getConstructors().length == 0;
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ChangeProcessInstanceVersionCommandTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ChangeProcessInstanceVersionCommandTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ChangeProcessInstanceVersionCommandTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -8,7 +8,6 @@
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
-import org.jbpm.job.Job;
import org.jbpm.job.Timer;
import org.jbpm.taskmgmt.exe.TaskInstance;
@@ -23,63 +22,50 @@
private ProcessDefinition pd2;
protected void tearDown() throws Exception {
- if (pd1 != null && pd2 != null) {
- newTransaction();
- // IMPORTANT: The ProcessDefinitions have to be deleted in one transaction,
- // in the right order (new definition with ProcessInstance first) or the
- // ProcessInstance has to be deleted first independently.
+ newTransaction();
+ // IMPORTANT: The ProcessDefinitions have to be deleted in one transaction,
+ // in the right order (new definition with ProcessInstance first) or the
+ // ProcessInstance has to be deleted first independently.
- // This is because Logs of the ProcessInstance point to both ProcessDefinitions
- // (the old and the new one) but only with the new ProcessDefinition the
- // ProcessInstance is deleted
+ // This is because Logs of the ProcessInstance point to both ProcessDefinitions
+ // (the old and the new one) but only with the new ProcessDefinition the
+ // ProcessInstance is deleted
- // exceptions look like this: could not delete: [org.jbpm.graph.def.Transition#9]
- // Integrity constraint violation FK_LOG_TRANSITION table: JBPM_LOG in statement
[/* delete org.jbpm.graph.def.Transition */ delete from JBPM_TRANSITION where ID_=?]
- // or hibernate batch failed
+ // exceptions look like this: could not delete: [org.jbpm.graph.def.Transition#9]
+ // Integrity constraint violation FK_LOG_TRANSITION table: JBPM_LOG in statement [/*
delete org.jbpm.graph.def.Transition */ delete from JBPM_TRANSITION where ID_=?]
+ // or hibernate batch failed
- // IMPORTANT: Keep this order of deletions! Otherwise if there is
- // more than one ProcessInstance for the ProcessDefinition a
HibernateSeassion.flush
- // is called when queriing the seconf ProcessInstance after deleting the first
- // one which may fire a Integrity constraint violation (same problem as described
- // above), in this case I got
- // could not delete: [org.jbpm.taskmgmt.def.TaskMgmtDefinition#2]
- // Integrity constraint violation FK_TASKMGTINST_TMD table: JBPM_MODULEINSTANCE in
statement [/* delete org.jbpm.taskmgmt.def.TaskMgmtDefinition */ delete from
JBPM_MODULEDEFINITION where ID_=?]
- graphSession.deleteProcessDefinition(pd2.getId());
- graphSession.deleteProcessDefinition(pd1.getId());
- }
- else if (pd1 != null) {
- newTransaction();
- graphSession.deleteProcessDefinition(pd1.getId());
- }
- else if (pd2 != null) {
- newTransaction();
- graphSession.deleteProcessDefinition(pd2.getId());
- }
+ // IMPORTANT: Keep this order of deletions! Otherwise if there is
+ // more than one ProcessInstance for the ProcessDefinition a HibernateSeassion.flush
+ // is called when queriing the seconf ProcessInstance after deleting the first
+ // one which may fire a Integrity constraint violation (same problem as described
+ // above), in this case I got
+ // could not delete: [org.jbpm.taskmgmt.def.TaskMgmtDefinition#2]
+ // Integrity constraint violation FK_TASKMGTINST_TMD table: JBPM_MODULEINSTANCE in
statement [/* delete org.jbpm.taskmgmt.def.TaskMgmtDefinition */ delete from
JBPM_MODULEDEFINITION where ID_=?]
+ graphSession.deleteProcessDefinition(pd2.getId());
+ graphSession.deleteProcessDefinition(pd1.getId());
- pd1 = null;
- pd2 = null;
super.tearDown();
}
/**
- * test easy version migration (no fork or other stuff) but with name mapping
(different state
- * name in new process definition)
+ * test easy version migration (no fork or other stuff) but with name mapping
+ * (different state name in new process definition)
*/
public void testNameMapping() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition name='state1' to='state1'
/>"//
- + " <transition name='state2' to='state2'
/>"//
- + " </start-state>" //
- + " <state name='state1'>" //
- + " <transition name='end1' to='end' />" //
- + " </state>" //
- + " <state name='state2'>" //
- + " <transition name='end2' to='end' />" //
- + " </state>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition name='state1' to='state1' />"
+ + " <transition name='state2' to='state2' />"
+ + " </start-state>"
+ + " <state name='state1'>"
+ + " <transition name='end1' to='end' />"
+ + " </state>"
+ + " <state name='state2'>"
+ + " <transition name='end2' to='end' />"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -90,40 +76,39 @@
ProcessInstance pi2 = jbpmContext.newProcessInstance("TestChangeVersion");
pi2.signal("state2");
- String xmlVersion2 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition name='state1' to='state1'
/>"//
- + " <transition name='state2'
to='state2b'/>"//
- + " </start-state>" //
- + " <state name='state1'>" //
- + " <transition name='end1' to='end' />" //
- + " </state>" //
- + " <state name='state2b'>" //
- + " <transition name='end2b' to='end' />"
//
- + " </state>" //
- + " <end-state name='end' />" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition name='state1' to='state1' />"
+ + " <transition name='state2' to='state2b'/>"
+ + " </start-state>"
+ + " <state name='state1'>"
+ + " <transition name='end1' to='end' />"
+ + " </state>"
+ + " <state name='state2b'>"
+ + " <transition name='end2b' to='end' />"
+ + " </state>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
jbpmContext.deployProcessDefinition(pd2);
- pd2 = graphSession.findLatestProcessDefinition("TestChangeVersion");
// now change all process instances to most current version
try {
new
ChangeProcessInstanceVersionCommand().processName("TestChangeVersion").execute(
- jbpmContext);
+ jbpmContext);
fail("Exception expected, saying that state2 is missing in new
version");
}
catch (JbpmException ex) {
- assertEquals("node with name 'state2' not found in new process
definition", ex.getMessage());
+ assertEquals("node with name 'state2' not found in new process
definition",
+ ex.getMessage());
}
HashMap nameMap = new HashMap();
nameMap.put("state2", "state2b");
// now supply a mapping for the missing node
new ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap).processName(
- "TestChangeVersion").execute(jbpmContext);
+ "TestChangeVersion").execute(jbpmContext);
newTransaction();
pi1 = graphSession.loadProcessInstance(pi1.getId());
@@ -149,30 +134,29 @@
}
/**
- * check that update of nodes work correctly if a fork was involved and multiple child
tokens
- * exist
+ * check that update of nodes work correctly if a fork was involved and
+ * multiple child tokens exist
*/
public void testSubTokensInFork() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='fork' />" //
- + " </start-state>" //
- + " <fork name='fork'>" //
- + " <transition name='path1' to='path1' />"
//
- + " <transition name='path2' to='path2' />"
//
- + " </fork>" //
- + " <state name='path1'>" //
- + " <transition to='join' />" //
- + " </state>" //
- + " <state name='path2'>" //
- + " <transition to='join' />" //
- + " </state>" //
- + " <join name='join'>" //
- + " <transition to='end' />" //
- + " </join>" //
- + " <end-state name='end' />" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='path1' to='path1' />"
+ + " <transition name='path2' to='path2' />"
+ + " </fork>"
+ + " <state name='path1'>"
+ + " <transition to='join' />"
+ + " </state>"
+ + " <state name='path2'>"
+ + " <transition to='join' />"
+ + " </state>"
+ + " <join name='join'>"
+ + " <transition to='end' />"
+ + " </join>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -183,44 +167,45 @@
Token t1 = pi1.getRootToken().getChild("path1");
Token t2 = pi1.getRootToken().getChild("path2");
- String xmlVersion2 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='fork' />" //
- + " </start-state>" //
- + " <fork name='fork'>" //
- + " <transition name='path1' to='path1' />"
//
- + " <transition name='path2' to='path2b' />"
//
- + " </fork>" //
- + " <state name='path1'>" //
- + " <transition to='join' />" //
- + " </state>" //
- + " <state name='path2b'>" //
- + " <transition name='2b' to='join' />" //
- + " </state>" //
- + " <join name='join'>" //
- + " <transition to='end' />" //
- + " </join>" //
- + " <end-state name='end' />" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='path1' to='path1' />"
+ + " <transition name='path2' to='path2b' />"
+ + " </fork>"
+ + " <state name='path1'>"
+ + " <transition to='join' />"
+ + " </state>"
+ + " <state name='path2b'>"
+ + " <transition name='2b' to='join' />"
+ + " </state>"
+ + " <join name='join'>"
+ + " <transition to='end' />"
+ + " </join>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
- jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(xmlVersion2));
- pd2 = graphSession.findLatestProcessDefinition("TestChangeVersion");
+ pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
+ jbpmContext.deployProcessDefinition(pd2);
// now change all process instances to most current version
try {
- new
ChangeProcessInstanceVersionCommand().processInstanceId(pi1.getId()).execute(jbpmContext);
+ new ChangeProcessInstanceVersionCommand().processInstanceId(pi1.getId()).execute(
+ jbpmContext);
fail("Exception expected, saying that phase2 is missing in new
version");
}
catch (JbpmException ex) {
- assertEquals("node with name 'path2' not found in new process
definition", ex.getMessage());
+ assertEquals("node with name 'path2' not found in new process
definition",
+ ex.getMessage());
}
HashMap nameMap = new HashMap();
nameMap.put("path2", "path2b");
// now supply a mapping for the missing node
new
ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap).processInstanceId(
- pi1.getId()).execute(jbpmContext);
+ pi1.getId()).execute(jbpmContext);
newTransaction();
@@ -240,28 +225,27 @@
}
public void testTaskInFork() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='fork' />" //
- + " </start-state>" //
- + " <fork name='fork'>" //
- + " <transition name='path1' to='task1' />"
//
- + " <transition name='path2' to='task2' />"
//
- + " </fork>" //
- + " <task-node name='task1'>" //
- + " <task name='theTask1' />" //
- + " <transition to='join' />" //
- + " </task-node>" //
- + " <task-node name='task2'>" //
- + " <task name='theTask2' />" //
- + " <transition to='join' />" //
- + " </task-node>" //
- + " <join name='join'>" //
- + " <transition to='end' />" //
- + " </join>" //
- + " <end-state name='end' />" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='path1' to='task1' />"
+ + " <transition name='path2' to='task2' />"
+ + " </fork>"
+ + " <task-node name='task1'>"
+ + " <task name='theTask1' />"
+ + " <transition to='join' />"
+ + " </task-node>"
+ + " <task-node name='task2'>"
+ + " <task name='theTask2' />"
+ + " <transition to='join' />"
+ + " </task-node>"
+ + " <join name='join'>"
+ + " <transition to='end' />"
+ + " </join>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -272,31 +256,30 @@
Token t1 = pi1.getRootToken().getChild("path1");
Token t2 = pi1.getRootToken().getChild("path2");
- String xmlVersion2 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='fork' />" //
- + " </start-state>" //
- + " <fork name='fork'>" //
- + " <transition name='path1' to='task1' />"
//
- + " <transition name='path2' to='task2' />"
//
- + " </fork>" //
- + " <task-node name='task1b'>" //
- + " <task name='theTask1b' />" //
- + " <transition to='join' />" //
- + " </task-node>" //
- + " <task-node name='task2b'>" //
- + " <task name='theTask2b' />" //
- + " <transition to='join' />" //
- + " </task-node>" //
- + " <join name='join'>" //
- + " <transition to='end' />" //
- + " </join>" //
- + " <end-state name='end' />" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='path1' to='task1' />"
+ + " <transition name='path2' to='task2' />"
+ + " </fork>"
+ + " <task-node name='task1b'>"
+ + " <task name='theTask1b' />"
+ + " <transition to='join' />"
+ + " </task-node>"
+ + " <task-node name='task2b'>"
+ + " <task name='theTask2b' />"
+ + " <transition to='join' />"
+ + " </task-node>"
+ + " <join name='join'>"
+ + " <transition to='end' />"
+ + " </join>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
- jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(xmlVersion2));
- pd2 = graphSession.findLatestProcessDefinition("TestChangeVersion");
+ pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
+ jbpmContext.deployProcessDefinition(pd2);
HashMap nodeNameMap = new HashMap();
nodeNameMap.put("task1", "task1b");
@@ -307,7 +290,7 @@
// now supply a mapping for the missing node
new
ChangeProcessInstanceVersionCommand().nodeNameMapping(nodeNameMap).taskNameMapping(
- taskNameMap).processInstanceId(pi1.getId()).execute(jbpmContext);
+ taskNameMap).processInstanceId(pi1.getId()).execute(jbpmContext);
newTransaction();
@@ -315,33 +298,38 @@
assertEquals(pd2.getNode("task1b").getId(), t1.getNode().getId());
Iterator taskInstanceIter = t1.getProcessInstance()
- .getTaskMgmtInstance()
- .getTaskInstances()
- .iterator();
+ .getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator();
TaskInstance ti1 = (TaskInstance) taskInstanceIter.next();
if ("theTask2b".equals(ti1.getTask().getName())) {
// this was the wrong one
ti1 = (TaskInstance) taskInstanceIter.next();
}
assertEquals("theTask1b", ti1.getTask().getName());
- assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask1b").getId(),
ti1.getTask().getId());
+ assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask1b").getId(),
ti1.getTask()
+ .getId());
ti1.end();
- ///////
+ // /////
newTransaction();
t2 = graphSession.getToken(t2.getId());
assertEquals(pd2.getNode("task2b").getId(), t2.getNode().getId());
- taskInstanceIter =
t2.getProcessInstance().getTaskMgmtInstance().getTaskInstances().iterator();
+ taskInstanceIter = t2.getProcessInstance()
+ .getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator();
TaskInstance ti2 = (TaskInstance) taskInstanceIter.next();
if ("theTask1b".equals(ti2.getTask().getName())) {
// this was the wrong one
ti2 = (TaskInstance) taskInstanceIter.next();
}
assertEquals("theTask2b", ti2.getTask().getName());
- assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask2b").getId(),
ti2.getTask().getId());
+ assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask2b").getId(),
ti2.getTask()
+ .getId());
ti2.end();
@@ -353,30 +341,26 @@
closeJbpmContext();
}
- public void testSubProcesses() {
-
- }
-
/**
- * check, that TaskInstances work (TaskInstance reference to Task has to be adjusted as
will)
+ * check, that TaskInstances work (TaskInstance reference to Task has to be
+ * adjusted as will)
*/
public void testTaskInstances() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='testTaskInstances'>" //
- + " <start-state name='start'>" //
- + " <transition name='path1' to='task1'
/>"//
- + " <transition name='path2' to='task2'
/>"//
- + " </start-state>" //
- + " <task-node name='task1'>" //
- + " <task name='theTask1'/>" //
- + " <transition name='end1' to='end' />" //
- + " </task-node>" //
- + " <task-node name='task2'>" //
- + " <task name='theTask2'/>" //
- + " <transition name='end2' to='end' />" //
- + " </task-node>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='testTaskInstances'>"
+ + " <start-state name='start'>"
+ + " <transition name='path1' to='task1' />"
+ + " <transition name='path2' to='task2' />"
+ + " </start-state>"
+ + " <task-node name='task1'>"
+ + " <task name='theTask1'/>"
+ + " <transition name='end1' to='end' />"
+ + " </task-node>"
+ + " <task-node name='task2'>"
+ + " <task name='theTask2'/>"
+ + " <transition name='end2' to='end' />"
+ + " </task-node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -387,53 +371,50 @@
ProcessInstance pi2 = jbpmContext.newProcessInstance("testTaskInstances");
pi2.signal("path2");
- String xmlVersion2 = //
- "<process-definition name='testTaskInstances'>" //
- + " <start-state name='start'>" //
- + " <transition name='path1' to='task1'
/>"//
- + " <transition name='path2' to='task2b'
/>"//
- + " </start-state>" //
- + " <task-node name='task1'>" //
- + " <task name='theTask1'/>" //
- + " <transition name='end1' to='end' />" //
- + " </task-node>" //
- + " <task-node name='task2b'>" //
- + " <task name='theTask2b'/>" //
- + " <transition name='end2b' to='end' />"
//
- + " </task-node>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='testTaskInstances'>"
+ + " <start-state name='start'>"
+ + " <transition name='path1' to='task1' />"
+ + " <transition name='path2' to='task2b' />"
+ + " </start-state>"
+ + " <task-node name='task1'>"
+ + " <task name='theTask1'/>"
+ + " <transition name='end1' to='end' />"
+ + " </task-node>"
+ + " <task-node name='task2b'>"
+ + " <task name='theTask2b'/>"
+ + " <transition name='end2b' to='end' />"
+ + " </task-node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
jbpmContext.deployProcessDefinition(pd2);
- pd2 = graphSession.findLatestProcessDefinition("testTaskInstances");
- // process instance 1 can me updated, state names haven't changed in this path:
- new
ChangeProcessInstanceVersionCommand().processInstanceId(pi1.getId()).execute(jbpmContext);
+ // process instance 1 can be updated, state names haven't changed
+ new ChangeProcessInstanceVersionCommand().processInstanceId(pi1.getId()).execute(
+ jbpmContext);
HashMap nameMap = new HashMap();
nameMap.put("task2", "task2b");
// now change all process instances to most current version
try {
- new ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap)
- .taskNameMapping(nameMap)
- .processName("testTaskInstances")
- .execute(jbpmContext);
+ new
ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap).taskNameMapping(
+ nameMap).processName("testTaskInstances").execute(jbpmContext);
// fail because task2 is not mapped
fail("Exception expected, saying that theTask2b is missing in new
version");
}
catch (JbpmException ex) {
assertEquals("Task 'theTask2' for node 'task2b' not found in
new process definition",
- ex.getMessage());
+ ex.getMessage());
}
// now supply a mapping for the missing task
nameMap.put("theTask2", "theTask2b");
new ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap)
- .taskNameMapping(nameMap)
- .processName("testTaskInstances")
- .execute(jbpmContext);
+ .taskNameMapping(nameMap)
+ .processName("testTaskInstances")
+ .execute(jbpmContext);
newTransaction();
@@ -444,16 +425,17 @@
assertEquals(pd2.getNode("task2b").getId(),
pi2.getRootToken().getNode().getId());
TaskInstance ti1 = (TaskInstance) pi1.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ .getTaskInstances()
+ .iterator()
+ .next();
TaskInstance ti2 = (TaskInstance) pi2.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ .getTaskInstances()
+ .iterator()
+ .next();
assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask1").getId(),
ti1.getTask().getId());
- assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask2b").getId(),
ti2.getTask().getId());
+ assertEquals(pd2.getTaskMgmtDefinition().getTask("theTask2b").getId(),
ti2.getTask()
+ .getId());
ti1.end("end1");
ti2.end("end2b");
@@ -465,22 +447,21 @@
}
/**
- * test if changing process version works correctly if a timer is included in the
process
- * definition. Important: The timer itself IS NOT changed, so e.g. used leaving
transitions must
- * be still existent
+ * test if changing process version works correctly if a timer is included in
+ * the process definition. Important: The timer itself IS NOT changed, so e.g.
+ * used leaving transitions must be still existent
*/
public void testTimerInState() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='timer1' />"//
- + " </start-state>" //
- + " <state name='timer1'>" //
- + " <timer name='timer1' duedate='5 seconds'
transition='end' />" //
- + " <transition name='end' to='end' />" //
- + " </state>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='timer1' />"
+ + " </start-state>"
+ + " <state name='timer1'>"
+ + " <timer name='timer1' duedate='5 seconds'
transition='end' />"
+ + " <transition name='end' to='end' />"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -495,26 +476,25 @@
assertEquals("timer1", timer.getName());
assertEquals(pd1.getNode("timer1").getId(),
timer.getGraphElement().getId());
- String xmlVersion2 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='timer2' />"//
- + " </start-state>" //
- + " <state name='timer2'>" //
- + " <timer name='timer1' duedate='5 seconds'
transition='end1' />" //
- + " <transition name='end' to='end' />" //
- + " </state>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='timer2' />"
+ + " </start-state>"
+ + " <state name='timer2'>"
+ + " <timer name='timer1' duedate='5 seconds'
transition='end1' />"
+ + " <transition name='end' to='end' />"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
- jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(xmlVersion2));
- pd2 = graphSession.findLatestProcessDefinition("TestChangeVersion");
+ pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
+ jbpmContext.deployProcessDefinition(pd2);
// change version
HashMap nameMap = new HashMap();
nameMap.put("timer1", "timer2");
new
ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap).processInstanceId(
- pi1.getId()).execute(jbpmContext);
+ pi1.getId()).execute(jbpmContext);
// load changed stuff
newTransaction();
@@ -533,19 +513,18 @@
}
public void testTimerInTask() throws Exception {
- String xmlVersion1 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='timer1' />"//
- + " </start-state>" //
- + " <task-node name='timer1'>" //
- + " <task name='myTask'>" //
- + " <timer name='timer1' duedate='5 seconds'
transition='end' />" //
- + " </task>" //
- + " <transition name='end' to='end' />" //
- + " </task-node>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion1 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='timer1' />"
+ + " </start-state>"
+ + " <task-node name='timer1'>"
+ + " <task name='myTask'>"
+ + " <timer name='timer1' duedate='5 seconds'
transition='end' />"
+ + " </task>"
+ + " <transition name='end' to='end' />"
+ + " </task-node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
pd1 = ProcessDefinition.parseXmlString(xmlVersion1);
jbpmContext.deployProcessDefinition(pd1);
@@ -553,46 +532,45 @@
// start instance
ProcessInstance pi1 = jbpmContext.newProcessInstance("TestChangeVersion");
pi1.signal();
- // jbpmContext.getJobSession().deleteJobsForProcessInstance(processInstance);
- // NOT UNIQUE?!
+ // jbpmContext.getJobSession().deleteJobsForProcessInstance(processInstance);
+ // NOT UNIQUE?!
Timer timer = (Timer) session.createQuery("from
org.jbpm.job.Timer").uniqueResult();
// check timer
assertNotNull("Timer is null", timer);
assertEquals("timer1", timer.getName());
assertEquals(pd1.getTaskMgmtDefinition().getTask("myTask").getId(),
timer.getGraphElement()
- .getId());
+ .getId());
TaskInstance ti1 = (TaskInstance) pi1.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ .getTaskInstances()
+ .iterator()
+ .next();
assertEquals(pd1.getTaskMgmtDefinition().getTask("myTask").getId(),
ti1.getTask().getId());
- String xmlVersion2 = //
- "<process-definition name='TestChangeVersion'>" //
- + " <start-state name='start'>" //
- + " <transition to='timer2' />"//
- + " </start-state>" //
- + " <task-node name='timer2'>" //
- + " <task name='myTask2'>" //
- + " <timer name='timer1' duedate='5 seconds'
transition='end' />" //
- + " </task>" //
- + " <transition name='end' to='end' />" //
- + " </task-node>" //
- + " <end-state name='end'/>" //
- + "</process-definition>";
+ String xmlVersion2 = "<process-definition
name='TestChangeVersion'>"
+ + " <start-state name='start'>"
+ + " <transition to='timer2' />"
+ + " </start-state>"
+ + " <task-node name='timer2'>"
+ + " <task name='myTask2'>"
+ + " <timer name='timer1' duedate='5 seconds'
transition='end' />"
+ + " </task>"
+ + " <transition name='end' to='end' />"
+ + " </task-node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>";
- jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlString(xmlVersion2));
- pd2 = graphSession.findLatestProcessDefinition("TestChangeVersion");
+ pd2 = ProcessDefinition.parseXmlString(xmlVersion2);
+ jbpmContext.deployProcessDefinition(pd2);
// change version
HashMap nameMap = new HashMap();
nameMap.put("timer1", "timer2");
nameMap.put("myTask", "myTask2");
new ChangeProcessInstanceVersionCommand().nodeNameMapping(nameMap)
- .taskNameMapping(nameMap)
- .processInstanceId(pi1.getId())
- .execute(jbpmContext);
+ .taskNameMapping(nameMap)
+ .processInstanceId(pi1.getId())
+ .execute(jbpmContext);
// load changed stuff
newTransaction();
@@ -602,8 +580,8 @@
// and check again
assertEquals(pd2.getNode("timer2").getId(),
pi1.getRootToken().getNode().getId());
assertEquals("timer1", timer.getName());
- assertEquals(pd2.getTaskMgmtDefinition().getTask("myTask2").getId(),
timer.getGraphElement()
- .getId());
+ assertEquals(pd2.getTaskMgmtDefinition().getTask("myTask2").getId(),
+ timer.getGraphElement().getId());
ti1 = (TaskInstance) pi1.getTaskMgmtInstance().getTaskInstances().iterator().next();
assertEquals(pd2.getTaskMgmtDefinition().getTask("myTask2").getId(),
ti1.getTask().getId());
@@ -614,16 +592,9 @@
assertTrue(pi1.hasEnded());
}
- public void testTimerInProcessDefinition() throws Exception {
- // TODO
- }
-
- /**
- * Asynchronous continuation is not affected by changing the version, because a {@link
Job} only
- * holds {@link ProcessInstance}.id, {@link Token}.id or {@link TaskInstance}.id. None
of them are
- * changed while version changes.
+ /*
+ * Asynchronous continuation is not affected by changing the version, because
+ * a {@link Job} only holds {@link ProcessInstance}.id, {@link Token}.id or
+ * {@link TaskInstance}.id. None of them are changed while version changes.
*/
- public void notestAsync() {
- }
-
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ProcessInstanceCommandTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ProcessInstanceCommandTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/ProcessInstanceCommandTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,41 +36,35 @@
+ " <end-state name='end' />"
+ "</process-definition>";
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(xml);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = processDefinition.createProcessInstance();
- processInstance.signal();
+ ProcessInstance processInstance = processDefinition.createProcessInstance();
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- assert !processInstance.hasEnded() : processInstance;
+ processInstance = saveAndReload(processInstance);
+ assert !processInstance.hasEnded() : processInstance;
- Token rootToken = processInstance.getRootToken();
- assertEquals("fork", rootToken.getNode().getName());
- for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
- Token childToken = (Token) iterator.next();
- assert !childToken.hasEnded() : childToken;
- }
+ Token rootToken = processInstance.getRootToken();
+ assertEquals("fork", rootToken.getNode().getName());
+ for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
+ Token childToken = (Token) iterator.next();
+ assert !childToken.hasEnded() : childToken;
+ }
- // execute CancelProcessInstanceCommand
- new CancelProcessInstanceCommand(processInstance.getId()).execute(jbpmContext);
+ // execute CancelProcessInstanceCommand
+ new CancelProcessInstanceCommand(processInstance.getId()).execute(jbpmContext);
- // and verify it is canceled
- assert rootToken.hasEnded() : processInstance;
- assertEquals("fork", rootToken.getNode().getName());
- for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
- Token childToken = (Token) iterator.next();
- assert childToken.hasEnded() : childToken;
- }
+ // and verify it is canceled
+ assert rootToken.hasEnded() : processInstance;
+ assertEquals("fork", rootToken.getNode().getName());
+ for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
+ Token childToken = (Token) iterator.next();
+ assert childToken.hasEnded() : childToken;
}
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
}
public void testSuspendResumeProcessInstanceCommand() throws Exception {
- String xml = "<?xml version='1.0'
encoding='UTF-8'?>"
+ String xml = "<?xml version='1.0'?>"
+ "<process-definition name='TestException'>"
+ " <start-state name='start'>"
+ " <transition to='fork' />"
@@ -91,70 +85,64 @@
+ " <end-state name='end' />"
+ "</process-definition>";
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(xml);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = processDefinition.createProcessInstance();
- processInstance.signal();
+ ProcessInstance processInstance = processDefinition.createProcessInstance();
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- assert !processInstance.isSuspended() : processInstance;
+ processInstance = saveAndReload(processInstance);
+ assert !processInstance.isSuspended() : processInstance;
- Token rootToken = processInstance.getRootToken();
- assert !rootToken.isSuspended() : rootToken;
- assertEquals("fork", rootToken.getNode().getName());
- for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
- Token childToken = (Token) iterator.next();
- assert !childToken.isSuspended() : childToken;
- }
+ Token rootToken = processInstance.getRootToken();
+ assert !rootToken.isSuspended() : rootToken;
+ assertEquals("fork", rootToken.getNode().getName());
+ for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
+ Token childToken = (Token) iterator.next();
+ assert !childToken.isSuspended() : childToken;
+ }
- // execute SuspendProcessInstanceCommand
- new SuspendProcessInstanceCommand().processInstanceId(
- processInstance.getId()).execute(jbpmContext);
+ // execute SuspendProcessInstanceCommand
+ new SuspendProcessInstanceCommand().processInstanceId(
+ processInstance.getId()).execute(jbpmContext);
- // and verify
- assert processInstance.isSuspended() : processInstance;
- assert rootToken.isSuspended() : rootToken;
- assertEquals("fork", rootToken.getNode().getName());
- for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
- Token childToken = (Token) iterator.next();
- assert childToken.isSuspended() : childToken;
+ // and verify
+ assert processInstance.isSuspended() : processInstance;
+ assert rootToken.isSuspended() : rootToken;
+ assertEquals("fork", rootToken.getNode().getName());
+ for (Iterator iterator = rootToken.getChildren().values().iterator();
iterator.hasNext();) {
+ Token childToken = (Token) iterator.next();
+ assert childToken.isSuspended() : childToken;
- try {
- childToken.signal();
- fail("signal should not be accepted on suspended token");
- }
- catch (JbpmException ex) {
- // token is suspended
- assert ex.getMessage().indexOf("suspended") != 0 : ex.getMessage();
- }
- }
-
- // execute ResumeProcessInstanceCommand
- new ResumeProcessInstanceCommand().processInstanceId(
- processInstance.getId()).execute(jbpmContext);
-
- // and verify
- assert !processInstance.isSuspended() : processInstance;
- assert !rootToken.isSuspended() : rootToken;
- for (Iterator iter = rootToken.getChildren().values().iterator(); iter.hasNext();)
{
- Token childToken = (Token) iter.next();
- assert !childToken.isSuspended() : childToken;
+ try {
childToken.signal();
+ fail("signal should not be accepted on suspended token");
}
+ catch (JbpmException ex) {
+ // token is suspended
+ assert ex.getMessage().indexOf("suspended") != 0 : ex.getMessage();
+ }
+ }
- assertEquals("end", rootToken.getNode().getName());
- assert processInstance.hasEnded() : processInstance;
+ // execute ResumeProcessInstanceCommand
+ new ResumeProcessInstanceCommand().processInstanceId(
+ processInstance.getId()).execute(jbpmContext);
- // check db state
- processInstance = saveAndReload(processInstance);
- assertEquals("end", processInstance.getRootToken().getNode().getName());
- assert processInstance.hasEnded() : processInstance;
+ // and verify
+ assert !processInstance.isSuspended() : processInstance;
+ assert !rootToken.isSuspended() : rootToken;
+ for (Iterator iter = rootToken.getChildren().values().iterator(); iter.hasNext();) {
+ Token childToken = (Token) iter.next();
+ assert !childToken.isSuspended() : childToken;
+ childToken.signal();
}
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+
+ assertEquals("end", rootToken.getNode().getName());
+ assert processInstance.hasEnded() : processInstance;
+
+ // check db state
+ processInstance = saveAndReload(processInstance);
+ assertEquals("end", processInstance.getRootToken().getNode().getName());
+ assert processInstance.hasEnded() : processInstance;
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/TokenCommandTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/TokenCommandTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/command/TokenCommandTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -25,56 +25,49 @@
+ "</process-definition>";
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(xml);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("TestException");
+ long tokenId = processInstance.getRootToken().getId();
+ processInstance.getRootToken().signal();
+ processInstance.getRootToken().lock("TEST-OWNER");
+
+ processInstance = saveAndReload(processInstance);
try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("TestException");
- long tokenId = processInstance.getRootToken().getId();
processInstance.getRootToken().signal();
- processInstance.getRootToken().lock("TEST-OWNER");
+ fail("TOKEN IS LOCKED exception expected");
+ }
+ catch (JbpmException ex) {
+ // token is locked
+ assert ex.getMessage().indexOf("locked") != -1 : ex.getMessage();
+ }
- processInstance = saveAndReload(processInstance);
- try {
- processInstance.getRootToken().signal();
- fail("TOKEN IS LOCKED exception expected");
- }
- catch (JbpmException ex) {
- // token is locked
- assert ex.getMessage().indexOf("locked") != -1 : ex.getMessage();
- }
+ // unlocking without owner is a force unlock -> works
+ new UnlockTokenCommand().tokenId(tokenId).execute(jbpmContext);
- // unlocking without owner is a force unlock -> works
- new UnlockTokenCommand().tokenId(tokenId).execute(jbpmContext);
+ // unlock with same owner
+ processInstance = saveAndReload(processInstance);
+ processInstance.getRootToken().lock("TEST-OWNER");
- // unlock with same owner
- processInstance = saveAndReload(processInstance);
- processInstance.getRootToken().lock("TEST-OWNER");
+ processInstance = saveAndReload(processInstance);
+ new UnlockTokenCommand().lockOwner("TEST-OWNER")
+ .tokenId(tokenId)
+ .execute(jbpmContext);
- processInstance = saveAndReload(processInstance);
- new UnlockTokenCommand().lockOwner("TEST-OWNER")
- .tokenId(tokenId)
- .execute(jbpmContext);
+ // unlocking with wrong owner fails
+ processInstance = saveAndReload(processInstance);
+ processInstance.getRootToken().lock("TEST-OWNER");
- // unlocking with wrong owner fails
- processInstance = saveAndReload(processInstance);
- processInstance.getRootToken().lock("TEST-OWNER");
-
- processInstance = saveAndReload(processInstance);
- try {
- new UnlockTokenCommand().lockOwner("OTHER-OWNER")
- .tokenId(tokenId)
- .execute(jbpmContext);
- fail("CANNOT UNLOCK TOKEN exception expected");
- }
- catch (JbpmException ex) {
- // token is locked
- assert ex.getMessage().indexOf("cannot unlock") != -1 :
ex.getMessage();
- }
+ processInstance = saveAndReload(processInstance);
+ try {
+ new UnlockTokenCommand().lockOwner("OTHER-OWNER")
+ .tokenId(tokenId)
+ .execute(jbpmContext);
+ fail("CANNOT UNLOCK TOKEN exception expected");
}
- finally {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ catch (JbpmException ex) {
+ // token is locked
+ assert ex.getMessage().indexOf("cannot unlock") != -1 : ex.getMessage();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableQueryDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableQueryDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableQueryDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -15,54 +15,48 @@
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='variables'>"
+ " <start-state name='start'/>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- try {
- newTransaction();
+ deployProcessDefinition(processDefinition);
- ProcessInstance one =
jbpmContext.newProcessInstanceForUpdate("variables");
- one.getContextInstance().setVariable("category", "overpaid");
- one.getContextInstance().setVariable("duedate", "tomorrow");
+ ProcessInstance one =
jbpmContext.newProcessInstanceForUpdate("variables");
+ one.getContextInstance().setVariable("category", "overpaid");
+ one.getContextInstance().setVariable("duedate", "tomorrow");
- ProcessInstance two =
jbpmContext.newProcessInstanceForUpdate("variables");
- two.getContextInstance().setVariable("category", "overpaid");
- two.getContextInstance().setVariable("duedate", "yesterday");
+ ProcessInstance two =
jbpmContext.newProcessInstanceForUpdate("variables");
+ two.getContextInstance().setVariable("category", "overpaid");
+ two.getContextInstance().setVariable("duedate", "yesterday");
- ProcessInstance three =
jbpmContext.newProcessInstanceForUpdate("variables");
- three.getContextInstance().setVariable("category",
"underpaid");
- three.getContextInstance().setVariable("duedate", "today");
+ ProcessInstance three =
jbpmContext.newProcessInstanceForUpdate("variables");
+ three.getContextInstance().setVariable("category", "underpaid");
+ three.getContextInstance().setVariable("duedate", "today");
- newTransaction();
+ newTransaction();
- Set expectedPids = new HashSet();
- expectedPids.add(new Long(one.getId()));
- expectedPids.add(new Long(two.getId()));
+ Set expectedPids = new HashSet();
+ expectedPids.add(new Long(one.getId()));
+ expectedPids.add(new Long(two.getId()));
- Query query = session.createQuery("select pi.id "
- + "from org.jbpm.context.exe.variableinstance.StringInstance si "
- + "join si.processInstance pi "
- + "where si.name = 'category'"
- + " and si.value like 'overpaid'");
- Set retrievedPids = new HashSet(query.list());
+ Query query = session.createQuery("select pi.id "
+ + "from org.jbpm.context.exe.variableinstance.StringInstance si "
+ + "join si.processInstance pi "
+ + "where si.name = 'category'"
+ + " and si.value like 'overpaid'");
+ Set retrievedPids = new HashSet(query.list());
- assertEquals(expectedPids, retrievedPids);
+ assertEquals(expectedPids, retrievedPids);
- newTransaction();
+ newTransaction();
- expectedPids.clear();
- expectedPids.add(new Long(three.getId()));
+ expectedPids.clear();
+ expectedPids.add(new Long(three.getId()));
- query = session.createQuery("select pi.id "
- + "from org.jbpm.context.exe.variableinstance.StringInstance si "
- + "join si.processInstance pi "
- + "where si.name = 'category'"
- + " and si.value like 'underpaid'");
- retrievedPids.clear();
- retrievedPids.addAll(query.list());
+ query = session.createQuery("select pi.id "
+ + "from org.jbpm.context.exe.variableinstance.StringInstance si "
+ + "join si.processInstance pi "
+ + "where si.name = 'category'"
+ + " and si.value like 'underpaid'");
+ retrievedPids.clear();
+ retrievedPids.addAll(query.list());
- assertEquals(expectedPids, retrievedPids);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals(expectedPids, retrievedPids);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableScopingTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableScopingTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableScopingTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -34,7 +34,7 @@
private static ProcessDefinition pd = createProcessDefinition();
private ProcessInstance pi = new ProcessInstance(pd);
- private ContextInstance ci = (ContextInstance) pi.getInstance(ContextInstance.class);
+ private ContextInstance ci = pi.getContextInstance();
private Token rootToken = pi.getRootToken();
private Token tokenA = new Token(rootToken, "a");
private Token tokenAB = new Token(tokenA, "ab");
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -14,21 +14,16 @@
+ " </start-state>"
+ " <state name='buy cheese' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
- processInstance.signal();
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
+ processInstance.signal();
- newTransaction();
- assertDeleted(processInstance);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+
+ newTransaction();
+ assertDeleted(processInstance);
}
public void testDeleteProcessInstanceWithTask() {
@@ -40,21 +35,16 @@
+ " <task />"
+ " </task-node>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
- processInstance.signal();
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
+ processInstance.signal();
- newTransaction();
- assertDeleted(processInstance);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+
+ newTransaction();
+ assertDeleted(processInstance);
}
public void testDeleteProcessInstanceWithSubProcessInstance() {
@@ -64,7 +54,7 @@
+ " </start-state>"
+ " <state name='find shop' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(buyCheese);
+ deployProcessDefinition(buyCheese);
ProcessDefinition makeFondue =
ProcessDefinition.parseXmlString("<process-definition name='make
fondue'>"
+ " <start-state>"
@@ -74,24 +64,17 @@
+ " <sub-process name='buy cheese' />"
+ " </process-state>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(makeFondue);
+ deployProcessDefinition(makeFondue);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
- processInstance.signal();
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+ processInstance = saveAndReload(processInstance);
+ jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
- newTransaction();
- assertDeleted(processInstance.getRootToken().getProcessInstance());
- assertDeleted(processInstance);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(buyCheese.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(makeFondue.getId());
- }
+ newTransaction();
+ assertDeleted(processInstance.getRootToken().getProcessInstance());
+ assertDeleted(processInstance);
}
public void testDeleteProcessInstanceWithConcurrentPathsOfExecution() {
@@ -106,33 +89,28 @@
+ " <state name='buy cheese' />"
+ " <state name='bake bread' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(makeFondue);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "asterix");
- contextInstance.setVariable("b", "obelix");
+ deployProcessDefinition(makeFondue);
- processInstance.signal();
- Token cheese = processInstance.getRootToken().getChild("cheese");
- contextInstance.setVariable("a", "mik", cheese);
- contextInstance.setVariable("b", "mak", cheese);
- contextInstance.setVariable("c", "mon", cheese);
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "asterix");
+ contextInstance.setVariable("b", "obelix");
- Token bread = processInstance.getRootToken().getChild("bread");
- contextInstance.setVariable("a", "jip", bread);
- contextInstance.setVariable("b", "janneke", bread);
+ processInstance.signal();
+ Token cheese = processInstance.getRootToken().getChild("cheese");
+ contextInstance.setVariable("a", "mik", cheese);
+ contextInstance.setVariable("b", "mak", cheese);
+ contextInstance.setVariable("c", "mon", cheese);
- processInstance = saveAndReload(processInstance);
- jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+ Token bread = processInstance.getRootToken().getChild("bread");
+ contextInstance.setVariable("a", "jip", bread);
+ contextInstance.setVariable("b", "janneke", bread);
- newTransaction();
- assertDeleted(processInstance);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(makeFondue.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
+
+ newTransaction();
+ assertDeleted(processInstance);
}
private void assertDeleted(ProcessInstance processInstance) {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -35,435 +35,274 @@
// create a process definition
ProcessDefinition processDefinition = new ProcessDefinition("auction");
// save it in the database
- graphSession.saveProcessDefinition(processDefinition);
- try {
- // get the assigned id
- long processDefinitionId = processDefinition.getId();
- // start a new transaction
- newTransaction();
- // load the process definition by the id
- processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
- // check the result
- assertEquals("auction", processDefinition.getName());
- }
- finally {
- // cleanup
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ deployProcessDefinition(processDefinition);
+
+ // get the assigned id
+ long processDefinitionId = processDefinition.getId();
+ // start a new transaction
+ newTransaction();
+ // load the process definition by the id
+ processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
+ // check the result
+ assertEquals("auction", processDefinition.getName());
}
public void testFindProcessDefinitionByNameAndVersion() {
- // put 3 process definitions in the database with the same name, but
- // different versions
+ // put 3 process definitions in the database with the same name,
+ // but different versions
ProcessDefinition processDefinitionOne = new ProcessDefinition("auction");
- processDefinitionOne.setVersion(1);
- graphSession.saveProcessDefinition(processDefinitionOne);
+ deployProcessDefinition(processDefinitionOne);
ProcessDefinition processDefinitionTwo = new ProcessDefinition("auction");
- processDefinitionTwo.setVersion(2);
- graphSession.saveProcessDefinition(processDefinitionTwo);
- // get the assigned id of the second verions
+ deployProcessDefinition(processDefinitionTwo);
+ // get the assigned id of the second version
long secondVersionProcessDefinitionId = processDefinitionTwo.getId();
ProcessDefinition processDefinitionThree = new
ProcessDefinition("auction");
- processDefinitionThree.setVersion(3);
- graphSession.saveProcessDefinition(processDefinitionThree);
+ deployProcessDefinition(processDefinitionThree);
- // start a new transaction
- newTransaction();
-
- // load the process definition by the id
+ // load the process definition by name and version
processDefinitionTwo = graphSession.findProcessDefinition("auction", 2);
assertEquals(secondVersionProcessDefinitionId, processDefinitionTwo.getId());
assertEquals("auction", processDefinitionTwo.getName());
assertEquals(2, processDefinitionTwo.getVersion());
-
- // start a new transaction
- newTransaction();
-
- // cleanup
- graphSession.deleteProcessDefinition(processDefinitionOne.getId());
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionTwo.getId());
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionThree.getId());
}
public void testFindLatestProcessDefinition() throws Exception {
- // put 3 process definitions in the database with the same name, but
- // different versions
+ // put 3 process definitions in the database with the same name,
+ // but different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(1);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(2);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(3);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
// get the assigned id of the last verions
long lastVersionProcessDefinitionId = processDefinition.getId();
- newTransaction();
-
processDefinition = graphSession.findLatestProcessDefinition("auction");
assertEquals(lastVersionProcessDefinitionId, processDefinition.getId());
assertEquals("auction", processDefinition.getName());
assertEquals(3, processDefinition.getVersion());
-
- newTransaction();
-
- // cleanup
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
}
public void testFindAllProcessDefinitions() throws Exception {
- ensureCleanProcessDefinitionTable();
-
- // put 3 process definitions in the database with the same name, but
- // different versions
+ // put 3 process definitions in the database with the same name,
+ // but different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(1);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(2);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(3);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("bake cake");
- processDefinition.setVersion(1);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("bake cake");
- processDefinition.setVersion(2);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
-
- try {
- List allProcessDefinitions = graphSession.findAllProcessDefinitions();
- assertEquals(5, allProcessDefinitions.size());
- assertEquals(3, ((ProcessDefinition) allProcessDefinitions.get(0)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(0)).getName());
- assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(1)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(1)).getName());
- assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(2)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(2)).getName());
- assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(3)).getVersion());
- assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(3)).getName());
- assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(4)).getVersion());
- assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(4)).getName());
-
- newTransaction();
- }
- finally {
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+ assertEquals(5, allProcessDefinitions.size());
+ assertEquals(3, ((ProcessDefinition) allProcessDefinitions.get(0)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(0)).getName());
+ assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(1)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(1)).getName());
+ assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(2)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(2)).getName());
+ assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(3)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(3)).getName());
+ assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(4)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(4)).getName());
}
public void testFindAllProcessDefinitionVersions() throws Exception {
- // put 3 process definitions in the database with the same name, but
- // different versions
+ // put 3 process definitions in the database with the same name,
+ // but different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(1);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(2);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("auction");
- processDefinition.setVersion(3);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("bake cake");
- processDefinition.setVersion(1);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processDefinition = new ProcessDefinition("bake cake");
- processDefinition.setVersion(2);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
+ List allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("auction");
+ assertEquals(3, allProcessDefinitionVersions.size());
+ assertEquals(3, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getName());
+ assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getName());
+ assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getName());
- try {
- List allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("auction");
- assertEquals(3, allProcessDefinitionVersions.size());
- assertEquals(3, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getName());
- assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getName());
- assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getVersion());
- assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getName());
-
- allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("bake cake");
- assertEquals(2, allProcessDefinitionVersions.size());
- assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
- assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getName());
- assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
- assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getName());
-
- newTransaction();
- }
- finally {
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("bake cake");
+ assertEquals(2, allProcessDefinitionVersions.size());
+ assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
+ assertEquals("bake cake",
+ ((ProcessDefinition) allProcessDefinitionVersions.get(0)).getName());
+ assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
+ assertEquals("bake cake",
+ ((ProcessDefinition) allProcessDefinitionVersions.get(1)).getName());
}
public void testSaveAndLoadProcessInstance() {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance = saveAndReload(processInstance);
- assertNotNull(processInstance);
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition);
- }
+ ProcessDefinition processDefinition = new ProcessDefinition("auction");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance = saveAndReload(processInstance);
+ assertNotNull(processInstance);
}
public void testUpdateProcessInstance() {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state name='s' />"
- + " <node name='n' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='auction'>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
-
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance = saveAndReload(processInstance);
- long pid = processInstance.getId();
+ processInstance = saveAndReload(processInstance);
+ long pid = processInstance.getId();
- assertEquals("s", processInstance.getRootToken().getNode().getName());
-
processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
+ assertEquals("s", processInstance.getRootToken().getNode().getName());
+
processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
- processInstance = saveAndReload(processInstance);
- assertEquals("n", processInstance.getRootToken().getNode().getName());
- assertEquals(pid, processInstance.getId());
-
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ assertEquals("n", processInstance.getRootToken().getNode().getName());
+ assertEquals(pid, processInstance.getId());
}
public void testFindProcessInstancesByProcessDefinition() {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state name='s' />"
- + " <node name='n' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='auction'>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
- try {
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
+ newTransaction();
+ List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
+ assertEquals(3, processInstances.size());
- newTransaction();
-
- List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
- assertEquals(3, processInstances.size());
-
- // process instances should be ordered from recent to old
- long previousStart = System.currentTimeMillis();
- Iterator iter = processInstances.iterator();
- while (iter.hasNext()) {
- ProcessInstance processInstance = (ProcessInstance) iter.next();
- long processStart = processInstance.getStart().getTime();
- assertTrue(previousStart >= processStart);
- previousStart = processStart;
- }
-
- newTransaction();
+ // process instances should be ordered from recent to old
+ long previousStart = System.currentTimeMillis();
+ for (Iterator iter = processInstances.iterator(); iter.hasNext();) {
+ ProcessInstance processInstance = (ProcessInstance) iter.next();
+ long processStart = processInstance.getStart().getTime();
+ assertTrue(previousStart >= processStart);
+ previousStart = processStart;
}
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
}
public void testDeleteProcessInstance() {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state name='s' />"
- + " <node name='n' />"
- + "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='auction'>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ jbpmContext.save(processInstance);
- newTransaction();
+ newTransaction();
+ graphSession.deleteProcessInstance(processInstance.getId());
- graphSession.deleteProcessInstance(processInstance.getId());
-
- newTransaction();
-
- assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
-
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
}
public void testDeleteProcessInstanceWithVariables() {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state name='start'>"
- + " <transition to='fork' />"
- + " </start-state>"
- + " <fork name='fork'>"
- + " <transition name='a' to='a' />"
- + " <transition name='b' to='b' />"
- + " </fork>"
- + " <state name='a' />"
- + " <state name='b' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='auction'>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='a' to='a' />"
+ + " <transition name='b' to='b' />"
+ + " </fork>"
+ + " <state name='a' />"
+ + " <state name='b' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ Token tokenA = processInstance.findToken("/a");
+ Token tokenB = processInstance.findToken("/b");
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- Token tokenA = processInstance.findToken("/a");
- Token tokenB = processInstance.findToken("/b");
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("r", "rrrrrr");
+ contextInstance.createVariable("a", "aaaaaa", tokenA);
+ contextInstance.createVariable("b", "bbbbbb", tokenB);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("r", "rrrrrr");
- contextInstance.createVariable("a", "aaaaaa", tokenA);
- contextInstance.createVariable("b", "bbbbbb", tokenB);
+ processInstance = saveAndReload(processInstance);
+ graphSession.deleteProcessInstance(processInstance);
- processInstance = saveAndReload(processInstance);
-
- graphSession.deleteProcessInstance(processInstance);
-
- newTransaction();
-
- List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
- assertEquals(0, processInstances.size());
-
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
+ assertEquals(0, processInstances.size());
}
public void testDeleteProcessDefinition() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='deleteme'>"
- + " <start-state name='s' />"
- + " <node name='n' />"
- + "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ + "</process-definition>");
+ jbpmContext.deployProcessDefinition(processDefinition);
+ newTransaction();
try {
jbpmContext.save(new ProcessInstance(processDefinition));
jbpmContext.save(new ProcessInstance(processDefinition));
jbpmContext.save(new ProcessInstance(processDefinition));
jbpmContext.save(new ProcessInstance(processDefinition));
-
- newTransaction();
}
finally {
graphSession.deleteProcessDefinition(processDefinition.getId());
}
newTransaction();
-
- assertEquals(0,
graphSession.findAllProcessDefinitionVersions(processDefinition.getName()).size());
+ assertEquals(0,
graphSession.findAllProcessDefinitionVersions(processDefinition.getName())
+ .size());
assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
}
public void testLatestProcessDefinitions() {
- ensureCleanProcessDefinitionTable();
+ deployProcessDefinition(new ProcessDefinition("websale"));
+ deployProcessDefinition(new ProcessDefinition("websale"));
+ deployProcessDefinition(new ProcessDefinition("websale"));
- ProcessDefinition websale = new ProcessDefinition("websale");
- jbpmContext.deployProcessDefinition(websale);
- jbpmContext.deployProcessDefinition(websale);
- jbpmContext.deployProcessDefinition(websale);
+ deployProcessDefinition(new ProcessDefinition("change nappy"));
+ deployProcessDefinition(new ProcessDefinition("change nappy"));
- ProcessDefinition changeNappy = new ProcessDefinition("change nappy");
- jbpmContext.deployProcessDefinition(changeNappy);
- jbpmContext.deployProcessDefinition(changeNappy);
-
- newTransaction();
-
List latestProcessDefinitions = graphSession.findLatestProcessDefinitions();
assertEquals(2, latestProcessDefinitions.size());
assertEquals(3, getVersionOfProcess("websale", latestProcessDefinitions));
assertEquals(2, getVersionOfProcess("change nappy",
latestProcessDefinitions));
-
- newTransaction();
-
- // cleanup
- graphSession.deleteProcessDefinition(websale.getId());
- graphSession.deleteProcessDefinition(changeNappy.getId());
}
- private void ensureCleanProcessDefinitionTable() {
- List processDefinitions = session.createCriteria(ProcessDefinition.class).list();
- if (!processDefinitions.isEmpty()) {
- System.err.println("FIXME: "+ getClass().getName() + "." +
getName() +
- " found " + processDefinitions.size() + " process definitions
left over");
- for (Iterator i = processDefinitions.iterator(); i.hasNext();) {
- ProcessDefinition processDefinition = (ProcessDefinition) i.next();
- graphSession.deleteProcessDefinition(processDefinition);
- }
- }
- }
-
private int getVersionOfProcess(String name, List latestProcessDefinitions) {
- Iterator iter = latestProcessDefinitions.iterator();
- while (iter.hasNext()) {
+ for (Iterator iter = latestProcessDefinitions.iterator(); iter.hasNext();) {
ProcessDefinition processDefinition = (ProcessDefinition) iter.next();
- if (name.equals(processDefinition.getName())) {
- return processDefinition.getVersion();
- }
+ if (name.equals(processDefinition.getName())) return
processDefinition.getVersion();
}
- return -2;
+ return -1;
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/TaskMgmtSessionDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/TaskMgmtSessionDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/TaskMgmtSessionDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,42 +36,25 @@
public class TaskMgmtSessionDbTest extends AbstractDbTestCase {
- ProcessDefinition processDefinition;
- TaskMgmtDefinition taskMgmtDefinition;
- Task laundry;
- Task dishes;
-
ProcessInstance processInstance;
TaskMgmtInstance taskMgmtInstance;
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
- taskMgmtDefinition = new TaskMgmtDefinition();
+ TaskMgmtDefinition taskMgmtDefinition = new TaskMgmtDefinition();
+ taskMgmtDefinition.addTask(new Task("laundry"));
+ taskMgmtDefinition.addTask(new Task("dishes"));
+
+ ProcessDefinition processDefinition = new ProcessDefinition("housework");
processDefinition.addDefinition(taskMgmtDefinition);
- laundry = new Task("laundry");
- taskMgmtDefinition.addTask(laundry);
- dishes = new Task("dishes");
- taskMgmtDefinition.addTask(dishes);
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
-
processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
-
- processDefinition = processInstance.getProcessDefinition();
- taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
- laundry = taskMgmtDefinition.getTask("laundry");
- dishes = taskMgmtDefinition.getTask("dishes");
taskMgmtInstance = processInstance.getTaskMgmtInstance();
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testFindTaskInstancesByActorId() {
taskMgmtInstance.addTaskInstance(new TaskInstance("laundry",
"me"));
taskMgmtInstance.addTaskInstance(new TaskInstance("dishes",
"me"));
@@ -130,48 +113,39 @@
+ " <task name='cleanToilets'/>"
+ " </task-node>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- try {
- newTransaction();
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("searchable");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("searchable");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- List taskInstances =
taskMgmtSession.findTaskInstancesByProcessInstance(processInstance);
- Set collectedTaskInstanceNames = new HashSet();
- Iterator iter = taskInstances.iterator();
- while (iter.hasNext()) {
- TaskInstance taskInstance = (TaskInstance) iter.next();
- collectedTaskInstanceNames.add(taskInstance.getName());
- }
+ List taskInstances =
taskMgmtSession.findTaskInstancesByProcessInstance(processInstance);
+ Set collectedTaskInstanceNames = new HashSet();
+ for (Iterator iter = taskInstances.iterator(); iter.hasNext();) {
+ TaskInstance taskInstance = (TaskInstance) iter.next();
+ collectedTaskInstanceNames.add(taskInstance.getName());
+ }
- Set expectedTaskInstanceNames = new HashSet();
- expectedTaskInstanceNames.add("getLaundryFromBasket");
- expectedTaskInstanceNames.add("askHusbandWhereHeDumpedHisClothes");
- expectedTaskInstanceNames.add("lookUnderChildrensBeds");
- expectedTaskInstanceNames.add("cleanToilets");
+ Set expectedTaskInstanceNames = new HashSet();
+ expectedTaskInstanceNames.add("getLaundryFromBasket");
+ expectedTaskInstanceNames.add("askHusbandWhereHeDumpedHisClothes");
+ expectedTaskInstanceNames.add("lookUnderChildrensBeds");
+ expectedTaskInstanceNames.add("cleanToilets");
- assertEquals(expectedTaskInstanceNames, collectedTaskInstanceNames);
+ assertEquals(expectedTaskInstanceNames, collectedTaskInstanceNames);
- List nodes = graphSession.findActiveNodesByProcessInstance(processInstance);
- Set collectedNodeNames = new HashSet();
- iter = nodes.iterator();
- while (iter.hasNext()) {
- Node node = (Node) iter.next();
- collectedNodeNames.add(node.getName());
- }
-
- Set expectedNodeNames = new HashSet();
- expectedNodeNames.add("collectLaundry");
- expectedNodeNames.add("cleanToilets");
-
- assertEquals(expectedNodeNames, collectedNodeNames);
+ List nodes = graphSession.findActiveNodesByProcessInstance(processInstance);
+ Set collectedNodeNames = new HashSet();
+ for (Iterator iter = nodes.iterator(); iter.hasNext();) {
+ Node node = (Node) iter.next();
+ collectedNodeNames.add(node.getName());
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Set expectedNodeNames = new HashSet();
+ expectedNodeNames.add("collectLaundry");
+ expectedNodeNames.add("cleanToilets");
+
+ assertEquals(expectedNodeNames, collectedNodeNames);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/MultipleProcessDefinitionEventsDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/MultipleProcessDefinitionEventsDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/MultipleProcessDefinitionEventsDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -29,56 +29,37 @@
public class MultipleProcessDefinitionEventsDbTest extends AbstractDbTestCase {
public void testEventPersistence() {
-
// Add a start state so that state '1' gets assigned id = 2
- ProcessDefinition processDefinitionOne = ProcessDefinition.parseXmlString(
- "<process-definition name='one'>" +
- " <start-state name='start'>" +
- " <transition name='start transition to 1' to='1'
/>" +
- " </start-state>" +
- " <state name='1'>" +
- " <event type='node-enter'>" +
- " <action class='foo' />" +
- " </event>" +
- " </state>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinitionOne =
ProcessDefinition.parseXmlString("<process-definition
name='one'>"
+ + " <start-state name='start'>"
+ + " <transition name='start transition to 1' to='1'
/>"
+ + " </start-state>"
+ + " <state name='1'>"
+ + " <event type='node-enter'>"
+ + " <action class='foo' />"
+ + " </event>"
+ + " </state>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinitionOne);
- jbpmContext.deployProcessDefinition(processDefinitionOne);
+ ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition
name='two'>"
+ + " <state name='1'>"
+ + " <event type='node-enter'>"
+ + " <action class='bar' />"
+ + " </event>"
+ + " </state>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinitionTwo);
- newTransaction();
+ processDefinitionOne =
graphSession.loadProcessDefinition(processDefinitionOne.getId());
+ processDefinitionTwo =
graphSession.loadProcessDefinition(processDefinitionTwo.getId());
- ProcessDefinition processDefinitionTwo = ProcessDefinition.parseXmlString(
- "<process-definition name='two'>" +
- " <state name='1'>" +
- " <event type='node-enter'>" +
- " <action class='bar' />" +
- " </event>" +
- " </state>" +
- "</process-definition>"
- );
+ State stateOne = (State) processDefinitionOne.getNode("1");
+ State stateTwo = (State) processDefinitionTwo.getNode("1");
+ assertTrue(stateOne.getEvent("node-enter") !=
stateTwo.getEvent("node-enter"));
- jbpmContext.deployProcessDefinition(processDefinitionTwo);
-
- newTransaction();
-
- try
- {
- processDefinitionOne =
graphSession.loadProcessDefinition(processDefinitionOne.getId());
- processDefinitionTwo =
graphSession.loadProcessDefinition(processDefinitionTwo.getId());
-
- State stateOne = (State) processDefinitionOne.getNode("1");
- State stateTwo = (State) processDefinitionTwo.getNode("1");
- assertTrue(stateOne.getEvent("node-enter") !=
stateTwo.getEvent("node-enter"));
-
- Map processEvents = processDefinitionTwo.getEvents();
- // System.out.println(processDefinitionTwo.getEvents());
- assertEquals("Process Definition should not have any events. events = " +
processEvents, 0, processEvents.size());
- }
- finally
- {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionOne.getId());
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionTwo.getId());
- }
+ Map processEvents = processDefinitionTwo.getEvents();
+ assertEquals("Process Definition should not have any events. events = " +
processEvents, 0,
+ processEvents.size());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/NodeDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/NodeDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/NodeDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -25,108 +25,91 @@
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import org.jbpm.db.AbstractDbTestCase;
-public class NodeDbTest extends AbstractDbTestCase
-{
+public class NodeDbTest extends AbstractDbTestCase {
- public void testNodeName()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ public void testNodeName() {
Node node = new Node("n");
+
+ ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addNode(node);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition);
- assertEquals("n", processDefinition.getNode("n").getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(processDefinition);
+ assertEquals("n", processDefinition.getNode("n").getName());
}
- public void testNodeProcessDefinition()
- {
- ProcessDefinition processDefinition = new ProcessDefinition("p");
+ public void testNodeProcessDefinition() {
Node node = new Node("n");
+
+ ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addNode(node);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition);
- assertEquals("p",
processDefinition.getNode("n").getProcessDefinition().getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(processDefinition);
+ assertSame(processDefinition,
processDefinition.getNode("n").getProcessDefinition());
}
- public void testNodeEvents()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ public void testNodeEvents() {
Node node = new Node("n");
- processDefinition.addNode(node);
node.addEvent(new Event("node-enter"));
node.addEvent(new Event("node-leave"));
node.addEvent(new Event("transition"));
node.addEvent(new Event("process-start"));
node.addEvent(new Event("process-end"));
+ ProcessDefinition processDefinition = new ProcessDefinition();
+ processDefinition.addNode(node);
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- node = processDefinition.getNode("n");
- assertNotNull(node.getEvent("node-enter"));
- assertNotNull(node.getEvent("node-leave"));
- assertNotNull(node.getEvent("transition"));
- assertNotNull(node.getEvent("process-start"));
- assertNotNull(node.getEvent("process-end"));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ node = processDefinition.getNode("n");
+ assertNotNull(node.getEvent("node-enter"));
+ assertNotNull(node.getEvent("node-leave"));
+ assertNotNull(node.getEvent("transition"));
+ assertNotNull(node.getEvent("process-start"));
+ assertNotNull(node.getEvent("process-end"));
}
- public void testNodeExceptionHandlers()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ public void testNodeExceptionHandlers() {
+ ExceptionHandler exceptionHandler1 = new ExceptionHandler();
+ exceptionHandler1.setExceptionClassName("org.disaster.FirstException");
+
+ ExceptionHandler exceptionHandler2 = new ExceptionHandler();
+ exceptionHandler2.setExceptionClassName("org.disaster.SecondException");
+
+ ExceptionHandler exceptionHandler3 = new ExceptionHandler();
+ exceptionHandler3.setExceptionClassName("org.disaster.ThirdException");
+
Node node = new Node("n");
+ node.addExceptionHandler(exceptionHandler1);
+ node.addExceptionHandler(exceptionHandler2);
+ node.addExceptionHandler(exceptionHandler3);
+
+ ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addNode(node);
- ExceptionHandler exceptionHandler = new ExceptionHandler();
- exceptionHandler.setExceptionClassName("org.disaster.FirstException");
- node.addExceptionHandler(exceptionHandler);
- exceptionHandler = new ExceptionHandler();
- exceptionHandler.setExceptionClassName("org.disaster.SecondException");
- node.addExceptionHandler(exceptionHandler);
- exceptionHandler = new ExceptionHandler();
- exceptionHandler.setExceptionClassName("org.disaster.ThirdException");
- node.addExceptionHandler(exceptionHandler);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("org.disaster.FirstException",
((ExceptionHandler)processDefinition.getNode("n").getExceptionHandlers().get(0)).getExceptionClassName());
- assertEquals("org.disaster.SecondException",
((ExceptionHandler)processDefinition.getNode("n").getExceptionHandlers().get(1)).getExceptionClassName());
- assertEquals("org.disaster.ThirdException",
((ExceptionHandler)processDefinition.getNode("n").getExceptionHandlers().get(2)).getExceptionClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ node = processDefinition.getNode("n");
+ List exceptionHandlers = node.getExceptionHandlers();
+
+ exceptionHandler1 = (ExceptionHandler) exceptionHandlers.get(0);
+ assertEquals("org.disaster.FirstException",
exceptionHandler1.getExceptionClassName());
+
+ exceptionHandler2 = (ExceptionHandler) exceptionHandlers.get(1);
+ assertEquals("org.disaster.SecondException",
exceptionHandler2.getExceptionClassName());
+
+ exceptionHandler3 = (ExceptionHandler) exceptionHandlers.get(2);
+ assertEquals("org.disaster.ThirdException",
exceptionHandler3.getExceptionClassName());
}
- public void testNodeLeavingTransitions()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ public void testNodeLeavingTransitions() {
Node a = new Node("a");
Node b = new Node("b");
+
+ ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addNode(a);
processDefinition.addNode(b);
@@ -143,30 +126,23 @@
b.addArrivingTransition(t);
processDefinition = saveAndReload(processDefinition);
- try
- {
- a = processDefinition.getNode("a");
- b = processDefinition.getNode("b");
+ a = processDefinition.getNode("a");
+ b = processDefinition.getNode("b");
- assertEquals("one",
((Transition)a.getLeavingTransitionsList().get(0)).getName());
- assertEquals("two",
((Transition)a.getLeavingTransitionsList().get(1)).getName());
- assertEquals("three",
((Transition)a.getLeavingTransitionsList().get(2)).getName());
+ assertEquals("one", ((Transition)
a.getLeavingTransitionsList().get(0)).getName());
+ assertEquals("two", ((Transition)
a.getLeavingTransitionsList().get(1)).getName());
+ assertEquals("three", ((Transition)
a.getLeavingTransitionsList().get(2)).getName());
- assertSame(b, a.getLeavingTransition("one").getTo());
- assertSame(b, a.getLeavingTransition("two").getTo());
- assertSame(b, a.getLeavingTransition("three").getTo());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertSame(b, a.getLeavingTransition("one").getTo());
+ assertSame(b, a.getLeavingTransition("two").getTo());
+ assertSame(b, a.getLeavingTransition("three").getTo());
}
- public void testNodeArrivingTransitions()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ public void testNodeArrivingTransitions() {
Node a = new Node("a");
Node b = new Node("b");
+
+ ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addNode(a);
processDefinition.addNode(b);
@@ -183,69 +159,52 @@
b.addArrivingTransition(t);
processDefinition = saveAndReload(processDefinition);
- try
- {
- a = processDefinition.getNode("a");
- b = processDefinition.getNode("b");
+ a = processDefinition.getNode("a");
+ b = processDefinition.getNode("b");
- Iterator arrivingTransitionIter = b.getArrivingTransitions().iterator();
- assertSame(b, ((Transition)arrivingTransitionIter.next()).getTo());
- assertSame(b, ((Transition)arrivingTransitionIter.next()).getTo());
- assertSame(b, ((Transition)arrivingTransitionIter.next()).getTo());
+ Iterator arrivingTransitionIter = b.getArrivingTransitions().iterator();
+ assertSame(b, ((Transition) arrivingTransitionIter.next()).getTo());
+ assertSame(b, ((Transition) arrivingTransitionIter.next()).getTo());
+ assertSame(b, ((Transition) arrivingTransitionIter.next()).getTo());
- Collection expectedTransitionNames = new HashSet(Arrays.asList(new String[] {
"one", "two", "three" }));
- arrivingTransitionIter = b.getArrivingTransitions().iterator();
-
expectedTransitionNames.remove(((Transition)arrivingTransitionIter.next()).getName());
-
expectedTransitionNames.remove(((Transition)arrivingTransitionIter.next()).getName());
-
expectedTransitionNames.remove(((Transition)arrivingTransitionIter.next()).getName());
- assertEquals(0, expectedTransitionNames.size());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Collection expectedTransitionNames = new HashSet(Arrays.asList(new String[] {
+ "one", "two", "three"
+ }));
+ arrivingTransitionIter = b.getArrivingTransitions().iterator();
+ expectedTransitionNames.remove(((Transition)
arrivingTransitionIter.next()).getName());
+ expectedTransitionNames.remove(((Transition)
arrivingTransitionIter.next()).getName());
+ expectedTransitionNames.remove(((Transition)
arrivingTransitionIter.next()).getName());
+ assertEquals(0, expectedTransitionNames.size());
}
- public void testNodeAction()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
- Node node = new Node("n");
- processDefinition.addNode(node);
+ public void testNodeAction() {
Action action = new Action();
action.setName("a");
+
+ Node node = new Node("n");
node.setAction(action);
+ ProcessDefinition processDefinition = new ProcessDefinition();
+ processDefinition.addNode(node);
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition.getNode("n").getAction());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(processDefinition.getNode("n").getAction());
}
- public void testNodeSuperState()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
- SuperState superState = new SuperState("s");
- processDefinition.addNode(superState);
+ public void testNodeSuperState() {
Node node = new Node("n");
+
+ SuperState superState = new SuperState("s");
superState.addNode(node);
+ ProcessDefinition processDefinition = new ProcessDefinition();
+ processDefinition.addNode(superState);
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- superState = (SuperState)processDefinition.getNode("s");
- node = superState.getNode("n");
- assertNotNull(node);
- assertNotNull(superState);
- assertSame(node, superState.getNode("n"));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ superState = (SuperState) processDefinition.getNode("s");
+ node = superState.getNode("n");
+ assertNotNull(node);
+ assertNotNull(superState);
+ assertSame(node, superState.getNode("n"));
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/BusinessKeyDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -3,60 +3,34 @@
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
-public class BusinessKeyDbTest extends AbstractDbTestCase
-{
+public class BusinessKeyDbTest extends AbstractDbTestCase {
- public void testSimpleBusinessKey()
- {
+ public void testSimpleBusinessKey() {
ProcessDefinition processDefinition = new
ProcessDefinition("businesskeytest");
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("businesskeytest");
- processInstance.setKey("businesskey1");
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("businesskeytest");
+ processInstance.setKey("businesskey1");
- newTransaction();
+ newTransaction();
+ processInstance =
jbpmContext.newProcessInstanceForUpdate("businesskeytest");
+ processInstance.setKey("businesskey2");
- processInstance =
jbpmContext.newProcessInstanceForUpdate("businesskeytest");
- processInstance.setKey("businesskey2");
-
- newTransaction();
-
- processDefinition =
jbpmContext.getGraphSession().findLatestProcessDefinition("businesskeytest");
- processInstance = jbpmContext.getProcessInstance(processDefinition,
"businesskey1");
- assertEquals("businesskey1", processInstance.getKey());
- }
- finally
- {
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ newTransaction();
+ processDefinition = jbpmContext.getGraphSession()
+ .findLatestProcessDefinition("businesskeytest");
+ processInstance = jbpmContext.getProcessInstance(processDefinition,
"businesskey1");
+ assertEquals("businesskey1", processInstance.getKey());
}
- public void testDuplicateBusinessKeyInDifferentProcesses()
- {
+ public void testDuplicateBusinessKeyInDifferentProcesses() {
ProcessDefinition processDefinitionOne = new
ProcessDefinition("businesskeytest1");
- processDefinitionOne = saveAndReload(processDefinitionOne);
- long processDefinitionIdOne = processDefinitionOne.getId();
-
+ deployProcessDefinition(processDefinitionOne);
+
ProcessDefinition processDefinitionTwo = new
ProcessDefinition("businesskeytest2");
- processDefinitionTwo = saveAndReload(processDefinitionTwo);
- long processDefinitionIdTwo = processDefinitionTwo.getId();
-
- try
- {
-
jbpmContext.newProcessInstanceForUpdate("businesskeytest1").setKey("duplicatekey");
- newTransaction();
-
jbpmContext.newProcessInstanceForUpdate("businesskeytest2").setKey("duplicatekey");
- }
- finally
- {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionIdOne);
- graphSession.deleteProcessDefinition(processDefinitionIdTwo);
- }
+ deployProcessDefinition(processDefinitionTwo);
+
+
jbpmContext.newProcessInstanceForUpdate("businesskeytest1").setKey("duplicatekey");
+
jbpmContext.newProcessInstanceForUpdate("businesskeytest2").setKey("duplicatekey");
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/NodeActionTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/NodeActionTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/NodeActionTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -53,7 +53,7 @@
private Node b = processDefinition.getNode("b");
private Node c = processDefinition.getNode("c");
- private static int scenario = 0;
+ static int scenario = 0;
public static class RuntimeCalculation implements ActionHandler {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/ProcessInstanceDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/ProcessInstanceDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/ProcessInstanceDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -31,8 +31,7 @@
public void testProcessInstanceProcessDefinition() {
ProcessDefinition processDefinition = new ProcessDefinition("definition");
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
@@ -41,33 +40,29 @@
processDefinition = processInstance.getProcessDefinition();
assertEquals("definition", processDefinition.getName());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testProcessInstanceDates() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='end' />" +
- " </start-state>" +
- " <end-state name='end'/>" +
- "</process-definition>" );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='end' />"
+ + " </start-state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
processInstance = saveAndReload(processInstance);
-
+
assertNotNull(processInstance.getStart());
assertNotNull(processInstance.getEnd());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
@@ -75,97 +70,67 @@
public void testProcessInstanceRootToken() {
ProcessDefinition processDefinition = new ProcessDefinition();
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
-
assertNotNull(processInstance.getRootToken());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
- public void testProcessInstanceSuperProcessToken()
- {
+ public void testProcessInstanceSuperProcessToken() {
ProcessDefinition superProcessDefinition = new ProcessDefinition("super");
- jbpmContext.deployProcessDefinition(superProcessDefinition);
-
+ deployProcessDefinition(superProcessDefinition);
+
ProcessDefinition subProcessDefinition = new ProcessDefinition("sub");
- jbpmContext.deployProcessDefinition(subProcessDefinition);
-
+ deployProcessDefinition(subProcessDefinition);
+
ProcessInstance superProcessInstance = new ProcessInstance(superProcessDefinition);
ProcessInstance processInstance = new ProcessInstance(subProcessDefinition);
- try
- {
- Token superProcessToken = superProcessInstance.getRootToken();
- jbpmContext.save(superProcessInstance);
-
- processInstance.setSuperProcessToken(superProcessToken);
+ Token superProcessToken = superProcessInstance.getRootToken();
+ processInstance.setSuperProcessToken(superProcessToken);
+ jbpmContext.save(superProcessInstance);
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
+ superProcessToken = processInstance.getSuperProcessToken();
+ assertNotNull(superProcessToken);
+ superProcessInstance = superProcessToken.getProcessInstance();
+ assertNotNull(superProcessInstance);
- superProcessToken = processInstance.getSuperProcessToken();
- assertNotNull(superProcessToken);
- superProcessInstance = superProcessToken.getProcessInstance();
- assertNotNull(superProcessInstance);
-
- ProcessDefinition processDefinition = superProcessInstance.getProcessDefinition();
- assertEquals("super", processDefinition.getName());
- }
- finally
- {
-
jbpmContext.getGraphSession().deleteProcessDefinition(subProcessDefinition.getId());
-
jbpmContext.getGraphSession().deleteProcessDefinition(superProcessDefinition.getId());
- }
+ ProcessDefinition processDefinition = superProcessInstance.getProcessDefinition();
+ assertEquals("super", processDefinition.getName());
}
-
- public void testProcessInstanceModuleInstances()
- {
+
+ public void testProcessInstanceModuleInstances() {
ProcessDefinition processDefinition = new ProcessDefinition("modinst");
- jbpmContext.deployProcessDefinition(processDefinition);
-
+ deployProcessDefinition(processDefinition);
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.addInstance(new ContextInstance());
processInstance.addInstance(new TaskMgmtInstance());
processInstance = saveAndReload(processInstance);
- try
- {
- assertNotNull(processInstance.getInstances());
- assertEquals(2, processInstance.getInstances().size());
- assertNotNull(processInstance.getContextInstance());
- assertNotNull(processInstance.getTaskMgmtInstance());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(processInstance.getInstances());
+ assertEquals(2, processInstance.getInstances().size());
+ assertNotNull(processInstance.getContextInstance());
+ assertNotNull(processInstance.getTaskMgmtInstance());
}
- public void testProcessInstanceRuntimeActions()
- {
- ProcessDefinition processDefinition = new ProcessDefinition("modinst");
- jbpmContext.deployProcessDefinition(processDefinition);
+ public void testProcessInstanceRuntimeActions() {
+ ProcessDefinition processDefinition = new ProcessDefinition("modinst");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.addRuntimeAction(new RuntimeAction());
processInstance.addRuntimeAction(new RuntimeAction());
processInstance.addRuntimeAction(new RuntimeAction());
processInstance.addRuntimeAction(new RuntimeAction());
processInstance = saveAndReload(processInstance);
- try
- {
- assertNotNull(processInstance.getRuntimeActions());
- assertEquals(4, processInstance.getRuntimeActions().size());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(processInstance.getRuntimeActions());
+ assertEquals(4, processInstance.getRuntimeActions().size());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionsTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionsTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionsTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -41,7 +41,7 @@
"</process-definition>"
);
- private static int count = 0;
+ static int count = 0;
public static class PlusPlus implements ActionHandler {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessCancellationTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessCancellationTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessCancellationTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -10,57 +10,50 @@
public void testWithSubProcess() {
ProcessDefinition subProcess =
ProcessDefinition.parseXmlString("<process-definition
name='sub'>"
- + " <start-state>"
- + " <transition to='wait' />"
- + " </start-state>"
- + " <task-node name='wait'>"
- + " <task>"
- + " <timer duedate='2 seconds' class='MyTimerClass'
/>"
- + " </task>"
- + " <transition to='end' />"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(subProcess);
+ + " <start-state>"
+ + " <transition to='wait' />"
+ + " </start-state>"
+ + " <task-node name='wait'>"
+ + " <task>"
+ + " <timer duedate='2 seconds' class='MyTimerClass'
/>"
+ + " </task>"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(subProcess);
ProcessDefinition superProcess =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
- + " <start-state>"
- + " <transition to='subprocess' />"
- + " </start-state>"
- + " <process-state name='subprocess'>"
- + " <sub-process name='sub' />"
- + " <transition to='s'/>"
- + " </process-state>"
- + " <state name='s' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(superProcess);
+ + " <start-state>"
+ + " <transition to='subprocess' />"
+ + " </start-state>"
+ + " <process-state name='subprocess'>"
+ + " <sub-process name='sub' />"
+ + " <transition to='s'/>"
+ + " </process-state>"
+ + " <state name='s' />"
+ + "</process-definition>");
+ deployProcessDefinition(superProcess);
- newTransaction();
- try {
- ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
- pi.signal();
+ ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
+ pi.signal();
- ProcessInstance subPi = pi.getRootToken().getSubProcessInstance();
- assertEquals("wait", subPi.getRootToken().getNode().getName());
+ ProcessInstance subPi = pi.getRootToken().getSubProcessInstance();
+ assertEquals("wait", subPi.getRootToken().getNode().getName());
- pi = saveAndReload(pi);
- pi.end();
- pi.getTaskMgmtInstance().endAll();
+ pi = saveAndReload(pi);
+ pi.end();
+ pi.getTaskMgmtInstance().endAll();
- pi = saveAndReload(pi);
- assertTrue(pi.hasEnded());
- subPi = pi.getRootToken().getSubProcessInstance();
- assertTrue(subPi.hasEnded());
+ pi = saveAndReload(pi);
+ assertTrue(pi.hasEnded());
+ subPi = pi.getRootToken().getSubProcessInstance();
+ assertTrue(subPi.hasEnded());
- for (Iterator i = subPi.getTaskMgmtInstance().getTaskInstances().iterator();
i.hasNext();) {
- TaskInstance taskInstance = (TaskInstance) i.next();
- assertFalse(taskInstance.isSignalling());
- assertFalse(taskInstance.hasEnded());
- }
+ for (Iterator i = subPi.getTaskMgmtInstance().getTaskInstances().iterator();
i.hasNext();) {
+ TaskInstance taskInstance = (TaskInstance) i.next();
+ assertFalse(taskInstance.isSignalling());
+ assertFalse(taskInstance.hasEnded());
}
- finally {
- graphSession.deleteProcessDefinition(superProcess.getId());
- graphSession.deleteProcessDefinition(subProcess.getId());
- }
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -24,71 +24,49 @@
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ActionHandler;
-import org.jbpm.graph.def.Node;
import org.jbpm.graph.def.ProcessDefinition;
-import org.jbpm.graph.node.ProcessState;
public class SubProcessPlusConcurrencyDbTest extends AbstractDbTestCase {
- void deployProcessDefinitions() {
+ protected void setUp() throws Exception {
+ super.setUp();
+
ProcessDefinition subProcess =
ProcessDefinition.parseXmlString("<process-definition
name='sub'>"
- + " <start-state>"
- + " <transition to='wait' />"
- + " </start-state>"
- + " <state name='wait'>"
- + " <transition to='end' />"
- + " </state>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(subProcess);
+ + " <start-state>"
+ + " <transition to='wait' />"
+ + " </start-state>"
+ + " <state name='wait'>"
+ + " <transition to='end' />"
+ + " </state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(subProcess);
ProcessDefinition superProcess =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
- + " <start-state>"
- + " <transition name='without subprocess' to='fork'
/>"
- + " <transition name='with subprocess' to='subprocess'
/>"
- + " </start-state>"
- + " <process-state name='subprocess'>"
- + " <sub-process name='sub' />"
- + " <transition to='fork'/>"
- + " </process-state>"
- + " <fork name='fork'>"
- + " <transition name='a' to='join' />"
- + " <transition name='b' to='join' />"
- + " </fork>"
- + " <join name='join' lock='UPGRADE'>"
- + " <transition to='s' />"
- + " </join>"
- + " <state name='s'>"
- + " <event type='node-enter'>"
- + " <action
class='org.jbpm.graph.exe.SubProcessPlusConcurrencyDbTest$EnterNodeS' />"
- + " </event>"
- + " </state>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(superProcess);
-
- newTransaction();
+ + " <start-state>"
+ + " <transition name='without subprocess' to='fork'
/>"
+ + " <transition name='with subprocess' to='subprocess'
/>"
+ + " </start-state>"
+ + " <process-state name='subprocess'>"
+ + " <sub-process name='sub' />"
+ + " <transition to='fork'/>"
+ + " </process-state>"
+ + " <fork name='fork'>"
+ + " <transition name='a' to='join' />"
+ + " <transition name='b' to='join' />"
+ + " </fork>"
+ + " <join name='join' lock='UPGRADE'>"
+ + " <transition to='s' />"
+ + " </join>"
+ + " <state name='s'>"
+ + " <event type='node-enter'>"
+ + " <action
class='org.jbpm.graph.exe.SubProcessPlusConcurrencyDbTest$EnterNodeS' />"
+ + " </event>"
+ + " </state>"
+ + "</process-definition>");
+ deployProcessDefinition(superProcess);
}
- public void deleteProcessDefinitions() {
- ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition("super");
- Node node = processDefinition.getNode("subprocess");
- ProcessState processState = (ProcessState) session.load(ProcessState.class, new
Long(
- node.getId()));
- processState.setSubProcessDefinition(null);
-
- newTransaction();
-
- processDefinition = graphSession.findLatestProcessDefinition("sub");
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- newTransaction();
-
- processDefinition = graphSession.findLatestProcessDefinition("super");
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- newTransaction();
- }
-
public static class EnterNodeS implements ActionHandler {
private static final long serialVersionUID = 1L;
@@ -100,51 +78,32 @@
contextInstance.setVariable("invocationCount", new Integer(1));
}
else {
- contextInstance.setVariable("invocationCount", new
Integer(invocationCount.intValue() + 1));
+ contextInstance.setVariable("invocationCount", new Integer(
+ invocationCount.intValue() + 1));
}
}
}
public void testWithoutSubProcess() {
- deployProcessDefinitions();
-
- try {
- ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
- pi.signal("without subprocess");
- assertEquals("s", pi.getRootToken().getNode().getName());
- assertEquals(new Integer(1),
pi.getContextInstance().getVariable("invocationCount"));
- newTransaction();
-
- }
- finally {
- deleteProcessDefinitions();
- }
+ ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
+ pi.signal("without subprocess");
+ assertEquals("s", pi.getRootToken().getNode().getName());
+ assertEquals(new Integer(1),
pi.getContextInstance().getVariable("invocationCount"));
}
public void testWithSubProcess() {
- deployProcessDefinitions();
+ ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
+ pi.signal("with subprocess");
- try {
- ProcessInstance pi = jbpmContext.newProcessInstanceForUpdate("super");
- pi.signal("with subprocess");
+ ProcessInstance subPi = pi.getRootToken().getSubProcessInstance();
+ assertEquals("wait", subPi.getRootToken().getNode().getName());
- ProcessInstance subPi = pi.getRootToken().getSubProcessInstance();
- assertEquals("wait", subPi.getRootToken().getNode().getName());
+ newTransaction();
+ subPi = jbpmContext.loadProcessInstanceForUpdate(subPi.getId());
+ subPi.signal();
+ pi = subPi.getSuperProcessToken().getProcessInstance();
- newTransaction();
-
- subPi = jbpmContext.loadProcessInstanceForUpdate(subPi.getId());
- subPi.signal();
- pi = subPi.getSuperProcessToken().getProcessInstance();
-
- assertEquals("s", pi.getRootToken().getNode().getName());
- assertEquals(new Integer(1),
pi.getContextInstance().getVariable("invocationCount"));
-
- newTransaction();
-
- }
- finally {
- deleteProcessDefinitions();
- }
+ assertEquals("s", pi.getRootToken().getNode().getName());
+ assertEquals(new Integer(1),
pi.getContextInstance().getVariable("invocationCount"));
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuperStateActionExecutionDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -34,103 +34,89 @@
public class SuperStateActionExecutionDbTest extends AbstractDbTestCase {
- static List executedActions = null;
-
- public static class ExecutedAction
- {
- // ExectionContext members
- Token token = null;
- Event event = null;
- GraphElement eventSource = null;
- Action action = null;
- Throwable exception = null;
- // The node returned by the ExecutionContext at the time of execution
- Node node = null;
+ static List executedActions = new ArrayList();
+
+ public static class ExecutedAction {
+ Token token;
+ Event event;
+ GraphElement eventSource;
+ Action action;
+ Throwable exception;
+ Node node;
+
+ public ExecutedAction(ExecutionContext executionContext) {
+ token = executionContext.getToken();
+ event = executionContext.getEvent();
+ eventSource = executionContext.getEventSource();
+ action = executionContext.getAction();
+ exception = executionContext.getException();
+ node = executionContext.getNode();
+ }
}
- public static class Recorder implements ActionHandler
- {
+ public static class Recorder implements ActionHandler {
private static final long serialVersionUID = 1L;
- public void execute(ExecutionContext executionContext) throws Exception
- {
- ExecutedAction executedAction = new ExecutedAction();
- executedAction.token = executionContext.getToken();
- executedAction.event = executionContext.getEvent();
- executedAction.eventSource = executionContext.getEventSource();
- executedAction.action = executionContext.getAction();
- executedAction.exception = executionContext.getException();
- executedAction.node = executionContext.getNode();
- executedActions.add(executedAction);
+ public void execute(ExecutionContext executionContext) throws Exception {
+ executedActions.add(new ExecutedAction(executionContext));
}
}
-
- protected void setUp() throws Exception
- {
- super.setUp();
- executedActions = new ArrayList();
- }
public void testSuperStateEnterViaTransitionToSuperState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='enterviatransitiontosuperstate'>" +
- " <start-state name='start'>" +
- " <transition to='superstate'/>" +
- " </start-state>" +
- " <super-state name='superstate'>" +
- " <event type='superstate-enter'>" +
- " <action class='"+Recorder.class.getName()+"'
/>" +
- " </event>" +
- " <super-state name='nestedsuperstate'>" +
- " <event type='superstate-enter'>" +
- " <action class='"+Recorder.class.getName()+"'
/>" +
- " </event>" +
- " <state name='insidenestedsuperstate' />" +
- " </super-state>" +
- " </super-state>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- // create the process instance
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("enterviatransitiontosuperstate");
-
- processInstance = saveAndReload(processInstance);
-
- processInstance.signal();
-
- assertEquals(3, executedActions.size());
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='enterviatransitiontosuperstate'>"
+ + " <start-state name='start'>"
+ + " <transition to='superstate'/>"
+ + " </start-state>"
+ + " <super-state name='superstate'>"
+ + " <event type='superstate-enter'>"
+ + " <action class='"
+ + Recorder.class.getName()
+ + "' />"
+ + " </event>"
+ + " <super-state name='nestedsuperstate'>"
+ + " <event type='superstate-enter'>"
+ + " <action class='"
+ + Recorder.class.getName()
+ + "' />"
+ + " </event>"
+ + " <state name='insidenestedsuperstate' />"
+ + " </super-state>"
+ + " </super-state>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- // the first action called is the superstate-enter on the 'superstate'
- ExecutedAction executedAction = (ExecutedAction) executedActions.get(0);
- assertEquals("superstate-enter", executedAction.event.getEventType());
- assertEquals("superstate",
executedAction.event.getGraphElement().getName());
- assertEquals("superstate", executedAction.eventSource.getName());
- assertEquals(processInstance.getRootToken(), executedAction.token);
- assertNull(executedAction.node);
-
- // the second action called is the superstate-enter on the
'nestedsuperstate'
- executedAction = (ExecutedAction) executedActions.get(1);
- assertEquals("superstate-enter", executedAction.event.getEventType());
- assertEquals("nestedsuperstate",
executedAction.event.getGraphElement().getName());
- assertEquals("nestedsuperstate", executedAction.eventSource.getName());
- assertEquals(processInstance.getRootToken(), executedAction.token);
- assertNull(executedAction.node);
+ // create the process instance
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("enterviatransitiontosuperstate");
- // the third action called is the *propagated* event of the
'nestedsuperstate' to the 'superstate'
- executedAction = (ExecutedAction) executedActions.get(2);
- assertEquals("superstate-enter", executedAction.event.getEventType());
- assertEquals("superstate",
executedAction.event.getGraphElement().getName());
- assertEquals("nestedsuperstate", executedAction.eventSource.getName());
- assertEquals(processInstance.getRootToken(), executedAction.token);
- assertNull(executedAction.node);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
+
+ assertEquals(3, executedActions.size());
+
+ // the first action called is the superstate-enter on the 'superstate'
+ ExecutedAction executedAction = (ExecutedAction) executedActions.get(0);
+ assertEquals("superstate-enter", executedAction.event.getEventType());
+ assertEquals("superstate",
executedAction.event.getGraphElement().getName());
+ assertEquals("superstate", executedAction.eventSource.getName());
+ assertEquals(processInstance.getRootToken(), executedAction.token);
+ assertNull(executedAction.node);
+
+ // the second action called is the superstate-enter on the
+ // 'nestedsuperstate'
+ executedAction = (ExecutedAction) executedActions.get(1);
+ assertEquals("superstate-enter", executedAction.event.getEventType());
+ assertEquals("nestedsuperstate",
executedAction.event.getGraphElement().getName());
+ assertEquals("nestedsuperstate", executedAction.eventSource.getName());
+ assertEquals(processInstance.getRootToken(), executedAction.token);
+ assertNull(executedAction.node);
+
+ // the third action called is the *propagated* event of the
+ // 'nestedsuperstate' to the 'superstate'
+ executedAction = (ExecutedAction) executedActions.get(2);
+ assertEquals("superstate-enter", executedAction.event.getEventType());
+ assertEquals("superstate",
executedAction.event.getGraphElement().getName());
+ assertEquals("nestedsuperstate", executedAction.eventSource.getName());
+ assertEquals(processInstance.getRootToken(), executedAction.token);
+ assertNull(executedAction.node);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/SuspendAndResumeDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -33,113 +33,99 @@
public void testSuspend() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='suspendable
process'>"
- + " <start-state>"
- + " <transition to='so something usefull' />"
- + " </start-state>"
- + " <task-node name='so something usefull'>"
- + " <timer duedate='20 minutes' transition='timer
expired' />"
- + " <task name='be silent'>"
- + " <assignment actor-id='manager' />"
- + " </task>"
- + " <transition name='timer expired' to='error state'
/>"
- + " </task-node>"
- + " <state name='error state' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='so something usefull' />"
+ + " </start-state>"
+ + " <task-node name='so something usefull'>"
+ + " <timer duedate='20 minutes' transition='timer
expired' />"
+ + " <task name='be silent'>"
+ + " <assignment actor-id='manager' />"
+ + " </task>"
+ + " <transition name='timer expired' to='error state'
/>"
+ + " </task-node>"
+ + " <state name='error state' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("suspendable
process");
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("suspendable
process");
- processInstance.signal();
- jbpmContext.save(processInstance);
+ List tasks = jbpmContext.getTaskList("manager");
+ assertNotNull(tasks);
+ assertEquals(1, tasks.size());
- newTransaction();
- List tasks = jbpmContext.getTaskList("manager");
- assertNotNull(tasks);
- assertEquals(1, tasks.size());
+ assertEquals(1, getNbrOfJobsAvailable());
- assertEquals(1, getNbrOfJobsAvailable());
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ processInstance.suspend();
+ jbpmContext.save(processInstance);
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- processInstance.suspend();
- jbpmContext.save(processInstance);
+ newTransaction();
+ tasks = jbpmContext.getTaskList("manager");
+ assertNotNull(tasks);
+ assertEquals(0, tasks.size());
- newTransaction();
- tasks = jbpmContext.getTaskList("manager");
- assertNotNull(tasks);
- assertEquals(0, tasks.size());
-
- assertNull(jobSession.getFirstAcquirableJob(null));
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ assertNull(jobSession.getFirstAcquirableJob(null));
}
public void testResume() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='suspendable
process'>"
- + " <start-state>"
- + " <transition to='so something usefull' />"
- + " </start-state>"
- + " <task-node name='so something usefull'>"
- + " <timer duedate='20 minutes' transition='timer
expired' />"
- + " <task name='completedTask'>"
- + " <assignment actor-id='manager' />"
- + " </task>"
- + " <task name='notCompletedTask'>"
- + " <assignment actor-id='manager' />"
- + " </task>"
- + " <transition name='timer expired' to='error state'
/>"
- + " </task-node>"
- + " <state name='error state' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='so something usefull' />"
+ + " </start-state>"
+ + " <task-node name='so something usefull'>"
+ + " <timer duedate='20 minutes' transition='timer
expired' />"
+ + " <task name='completedTask'>"
+ + " <assignment actor-id='manager' />"
+ + " </task>"
+ + " <task name='notCompletedTask'>"
+ + " <assignment actor-id='manager' />"
+ + " </task>"
+ + " <transition name='timer expired' to='error state'
/>"
+ + " </task-node>"
+ + " <state name='error state' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance("suspendable
process");
- processInstance.signal();
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("suspendable
process");
+ processInstance.signal();
- TaskInstance completedTask = findTask(processInstance, "completedTask");
- assertTrue(completedTask.isOpen());
- completedTask.end();
- assertFalse(completedTask.isOpen());
- jbpmContext.save(processInstance);
+ TaskInstance completedTask = findTask(processInstance, "completedTask");
+ assertTrue(completedTask.isOpen());
+ completedTask.end();
+ assertFalse(completedTask.isOpen());
+ jbpmContext.save(processInstance);
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- completedTask = findTask(processInstance, "completedTask");
- assertFalse(completedTask.isOpen());
- processInstance.suspend();
- jbpmContext.save(processInstance);
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ completedTask = findTask(processInstance, "completedTask");
+ assertFalse(completedTask.isOpen());
+ processInstance.suspend();
+ jbpmContext.save(processInstance);
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- processInstance.resume();
- jbpmContext.save(processInstance);
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ processInstance.resume();
+ jbpmContext.save(processInstance);
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- completedTask = findTask(processInstance, "completedTask");
- assertFalse(completedTask.isOpen());
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ completedTask = findTask(processInstance, "completedTask");
+ assertFalse(completedTask.isOpen());
- List tasks = jbpmContext.getTaskList("manager");
- assertEquals(1, tasks.size());
+ List tasks = jbpmContext.getTaskList("manager");
+ assertEquals(1, tasks.size());
- assertEquals(1, getNbrOfJobsAvailable());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals(1, getNbrOfJobsAvailable());
}
private TaskInstance findTask(ProcessInstance processInstance, String taskName) {
TaskMgmtInstance tmi = processInstance.getTaskMgmtInstance();
for (Iterator iter = tmi.getTaskInstances().iterator(); iter.hasNext();) {
TaskInstance taskInstance = (TaskInstance) iter.next();
- if (taskName.equals(taskInstance.getName())) {
- return taskInstance;
- }
+ if (taskName.equals(taskInstance.getName())) return taskInstance;
}
return null;
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/TokenDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/TokenDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/TokenDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -33,13 +33,11 @@
public class TokenDbTest extends AbstractDbTestCase {
public void testTokenName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state />" +
- "</process-definition>" );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state />"
+ + "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getRootToken().name = "roottoken";
@@ -47,55 +45,48 @@
assertEquals("roottoken", processInstance.getRootToken().getName());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testTokenStartAndEndDate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='end' />" +
- " </start-state>" +
- " <end-state name='end'/>" +
- "</process-definition>" );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='end' />"
+ + " </start-state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
processInstance = saveAndReload(processInstance);
Token token = processInstance.getRootToken();
-
+
assertNotNull(token.getStart());
assertNotNull(token.getEnd());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testTokenNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state name='s' />" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='s' />"
+ + "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
-
+
Node s = processInstance.getProcessDefinition().getStartState();
-
- assertSame(s , processInstance.getRootToken().getNode());
+
+ assertSame(s, processInstance.getRootToken().getNode());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
@@ -103,15 +94,13 @@
public void testTokenProcessInstance() {
ProcessDefinition processDefinition = new ProcessDefinition();
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
-
- assertSame(processInstance , processInstance.getRootToken().getProcessInstance());
+
+ assertSame(processInstance, processInstance.getRootToken().getProcessInstance());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
@@ -119,28 +108,25 @@
public void testTokenParent() {
ProcessDefinition processDefinition = new ProcessDefinition();
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
new Token(processInstance.getRootToken(), "one");
processInstance = saveAndReload(processInstance);
Token rootToken = processInstance.getRootToken();
Token childOne = rootToken.getChild("one");
-
- assertSame(rootToken , childOne.getParent());
+
+ assertSame(rootToken, childOne.getParent());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
-
+
public void testTokenChildren() {
ProcessDefinition processDefinition = new ProcessDefinition();
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
new Token(processInstance.getRootToken(), "one");
new Token(processInstance.getRootToken(), "two");
@@ -151,59 +137,47 @@
Token childOne = rootToken.getChild("one");
Token childTwo = rootToken.getChild("two");
Token childThree = rootToken.getChild("three");
-
- assertEquals("one" , childOne.getName());
- assertEquals("two" , childTwo.getName());
- assertEquals("three" , childThree.getName());
+
+ assertEquals("one", childOne.getName());
+ assertEquals("two", childTwo.getName());
+ assertEquals("three", childThree.getName());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testAvailableTransitions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='conditionsprocess'>" +
- " <start-state name='zero'>" +
- " <transition to='one' condition='#{a==5}'
/>" +
- " <transition to='two' condition='#{a>7}'
/>" +
- " <transition to='three' />" +
- " <transition to='four' condition='#{a<7}'
/>" +
- " </start-state>" +
- " <state name='one' />" +
- " <state name='two' />" +
- " <state name='three' />" +
- " <state name='four' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionsprocess");
- processInstance.getContextInstance().setVariable("a", new Integer(5));
- processInstance = saveAndReload(processInstance);
-
- Set availableTransitions =
processInstance.getRootToken().getAvailableTransitions();
- Set availableToNames = new HashSet();
- Iterator iter = availableTransitions.iterator();
- while (iter.hasNext()) {
- Transition transition = (Transition) iter.next();
- availableToNames.add(transition.getTo().getName());
- }
-
- Set expectedToNames = new HashSet();
- expectedToNames.add("one");
- expectedToNames.add("three");
- expectedToNames.add("four");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='conditionsprocess'>"
+ + " <start-state name='zero'>"
+ + " <transition to='one' condition='#{a==5}'
/>"
+ + " <transition to='two' condition='#{a>7}'
/>"
+ + " <transition to='three' />"
+ + " <transition to='four' condition='#{a<7}'
/>"
+ + " </start-state>"
+ + " <state name='one' />"
+ + " <state name='two' />"
+ + " <state name='three' />"
+ + " <state name='four' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- assertEquals(expectedToNames, availableToNames);
- }
- finally
- {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionsprocess");
+ processInstance.getContextInstance().setVariable("a", new Integer(5));
+ processInstance = saveAndReload(processInstance);
+
+ Set availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ Set availableToNames = new HashSet();
+ for (Iterator iter = availableTransitions.iterator(); iter.hasNext();) {
+ Transition transition = (Transition) iter.next();
+ availableToNames.add(transition.getTo().getName());
+ }
+
+ Set expectedToNames = new HashSet();
+ expectedToNames.add("one");
+ expectedToNames.add("three");
+ expectedToNames.add("four");
+
+ assertEquals(expectedToNames, availableToNames);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JoinDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JoinDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JoinDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -56,9 +56,8 @@
URL cfgResource =
getClass().getClassLoader().getResource("hibernate.cfg.xml");
try {
InputStream cfgSource = cfgResource.openStream();
- OutputStream cfgSink = new FileOutputStream(new File(URI
- .create(cfgResource.toString())
- .resolve("hibernate.join.cfg.xml")));
+ OutputStream cfgSink = new FileOutputStream(new
File(URI.create(cfgResource.toString())
+ .resolve("hibernate.join.cfg.xml")));
sed("Join\\.hbm\\.xml", "Join.lock.hbm.xml", cfgSource,
cfgSink);
@@ -69,14 +68,13 @@
throw new JbpmException("could not edit hibernate configuration", e);
}
jbpmConfiguration =
JbpmConfiguration.parseXmlString("<jbpm-configuration>"
- + " <string name='resource.hibernate.cfg.xml'
value='hibernate.join.cfg.xml' />"
- + "</jbpm-configuration>");
+ + " <string name='resource.hibernate.cfg.xml'
value='hibernate.join.cfg.xml' />"
+ + "</jbpm-configuration>");
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
DbPersistenceServiceFactory persistenceServiceFactory =
(DbPersistenceServiceFactory) jbpmContext
- .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
-
+ .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
JbpmSchema jbpmSchema = new
JbpmSchema(persistenceServiceFactory.getConfiguration());
jbpmSchema.updateTable("JBPM_NODE");
}
@@ -93,7 +91,7 @@
}
private static void sed(String regex, String replacement, InputStream inStream,
- OutputStream outStream) throws IOException {
+ OutputStream outStream) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
PrintWriter writer = new PrintWriter(outStream);
Pattern pattern = Pattern.compile(regex);
@@ -105,27 +103,19 @@
}
public void testParentLockMode() {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='"
- + getName()
- + "'>"
- + " <join name='read' lock='READ' />"
- + " <join name='nowait' lock='UPGRADE_NOWAIT'
/>"
- + " <join name='upgrade' lock='pessimistic' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='lock
mode'>"
+ + " <join name='read' lock='READ' />"
+ + " <join name='nowait' lock='UPGRADE_NOWAIT' />"
+ + " <join name='upgrade' lock='pessimistic' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- processDefinition = graphSession.findLatestProcessDefinition(getName());
- Join join = (Join) processDefinition.getNode("read");
- assertEquals(LockMode.READ.toString(), join.getParentLockMode());
- join = (Join) processDefinition.getNode("nowait");
- assertEquals(LockMode.UPGRADE_NOWAIT.toString(), join.getParentLockMode());
- join = (Join) processDefinition.getNode("upgrade");
- assertEquals(LockMode.UPGRADE.toString(), join.getParentLockMode());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = graphSession.findLatestProcessDefinition("lock mode");
+ Join join = (Join) processDefinition.getNode("read");
+ assertEquals(LockMode.READ.toString(), join.getParentLockMode());
+ join = (Join) processDefinition.getNode("nowait");
+ assertEquals(LockMode.UPGRADE_NOWAIT.toString(), join.getParentLockMode());
+ join = (Join) processDefinition.getNode("upgrade");
+ assertEquals(LockMode.UPGRADE.toString(), join.getParentLockMode());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JpdlDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JpdlDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JpdlDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,20 +36,19 @@
public class JpdlDbTest extends AbstractDbTestCase {
public void testDecision() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <decision name='d'>" +
- " <transition name='one' to='d'>" +
- " <condition>a == 1</condition>" +
- " </transition>" +
- " <transition name='two' to='d'>" +
- " <condition>a == 2</condition>" +
- " </transition>" +
- " <transition name='three' to='d'>" +
- " <condition>a == 3</condition>" +
- " </transition>" +
- " </decision>" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <decision name='d'>"
+ + " <transition name='one' to='d'>"
+ + " <condition>a == 1</condition>"
+ + " </transition>"
+ + " <transition name='two' to='d'>"
+ + " <condition>a == 2</condition>"
+ + " </transition>"
+ + " <transition name='three' to='d'>"
+ + " <condition>a == 3</condition>"
+ + " </transition>"
+ + " </decision>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -73,27 +72,27 @@
}
public void testDecisionDelegation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <decision name='d' >" +
- " <handler
class='org.jbpm.graph.node.JpdlDbTest$MyDecisionHandler' >" +
- " <decisionHandlerConfigText>testing... one, two...
testing</decisionHandlerConfigText>" +
- " </handler>" +
- " <transition name='one' to='d'/>" +
- " <transition name='two' to='d'/>" +
- " <transition name='three' to='d'/>" +
- " </decision>" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <decision name='d' >"
+ + " <handler
class='org.jbpm.graph.node.JpdlDbTest$MyDecisionHandler'>"
+ + " <decisionHandlerConfigText>testing... one, two...
testing</decisionHandlerConfigText>"
+ + " </handler>"
+ + " <transition name='one' to='d'/>"
+ + " <transition name='two' to='d'/>"
+ + " <transition name='three' to='d'/>"
+ + " </decision>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
Decision decision = (Decision) processDefinition.getNode("d");
Delegation decisionDelegation = decision.getDecisionDelegation();
assertNotNull(decisionDelegation);
- assertEquals("org.jbpm.graph.node.JpdlDbTest$MyDecisionHandler",
decisionDelegation
- .getClassName());
- MyDecisionHandler decisionHandler = (MyDecisionHandler)
decisionDelegation.instantiate();
- assertEquals("testing... one, two... testing",
decisionHandler.decisionHandlerConfigText);
+ assertEquals("org.jbpm.graph.node.JpdlDbTest$MyDecisionHandler",
+ decisionDelegation.getClassName());
+ assertEquals(
+ "<decisionHandlerConfigText>testing... one, two...
testing</decisionHandlerConfigText>",
+ decisionDelegation.getConfiguration());
}
finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
@@ -101,10 +100,9 @@
}
public void testFork() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <fork name='f' />" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <fork name='f' />"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -117,10 +115,9 @@
}
public void testJoin() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <join name='j' />" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <join name='j' />"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -133,16 +130,15 @@
}
public void testScript() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <script name='s'>" +
- " <variable name='a' access='read' />" +
- " <variable name='b' access='read-write' />" +
- " <variable name='c' access='read-write' />" +
- " <variable name='d' access='read-write-required'
/>" +
- " <expression>e = m * Math.pow(c,2);</expression>" +
- " </script>" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <script name='s'>"
+ + " <variable name='a' access='read' />"
+ + " <variable name='b' access='read-write' />"
+ + " <variable name='c' access='read-write' />"
+ + " <variable name='d' access='read-write-required'
/>"
+ + " <expression>e = m * Math.pow(c,2);</expression>"
+ + " </script>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -157,10 +153,9 @@
}
public void testState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <state name='s' />" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <state name='s' />"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -173,17 +168,15 @@
}
public void testTaskNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='t' signal='first-wait'
create-tasks='false'>" +
- " <task name='change the world once'
blocking='true'>" +
- " <assignment class='anyonebutme' />" +
- " </task>" +
- " <task name='change the world twice' />" +
- " <task name='change the world three times' />" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='t' signal='first-wait'
create-tasks='false'>"
+ + " <task name='change the world once'
blocking='true'>"
+ + " <assignment class='anyonebutme' />"
+ + " </task>"
+ + " <task name='change the world twice' />"
+ + " <task name='change the world three times' />"
+ + " </task-node>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
@@ -219,26 +212,25 @@
}
public void testNoAccessToObsoleteDecisionConditionTable() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='d' />" +
- " </start-state>" +
- " <decision name='d'>" +
- " <transition name='one' to='a'>" +
- " <condition>#{a == 1}</condition>" +
- " </transition>" +
- " <transition name='two' to='b'>" +
- " <condition>#{a == 2}</condition>" +
- " </transition>" +
- " <transition name='three' to='c'>" +
- " <condition>#{a == 3}</condition>" +
- " </transition>" +
- " </decision>" +
- " <state name='a' />" +
- " <state name='b' />" +
- " <state name='c' />" +
- "</process-definition>");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='d' />"
+ + " </start-state>"
+ + " <decision name='d'>"
+ + " <transition name='one' to='a'>"
+ + " <condition>#{a == 1}</condition>"
+ + " </transition>"
+ + " <transition name='two' to='b'>"
+ + " <condition>#{a == 2}</condition>"
+ + " </transition>"
+ + " <transition name='three' to='c'>"
+ + " <condition>#{a == 3}</condition>"
+ + " </transition>"
+ + " </decision>"
+ + " <state name='a' />"
+ + " <state name='b' />"
+ + " <state name='c' />"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
try {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -38,13 +38,8 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- ProcessState processState = (ProcessState)
processDefinition.getNode("subprocess");
- assertEquals("subprocess", processState.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition);
- }
+ ProcessState processState = (ProcessState)
processDefinition.getNode("subprocess");
+ assertEquals("subprocess", processState.getName());
}
public void testRecursiveProcessDefinition() {
@@ -62,38 +57,28 @@
+ " </process-state>"
+ " <end-state name='end' />"
+ "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance superProcessInstance = processDefinition.createProcessInstance();
- superProcessInstance.signal();
- superProcessInstance.signal();
+ ProcessInstance superProcessInstance = jbpmContext.newProcessInstance("recursive
process");
+ superProcessInstance.signal();
+ superProcessInstance.signal();
- superProcessInstance = saveAndReload(superProcessInstance);
+ superProcessInstance = saveAndReload(superProcessInstance);
+ Token superToken = superProcessInstance.getRootToken();
+ assertEquals("subprocessnode", superToken.getNode().getName());
- Token superToken = superProcessInstance.getRootToken();
- assertEquals("subprocessnode", superToken.getNode().getName());
+ ProcessInstance subProcessInstance = superToken.getSubProcessInstance();
+ assertNotNull(subProcessInstance);
+ assertEquals("recursive process",
subProcessInstance.getProcessDefinition().getName());
- ProcessInstance subProcessInstance = superToken.getSubProcessInstance();
- assertNotNull(subProcessInstance);
- assertEquals("recursive process",
- subProcessInstance.getProcessDefinition().getName());
- Token subToken = subProcessInstance.getRootToken();
+ Token subToken = subProcessInstance.getRootToken();
+ assertEquals("first wait", subToken.getNode().getName());
+ subProcessInstance.signal("done");
- assertEquals("first wait", subToken.getNode().getName());
-
- subProcessInstance.signal("done");
-
- subProcessInstance = saveAndReload(subProcessInstance);
- superProcessInstance =
graphSession.loadProcessInstance(superProcessInstance.getId());
-
- assertTrue(subProcessInstance.hasEnded());
- assertTrue(superProcessInstance.hasEnded());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
- }
+ subProcessInstance = saveAndReload(subProcessInstance);
+ superProcessInstance =
graphSession.loadProcessInstance(superProcessInstance.getId());
+ assertTrue(subProcessInstance.hasEnded());
+ assertTrue(superProcessInstance.hasEnded());
}
public void testMultipleRecursiveProcessDefinitions() {
@@ -107,31 +92,20 @@
// create the subprocess
ProcessDefinition subProcessDefinition = new ProcessDefinition("sub");
// store the subprocess in the database
- graphSession.saveProcessDefinition(subProcessDefinition);
- try {
- // create the super process
- ProcessDefinition superProcessDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
- + " <process-state name='subprocess' />"
- + "</process-definition>");
- // resolve the reference to the subprocess
- ProcessState processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
- processState.setSubProcessDefinition(subProcessDefinition);
+ deployProcessDefinition(subProcessDefinition);
- // save and reload the superprocess
- superProcessDefinition = saveAndReload(superProcessDefinition);
- try {
- processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
- assertNotNull("sub",
processState.getSubProcessDefinition().getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- superProcessDefinition);
- }
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- subProcessDefinition.getId());
- }
+ // create the super process
+ ProcessDefinition superProcessDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
+ + " <process-state name='subprocess' />"
+ + "</process-definition>");
+ // resolve the reference to the subprocess
+ ProcessState processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
+ processState.setSubProcessDefinition(subProcessDefinition);
+
+ // save and reload the superprocess
+ superProcessDefinition = saveAndReload(superProcessDefinition);
+ processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
+ assertNotNull("sub", processState.getSubProcessDefinition().getName());
}
public void testProcessStateStartVariableMappings() {
@@ -144,47 +118,26 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- ProcessState processState = (ProcessState)
processDefinition.getNode("subprocess");
- assertEquals(3, processState.variableAccesses.size());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition);
- }
+ ProcessState processState = (ProcessState)
processDefinition.getNode("subprocess");
+ assertEquals(3, processState.variableAccesses.size());
}
public void testSubProcessBindingWithLatestVersion() {
final int versionCount = 3;
for (int i = 0; i < versionCount; i++) {
- jbpmContext.deployProcessDefinition(new ProcessDefinition(
- "the multiversion subprocess"));
+ deployProcessDefinition(new ProcessDefinition("the multiversion
subprocess"));
}
- newTransaction();
- try {
- ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition>"
- + " <process-state name='the sub process state'>"
- + " <sub-process name='the multiversion
subprocess'/>"
- + " </process-state>"
- + "</process-definition>");
- processDefinitionTwo = saveAndReload(processDefinitionTwo);
- try {
- ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the
sub process state");
- assertEquals("the multiversion subprocess",
- processState.getSubProcessDefinition().getName());
- assertEquals(3, processState.getSubProcessDefinition().getVersion());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinitionTwo);
- }
- }
- finally {
- for (int i = 1; i <= versionCount; i++) {
- ProcessDefinition processDefinition = graphSession.findProcessDefinition(
- "the multiversion subprocess", i);
- graphSession.deleteProcessDefinition(processDefinition);
- }
- }
+ ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <process-state name='the sub process state'>"
+ + " <sub-process name='the multiversion subprocess'/>"
+ + " </process-state>"
+ + "</process-definition>");
+ processDefinitionTwo = saveAndReload(processDefinitionTwo);
+ ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the sub
process state");
+ assertEquals("the multiversion subprocess",
processState.getSubProcessDefinition()
+ .getName());
+ assertEquals(3, processState.getSubProcessDefinition().getVersion());
}
public void testAverageSubProcess() {
@@ -197,7 +150,7 @@
+ " </state>"
+ " <end-state name='end' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(subProcessDefinition);
+ deployProcessDefinition(subProcessDefinition);
ProcessDefinition superProcessDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='superprocess'>"
+ " <start-state name='start'>"
@@ -212,95 +165,65 @@
+ " </process-state>"
+ " <state name='wait' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(superProcessDefinition);
- try {
- newTransaction();
+ deployProcessDefinition(superProcessDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "1");
- contextInstance.setVariable("b", "1");
- contextInstance.setVariable("c", "1");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "1");
+ contextInstance.setVariable("b", "1");
+ contextInstance.setVariable("c", "1");
+ processInstance.signal();
- newTransaction();
+ newTransaction();
+ long processInstanceId = processInstance.getId();
+ long subProcessInstanceId =
processInstance.getRootToken().getSubProcessInstance().getId();
- long processInstanceId = processInstance.getId();
- long subProcessInstanceId = processInstance.getRootToken()
- .getSubProcessInstance()
- .getId();
+ processInstance = jbpmContext.loadProcessInstance(processInstanceId);
+ assertNotNull(processInstance.getRootToken().getSubProcessInstance());
+ assertEquals("sub process state",
processInstance.getRootToken().getNode().getName());
+ contextInstance = processInstance.getContextInstance();
+ assertEquals("1", contextInstance.getVariable("a"));
+ assertEquals("1", contextInstance.getVariable("b"));
+ assertEquals("1", contextInstance.getVariable("c"));
- processInstance = jbpmContext.loadProcessInstance(processInstanceId);
- assertNotNull(processInstance.getRootToken().getSubProcessInstance());
- assertEquals("sub process state", processInstance.getRootToken()
- .getNode()
- .getName());
- contextInstance = processInstance.getContextInstance();
- assertEquals("1", contextInstance.getVariable("a"));
- assertEquals("1", contextInstance.getVariable("b"));
- assertEquals("1", contextInstance.getVariable("c"));
+ ProcessInstance subProcessInstance =
jbpmContext.loadProcessInstance(subProcessInstanceId);
+ assertEquals("wait",
subProcessInstance.getRootToken().getNode().getName());
+ ContextInstance subContextInstance = subProcessInstance.getContextInstance();
+ assertEquals("1", subContextInstance.getVariable("A"));
+ assertEquals("1", subContextInstance.getVariable("B"));
+ assertNull(subContextInstance.getVariable("C"));
- ProcessInstance subProcessInstance =
jbpmContext.loadProcessInstance(subProcessInstanceId);
- assertEquals("wait", subProcessInstance.getRootToken()
- .getNode()
- .getName());
- ContextInstance subContextInstance = subProcessInstance.getContextInstance();
- assertEquals("1", subContextInstance.getVariable("A"));
- assertEquals("1", subContextInstance.getVariable("B"));
- assertNull(subContextInstance.getVariable("C"));
+ subContextInstance.setVariable("A", "2");
+ subContextInstance.setVariable("B", "2");
+ subContextInstance.setVariable("C", "2");
+ subProcessInstance.signal();
+ jbpmContext.save(subProcessInstance);
- subContextInstance.setVariable("A", "2");
- subContextInstance.setVariable("B", "2");
- subContextInstance.setVariable("C", "2");
- subProcessInstance.signal();
+ newTransaction();
+ assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId).hasEnded());
- jbpmContext.save(subProcessInstance);
-
- newTransaction();
-
- assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId)
- .hasEnded());
-
- processInstance = jbpmContext.loadProcessInstance(processInstanceId);
- assertEquals("wait",
processInstance.getRootToken().getNode().getName());
- contextInstance = processInstance.getContextInstance();
- assertEquals("1", contextInstance.getVariable("a"));
- assertEquals("2", contextInstance.getVariable("b"));
- assertEquals("2", contextInstance.getVariable("c"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- superProcessDefinition.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(
- subProcessDefinition.getId());
- }
+ processInstance = jbpmContext.loadProcessInstance(processInstanceId);
+ assertEquals("wait", processInstance.getRootToken().getNode().getName());
+ contextInstance = processInstance.getContextInstance();
+ assertEquals("1", contextInstance.getVariable("a"));
+ assertEquals("2", contextInstance.getVariable("b"));
+ assertEquals("2", contextInstance.getVariable("c"));
}
public void testSubProcessBindingByVersion() {
- ProcessDefinition processDefinitionOne = new ProcessDefinition(
- "the ultimate subprocess");
- jbpmContext.deployProcessDefinition(processDefinitionOne);
+ ProcessDefinition processDefinitionOne = new ProcessDefinition("the ultimate
subprocess");
+ deployProcessDefinition(processDefinitionOne);
- newTransaction();
-
- ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition
name='other'>"
+ " <process-state name='the sub process state'>"
+ " <sub-process name='the ultimate subprocess'
version='1' />"
+ " </process-state>"
+ "</process-definition>");
+
processDefinitionTwo = saveAndReload(processDefinitionTwo);
- try {
- ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the
sub process state");
- assertEquals("the ultimate subprocess",
- processState.getSubProcessDefinition().getName());
- assertEquals(1, processState.getSubProcessDefinition().getVersion());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinitionOne.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinitionTwo);
- }
+ ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the sub
process state");
+ assertEquals("the ultimate subprocess",
processState.getSubProcessDefinition().getName());
+ assertEquals(1, processState.getSubProcessDefinition().getVersion());
}
public void testSubProcessLogs() {
@@ -313,7 +236,7 @@
+ " </state>"
+ " <end-state name='end' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(subProcessDefinition);
+ deployProcessDefinition(subProcessDefinition);
ProcessDefinition superProcessDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='superprocess'>"
+ " <start-state name='start'>"
@@ -325,41 +248,28 @@
+ " </process-state>"
+ " <state name='wait' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(superProcessDefinition);
+ deployProcessDefinition(superProcessDefinition);
- try {
- newTransaction();
+ ProcessInstance superProcessInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
+ superProcessInstance.signal();
- ProcessInstance superProcessInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
- superProcessInstance.signal();
+ newTransaction();
+ long subProcessInstanceId = superProcessInstance.getRootToken()
+ .getSubProcessInstance()
+ .getId();
+ ProcessInstance subProcessInstance =
jbpmContext.loadProcessInstance(subProcessInstanceId);
+ subProcessInstance.signal();
+ jbpmContext.save(subProcessInstance);
- newTransaction();
-
- long subProcessInstanceId = superProcessInstance.getRootToken()
- .getSubProcessInstance()
- .getId();
- ProcessInstance subProcessInstance =
jbpmContext.loadProcessInstance(subProcessInstanceId);
- subProcessInstance.signal();
- jbpmContext.save(subProcessInstance);
-
- newTransaction();
-
- ProcessStateLog processStateLog = (ProcessStateLog) session.createCriteria(
- ProcessStateLog.class)
- .addOrder(Order.desc("enter"))
- .setMaxResults(1)
- .uniqueResult();
-
- assertEquals(subProcessInstanceId,
- processStateLog.getSubProcessInstance().getId());
- assertEquals(superProcessInstance.getId(), processStateLog.getToken()
- .getProcessInstance()
- .getId());
- }
- finally {
- graphSession.deleteProcessDefinition(subProcessDefinition.getId());
- graphSession.deleteProcessDefinition(superProcessDefinition.getId());
- }
+ newTransaction();
+ ProcessStateLog processStateLog = (ProcessStateLog)
session.createCriteria(ProcessStateLog.class)
+ .addOrder(Order.desc("enter"))
+ .setMaxResults(1)
+ .uniqueResult();
+ assertEquals(subProcessInstanceId, processStateLog.getSubProcessInstance().getId());
+ assertEquals(superProcessInstance.getId(), processStateLog.getToken()
+ .getProcessInstance()
+ .getId());
}
public void testDynamicProcessBinding() {
@@ -372,7 +282,7 @@
+ " </state>"
+ " <end-state name='end' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinitionOne);
+ deployProcessDefinition(processDefinitionOne);
ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseXmlString("<process-definition
name='subprocess2'>"
+ " <start-state name='start'>"
@@ -383,7 +293,7 @@
+ " </state>"
+ " <end-state name='end' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinitionTwo);
+ deployProcessDefinition(processDefinitionTwo);
ProcessDefinition processDefinitionThree =
ProcessDefinition.parseXmlString("<process-definition
name='superprocess'>"
+ " <start-state name='start'>"
@@ -395,101 +305,63 @@
+ " </process-state>"
+ " <state name='wait' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinitionThree);
- try {
- newTransaction();
+ deployProcessDefinition(processDefinitionThree);
- ProcessInstance processInstance1 =
jbpmContext.newProcessInstanceForUpdate("superprocess");
- ContextInstance contextInstance = processInstance1.getContextInstance();
- contextInstance.setVariable("mySubProcess", "subprocess1");
- processInstance1.signal();
+ ProcessInstance processInstance1 =
jbpmContext.newProcessInstanceForUpdate("superprocess");
+ ContextInstance contextInstance = processInstance1.getContextInstance();
+ contextInstance.setVariable("mySubProcess", "subprocess1");
+ processInstance1.signal();
- newTransaction();
+ newTransaction();
+ long processInstanceId = processInstance1.getId();
+ long subProcessInstanceId =
processInstance1.getRootToken().getSubProcessInstance().getId();
- long processInstanceId = processInstance1.getId();
- long subProcessInstanceId = processInstance1.getRootToken()
- .getSubProcessInstance()
- .getId();
- // System.out.println("process ID: " + processInstanceId +
- // " subprocess ID: " + subProcessInstanceId);
+ processInstance1 = jbpmContext.loadProcessInstance(processInstanceId);
+ assertNotNull(processInstance1.getRootToken().getSubProcessInstance());
+ assertEquals("sub process state",
processInstance1.getRootToken().getNode().getName());
+ contextInstance = processInstance1.getContextInstance();
+ assertEquals("subprocess1",
contextInstance.getVariable("mySubProcess"));
- processInstance1 = jbpmContext.loadProcessInstance(processInstanceId);
- assertNotNull(processInstance1.getRootToken().getSubProcessInstance());
- assertEquals("sub process state", processInstance1.getRootToken()
- .getNode()
- .getName());
- contextInstance = processInstance1.getContextInstance();
- assertEquals("subprocess1",
contextInstance.getVariable("mySubProcess"));
+ ProcessInstance subProcessInstance1 =
jbpmContext.loadProcessInstance(subProcessInstanceId);
+ assertEquals("subprocess1",
subProcessInstance1.getProcessDefinition().getName());
+ assertEquals("wait subprocess 1",
subProcessInstance1.getRootToken().getNode().getName());
+ subProcessInstance1.signal();
+ jbpmContext.save(subProcessInstance1);
- ProcessInstance subProcessInstance1 =
jbpmContext.loadProcessInstance(subProcessInstanceId);
- assertEquals("subprocess1", subProcessInstance1.getProcessDefinition()
- .getName());
- assertEquals("wait subprocess 1", subProcessInstance1.getRootToken()
- .getNode()
- .getName());
- subProcessInstance1.signal();
+ newTransaction();
+ assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId).hasEnded());
- jbpmContext.save(subProcessInstance1);
+ processInstance1 = jbpmContext.loadProcessInstance(processInstanceId);
+ assertEquals("wait", processInstance1.getRootToken().getNode().getName());
- newTransaction();
+ newTransaction();
+ ProcessInstance processInstance2 =
jbpmContext.newProcessInstanceForUpdate("superprocess");
+ ContextInstance contextInstance2 = processInstance2.getContextInstance();
+ contextInstance2.setVariable("mySubProcess", "subprocess2");
+ processInstance2.signal();
- assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId)
- .hasEnded());
+ newTransaction();
+ long processInstanceId2 = processInstance2.getId();
+ long subProcessInstanceId2 = processInstance2.getRootToken()
+ .getSubProcessInstance()
+ .getId();
- processInstance1 = jbpmContext.loadProcessInstance(processInstanceId);
- assertEquals("wait",
processInstance1.getRootToken().getNode().getName());
+ processInstance2 = jbpmContext.loadProcessInstance(processInstanceId2);
+ assertNotNull(processInstance2.getRootToken().getSubProcessInstance());
+ assertEquals("sub process state",
processInstance2.getRootToken().getNode().getName());
+ contextInstance2 = processInstance2.getContextInstance();
+ assertEquals("subprocess2",
contextInstance2.getVariable("mySubProcess"));
- newTransaction();
+ ProcessInstance subProcessInstance2 =
jbpmContext.loadProcessInstance(subProcessInstanceId2);
+ assertEquals("subprocess2",
subProcessInstance2.getProcessDefinition().getName());
+ assertEquals("wait subprocess 2",
subProcessInstance2.getRootToken().getNode().getName());
+ subProcessInstance2.signal();
+ jbpmContext.save(subProcessInstance2);
- ProcessInstance processInstance2 =
jbpmContext.newProcessInstanceForUpdate("superprocess");
- ContextInstance contextInstance2 = processInstance2.getContextInstance();
- contextInstance2.setVariable("mySubProcess", "subprocess2");
- processInstance2.signal();
-
- newTransaction();
-
- long processInstanceId2 = processInstance2.getId();
- long subProcessInstanceId2 = processInstance2.getRootToken()
- .getSubProcessInstance()
- .getId();
- // System.out.println("process ID: " + processInstanceId2 +
- // " subprocess ID: " + subProcessInstanceId2);
-
- processInstance2 = jbpmContext.loadProcessInstance(processInstanceId2);
- assertNotNull(processInstance2.getRootToken().getSubProcessInstance());
- assertEquals("sub process state", processInstance2.getRootToken()
- .getNode()
- .getName());
- contextInstance2 = processInstance2.getContextInstance();
- assertEquals("subprocess2",
contextInstance2.getVariable("mySubProcess"));
-
- ProcessInstance subProcessInstance2 =
jbpmContext.loadProcessInstance(subProcessInstanceId2);
- assertEquals("subprocess2", subProcessInstance2.getProcessDefinition()
- .getName());
- assertEquals("wait subprocess 2", subProcessInstance2.getRootToken()
- .getNode()
- .getName());
- subProcessInstance2.signal();
-
- jbpmContext.save(subProcessInstance2);
-
- newTransaction();
-
- assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId2)
- .hasEnded());
-
- processInstance2 = jbpmContext.loadProcessInstance(processInstanceId2);
- assertEquals("wait",
processInstance2.getRootToken().getNode().getName());
- }
- finally {
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinitionOne.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinitionTwo.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinitionThree.getId());
- }
+ newTransaction();
+ assertTrue(jbpmContext.loadProcessInstance(subProcessInstanceId2).hasEnded());
+ processInstance2 = jbpmContext.loadProcessInstance(processInstanceId2);
+ assertEquals("wait", processInstance2.getRootToken().getNode().getName());
}
public void testUnboundSubProcess() {
@@ -503,25 +375,16 @@
+ " </process-state>"
+ " <state name='wait' />"
+ "</process-definition>");
+ deployProcessDefinition(processDefinition);
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("superprocess");
try {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("superprocess");
- try {
- processInstance.signal();
- fail("expected exception");
- }
- catch (IllegalArgumentException e) {
- // expected
- jbpmContext.setRollbackOnly();
- }
+ processInstance.signal();
+ fail("expected exception");
}
- finally {
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
+ catch (IllegalArgumentException e) {
+ // expected
+ jbpmContext.setRollbackOnly();
}
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/TaskNotificationDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -5,22 +5,15 @@
public class TaskNotificationDbTest extends AbstractDbTestCase {
- public void testProcessDeleteWithTaskNotification() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='tasknotification'>" +
- " <task-node name='mail'>" +
- " <task name='email info' notify='yes'>" +
- " <assignment actor-id='mputz'></assignment>" +
- " </task>" +
- " <transition to='end-state1'></transition>" +
- " </task-node>" +
- "</process-definition>"
- );
-
- jbpmContext.deployProcessDefinition(processDefinition);
-
- newTransaction();
-
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ public void testDeleteProcessWithTaskNotification() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='tasknotification'>"
+ + " <task-node name='mail'>"
+ + " <task name='email info' notify='yes'>"
+ + " <assignment actor-id='mputz'></assignment>"
+ + " </task>"
+ + " <transition to='end-state1'></transition>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/BeanInstantiatorTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/BeanInstantiatorTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/BeanInstantiatorTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -31,10 +31,10 @@
// most of the stuff is been tested in FieldInstantiatorTest
// here, only the method stuff needs to be tested
public static class Mix {
- private String s = null;
- private Element structuredElement = null;
- private RuntimeException stringConstructor = null;
- private String memberWithoutSetter = null;
+ String s = null;
+ Element structuredElement = null;
+ RuntimeException stringConstructor = null;
+ String memberWithoutSetter = null;
private int callCounter = 0;
@@ -74,7 +74,7 @@
Mix mix = (Mix) beanInstantiator.instantiate(Mix.class, configuration);
- assertEquals( "hello", mix.s );
+ assertEquals( "hello", mix.s);
assertEquals("i want yoghurt", mix.stringConstructor.getMessage());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/FieldInstantiatorTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/FieldInstantiatorTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/FieldInstantiatorTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -43,23 +43,23 @@
public FieldInstantiator fieldInstantiator = new FieldInstantiator();
public static class ClassWithLotsOfFields {
- private String s = null;
- private Integer i = null;
- private int ii = -1;
- private Long l = null;
- private long ll = -1;
- private Float f = null;
- private float ff = -1;
- private Double d = null;
- private double dd = -1;
- private Boolean b = null;
- private boolean bb = false;
- private Character c = null;
- private char cc = ' ';
- private Short sh = null;
- private short shsh = -1;
- private Byte by = null;
- private byte byby = -1;
+ String s = null;
+ Integer i = null;
+ int ii = -1;
+ Long l = null;
+ long ll = -1;
+ Float f = null;
+ float ff = -1;
+ Double d = null;
+ double dd = -1;
+ Boolean b = null;
+ boolean bb = false;
+ Character c = null;
+ char cc = ' ';
+ Short sh = null;
+ short shsh = -1;
+ Byte by = null;
+ byte byby = -1;
}
public void testBasicTypes() {
@@ -104,7 +104,7 @@
}
public static class ClassWithStringConstructorType {
- private RuntimeException e;
+ RuntimeException e;
}
public void testStringConstructorType() {
@@ -114,7 +114,7 @@
}
public static class ClassWithDom4jField{
- private Element structuredElement;
+ Element structuredElement;
}
public void testStructuredElement() {
@@ -133,7 +133,7 @@
}
public static class ClassWithOneField {
- private String onlyMember = null;
+ String onlyMember = null;
}
public void testEmptyConfiguration() {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/instantiation/UserCodeInterceptorTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -20,7 +20,7 @@
public class UserCodeInterceptorTest extends AbstractJbpmTestCase {
- private static List logs = new ArrayList();
+ static List logs = new ArrayList();
private JbpmContext jbpmContext;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -4,6 +4,10 @@
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
@@ -20,29 +24,20 @@
*/
public class JBPM1071Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
static final int nbrOfThreads = 4;
static final int nbrOfIterations = 20;
protected void setUp() throws Exception {
super.setUp();
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='lockprocess'>"
- + " <start-state name='start'>"
- + " <transition to='end'/>"
- + " </start-state>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
- processDefinitionId = processDefinition.getId();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='jbpm1071'>"
+ + " <start-state name='start'>"
+ + " <transition to='end'/>"
+ + " </start-state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
public void testLocking() {
// the process will be executed in 2 separate transactions:
// Transaction 1 will create the process instance and position
@@ -50,17 +45,12 @@
// Transaction 2 will signal the process instance while it is in the
// start state, and that signal will bring the process to it's end state.
// multiple competing threads will be set up for the second transaction
-
- ProcessDefinition processDefinition =
graphSession.loadProcessDefinition(processDefinitionId);
for (int i = 0; i < nbrOfIterations; i++) {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
-
+ long processInstanceId =
jbpmContext.newProcessInstanceForUpdate("jbpm1071").getId();
newTransaction();
// create a bunch of threads that will all wait on the
// semaphore before they will try to signal the same process instance
- long processInstanceId = processInstance.getId();
Semaphore semaphore = new Semaphore(0);
List threads = startThreads(semaphore, processInstanceId);
@@ -78,17 +68,17 @@
session.delete(results.get(0));
// check that the process instance has ended
- processInstance = jbpmContext.loadProcessInstance(processInstanceId);
- assertTrue(processInstance.hasEnded());
+ ProcessInstance processInstance =
jbpmContext.loadProcessInstance(processInstanceId);
+ assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
}
}
private List startThreads(Semaphore semaphore, long processInstanceId) {
List threads = new ArrayList();
for (int i = 0; i < nbrOfThreads; i++) {
- Thread thread = new Thread(new Signaller(semaphore, processInstanceId));
- threads.add(thread);
+ Thread thread = new Thread(new Signaller(semaphore, jbpmConfiguration,
processInstanceId));
thread.start();
+ threads.add(thread);
}
return threads;
}
@@ -105,13 +95,15 @@
}
}
- class Signaller implements Runnable {
+ static class Signaller implements Runnable {
- final Semaphore semaphore;
- final long processInstanceId;
+ private final Semaphore semaphore;
+ private final JbpmConfiguration jbpmConfiguration;
+ private final long processInstanceId;
- Signaller(Semaphore semaphore, long processInstanceId) {
+ Signaller(Semaphore semaphore, JbpmConfiguration jbpmConfiguration, long
processInstanceId) {
this.semaphore = semaphore;
+ this.jbpmConfiguration = jbpmConfiguration;
this.processInstanceId = processInstanceId;
}
@@ -125,9 +117,11 @@
fail("semaphore waiting got interrupted");
}
- // after a thread is released (=notified), it will try to load the process
instance,
+ // after a thread is released (=notified), it will try to load the process
+ // instance,
// signal it and then commit the transaction
String threadName = Thread.currentThread().getName();
+ Log log = LogFactory.getLog(JBPM1071Test.class);
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
ProcessInstance processInstance =
jbpmContext.loadProcessInstance(processInstanceId);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1072/JBPM1072Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1072/JBPM1072Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1072/JBPM1072Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -32,9 +32,10 @@
import org.jbpm.job.executor.JobExecutor;
/**
- * Concurrent job executors can process the same job in parallel. The test simulates
multiple
- * nodes in the network processing a common job set. The key setting is to give each job
- * executor a different name; normally, a job executor is named after the node's inet
address
+ * Concurrent job executors can process the same job in parallel. The test
+ * simulates multiple nodes in the network processing a common job set. The key
+ * setting is to give each job executor a different name; normally, a job
+ * executor is named after the node's inet address
*
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1072">JBPM-107...
* @author Jiri Pechanec
@@ -45,58 +46,52 @@
private static final int JOB_EXECUTOR_COUNT = 4;
private JobExecutor[] jobExecutors = new JobExecutor[JOB_EXECUTOR_COUNT];
- private ProcessDefinition processDefinition;
- private static final String PROCESS_DEFINITION = "<process-definition
name='job-executors'>"
- + " <event type='process-end'>"
- + " <action expression='#{eventCallback.processEnd}'
/>"
- + " </event>"
- + " <start-state name='start-state1'>"
- + " <transition to='Service 1'></transition>"
- + " </start-state>"
- + " <node name='Service 1' async='true'>"
- + " <action class='"
- + Counter.class.getName()
- + "' />"
- + " <transition to='Service 2' />"
- + " </node>"
- + " <node name='Service 2' async='true'>"
- + " <action class='"
- + Counter.class.getName()
- + "' />"
- + " <transition to='end-state1' />"
- + " </node>"
- + " <end-state name='end-state1' />"
- + "</process-definition>";
+ private static final String PROCESS_DEFINITION = "<process-definition
name='jbpm1072'>"
+ + " <event type='process-end'>"
+ + " <action expression='#{eventCallback.processEnd}' />"
+ + " </event>"
+ + " <start-state name='start-state1'>"
+ + " <transition to='Service 1'></transition>"
+ + " </start-state>"
+ + " <node name='Service 1' async='true'>"
+ + " <action class='"
+ + Counter.class.getName()
+ + "' />"
+ + " <transition to='Service 2' />"
+ + " </node>"
+ + " <node name='Service 2' async='true'>"
+ + " <action class='"
+ + Counter.class.getName()
+ + "' />"
+ + " <transition to='end-state1' />"
+ + " </node>"
+ + " <end-state name='end-state1' />"
+ + "</process-definition>";
protected void setUp() throws Exception {
super.setUp();
- processDefinition = ProcessDefinition.parseXmlString(PROCESS_DEFINITION);
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString(PROCESS_DEFINITION);
+ deployProcessDefinition(processDefinition);
startJobExecutors();
}
protected void tearDown() throws Exception {
stopJobExecutors();
-
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
EventCallback.clear();
+
super.tearDown();
}
public void testMultipleJobExecutors() {
- // Won't Fix [JBPM-1072] Concurrent JobExecutors can process the same job in
parallel
+ // multiple job executors not supported on hsql
if (getHibernateDialect().indexOf("HSQL") != -1) return;
// kick off process instance
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm1072");
processInstance.getContextInstance().setVariable("eventCallback", new
EventCallback());
processInstance.signal();
- jbpmContext.save(processInstance);
commitAndCloseSession();
try {
@@ -137,9 +132,7 @@
public void execute(ExecutionContext exeContext) throws Exception {
Integer count = (Integer) exeContext.getVariable("count");
- count = count != null ? new Integer(count.intValue() + 1) : new Integer(1);
- exeContext.setVariable("count", count);
-
+ exeContext.setVariable("count", new Integer(count != null ?
count.intValue() + 1 : 1));
exeContext.leaveNode();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1106/JBPM1106Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1106/JBPM1106Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1106/JBPM1106Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -32,20 +32,19 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * GetProcessInstancesCommand should use Query.setTimestamp instead of Query.setDate
- *
https://jira.jboss.org/jira/browse/JBPM-1106
+ * GetProcessInstancesCommand should set timestamp instead of date.
*
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1106">JBPM-110...
* @author Alejandro Guizar
*/
public class JBPM1106Test extends AbstractDbTestCase {
private CommandService commandService = new
CommandServiceImpl(getJbpmConfiguration());
- private ProcessDefinition processDefinition;
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition("Audit");
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition = new ProcessDefinition("jbpm1106");
+ deployProcessDefinition(processDefinition);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
Calendar calendar = Calendar.getInstance();
@@ -71,11 +70,6 @@
newTransaction();
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testStartDate() {
GetProcessInstancesCommand command = new GetProcessInstancesCommand();
Calendar calendar = Calendar.getInstance();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1135/JBPM1135Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1135/JBPM1135Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1135/JBPM1135Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,53 +28,44 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * When a timer fires and another timer is created as part of its execution, no exception
should be
- * thrown.
https://jira.jboss.org/jira/browse/JBPM-1135
+ * When a timer fires and another timer is created as part of its execution, no
+ * exception should be thrown.
*
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1135">JBPM-113...
* @author Alejandro Guizar
*/
public class JBPM1135Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm1135/timerprocess.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
- newTransaction();
-
+ deployProcessDefinition(processDefinition);
startJobExecutor();
}
protected void tearDown() throws Exception {
stopJobExecutor();
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
-
EventCallback.clear();
+
+ super.tearDown();
}
public void testTimerOnTimer() {
- ProcessDefinition processDefinition =
graphSession.loadProcessDefinition(processDefinitionId);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm1135");
processInstance.getContextInstance().setVariable("eventCallback", new
EventCallback());
processInstance.signal();
- jbpmContext.save(processInstance);
assertEquals("firstNode",
processInstance.getRootToken().getNode().getName());
newTransaction();
-
EventCallback.waitForEvent(Event.EVENTTYPE_TIMER);
long processInstanceId = processInstance.getId();
assertEquals("secondNode",
jbpmContext.loadProcessInstance(processInstanceId)
- .getRootToken()
- .getNode()
- .getName());
+ .getRootToken()
+ .getNode()
+ .getName());
newTransaction();
-
EventCallback.waitForEvent(Event.EVENTTYPE_PROCESS_END);
assertTrue(jbpmContext.loadProcessInstance(processInstanceId).hasEnded());
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -29,32 +29,27 @@
/**
* JbpmConfiguration assumes the object factory has a jbpm.job.executor entry
- *
https://jira.jboss.org/jira/browse/JBPM-1452
*
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1452">JBPM-145...
* @author Alejandro Guizar
*/
public class JBPM1452Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected JbpmConfiguration getJbpmConfiguration() {
if (jbpmConfiguration == null) {
jbpmConfiguration =
JbpmConfiguration.parseXmlString("<jbpm-configuration>"
- + " <null name='jbpm.job.executor' />"
- + "</jbpm-configuration>");
+ + " <null name='jbpm.job.executor' />"
+ + "</jbpm-configuration>");
}
return jbpmConfiguration;
}
protected void setUp() throws Exception {
super.setUp();
- ProcessDefinition processDefinition = new ProcessDefinition("Audit");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(new ProcessDefinition("jbpm1452"));
}
protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
super.tearDown();
jbpmConfiguration.close();
}
@@ -63,20 +58,14 @@
// check the job executor is properly nullified
ObjectFactory objectFactory = jbpmContext.getObjectFactory();
assertTrue("expected object factory to have object jbpm.job.executor",
- objectFactory.hasObject("jbpm.job.executor"));
+ objectFactory.hasObject("jbpm.job.executor"));
assertNull(objectFactory.createObject("jbpm.job.executor"));
// start and end a process instance, no exception should be thrown
- try {
- ProcessDefinition processDefinition =
graphSession.loadProcessDefinition(processDefinitionId);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
+ long processInstanceId =
jbpmContext.newProcessInstanceForUpdate("jbpm1452").getId();
- newTransaction();
- processInstance.end();
- }
- catch (RuntimeException e) {
- jbpmContext.setRollbackOnly();
- fail("could not end process instance in absence of job executor: " + e);
- }
+ newTransaction();
+ ProcessInstance processInstance =
jbpmContext.loadProcessInstance(processInstanceId);
+ processInstance.end();
+ assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1755/JBPM1755Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1755/JBPM1755Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1755/JBPM1755Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -11,8 +11,8 @@
/**
* Allow process author to set the parent token lock mode in the join token.
- *
https://jira.jboss.org/jira/browse/JBPM-1755
*
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1755">JBPM-175...
* @author Alejandro Guizar
*/
public class JBPM1755Test extends AbstractDbTestCase {
@@ -27,7 +27,6 @@
}
protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinition.getId());
EventCallback.clear();
super.tearDown();
}
@@ -47,11 +46,10 @@
private void launchProcessInstances(LockMode lockMode) {
Join join = (Join) processDefinition.getNode("join1");
join.setParentLockMode(lockMode.toString());
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
long[] processInstanceIds = new long[processInstanceCount];
for (int i = 0; i < processInstanceCount; i++) {
- newTransaction();
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstanceIds[i] = processInstance.getId();
processInstance.getContextInstance().setVariable("eventCallback", new
EventCallback());
@@ -72,7 +70,7 @@
for (int i = 0; i < processInstanceCount; i++) {
long processInstanceId = processInstanceIds[i];
assertTrue("expected process instance " + processInstanceId + " to
have ended",
- jbpmContext.loadProcessInstance(processInstanceId).hasEnded());
+ jbpmContext.loadProcessInstance(processInstanceId).hasEnded());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1775/JBPM1775Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1775/JBPM1775Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1775/JBPM1775Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,13 +21,13 @@
*/
package org.jbpm.jbpm1775;
-import org.jbpm.JbpmException;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.def.DelegationException;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.persistence.JbpmPersistenceException;
import org.jbpm.persistence.db.DbPersistenceService;
/**
@@ -40,31 +40,35 @@
public void testExceptionInAction() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<?xml
version='1.0'?>"
- + "<process-definition name='"
- + getName()
- + "'>"
- + " <exception-handler
exception-class='java.lang.IllegalStateException'>"
- + " <action class='org.example.NoSuchAction' />"
- + " </exception-handler>"
- + " <start-state name='start'>"
- + " <transition to='end'>"
- + " <action class='"
- + ExceptionAction.class.getName()
- + "' />"
- + " </transition>"
- + " </start-state>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + "<process-definition name='"
+ + getName()
+ + "'>"
+ + " <exception-handler
exception-class='java.lang.IllegalStateException'>"
+ + " <action class='org.example.NoSuchAction' />"
+ + " </exception-handler>"
+ + " <start-state name='start'>"
+ + " <transition to='end'>"
+ + " <action class='"
+ + ExceptionAction.class.getName()
+ + "' />"
+ + " </transition>"
+ + " </start-state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
try {
ProcessInstance processInstance =
jbpmContext.newProcessInstance(processDefinition.getName());
processInstance.signal();
fail("expected delegation exception");
- } catch (DelegationException e) {
+ }
+ catch (DelegationException e) {
+ jbpmContext.setRollbackOnly();
assertSame(IllegalStateException.class, e.getCause().getClass());
+
try {
- closeJbpmContext();
- } catch (JbpmException je) {
+ commitAndCloseSession();
+ }
+ catch (JbpmPersistenceException je) {
// discard failure to close normally
}
beginSessionTransaction();
@@ -75,10 +79,11 @@
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
- // NOTE that manipulating the hibernate transaction directly is bad practice
+ // NOTE that manipulating the transaction directly is bad practice
// use JbpmContext or TxService instead!
- DbPersistenceService persistenceService = (DbPersistenceService) executionContext
- .getJbpmContext().getServices().getPersistenceService();
+ DbPersistenceService persistenceService = (DbPersistenceService)
executionContext.getJbpmContext()
+ .getServices()
+ .getPersistenceService();
persistenceService.getTransaction().rollback();
// throw exception
throw new IllegalStateException("transaction was forcefully rolled
back");
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1921/JBPM1921Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1921/JBPM1921Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1921/JBPM1921Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -30,57 +30,52 @@
/**
* Assigning a task to two pooled actors and calling
- * <code>jbpmContext.getGroupTaskList(List actorIds)</code> with these two
actor
- * ids will get you a list with duplicate task instances.
+ * <code>jbpmContext.getGroupTaskList(List actorIds)</code> with these two
+ * actors will get you a list with duplicate task instances.
*
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-1921">JBPM-192...
* @author Alejandro Guizar
*/
public class JBPM1921Test extends AbstractDbTestCase {
public void testFindByActorId() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<?xml
version='1.0'?>"
- + "<process-definition name='" + getName() +
"'>"
- + " <start-state name='start'>"
- + " <transition to='team work'/>"
- + " </start-state>"
- + " <task-node name='team work'>"
- + " <task>"
- + " <assignment pooled-actors='ernie,bert,ernie'
/>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance(processDefinition.getName());
- processInstance.signal();
- List pooledTasks = taskMgmtSession.findPooledTaskInstances("ernie");
- assertEquals(1, pooledTasks.size());
- } finally {
- graphSession.deleteProcessDefinition(processDefinition);
- }
+ + "<process-definition name='jbpm1921'>"
+ + " <start-state name='start'>"
+ + " <transition to='team work'/>"
+ + " </start-state>"
+ + " <task-node name='team work'>"
+ + " <task>"
+ + " <assignment pooled-actors='ernie,bert,ernie' />"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance(processDefinition.getName());
+ processInstance.signal();
+ List pooledTasks = taskMgmtSession.findPooledTaskInstances("ernie");
+ assertEquals(1, pooledTasks.size());
}
public void testFindByActorIds() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<?xml
version='1.0'?>"
- + "<process-definition name='" + getName() +
"'>"
- + " <start-state name='start'>"
- + " <transition to='team work'/>"
- + " </start-state>"
- + " <task-node name='team work'>"
- + " <task>"
- + " <assignment pooled-actors='ernie,bert,groover'
/>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance(processDefinition.getName());
- processInstance.signal();
- List pooledTasks = jbpmContext.getGroupTaskList(Arrays
- .asList(new String[] { "ernie", "bert" }));
- assertEquals(1, pooledTasks.size());
- } finally {
- graphSession.deleteProcessDefinition(processDefinition);
- }
+ + "<process-definition name='jbpm1921'>"
+ + " <start-state name='start'>"
+ + " <transition to='team work'/>"
+ + " </start-state>"
+ + " <task-node name='team work'>"
+ + " <task>"
+ + " <assignment pooled-actors='ernie,bert,groover'
/>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance(processDefinition.getName());
+ processInstance.signal();
+ List pooledTasks = jbpmContext.getGroupTaskList(Arrays.asList(new String[] {
"ernie",
+ "bert" }));
+ assertEquals(1, pooledTasks.size());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2017/JBPM2017Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2017/JBPM2017Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2017/JBPM2017Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -32,32 +32,26 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * STRINGVALUE_ column in JBPM_VARIABLEINSTANCE table should be text, not varchar(255)
+ * STRINGVALUE_ column in JBPM_VARIABLEINSTANCE table should be text, not
+ * varchar(255)
*
- *
https://jira.jboss.org/jira/browse/JBPM-2017
- *
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2017">JBPM-201...
* @author Alejandro Guizar
*/
public class JBPM2017Test extends AbstractDbTestCase {
public void testTextVariable() throws IOException {
- String processName = getName();
+ final String processName = "jbpm2017";
ProcessDefinition processDefinition =
ProcessDefinition.createNewProcessDefinition();
processDefinition.setName(processName);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = jbpmContext.newProcessInstance(processName);
- String quote = readString(getClass().getResourceAsStream("quote.txt"));
- processInstance.getContextInstance().setVariable("quote", quote);
+ ProcessInstance processInstance = jbpmContext.newProcessInstance(processName);
+ String quote = readString(getClass().getResourceAsStream("quote.txt"));
+ processInstance.getContextInstance().setVariable("quote", quote);
- processInstance = saveAndReload(processInstance);
- assertEquals(quote,
processInstance.getContextInstance().getVariable("quote"));
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ assertEquals(quote,
processInstance.getContextInstance().getVariable("quote"));
}
private static String readString(InputStream in) throws IOException {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2036/JBPM2036Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2036/JBPM2036Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2036/JBPM2036Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -18,67 +18,60 @@
public void testTimerAction() {
ProcessDefinition processDefinition = getProcessDefinition();
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- processJobs(30000);
+ processJobs(30000);
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
- ContextInstance contextInstance = processInstance.getContextInstance();
- Integer count = (Integer) contextInstance.getVariable("chaos");
- assertEquals(1, count.intValue());
- count = (Integer) contextInstance.getVariable("undead");
- assertEquals(1, count.intValue());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ Integer count = (Integer) contextInstance.getVariable("chaos");
+ assertEquals(1, count.intValue());
+ count = (Integer) contextInstance.getVariable("undead");
+ assertEquals(1, count.intValue());
}
- private ProcessDefinition getProcessDefinition() {
+ private static ProcessDefinition getProcessDefinition() {
return ProcessDefinition.parseXmlString("<process-definition
name='jbpm2036'>"
- + " <start-state name='start'>"
- + " <transition to='midway'/>"
- + " </start-state>"
- + " <task-node name='midway' end-tasks='yes'>"
- + " <timer name='chaos' duedate='2 seconds'
repeat='5 seconds'>"
- + " <action class='"
- + TimerAction.class.getName()
- + "'>"
- + " <leave>true</leave>"
- + " </action>"
- + " </timer>"
- + " <task name='doit'>"
- + " <timer name='undead' duedate='1 second'
repeat='5 seconds'>"
- + " <action class='"
- + TimerAction.class.getName()
- + "'/>"
- + " </timer>"
- + " </task>"
- + " <transition to='end'/>"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
+ + " <start-state name='start'>"
+ + " <transition to='midway'/>"
+ + " </start-state>"
+ + " <task-node name='midway' end-tasks='yes'>"
+ + " <timer name='chaos' duedate='2 seconds'
repeat='5 seconds'>"
+ + " <action class='"
+ + TimerAction.class.getName()
+ + "'>"
+ + " <leave>true</leave>"
+ + " </action>"
+ + " </timer>"
+ + " <task name='doit'>"
+ + " <timer name='undead' duedate='1 second'
repeat='5 seconds'>"
+ + " <action class='"
+ + TimerAction.class.getName()
+ + "'/>"
+ + " </timer>"
+ + " </task>"
+ + " <transition to='end'/>"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
}
public static class TimerAction implements ActionHandler {
private boolean leave;
-
private static final long serialVersionUID = 1L;
- private static final Integer ONE = new Integer(1);
public void execute(ExecutionContext executionContext) throws Exception {
String timerName = executionContext.getTimer().getName();
Integer count = (Integer) executionContext.getVariable(timerName);
- executionContext.setVariable(timerName, count != null ? new
Integer(count.intValue() + 1)
- : ONE);
+ executionContext.setVariable(timerName, new Integer(count != null ?
count.intValue() + 1
+ : 1));
if (leave) executionContext.leaveNode();
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -33,28 +33,24 @@
*/
public class JBPM2094Test extends AbstractDbTestCase {
- private ProcessDefinition processDefinition;
-
private static final int TIMEOUT = 60 * 1000;
private static final int INSTANCE_COUNT = 10;
protected void setUp() throws Exception {
super.setUp();
+ // [JBPM-2115] multiple threads not supported on DB2 < 9.7
+ // multiple threads not be supported on HSQL
String dialect = getHibernateDialect();
- if (dialect.indexOf("DB2") == -1 // [JBPM-2115] multiple threads not
supported on DB2 < 9.7
- && dialect.indexOf("HSQL") == -1) { // multiple threads will
not be supported on HSQL
+ if (dialect.indexOf("DB2") == -1 &&
dialect.indexOf("HSQL") == -1) {
jbpmConfiguration.getJobExecutor().setNbrOfThreads(4);
}
- processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2094/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2094/processdefinition.xml");
+ deployProcessDefinition(processDefinition);
}
protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
jbpmConfiguration.getJobExecutor().setNbrOfThreads(1);
super.tearDown();
}
@@ -62,12 +58,10 @@
public void testJobExecutorDeadlock() {
long[] processInstanceIds = new long[INSTANCE_COUNT];
for (int i = 0; i < INSTANCE_COUNT; i++) {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2094");
processInstance.getContextInstance().setVariable("theBody",
getName().getBytes());
processInstance.signal();
- jbpmContext.save(processInstance);
- newTransaction();
processInstanceIds[i] = processInstance.getId();
}
@@ -77,9 +71,6 @@
ProcessInstance processInstance =
jbpmContext.loadProcessInstance(processInstanceIds[i]);
assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
}
-
- // close transaction before test ends to prevent occasional lock timeouts during
teardown
- newTransaction();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2263/JBPM2263Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2263/JBPM2263Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2263/JBPM2263Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -26,27 +26,20 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
+ * Multiple timers in node cause event source reset.
+ *
+ * @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2263">JBPM-226...
* @author Alejandro Guizar
*/
public class JBPM2263Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2263/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
-
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
public void testMultipleTimers() {
ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("multiple timers");
processInstance.signal();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -7,67 +7,56 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * Test if the JobExecutorThread recovers from an Error
+ * Test if the JobExecutorThread recovers from an Error.
*
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2375">JBPM-237...
* @author mputz(a)redhat.com
+ * @author Alejandro Guizar
* @since 30-Jun-2009
*/
public class JBPM2375Test extends AbstractDbTestCase {
private static final int TEST_TIMEOUT = 60 * 1000;
- private static boolean throwError;
+ static boolean throwError;
- private ProcessDefinition processDefinition;
-
// a process definition with two timers moving the token forward
// the second state has an action associated with the node-enter event,
// which can simulate an Error condition by throwing a NoClassDefFoundError
- private static final String PROCESS_DEFINITION = "<process-definition
name='jbpm2375-test'>" +
- " <start-state name='start'>" +
- " <transition to='state1' name='to_state1'/>" +
- " </start-state>" +
- " <state name='state1'>" +
- " <timer name='moveToNextStateAfter1second' duedate='1
second' transition='to_state2'/>" +
- " <transition to='state2' name='to_state2'/>" +
- " </state>" +
- " <state name='state2'>" +
- " <timer name='moveToEndAfter1second' duedate='1 second'
transition='to_end'/>" +
- " <event type='node-enter'>" +
- " <action name='exceptionTest' class='" +
- TimerExceptionAction.class.getName() +
- "'>" +
- " </action>" +
- " </event>" +
- " <transition to='end' name='to_end'/>" +
- " </state>" +
- " <end-state name='end' />" +
- "</process-definition>";
+ private static final String PROCESS_DEFINITION = "<process-definition
name='jbpm2375'>"
+ + " <start-state name='start'>"
+ + " <transition to='state1' name='to_state1'/>"
+ + " </start-state>"
+ + " <state name='state1'>"
+ + " <timer name='moveToNextStateAfter1second' duedate='1
second' transition='to_state2'/>"
+ + " <transition to='state2' name='to_state2'/>"
+ + " </state>"
+ + " <state name='state2'>"
+ + " <timer name='moveToEndAfter1second' duedate='1 second'
transition='to_end'/>"
+ + " <event type='node-enter'>"
+ + " <action name='exceptionTest' class='"
+ + TimerExceptionAction.class.getName()
+ + "'>"
+ + " </action>"
+ + " </event>"
+ + " <transition to='end' name='to_end'/>"
+ + " </state>"
+ + " <end-state name='end' />"
+ + "</process-definition>";
protected void setUp() throws Exception {
super.setUp();
- jbpmConfiguration.getJobExecutor().setLockMonitorInterval(TEST_TIMEOUT / 6);
-
- processDefinition = ProcessDefinition.parseXmlString(PROCESS_DEFINITION);
- jbpmContext.deployProcessDefinition(processDefinition);
-
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString(PROCESS_DEFINITION);
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- jbpmConfiguration.getJobExecutor().setLockMonitorInterval(60000);
- super.tearDown();
- }
-
// check if the process ends correctly if no Error is thrown
public void testTimerWithoutErrorAction() {
throwError = false;
runTimerErrorAction();
}
- // check if the process ends correctly if an Error is thrown in the ActionHandler
+ // check if the process ends correctly if an Error is thrown in the
+ // ActionHandler
public void testTimerWithErrorAction() {
throwError = true;
runTimerErrorAction();
@@ -75,9 +64,8 @@
private void runTimerErrorAction() {
// kick off process instance
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2375");
processInstance.signal();
- jbpmContext.save(processInstance);
processJobs(TEST_TIMEOUT);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2489/JBPM2489Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2489/JBPM2489Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2489/JBPM2489Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -26,33 +26,24 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * Process loses access to process variables when timer is used inside forked process
+ * Process instance loses access to variables when timer is present inside fork
+ * construct.
*
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2489">JBPM-248...
* @author Alejandro Guizar
*/
public class JBPM2489Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
private static final int TIMEOUT = 60 * 1000;
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2489/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
-
- super.tearDown();
- }
-
public void testLostAccessToVariableWithTimer() {
- newTransaction();
ProcessInstance processInstance =
jbpmContext.newProcessInstance("bpm_orchestration2");
processInstance.getContextInstance().setVariable("theBody",
getName().getBytes());
processInstance.signal();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2574/JBPM2574Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2574/JBPM2574Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2574/JBPM2574Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -16,23 +16,14 @@
*/
public class JBPM2574Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
- ProcessDefinition processDefinition = ProcessDefinition
- .parseXmlResource("org/jbpm/jbpm2574/processdefinition.xml");
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2574/processdefinition.xml");
processDefinition.addDefinition(new FileDefinition());
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
public void testLoadInexistentClass() {
try {
ProcessInstance processInstance =
jbpmContext.newProcessInstance("scripted");
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2603/JBPM2603Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2603/JBPM2603Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2603/JBPM2603Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -50,19 +50,14 @@
+ " </timer>"
+ " </state>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- assertEquals(processDefinition.getAction("example").getId(),
timer.getAction().getId());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ assertEquals(processDefinition.getAction("example").getId(),
timer.getAction().getId());
}
public void testDynamicTimerAction() {
@@ -77,22 +72,17 @@
+ " </event>"
+ " </state>"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- Action action = timer.getAction();
- assertEquals("org.example.Action",
action.getActionDelegation().getClassName());
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ Action action = timer.getAction();
+ assertEquals("org.example.Action",
action.getActionDelegation().getClassName());
- session.delete(action);
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ jobSession.deleteJob(timer);
+ session.delete(action);
}
public static class CreateDynamicTimer implements ActionHandler {
@@ -101,11 +91,11 @@
public void execute(ExecutionContext executionContext) throws Exception {
Action action = new Action(new Delegation("org.example.Action"));
- Calendar oneHour = Calendar.getInstance();
- oneHour.add(Calendar.HOUR_OF_DAY, 1);
+ Calendar oneSecond = Calendar.getInstance();
+ oneSecond.add(Calendar.SECOND, 1);
Timer timer = new Timer(executionContext.getToken());
- timer.setDueDate(oneHour.getTime());
+ timer.setDueDate(oneSecond.getTime());
timer.setAction(action);
executionContext.getJbpmContext().getServices().getSchedulerService().createTimer(timer);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2630/JBPM2630Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2630/JBPM2630Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2630/JBPM2630Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,10 +36,8 @@
protected void setUp() throws Exception {
super.setUp();
- testConfiguration =
- JbpmConfiguration.getInstance("org/jbpm/jbpm.test.cfg.xml");
- noLogConfiguration =
- JbpmConfiguration.getInstance("org/jbpm/jbpm2630/jbpm.nolog.cfg.xml");
+ testConfiguration = JbpmConfiguration.getInstance();
+ noLogConfiguration =
JbpmConfiguration.getInstance("org/jbpm/jbpm2630/jbpm.nolog.cfg.xml");
}
protected void tearDown() throws Exception {
@@ -55,12 +53,14 @@
try {
JbpmContext testContext2 = testConfiguration.createJbpmContext();
try {
- assertSame(testConfiguration,
JbpmConfigurationTestHelper.getCurrentJbpmConfiguration());
+ assertSame(testConfiguration,
+ JbpmConfigurationTestHelper.getCurrentJbpmConfiguration());
}
finally {
testContext2.close();
}
- assertSame(noLogConfiguration,
JbpmConfigurationTestHelper.getCurrentJbpmConfiguration());
+ assertSame(noLogConfiguration,
+ JbpmConfigurationTestHelper.getCurrentJbpmConfiguration());
}
finally {
noLogContext.close();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2637/JBPM2637Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2637/JBPM2637Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2637/JBPM2637Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,6 +28,7 @@
import org.jbpm.db.TaskMgmtSession;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
/**
* {@link TaskMgmtSession#findTaskInstancesByIds(List)} fails if taskInstanceIds
@@ -38,27 +39,18 @@
*/
public class JBPM2637Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
- ProcessDefinition processDefinition =
ProcessDefinition.createNewProcessDefinition();
- processDefinition.setName("jbpm2637");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
- newTransaction();
+ ProcessDefinition processDefinition = new ProcessDefinition("jbpm2637");
+ processDefinition.addDefinition(new TaskMgmtDefinition());
+ deployProcessDefinition(processDefinition);
ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2637");
processInstance.getTaskMgmtInstance().createTaskInstance(processInstance.getRootToken());
newTransaction();
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
public void testFindTaskInstancesEmptyActorList() {
assertEquals(0, taskMgmtSession.findTaskInstances(Collections.EMPTY_LIST).size());
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2691/JBPM2691Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2691/JBPM2691Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2691/JBPM2691Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -37,22 +37,12 @@
*/
public class JBPM2691Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2691/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
-
- newTransaction();
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
public void testSaveExceptionInSeparateTx() {
ProcessInstance processInstance = jbpmContext.newProcessInstance("jobex");
processInstance.signal();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2778/JBPM2778Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2778/JBPM2778Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2778/JBPM2778Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -12,25 +12,14 @@
*/
public class JBPM2778Test extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2778/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
-
- newTransaction();
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
- public void testProcess() throws Exception {
+ public void testScriptAcceptPropagatedEvents() throws Exception {
ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2778");
processInstance.signal();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2787/JBPM2787Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2787/JBPM2787Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2787/JBPM2787Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -26,47 +26,41 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * Process instances get stuck in a fork.
+ * Process instances get stuck in a join.
*
* @author Alejandro Guizar
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2787">JBPM-278...
*/
public class JBPM2787Test extends AbstractDbTestCase {
- private ProcessDefinition processDefinition;
-
private static final int TIMEOUT = 60 * 1000;
private static final int INSTANCE_COUNT = 10;
protected void setUp() throws Exception {
super.setUp();
+ // [JBPM-2115] multiple threads not supported on DB2 < 9.7
+ // multiple threads not supported on HSQL
String dialect = getHibernateDialect();
- if (dialect.indexOf("DB2") == -1 // [JBPM-2115] multiple threads not
supported on DB2 < 9.7
- && dialect.indexOf("HSQL") == -1) { // multiple threads will
not be supported on HSQL
+ if (dialect.indexOf("DB2") == -1 &&
dialect.indexOf("HSQL") == -1) {
jbpmConfiguration.getJobExecutor().setNbrOfThreads(4);
}
- processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2787/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlResource("org/jbpm/jbpm2787/processdefinition.xml");
+ deployProcessDefinition(processDefinition);
}
protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
jbpmConfiguration.getJobExecutor().setNbrOfThreads(1);
super.tearDown();
}
- public void testJobExecutorDeadlock() {
+ public void testProcessInstancesStuckInJoin() {
long[] processInstanceIds = new long[INSTANCE_COUNT];
for (int i = 0; i < INSTANCE_COUNT; i++) {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2787");
processInstance.signal();
- jbpmContext.save(processInstance);
- newTransaction();
processInstanceIds[i] = processInstance.getId();
}
@@ -76,9 +70,6 @@
ProcessInstance processInstance =
jbpmContext.loadProcessInstance(processInstanceIds[i]);
assertTrue("expected " + processInstance + " to have ended",
processInstance.hasEnded());
}
-
- // close transaction before test ends to prevent occasional lock timeouts during
teardown
- newTransaction();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2812/JBPM2812Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2812/JBPM2812Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2812/JBPM2812Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -41,7 +41,7 @@
" </start-state>" +
" <super-state name='super-state'>" +
" <state name='state1'>" +
- " <timer duedate='3 seconds' name='timeout-timer'
transition='timeout'/>" +
+ " <timer duedate='1 second' name='timeout-timer'
transition='timeout'/>" +
" <transition to='state2' name='go'/>" +
" </state>" +
" <state name='state2'>" +
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2828/JBPM2828Test.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2828/JBPM2828Test.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2828/JBPM2828Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -19,63 +19,48 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
*/
-package org.jbpm.JBPM2828;
+package org.jbpm.jbpm2828;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
-import org.hibernate.Session;
+import org.hibernate.criterion.Projections;
import org.jbpm.JbpmConfiguration;
+import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.context.exe.variableinstance.ByteArrayInstance;
+import org.jbpm.context.exe.variableinstance.LongInstance;
+import org.jbpm.context.exe.variableinstance.StringInstance;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
-
/**
- * Test to verify if contextInstance.deleteVariable(name) does not cause orphaned
variable records
+ * Test to verify if contextInstance.deleteVariable(name) does not cause
+ * orphaned variable records.
*
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2828">JBPM-282...
* @author Martin Putz
*/
public class JBPM2828Test extends AbstractDbTestCase {
- protected static List listVariable = new ArrayList();
- protected static Long longVariable = new Long(10L);
- protected static String stringVariable = "jBPM";
+ static final List listVariable = Arrays.asList(new String[] { "Bart",
"Lisa",
+ "Marge", "Barney", "Homer", "Maggie" });
+ static final Long longVariable = new Long(10L);
+ private static final String stringVariable = "jBPM";
- static {
- listVariable.add("Bart");
- listVariable.add("Lisa");
- listVariable.add("Marge");
- listVariable.add("Barney");
- listVariable.add("Homer");
- listVariable.add("Maggie");
- }
-
-
-
- public static class CreateVariablesAction implements ActionHandler {
+ public static class CreateVariablesAction implements ActionHandler {
private static final long serialVersionUID = 1L;
- public void execute(ExecutionContext executionContext) throws Exception {
- executionContext.setVariable("listVariable", listVariable);
- executionContext.setVariable("longVariable", longVariable);
- executionContext.setVariable("stringVariable", stringVariable);
- }
- }
- public static class DeleteVariablesAction implements ActionHandler {
- private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
- executionContext.getContextInstance().deleteVariable("listVariable");
- executionContext.getContextInstance().deleteVariable("longVariable");
- executionContext.getContextInstance().deleteVariable("stringVariable");
+ executionContext.setVariable("listVariable", listVariable);
+ executionContext.setVariable("longVariable", longVariable);
+ executionContext.setVariable("stringVariable", stringVariable);
}
- }
+ }
-
protected JbpmConfiguration getJbpmConfiguration() {
if (jbpmConfiguration == null) {
jbpmConfiguration =
JbpmConfiguration.parseResource("org/jbpm/jbpm2828/jbpm.nolog.cfg.xml");
@@ -83,78 +68,64 @@
return jbpmConfiguration;
}
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ jbpmConfiguration.close();
+ }
public void testDeleteVariable() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='jbpmXXX'>" +
- " <start-state name='start'>" +
- " <transition to='state1'>" +
- " <action name='createVariables'
class='"+this.getClass().getName()+"$CreateVariablesAction'/>"
+
- " </transition>" +
- " </start-state>" +
- " <state name='state1'>" +
- " <transition to='state2' name='go'>" +
- " <action name='deleteVariables'
class='"+this.getClass().getName()+"$DeleteVariablesAction'/>"
+
- " </transition>" +
- " </state>" +
- " <state name='state2'>" +
- " <transition to='end' name='go'/>" +
- " </state>" +
- " <end-state name='end'/>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='jbpm2828'>"
+ + " <start-state name='start'>"
+ + " <transition to='state1'>"
+ + " <action name='createVariables' class='"
+ + CreateVariablesAction.class.getName()
+ + "'/>"
+ + " </transition>"
+ + " </start-state>"
+ + " <state name='state1'>"
+ + " <transition to='state2' name='go'>"
+ + " <script>"
+ + " contextInstance = executionContext.getContextInstance();"
+ + " contextInstance.deleteVariable(\"listVariable\");"
+ + " contextInstance.deleteVariable(\"longVariable\");"
+ + " contextInstance.deleteVariable(\"stringVariable\");"
+ + " </script>"
+ + " </transition>"
+ + " </state>"
+ + " <state name='state2'>"
+ + " <transition to='end' name='go'/>"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- assertEquals(listVariable,
processInstance.getContextInstance().getVariable("listVariable"));
- assertEquals(longVariable,
processInstance.getContextInstance().getVariable("longVariable"));
- assertEquals(stringVariable,
processInstance.getContextInstance().getVariable("stringVariable"));
- assertEquals(1,
getRecordCount("org.jbpm.context.exe.variableinstance.ByteArrayInstance",
null));
- assertEquals(1,
getRecordCount("org.jbpm.context.exe.variableinstance.LongInstance", null));
- assertEquals(1,
getRecordCount("org.jbpm.context.exe.variableinstance.StringInstance", null));
+ processInstance = saveAndReload(processInstance);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ assertEquals(listVariable, contextInstance.getVariable("listVariable"));
+ assertEquals(longVariable, contextInstance.getVariable("longVariable"));
+ assertEquals(stringVariable,
contextInstance.getVariable("stringVariable"));
+ assertEquals(1, getRecordCount(ByteArrayInstance.class));
+ assertEquals(1, getRecordCount(LongInstance.class));
+ assertEquals(1, getRecordCount(StringInstance.class));
+ processInstance.signal();
- processInstance.signal();
- processInstance = saveAndReload(processInstance);
-
assertNull(processInstance.getContextInstance().getVariable("listVariable"));
-
assertNull(processInstance.getContextInstance().getVariable("longVariable"));
-
assertNull(processInstance.getContextInstance().getVariable("stringVariable"));
- assertEquals(0,
getRecordCount("org.jbpm.context.exe.variableinstance.ByteArrayInstance",
null));
- assertEquals(0,
getRecordCount("org.jbpm.context.exe.variableinstance.LongInstance", null));
- assertEquals(0,
getRecordCount("org.jbpm.context.exe.variableinstance.StringInstance", null));
-
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+ contextInstance = processInstance.getContextInstance();
+ assertNull(contextInstance.getVariable("listVariable"));
+ assertNull(contextInstance.getVariable("longVariable"));
+ assertNull(contextInstance.getVariable("stringVariable"));
+ assertEquals(0, getRecordCount(ByteArrayInstance.class));
+ assertEquals(0, getRecordCount(LongInstance.class));
+ assertEquals(0, getRecordCount(StringInstance.class));
}
- protected int getRecordCount(String name, String where) {
- if (session != null) {
- return getRecords(session, name, where);
- }
- else {
- beginSessionTransaction();
- try {
- return getRecords(session, name, where);
- }
- finally {
- commitAndCloseSession();
- }
- }
+ private int getRecordCount(Class entity) {
+ Number count = (Number) session.createCriteria(entity)
+ .setProjection(Projections.rowCount())
+ .uniqueResult();
+ return count.intValue();
}
-
- protected int getRecords(Session session, String name, String where) {
- Number count = (Number) session.createQuery("select count(*) "
- + "from " + name + (where!=null ? " " + where :
"")).uniqueResult();
- return count.intValue();
- }
-
-
}
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 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -17,99 +17,90 @@
*/
public class JBPM983Test extends AbstractDbTestCase {
- private long processDefinitionId;
- private long subProcessDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
ProcessDefinition subProcessDefinition =
ProcessDefinition.parseXmlString(SUBPROCESS_XML);
- jbpmContext.deployProcessDefinition(subProcessDefinition);
- subProcessDefinitionId = subProcessDefinition.getId();
+ deployProcessDefinition(subProcessDefinition);
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(PROCESS_XML);
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
+ // [JBPM-2115] multiple threads not supported on DB2 < 9.7
+ // multiple threads not supported on HSQL
String dialect = getHibernateDialect();
- if (dialect.indexOf("DB2") == -1 // [JBPM-2115] multiple threads not
supported on DB2 < 9.7
- && dialect.indexOf("HSQL") == -1) { // multiple threads will
not be supported on HSQL
+ if (dialect.indexOf("DB2") == -1 &&
dialect.indexOf("HSQL") == -1) {
jbpmConfiguration.getJobExecutor().setNbrOfThreads(4);
}
}
protected void tearDown() throws Exception {
jbpmConfiguration.getJobExecutor().setNbrOfThreads(1);
-
- graphSession.deleteProcessDefinition(processDefinitionId);
- graphSession.deleteProcessDefinition(subProcessDefinitionId);
-
super.tearDown();
}
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'/>"
- + "</start-state>"
- + "<node name='fileCheck' async='true'>"
- + " <action name='action_filecheck' class='"
- + TestAction.class.getName()
- + "'>"
- + " </action>"
- + " <transition name='check-to-do'
to='doWhatever'/>"
- + "</node>"
- + "<node name='doWhatever' async='true'>"
- + " <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>"
- + "</end-state>"
- + "</process-definition>";
+ + "<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'/>"
+ + "</start-state>"
+ + "<node name='fileCheck' async='true'>"
+ + " <action name='action_filecheck' class='"
+ + TestAction.class.getName()
+ + "'>"
+ + " </action>"
+ + " <transition name='check-to-do'
to='doWhatever'/>"
+ + "</node>"
+ + "<node name='doWhatever' async='true'>"
+ + " <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>"
+ + "</end-state>"
+ + "</process-definition>";
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>"
- + ""
- + "<node name='fileCheck' async='true'>"
- + " <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 name='toNode2' to='node2'/>"
- + "</fork>"
- + "<process-state name='node1' async='true'>"
- + " <sub-process name='subprocess'/>"
- + " <transition name='node1toJoin1'
to='join1'/>"
- + "</process-state>"
- + "<process-state name='node2' async='true'>"
- + " <sub-process name='subprocess'/>"
- + " <transition name='node2toJoin1'
to='join1'/>"
- + "</process-state>"
- + "<join name='join1'>"
- + " <transition name='joinToEnd'
to='end-state-success'/>"
- + "</join>"
- + "<end-state name='end-state-success'>"
- + " <description>process finished normally</description>"
- + "</end-state>"
- + "</process-definition>";
+ + "<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>"
+ + ""
+ + "<node name='fileCheck' async='true'>"
+ + " <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 name='toNode2' to='node2'/>"
+ + "</fork>"
+ + "<process-state name='node1' async='true'>"
+ + " <sub-process name='subprocess'/>"
+ + " <transition name='node1toJoin1' to='join1'/>"
+ + "</process-state>"
+ + "<process-state name='node2' async='true'>"
+ + " <sub-process name='subprocess'/>"
+ + " <transition name='node2toJoin1' to='join1'/>"
+ + "</process-state>"
+ + "<join name='join1'>"
+ + " <transition name='joinToEnd'
to='end-state-success'/>"
+ + "</join>"
+ + "<end-state name='end-state-success'>"
+ + " <description>process finished normally</description>"
+ + "</end-state>"
+ + "</process-definition>";
static final int PROCESS_COUNT = 10;
public void testConcurrentJobs() throws Exception {
long[] processInstanceIds = new long[PROCESS_COUNT];
for (int i = 0; i < PROCESS_COUNT; i++) {
- newTransaction();
ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
processInstance.getContextInstance().setVariable("test",
"true");
processInstance.signal();
@@ -127,23 +118,23 @@
public static class TestAction implements ActionHandler {
- private final Log log = LogFactory.getLog(getClass());
-
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
- String process = executionContext.getProcessDefinition().getName() + ':'
- + executionContext.getProcessInstance().getId();
- String node = executionContext.getNode().getName();
- String token = executionContext.getToken().toString();
- log.info("BEGIN process=" + process + ",node=" + node +
",token=" + token);
+ Log log = LogFactory.getLog(JBPM983Test.class);
+ String line = executionContext.getProcessInstance()
+ + " | "
+ + executionContext.getNode()
+ + " | "
+ + executionContext.getToken();
+ log.info("BEGIN " + line);
for (int i = 0; i < 5; i++) {
- log.info("PROGRESS process=" + process + ",node=" + node +
",token=" + token);
+ log.info("PROGRESS " + line);
Thread.sleep(100);
}
- log.info("END process=" + process + ",node=" + node +
",token=" + token);
+ log.info("END " + line);
executionContext.leaveNode();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -25,92 +25,84 @@
protected void setUp() throws Exception {
super.setUp();
+ // [JBPM-2115] multiple threads not supported on DB2 < 9.7
+ // multiple threads not supported on HSQL
String dialect = getHibernateDialect();
- if (dialect.indexOf("DB2") == -1 // [JBPM-2115] multiple threads not
supported on DB2 < 9.7
- && dialect.indexOf("HSQL") == -1) { // multiple threads will
not be supported on HSQL
- getJbpmConfiguration().getJobExecutor().setNbrOfThreads(4);
+ if (dialect.indexOf("DB2") == -1 &&
dialect.indexOf("HSQL") == -1) {
+ jbpmConfiguration.getJobExecutor().setNbrOfThreads(4);
}
}
protected void tearDown() throws Exception {
- getJbpmConfiguration().getJobExecutor().setNbrOfThreads(1);
+ jbpmConfiguration.getJobExecutor().setNbrOfThreads(1);
super.tearDown();
}
public void testJobExecutor() {
deployProcessDefinition();
- try {
- startProcessInstances();
- processJobs(timeout);
- assertEquals(createExpectedResults(), collectedResults);
- }
- finally {
- deleteProcessDefinition();
- }
+ startProcessInstances();
+ processJobs(timeout);
+ assertEquals(createExpectedResults(), collectedResults);
}
void deployProcessDefinition() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='bulk
messages'>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <node name='a' async='true'>"
- + " <action class='" +
- AutomaticActivity.class.getName() +
- "' />" +
- " <transition to='b' />" +
- " </node>" +
- " <node name='b' async='true'>" +
- " <event type='node-enter'>" +
- " <action name='X' async='true' class='" +
- AsyncAction.class.getName() +
- "' />" +
- " </event>" +
- " <action class='" +
- AutomaticActivity.class.getName() +
- "' />" +
- " <transition to='c' />" +
- " </node>" +
- " <node name='c' async='true'>" +
- " <action class='" +
- AutomaticActivity.class.getName() +
- "' />" +
- " <transition to='d'>" +
- " <action name='Y' async='true' class='" +
- AsyncAction.class.getName() +
- "' />" +
- " </transition>" +
- " </node>" +
- " <node name='d' async='true'>" +
- " <action class='" +
- AutomaticActivity.class.getName() +
- "' />" +
- " <transition to='e' />" +
- " <event type='node-leave'>" +
- " <action name='Z' async='true' class='" +
- AsyncAction.class.getName() +
- "' />" +
- " </event>" +
- " </node>" +
- " <node name='e' async='true'>" +
- " <action class='" +
- AutomaticActivity.class.getName() +
- "' />" +
- " <transition to='end' />" +
- " </node>" +
- " <end-state name='end'/>" +
- "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
-
- newTransaction();
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <node name='a' async='true'>"
+ + " <action class='"
+ + AutomaticActivity.class.getName()
+ + "' />"
+ + " <transition to='b' />"
+ + " </node>"
+ + " <node name='b' async='true'>"
+ + " <event type='node-enter'>"
+ + " <action name='X' async='true' class='"
+ + AsyncAction.class.getName()
+ + "' />"
+ + " </event>"
+ + " <action class='"
+ + AutomaticActivity.class.getName()
+ + "' />"
+ + " <transition to='c' />"
+ + " </node>"
+ + " <node name='c' async='true'>"
+ + " <action class='"
+ + AutomaticActivity.class.getName()
+ + "' />"
+ + " <transition to='d'>"
+ + " <action name='Y' async='true' class='"
+ + AsyncAction.class.getName()
+ + "' />"
+ + " </transition>"
+ + " </node>"
+ + " <node name='d' async='true'>"
+ + " <action class='"
+ + AutomaticActivity.class.getName()
+ + "' />"
+ + " <transition to='e' />"
+ + " <event type='node-leave'>"
+ + " <action name='Z' async='true' class='"
+ + AsyncAction.class.getName()
+ + "' />"
+ + " </event>"
+ + " </node>"
+ + " <node name='e' async='true'>"
+ + " <action class='"
+ + AutomaticActivity.class.getName()
+ + "' />"
+ + " <transition to='end' />"
+ + " </node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
}
void startProcessInstances() {
for (int i = 0; i < nbrOfConcurrentProcessExecutions; i++) {
ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("bulk messages");
processInstance.signal();
-
- newTransaction();
}
}
@@ -120,7 +112,8 @@
Set expectedResults = new TreeSet();
NumberFormat formatter = NumberFormat.getIntegerInstance();
-
formatter.setMinimumIntegerDigits(Integer.toString(nbrOfConcurrentProcessExecutions).length());
+ formatter.setMinimumIntegerDigits(Integer.toString(nbrOfConcurrentProcessExecutions)
+ .length());
StringBuffer text = new StringBuffer();
FieldPosition position = new FieldPosition(NumberFormat.INTEGER_FIELD);
@@ -138,11 +131,6 @@
return expectedResults;
}
- void deleteProcessDefinition() {
- ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition("bulk messages");
- graphSession.deleteProcessDefinition(processDefinition);
- }
-
public static class AutomaticActivity implements ActionHandler {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/AvailableTransitionsDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -13,79 +13,70 @@
public class AvailableTransitionsDbTest extends AbstractDbTestCase {
public void testSimpleAvailableTransitions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='conditionalavailability'
initial='start'>" +
- " <state name='start'>" +
- " <transition name='high' to='theone'>" +
- " <condition expression='#{a > 0}' />" +
- " </transition>" +
- " <transition name='medium' to='theone'>" +
- " <condition expression='#{a == 0}' />" +
- " </transition>" +
- " <transition name='low' to='theother'>" +
- " <condition expression='#{a <= 0}' />" +
- " </transition>" +
- " <transition name='alwaysavailable'
to='theother'/>" +
- " </state>" +
- " <state name='theone'/>" +
- " <state name='theother'/>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionalavailability");
- processInstance = saveAndReload(processInstance);
-
- Set availableTransitions =
processInstance.getRootToken().getAvailableTransitions();
- assertEquals(1, availableTransitions.size());
- ContextInstance contextInstance = processInstance.getContextInstance();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='conditionalavailability' initial='start'>"
+ + " <state name='start'>"
+ + " <transition name='high' to='theone'>"
+ + " <condition expression='#{a > 0}' />"
+ + " </transition>"
+ + " <transition name='medium' to='theone'>"
+ + " <condition expression='#{a == 0}' />"
+ + " </transition>"
+ + " <transition name='low' to='theother'>"
+ + " <condition expression='#{a <= 0}' />"
+ + " </transition>"
+ + " <transition name='alwaysavailable'
to='theother'/>"
+ + " </state>"
+ + " <state name='theone'/>"
+ + " <state name='theother'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- contextInstance.setVariable("a", new Integer(-3));
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
-
- Set expectedTransitionNames = new HashSet();
- expectedTransitionNames.add("low");
- expectedTransitionNames.add("alwaysavailable");
-
- availableTransitions = processInstance.getRootToken().getAvailableTransitions();
- assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionalavailability");
+ processInstance = saveAndReload(processInstance);
- contextInstance.setVariable("a", new Integer(0));
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
-
- expectedTransitionNames = new HashSet();
- expectedTransitionNames.add("low");
- expectedTransitionNames.add("medium");
- expectedTransitionNames.add("alwaysavailable");
-
- availableTransitions = processInstance.getRootToken().getAvailableTransitions();
- assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
+ Set availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(1, availableTransitions.size());
+ ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", new Integer(4));
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
-
- expectedTransitionNames = new HashSet();
- expectedTransitionNames.add("high");
- expectedTransitionNames.add("alwaysavailable");
-
- availableTransitions = processInstance.getRootToken().getAvailableTransitions();
- assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ contextInstance.setVariable("a", new Integer(-3));
+ processInstance = saveAndReload(processInstance);
+ contextInstance = processInstance.getContextInstance();
+
+ Set expectedTransitionNames = new HashSet();
+ expectedTransitionNames.add("low");
+ expectedTransitionNames.add("alwaysavailable");
+
+ availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
+
+ contextInstance.setVariable("a", new Integer(0));
+ processInstance = saveAndReload(processInstance);
+ contextInstance = processInstance.getContextInstance();
+
+ expectedTransitionNames = new HashSet();
+ expectedTransitionNames.add("low");
+ expectedTransitionNames.add("medium");
+ expectedTransitionNames.add("alwaysavailable");
+
+ availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
+
+ contextInstance.setVariable("a", new Integer(4));
+ processInstance = saveAndReload(processInstance);
+ contextInstance = processInstance.getContextInstance();
+
+ expectedTransitionNames = new HashSet();
+ expectedTransitionNames.add("high");
+ expectedTransitionNames.add("alwaysavailable");
+
+ availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
}
public Set getTransitionNames(Set availableTransitions) {
Set transitionNames = new HashSet();
- if (availableTransitions!=null) {
- Iterator iter = availableTransitions.iterator();
- while (iter.hasNext()) {
+ if (availableTransitions != null) {
+ for (Iterator iter = availableTransitions.iterator(); iter.hasNext();) {
Transition transition = (Transition) iter.next();
transitionNames.add(transition.getName());
}
@@ -94,56 +85,46 @@
}
public void testSuperStateAvailableTransitions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='conditionalavailability'
initial='start'>" +
- " <super-state name='start'>" +
- " <state name='go'>" +
- " <transition name='inneralwaysavailable'
to='../theother' />" +
- " <transition name='five' to='../theone'>" +
- " <condition expression='#{a == 5}' />" +
- " </transition>" +
- " </state>" +
- " <transition name='high' to='theone'>" +
- " <condition expression='#{a > 0}' />" +
- " </transition>" +
- " <transition name='medium' to='theone'>" +
- " <condition expression='#{a == 0}' />" +
- " </transition>" +
- " <transition name='low' to='theother'>" +
- " <condition expression='#{a <= 0}' />" +
- " </transition>" +
- " <transition name='outeralwaysavailable'
to='theother'/>" +
- " </super-state>" +
- " <state name='theone'/>" +
- " <state name='theother'/>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionalavailability");
- Set availableTransitions =
processInstance.getRootToken().getAvailableTransitions();
- assertEquals(2, availableTransitions.size());
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='conditionalavailability' initial='start'>"
+ + " <super-state name='start'>"
+ + " <state name='go'>"
+ + " <transition name='inneralwaysavailable'
to='../theother' />"
+ + " <transition name='five' to='../theone'>"
+ + " <condition expression='#{a == 5}' />"
+ + " </transition>"
+ + " </state>"
+ + " <transition name='high' to='theone'>"
+ + " <condition expression='#{a > 0}' />"
+ + " </transition>"
+ + " <transition name='medium' to='theone'>"
+ + " <condition expression='#{a == 0}' />"
+ + " </transition>"
+ + " <transition name='low' to='theother'>"
+ + " <condition expression='#{a <= 0}' />"
+ + " </transition>"
+ + " <transition name='outeralwaysavailable'
to='theother'/>"
+ + " </super-state>"
+ + " <state name='theone'/>"
+ + " <state name='theother'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", new Integer(5));
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("conditionalavailability");
+ Set availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(2, availableTransitions.size());
- Set expectedTransitionNames = new HashSet();
- expectedTransitionNames.add("five");
- expectedTransitionNames.add("inneralwaysavailable");
- expectedTransitionNames.add("outeralwaysavailable");
- expectedTransitionNames.add("high");
-
- availableTransitions = processInstance.getRootToken().getAvailableTransitions();
- assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", new Integer(5));
+ processInstance = saveAndReload(processInstance);
+ contextInstance = processInstance.getContextInstance();
- }
+ Set expectedTransitionNames = new HashSet();
+ expectedTransitionNames.add("five");
+ expectedTransitionNames.add("inneralwaysavailable");
+ expectedTransitionNames.add("outeralwaysavailable");
+ expectedTransitionNames.add("high");
+ availableTransitions = processInstance.getRootToken().getAvailableTransitions();
+ assertEquals(expectedTransitionNames, getTransitionNames(availableTransitions));
+ }
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveClassLoadingDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveClassLoadingDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveClassLoadingDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -40,9 +40,9 @@
String getTestClassesDir() {
return ProcessArchiveDeploymentDbTest.class.getProtectionDomain()
- .getCodeSource()
- .getLocation()
- .getFile();
+ .getCodeSource()
+ .getLocation()
+ .getFile();
}
public void testExecuteResourceUsingProcess() throws Exception {
@@ -50,8 +50,10 @@
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/resourceprocess.xml");
- addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/ResourceAction.class",
"org/jbpm/jpdl/par/ResourceAction.class");
- addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/classresource.txt",
"org/jbpm/jpdl/par/classresource.txt");
+ addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/ResourceAction.class",
+ "org/jbpm/jpdl/par/ResourceAction.class");
+ addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/classresource.txt",
+ "org/jbpm/jpdl/par/classresource.txt");
addEntry(zipOutputStream, "archiveresource.txt",
"org/jbpm/jpdl/par/archiveresource.txt");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
@@ -66,7 +68,7 @@
assertTrue(new File(resourceOriginalName).renameTo(new File(resourceTmpName)));
String archiveResourceOriginalName = getTestClassesDir()
- + "org/jbpm/jpdl/par/archiveresource.txt";
+ + "org/jbpm/jpdl/par/archiveresource.txt";
String archiveResourceTmpName = archiveResourceOriginalName +
".hiddenFromTestClasspath";
assertTrue(new File(archiveResourceOriginalName).renameTo(new
File(archiveResourceTmpName)));
@@ -85,17 +87,10 @@
// deploy the process archive
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinition =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("resourceprocess");
- processInstance.signal();
- jbpmContext.save(processInstance);
- }
- finally {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("resourceprocess");
+ processInstance.signal();
}
finally {
// put the files back into original position
@@ -109,20 +104,25 @@
// create a process archive
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
- addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/instantiateprocess.xml");
- addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateAction.class",
"org/jbpm/jpdl/par/InstantiateAction.class");
- addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateClass.class",
"org/jbpm/jpdl/par/InstantiateClass.class");
+ addEntry(zipOutputStream, "processdefinition.xml",
+ "org/jbpm/jpdl/par/instantiateprocess.xml");
+ addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateAction.class",
+ "org/jbpm/jpdl/par/InstantiateAction.class");
+ addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateClass.class",
+ "org/jbpm/jpdl/par/InstantiateClass.class");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
// move the files
String instantiateActionOriginalName = getTestClassesDir()
- + "org/jbpm/jpdl/par/InstantiateAction.class";
- String instantiateActionTmpName = instantiateActionOriginalName +
".hiddenFromTestClasspath";
- assertTrue(new File(instantiateActionOriginalName).renameTo(new
File(instantiateActionTmpName)));
+ + "org/jbpm/jpdl/par/InstantiateAction.class";
+ String instantiateActionTmpName = instantiateActionOriginalName
+ + ".hiddenFromTestClasspath";
+ assertTrue(new File(instantiateActionOriginalName).renameTo(new File(
+ instantiateActionTmpName)));
String instantiateClassOriginalName = getTestClassesDir()
- + "org/jbpm/jpdl/par/InstantiateClass.class";
+ + "org/jbpm/jpdl/par/InstantiateClass.class";
String instantiateClassTmpName = instantiateClassOriginalName +
".hiddenFromTestClasspath";
assertTrue(new File(instantiateClassOriginalName).renameTo(new
File(instantiateClassTmpName)));
@@ -147,17 +147,10 @@
// deploy the process archive
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinition =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("instantiateprocess");
- processInstance.signal();
- jbpmContext.save(processInstance);
- }
- finally {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("instantiateprocess");
+ processInstance.signal();
}
finally {
// put the files back into original position
@@ -170,16 +163,20 @@
// create a process archive
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
- addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/instantiateprocess.xml");
- addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateAction.class",
"org/jbpm/jpdl/par/InstantiateAction.class");
+ addEntry(zipOutputStream, "processdefinition.xml",
+ "org/jbpm/jpdl/par/instantiateprocess.xml");
+ addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/InstantiateAction.class",
+ "org/jbpm/jpdl/par/InstantiateAction.class");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
// move the files
String instantiateActionOriginalName = getTestClassesDir()
- + "org/jbpm/jpdl/par/InstantiateAction.class";
- String instantiateActionTmpName = instantiateActionOriginalName +
".hiddenFromTestClasspath";
- assertTrue(new File(instantiateActionOriginalName).renameTo(new
File(instantiateActionTmpName)));
+ + "org/jbpm/jpdl/par/InstantiateAction.class";
+ String instantiateActionTmpName = instantiateActionOriginalName
+ + ".hiddenFromTestClasspath";
+ assertTrue(new File(instantiateActionOriginalName).renameTo(new File(
+ instantiateActionTmpName)));
try {
ClassLoader testClassLoader =
ProcessArchiveClassLoadingDbTest.class.getClassLoader();
@@ -196,17 +193,10 @@
// deploy the process archive
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinition =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("instantiateprocess");
- processInstance.signal();
- jbpmContext.save(processInstance);
- }
- finally {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("instantiateprocess");
+ processInstance.signal();
}
finally {
// put the files back into original position
@@ -214,8 +204,8 @@
}
}
- private static void addEntry(ZipOutputStream zipOutputStream, String entryName, String
resource)
- throws IOException {
+ private static void addEntry(ZipOutputStream zipOutputStream, String entryName,
+ String resource) throws IOException {
InputStream inputStream = ClassLoaderUtil.getStream(resource);
byte[] bytes = IoUtil.readBytes(inputStream);
addEntry(zipOutputStream, entryName, bytes);
@@ -223,7 +213,7 @@
}
private static void addEntry(ZipOutputStream zipOutputStream, String entryName, byte[]
content)
- throws IOException {
+ throws IOException {
ZipEntry zipEntry = new ZipEntry(entryName);
zipOutputStream.putNextEntry(zipEntry);
zipOutputStream.write(content);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,124 +36,91 @@
import org.jbpm.util.ClassLoaderUtil;
import org.jbpm.util.IoUtil;
-public class ProcessArchiveDeploymentDbTest extends AbstractDbTestCase
-{
+public class ProcessArchiveDeploymentDbTest extends AbstractDbTestCase {
- String getTestClassesDir()
- {
- return
ProcessArchiveDeploymentDbTest.class.getProtectionDomain().getCodeSource().getLocation().getFile();
- }
-
- public void testDeployProcess() throws Exception
- {
+ public void testDeployProcess() throws Exception {
// create a process archive
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
- addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/deployableprocess.xml");
+ addEntry(zipOutputStream, "processdefinition.xml",
+ "org/jbpm/jpdl/par/deployableprocess.xml");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
// deploy the process archive
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinition =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinition);
-
- try
- {
- newTransaction();
+ deployProcessDefinition(processDefinition);
- List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
- assertEquals(1, allProcessDefinitions.size());
-
- processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
- assertEquals("the deployable process", processDefinition.getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
+ assertEquals(1, allProcessDefinitions.size());
+
+ processDefinition = (ProcessDefinition) allProcessDefinitions.get(0);
+ assertEquals("the deployable process", processDefinition.getName());
}
- public void testDeployProcessWithFile() throws Exception
- {
+ public void testDeployProcessWithFile() throws Exception {
// create a process archive
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
- addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/deployableprocess.xml");
- addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class",
"org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
+ addEntry(zipOutputStream, "processdefinition.xml",
+ "org/jbpm/jpdl/par/deployableprocess.xml");
+ addEntry(zipOutputStream,
"classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class",
+ "org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinition =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinition);
-
- try
- {
- newTransaction();
+ deployProcessDefinition(processDefinition);
- List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
- assertEquals(1, allProcessDefinitions.size());
- processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
- byte[] processBytes =
processDefinition.getFileDefinition().getBytes("classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
- byte[] expectedBytes =
IoUtil.readBytes(ClassLoaderUtil.getStream("org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class"));
+ List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
+ assertEquals(1, allProcessDefinitions.size());
+ processDefinition = (ProcessDefinition) allProcessDefinitions.get(0);
+ byte[] processBytes = processDefinition.getFileDefinition().getBytes(
+ "classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
+ byte[] expectedBytes =
IoUtil.readBytes(ClassLoaderUtil.getStream("org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class"));
- assertTrue(Arrays.equals(expectedBytes, processBytes));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertTrue(Arrays.equals(expectedBytes, processBytes));
}
- public void testDeployTwoVersionOfProcess() throws Exception
- {
+ public void testDeployTwoVersionOfProcess() throws Exception {
// create a process archive
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
- addEntry(zipOutputStream, "processdefinition.xml",
"org/jbpm/jpdl/par/deployableprocess.xml");
+ addEntry(zipOutputStream, "processdefinition.xml",
+ "org/jbpm/jpdl/par/deployableprocess.xml");
zipOutputStream.close();
byte[] zipBytes = baos.toByteArray();
// deploy the saved process archive
ZipInputStream zipInputStream = new ZipInputStream(new
ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinitionOne =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinitionOne);
+ deployProcessDefinition(processDefinitionOne);
- newTransaction();
-
// deploy the saved process file again
zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseParZipInputStream(zipInputStream);
- jbpmContext.deployProcessDefinition(processDefinitionTwo);
+ deployProcessDefinition(processDefinitionTwo);
String processDefinitionName = processDefinitionTwo.getName();
assertEquals(processDefinitionName, processDefinitionOne.getName());
- newTransaction();
-
- try
- {
- assertEquals(2,
graphSession.findAllProcessDefinitionVersions(processDefinitionName).size());
- assertEquals(2,
graphSession.findLatestProcessDefinition(processDefinitionName).getVersion());
- }
- finally
- {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionOne.getId());
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionTwo.getId());
- }
+ assertEquals(2,
graphSession.findAllProcessDefinitionVersions(processDefinitionName).size());
+ assertEquals(2, graphSession.findLatestProcessDefinition(processDefinitionName)
+ .getVersion());
}
- private static void addEntry(ZipOutputStream zipOutputStream, String entryName, String
resource) throws IOException
- {
+ private static void addEntry(ZipOutputStream zipOutputStream, String entryName,
+ String resource) throws IOException {
InputStream inputStream = ClassLoaderUtil.getStream(resource);
byte[] bytes = IoUtil.readBytes(inputStream);
addEntry(zipOutputStream, entryName, bytes);
inputStream.close();
}
- private static void addEntry(ZipOutputStream zipOutputStream, String entryName, byte[]
content) throws IOException
- {
+ private static void addEntry(ZipOutputStream zipOutputStream, String entryName, byte[]
content)
+ throws IOException {
ZipEntry zipEntry = new ZipEntry(entryName);
zipOutputStream.putNextEntry(zipEntry);
zipOutputStream.write(content);
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ResourceAction.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ResourceAction.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/par/ResourceAction.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -26,7 +26,7 @@
import java.io.InputStreamReader;
import java.net.URL;
-import junit.framework.TestCase;
+import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -40,16 +40,16 @@
static Log log = LogFactory.getLog(ProcessArchiveClassLoadingDbTest.class);
public void execute(ExecutionContext executionContext) throws Exception {
- TestCase.assertEquals("org.jbpm.jpdl.par",
getClass().getPackage().getName());
+ Assert.assertEquals("org.jbpm.jpdl.par",
getClass().getPackage().getName());
URL resource = getClass().getResource("classresource.txt");
InputStream stream = resource.openStream();
String classResourceUrl = read(stream);
- TestCase.assertEquals("the class resource content", classResourceUrl);
+ Assert.assertEquals("the class resource content", classResourceUrl);
stream = getClass().getResourceAsStream("classresource.txt");
String classResourceStream = read(stream);
- TestCase.assertEquals("the class resource content", classResourceStream);
+ Assert.assertEquals("the class resource content", classResourceStream);
ClassLoader resourceActionClassLoader = ResourceAction.class.getClassLoader();
log.info("resource action classloader: " + getClass().getClassLoader());
@@ -58,29 +58,29 @@
resource =
resourceActionClassLoader.getResource("org/jbpm/jpdl/par/classresource.txt");
stream = resource.openStream();
String classLoaderResourceUrl = read(stream);
- TestCase.assertEquals("the class resource content",
classLoaderResourceUrl);
+ Assert.assertEquals("the class resource content", classLoaderResourceUrl);
stream =
resourceActionClassLoader.getResourceAsStream("org/jbpm/jpdl/par/classresource.txt");
String classLoaderResourceStream = read(stream);
- TestCase.assertEquals("the class resource content",
classLoaderResourceStream);
+ Assert.assertEquals("the class resource content",
classLoaderResourceStream);
resource = getClass().getResource("//archiveresource.txt");
stream = resource.openStream();
String archiveResourceUrl = read(stream);
- TestCase.assertEquals("the archive resource content", archiveResourceUrl);
+ Assert.assertEquals("the archive resource content", archiveResourceUrl);
stream = getClass().getResourceAsStream("//archiveresource.txt");
String archiveResourceStream = read(stream);
- TestCase.assertEquals("the archive resource content",
archiveResourceStream);
+ Assert.assertEquals("the archive resource content",
archiveResourceStream);
resource = resourceActionClassLoader.getResource("//archiveresource.txt");
stream = resource.openStream();
String archiveClassLoaderResourceUrl = read(stream);
- TestCase.assertEquals("the archive resource content",
archiveClassLoaderResourceUrl);
+ Assert.assertEquals("the archive resource content",
archiveClassLoaderResourceUrl);
stream =
resourceActionClassLoader.getResourceAsStream("//archiveresource.txt");
String archiveClassLoaderResourceStream = read(stream);
- TestCase.assertEquals("the archive resource content",
archiveClassLoaderResourceStream);
+ Assert.assertEquals("the archive resource content",
archiveClassLoaderResourceStream);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
log.info("resource action context classloader: " + contextClassLoader);
@@ -88,11 +88,11 @@
resource = contextClassLoader.getResource("//archiveresource.txt");
stream = resource.openStream();
String contextClassLoaderResourceUrl = read(stream);
- TestCase.assertEquals("the archive resource content",
contextClassLoaderResourceUrl);
+ Assert.assertEquals("the archive resource content",
contextClassLoaderResourceUrl);
stream = contextClassLoader.getResourceAsStream("//archiveresource.txt");
String contextClassLoaderResourceStream = read(stream);
- TestCase.assertEquals("the archive resource content",
contextClassLoaderResourceStream);
+ Assert.assertEquals("the archive resource content",
contextClassLoaderResourceStream);
try {
getClass().getResourceAsStream("unexistingresource.txt");
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp13MiWithoutSynchronizationTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp13MiWithoutSynchronizationTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp13MiWithoutSynchronizationTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -41,7 +41,7 @@
private ProcessDefinition pd = null;
private ProcessInstance pi = null;
- private static int scenario = 0;
+ static int scenario = 0;
public static class CreateTasks implements ActionHandler {
private static final long serialVersionUID = 1L;
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp18InterleavedParallelRoutingTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp18InterleavedParallelRoutingTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/patterns/Wfp18InterleavedParallelRoutingTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -35,7 +35,7 @@
*/
public class Wfp18InterleavedParallelRoutingTest extends AbstractJbpmTestCase {
- private int scenario = -1;
+ int scenario = -1;
private ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state name='a'>" +
@@ -69,7 +69,7 @@
private State d = (State) processDefinition.getNode("d");
private State e = (State) processDefinition.getNode("e");
- private static String[][] scenarioSequences = new String[][] {
+ static String[][] scenarioSequences = new String[][] {
new String[] {"b", "c", "d"},
new String[] {"b", "d", "c"},
new String[] {"c", "b", "d"},
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -2,7 +2,6 @@
import java.util.List;
-
import org.jbpm.JbpmConfiguration;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
@@ -25,14 +24,13 @@
public void testLoggingconfiguration() {
ProcessDefinition processDefinition = new ProcessDefinition("logging");
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
+
ProcessInstance processInstance =
jbpmContext.newProcessInstance("logging");
processInstance.getContextInstance().setVariable("a", "1");
newTransaction();
List logs = session.createCriteria(ProcessLog.class).list();
assertEquals(0, logs.size());
-
- graphSession.deleteProcessDefinition(processDefinition.getId());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/MailTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/MailTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/MailTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -19,7 +19,7 @@
public class MailTest extends AbstractDbTestCase {
- private static SimpleSmtpServer server;
+ static SimpleSmtpServer server;
private static final String XML_DECL = "<?xml
version='1.0'?>";
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,79 +28,66 @@
import com.dumbster.smtp.SimpleSmtpServer;
import com.dumbster.smtp.SmtpMessage;
-public class TaskMailTest extends AbstractJbpmTestCase
-{
+public class TaskMailTest extends AbstractJbpmTestCase {
private static final int SMTP_PORT = 23583;
- static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
- "<jbpm-configuration>" +
- " <jbpm-context>" +
- " <service name='scheduler'
factory='org.jbpm.mail.TaskMailTest$TestSchedulerService' />" +
- " </jbpm-context>" +
- " <string name='resource.mail.properties'
value='org/jbpm/mail/test.mail.properties' />" +
- " <bean name='jbpm.mail.address.resolver'
class='org.jbpm.mail.MailTest$TestAddressResolver' singleton='true'
/>" +
- "</jbpm-configuration>"
- );
+ static JbpmConfiguration jbpmConfiguration =
JbpmConfiguration.parseXmlString("<jbpm-configuration>"
+ + " <jbpm-context>"
+ + " <service name='scheduler'
factory='org.jbpm.mail.TaskMailTest$TestSchedulerService' />"
+ + " </jbpm-context>"
+ + " <string name='resource.mail.properties'
value='org/jbpm/mail/test.mail.properties' />"
+ + " <bean name='jbpm.mail.address.resolver'
class='org.jbpm.mail.MailTest$TestAddressResolver' singleton='true'
/>"
+ + "</jbpm-configuration>");
- private static SimpleSmtpServer server;
+ static SimpleSmtpServer server;
private JbpmContext jbpmContext;
- public static Test suite()
- {
- return new TestSetup(new TestSuite(TaskMailTest.class))
- {
- protected void setUp() throws Exception
- {
+ public static Test suite() {
+ return new TestSetup(new TestSuite(TaskMailTest.class)) {
+ protected void setUp() throws Exception {
server = MailTest.startSmtpServer(SMTP_PORT);
}
- protected void tearDown() throws Exception
- {
+ protected void tearDown() throws Exception {
server.stop();
}
};
}
-
- protected void setUp() throws Exception
- {
+
+ protected void setUp() throws Exception {
super.setUp();
TestSchedulerService testSchedulerService = (TestSchedulerService)
jbpmConfiguration.getServiceFactory("scheduler");
testSchedulerService.reset();
jbpmContext = jbpmConfiguration.createJbpmContext();
}
- protected void tearDown() throws Exception
- {
+ protected void tearDown() throws Exception {
jbpmContext.close();
super.tearDown();
}
- public static class RoundRobinAssigner implements AssignmentHandler
- {
+ public static class RoundRobinAssigner implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception
- {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
assignable.setActorId("you");
}
}
- public void testTaskInstanceNotification()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='laundry' notify='yes'>" +
- " <assignment
class='org.jbpm.mail.TaskMailTest$RoundRobinAssigner' />" +
- " </task>" +
- " <transition to='b' />" +
- " </task-node>" +
- " <state name='b' />" +
- "</process-definition>"
- );
+ public void testTaskInstanceNotification() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='laundry' notify='yes'>"
+ + " <assignment
class='org.jbpm.mail.TaskMailTest$RoundRobinAssigner' />"
+ + " </task>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <state name='b' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
@@ -108,143 +95,138 @@
Iterator emailIter = server.getReceivedEmail();
SmtpMessage email = (SmtpMessage) emailIter.next();
emailIter.remove();
-
+
assertEquals("you(a)example.domain", email.getHeaderValue("To"));
assertEquals("Task 'laundry'",
email.getHeaderValue("Subject"));
- assertEquals(-1, email.getBody().indexOf("#{")); // just to make sure that
all expressions were resolved
-
assertTrue(-1!=email.getBody().indexOf("http://localhost:8080/jbpm/home?taskId=0"));
+ assertEquals(-1, email.getBody().indexOf("#{")); // just to make sure that
+ // all expressions were
+ // resolved
+ assertTrue(-1 !=
email.getBody().indexOf("http://localhost:8080/jbpm/home?taskId=0"));
}
-
- public static class TestSchedulerService implements SchedulerService, ServiceFactory
- {
+
+ public static class TestSchedulerService implements SchedulerService, ServiceFactory {
private static final long serialVersionUID = 1L;
List createdTimers = null;
List cancelledTimers = null;
- public TestSchedulerService()
- {
+ public TestSchedulerService() {
reset();
}
- public void reset()
- {
+ public void reset() {
createdTimers = new ArrayList();
cancelledTimers = new ArrayList();
}
- public void createTimer(Timer timer)
- {
+ public void createTimer(Timer timer) {
createdTimers.add(timer);
}
- public void deleteTimer(Timer timer)
- {
+ public void deleteTimer(Timer timer) {
cancelledTimers.add(timer.getName());
}
- public void deleteTimersByName(String timerName, Token token)
- {
+ public void deleteTimersByName(String timerName, Token token) {
cancelledTimers.add(timerName);
}
- public void deleteTimersByProcessInstance(ProcessInstance processInstance)
- {
+ public void deleteTimersByProcessInstance(ProcessInstance processInstance) {
}
- public Service openService()
- {
+ public Service openService() {
return this;
}
- public void close()
- {
+ public void close() {
}
}
- public void testTaskInstanceReminder() throws Exception
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='laundry'>" +
- " <assignment
class='org.jbpm.mail.TaskMailTest$RoundRobinAssigner' />" +
- " <reminder duedate='0 seconds' repeat='60 seconds'
/>" +
- " </task>" +
- " <transition to='b' />" +
- " </task-node>" +
- " <state name='b' />" +
- "</process-definition>"
- );
+ public void testTaskInstanceReminder() throws Exception {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='laundry'>"
+ + " <assignment
class='org.jbpm.mail.TaskMailTest$RoundRobinAssigner' />"
+ + " <reminder duedate='0 seconds' repeat='60 seconds'
/>"
+ + " </task>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <state name='b' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
assertTrue(server.getReceivedEmailSize() == 0);
- TestSchedulerService testSchedulerService = (TestSchedulerService)
jbpmContext.getServices().getService("scheduler");
+ TestSchedulerService testSchedulerService = (TestSchedulerService)
jbpmContext.getServices()
+ .getService("scheduler");
assertEquals(1, testSchedulerService.createdTimers.size());
Timer createdTimer = (Timer) testSchedulerService.createdTimers.get(0);
Delegation delegation = createdTimer.getAction().getActionDelegation();
assertEquals("org.jbpm.mail.Mail", delegation.getClassName());
assertEquals("<template>task-reminder</template>",
delegation.getConfiguration());
-
+
createdTimer.execute(jbpmContext);
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
SmtpMessage email = (SmtpMessage) emailIter.next();
emailIter.remove();
-
+
assertEquals("you(a)example.domain", email.getHeaderValue("To"));
assertEquals("Task 'laundry' !",
email.getHeaderValue("Subject"));
- assertEquals(-1, email.getBody().indexOf("#{")); // just to make sure that
all expressions were resolved
-
assertTrue(-1!=email.getBody().indexOf("http://localhost:8080/jbpm/home?taskId=0"));
-
+ assertEquals(-1, email.getBody().indexOf("#{")); // just to make sure that
+ // all expressions were
+ // resolved
+ assertTrue(-1 !=
email.getBody().indexOf("http://localhost:8080/jbpm/home?taskId=0"));
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance taskInstance = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance taskInstance = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
assertEquals(0, testSchedulerService.cancelledTimers.size());
taskInstance.end();
assertEquals(1, testSchedulerService.cancelledTimers.size());
}
-
- public static class GhostAssigner implements AssignmentHandler
- {
+
+ public static class GhostAssigner implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception
- {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
assignable.setActorId("ghost");
}
}
public void testUnexistingUser() throws Exception {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='laundry' notify='true'>" +
- " <assignment class='org.jbpm.mail.TaskMailTest$GhostAssigner'
/>" +
- " </task>" +
- " <transition to='b' />" +
- " </task-node>" +
- " <state name='b' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='laundry' notify='true'>"
+ + " <assignment
class='org.jbpm.mail.TaskMailTest$GhostAssigner' />"
+ + " </task>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <state name='b' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
assertEquals(0, server.getReceivedEmailSize());
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance taskInstance = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
- // ghost will get null as an email address in the
org.jbpm.mail.MailTest$TestAddressResolver
+ TaskInstance taskInstance = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+
+ // ghost will get null as an email address in the
+ // org.jbpm.mail.MailTest$TestAddressResolver
assertEquals("ghost", taskInstance.getActorId());
-
+
taskInstance.end();
assertEquals(0, server.getReceivedEmailSize());
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/Jdbc.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/Jdbc.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/Jdbc.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -42,7 +42,7 @@
}
}
- private static Class[] recordedConnectionInterfaces = new Class[]{Connection.class,
Recorded.class};
+ static Class[] recordedConnectionInterfaces = new Class[]{Connection.class,
Recorded.class};
public static class MockDataSource extends jdbcDataSource {
private static final long serialVersionUID = 1L;
public MockDataSource() {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/msg/command/AsyncExecutionDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -45,56 +45,50 @@
}
public void testAsyncExecution() throws Exception {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='async
exec'>" +
- " <start-state>" +
- " <transition to='one' />" +
- " </start-state>" +
- " <node async='true' name='one'>" +
- " <action class='" +
- RecordNode.class.getName() +
- "' />" +
- " <transition to='two' />" +
- " </node>" +
- " <node async='exclusive' name='two'>" +
- " <action class='" +
- RecordNode.class.getName() +
- "' />" +
- " <transition to='three' />" +
- " </node>" +
- " <node async='true' name='three'>" +
- " <action class='" +
- RecordNode.class.getName() +
- "' />" +
- " <transition to='end' />" +
- " </node>" +
- " <end-state name='end' />" +
- "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='async
exec'>"
+ + " <start-state>"
+ + " <transition to='one' />"
+ + " </start-state>"
+ + " <node async='true' name='one'>"
+ + " <action class='"
+ + RecordNode.class.getName()
+ + "' />"
+ + " <transition to='two' />"
+ + " </node>"
+ + " <node async='exclusive' name='two'>"
+ + " <action class='"
+ + RecordNode.class.getName()
+ + "' />"
+ + " <transition to='three' />"
+ + " </node>"
+ + " <node async='true' name='three'>"
+ + " <action class='"
+ + RecordNode.class.getName()
+ + "' />"
+ + " <transition to='end' />"
+ + " </node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- assertEquals("one", processInstance.getRootToken().getNode().getName());
- assertEquals(1, getNbrOfJobsAvailable());
+ assertEquals("one", processInstance.getRootToken().getNode().getName());
+ assertEquals(1, getNbrOfJobsAvailable());
- processJobs(TIMEOUT);
+ processJobs(TIMEOUT);
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertTrue(processInstance.hasEnded());
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertTrue(processInstance.hasEnded());
- ContextInstance contextInstance = processInstance.getContextInstance();
- String[] nodes = { "one", "two", "three" };
- for (int i = 0; i < nodes.length; i++) {
- Integer value = (Integer) contextInstance.getVariable(nodes[i]);
- assertEquals(i + 1, value.intValue());
- }
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ String[] nodes = { "one", "two", "three" };
+ for (int i = 0; i < nodes.length; i++) {
+ Integer value = (Integer) contextInstance.getVariable(nodes[i]);
+ assertEquals(i + 1, value.intValue());
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
}
public static class RecordAction implements ActionHandler {
@@ -107,60 +101,54 @@
public void testAsyncAction() throws Exception {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='async
action'>"
- + " <event type='process-start'>"
- + " <action name='sa' async='true' class='"
+
- RecordAction.class.getName() +
- "'/>" +
- " <action name='se' async='exclusive'
class='" +
- RecordAction.class.getName() +
- "'/>" +
- " </event>" +
- " <start-state>" +
- " <transition to='one'>" +
- " <action name='ta' async='true' class='"
+
- RecordAction.class.getName() +
- "'/>" +
- " <action name='te' async='exclusive'
class='" +
- RecordAction.class.getName() +
- "'/>" +
- " </transition>" +
- " </start-state>" +
- " <node name='one'>" +
- " <event type='node-enter'>" +
- " <action name='na' async='true' class='"
+
- RecordAction.class.getName() +
- "'/>" +
- " <action name='ne' async='exclusive'
class='" +
- RecordAction.class.getName() +
- "'/>" +
- " </event>" +
- " <transition to='end' />" +
- " </node>" +
- " <end-state name='end' />" +
- "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <event type='process-start'>"
+ + " <action name='sa' async='true' class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " <action name='se' async='exclusive'
class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " </event>"
+ + " <start-state>"
+ + " <transition to='one'>"
+ + " <action name='ta' async='true' class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " <action name='te' async='exclusive'
class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " </transition>"
+ + " </start-state>"
+ + " <node name='one'>"
+ + " <event type='node-enter'>"
+ + " <action name='na' async='true' class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " <action name='ne' async='exclusive'
class='"
+ + RecordAction.class.getName()
+ + "'/>"
+ + " </event>"
+ + " <transition to='end' />"
+ + " </node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- assertEquals("end", processInstance.getRootToken().getNode().getName());
- assertEquals(6, getNbrOfJobsAvailable());
+ assertEquals("end", processInstance.getRootToken().getNode().getName());
+ assertEquals(6, getNbrOfJobsAvailable());
- processJobs(TIMEOUT);
+ processJobs(TIMEOUT);
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- ContextInstance contextInstance = processInstance.getContextInstance();
- String[] actions = { "sa", "se", "ta",
"te", "na", "ne" };
- for (int i = 0; i < actions.length; i++) {
- assertEquals(Boolean.TRUE, contextInstance.getVariable(actions[i]));
- }
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ String[] actions = { "sa", "se", "ta", "te",
"na", "ne" };
+ for (int i = 0; i < actions.length; i++) {
+ assertEquals(Boolean.TRUE, contextInstance.getVariable(actions[i]));
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/SimplePerformanceTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/SimplePerformanceTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/SimplePerformanceTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -28,12 +28,13 @@
import org.jbpm.graph.exe.ProcessInstance;
/**
- * This test creates a number of process instances. Every instance has a call to an
ActionHandler.
+ * This test creates a number of process instances. Every instance has a call to
+ * an ActionHandler.
*
* @see <a
href="https://jira.jboss.org/jira/browse/JBPM-2043">JBPM-204...
* @author mvecera(a)redhat.com
* @author pmacik(a)redhat.com
- * @author aguizar(a)redhat.com
+ * @author Alejandro Guizar
* @since 18-Feb-2009
*/
public class SimplePerformanceTest extends AbstractDbTestCase {
@@ -42,25 +43,21 @@
private static final int MEASURED_INSTANCES = 1000;
private static final long TIMEOUT = 2 * 60 * 1000;
- private ProcessDefinition processDefinition;
-
protected void setUp() throws Exception {
super.setUp();
- processDefinition = ProcessDefinition.parseXmlString("<process-definition
name='perf'>"
- + " <start-state name='start'>"
- + " <transition to='end'/>"
- + " </start-state>"
- + " <end-state async='true' name='end'/>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='jbpm2043'>"
+ + " <start-state name='start'>"
+ + " <transition to='midway'/>"
+ + " </start-state>"
+ + " <node name='midway' async='true'>"
+ + " <transition to='end'/>"
+ + " </node>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testAsyncCall() {
long firstTime = System.currentTimeMillis();
launchProcessInstances(WARMUP_INSTANCES);
@@ -73,17 +70,15 @@
long duration = System.currentTimeMillis() - secondTime;
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(1);
- System.out.println("==> Processed " +
- format.format(1000D * MEASURED_INSTANCES / duration) +
- " instances per second <==");
+ System.out.println("==> Processed "
+ + format.format(1000D * MEASURED_INSTANCES / duration)
+ + " instances per second <==");
}
private void launchProcessInstances(int count) {
for (int i = 0; i < count; i++) {
- newTransaction();
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("jbpm2043");
processInstance.signal();
- jbpmContext.save(processInstance);
}
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/persistence/db/PersistenceConfigurationDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/persistence/db/PersistenceConfigurationDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/persistence/db/PersistenceConfigurationDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -44,7 +44,7 @@
DbPersistenceServiceFactory dbPersistenceServiceFactory =
(DbPersistenceServiceFactory)
jbpmConfiguration.getServiceFactory("persistence");
assertFalse(dbPersistenceServiceFactory.isTransactionEnabled());
- JbpmContext jbpmContext = (JbpmContext) jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
DbPersistenceService dbPersistenceService = (DbPersistenceService)
jbpmContext.getServices().getPersistenceService();
assertFalse(dbPersistenceService.isTransactionEnabled());
@@ -66,7 +66,7 @@
);
DbPersistenceServiceFactory dbPersistenceServiceFactory =
(DbPersistenceServiceFactory)
jbpmConfiguration.getServiceFactory("persistence");
- JbpmContext jbpmContext = (JbpmContext) jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
DbPersistenceService dbPersistenceService = (DbPersistenceService)
jbpmContext.getServices().getPersistenceService();
assertEquals(0,
dbPersistenceService.getSessionFactory().getAllClassMetadata().size());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/AsyncTimerAndSubProcessDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -14,7 +14,6 @@
public class AsyncTimerAndSubProcessDbTest extends AbstractDbTestCase {
public static class TimedDecisionHandler implements DecisionHandler {
-
private static final long serialVersionUID = 1L;
public String decide(ExecutionContext executionContext) throws Exception {
@@ -24,96 +23,88 @@
public void testTimerInCombinationWithAsyncNode() throws Throwable {
ProcessDefinition subDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='sub'>"
- + " <start-state name='start'>"
- + " <transition to='decision'/>"
- + " </start-state>"
- + " <decision name='decision'>"
- + " <handler class='"
- + TimedDecisionHandler.class.getName()
- + "' />"
- + " <transition name='default' to='task' />"
- + " </decision>"
- + " <task-node name='task'>"
- + " <task name='do stuff'>"
- + " <controller>"
- + " <variable name='a' access='read' />"
- + " </controller>"
- + " <assignment actor-id='victim' />"
- + " </task>"
- + " <transition to='end'/>"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(subDefinition);
+ + " <start-state name='start'>"
+ + " <transition to='decision'/>"
+ + " </start-state>"
+ + " <decision name='decision'>"
+ + " <handler class='"
+ + TimedDecisionHandler.class.getName()
+ + "' />"
+ + " <transition name='default' to='task' />"
+ + " </decision>"
+ + " <task-node name='task'>"
+ + " <task name='do stuff'>"
+ + " <controller>"
+ + " <variable name='a' access='read' />"
+ + " </controller>"
+ + " <assignment actor-id='victim' />"
+ + " </task>"
+ + " <transition to='end'/>"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(subDefinition);
- newTransaction();
ProcessDefinition superDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
- + " <start-state name='start'>"
- + " <transition to='decision'/>"
- + " </start-state>"
- + " <decision name='decision'>"
- + " <handler class='"
- + TimedDecisionHandler.class.getName()
- + "' />"
- + " <transition name='default' to='timed' />"
- + " </decision>"
- + " <state name='timed'>"
- + " <timer name='reminder' "
- + " duedate='0 seconds' "
- + " transition='timer fires' />"
- + " <transition name='timer fires'
to='async'/>"
- + " <transition name='normal continuation'
to='end'/>"
- + " </state>"
- + " <node name='async' async='true'>"
- + " <transition to='subprocess'/>"
- + " </node>"
- + " <process-state name='subprocess'>"
- + " <sub-process name='sub' />"
- + " <variable name='a'/>"
- + " <variable name='b'/>"
- + " <transition to='decision' />"
- + " </process-state>"
- + " <end-state name='end' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(superDefinition);
+ + " <start-state name='start'>"
+ + " <transition to='decision'/>"
+ + " </start-state>"
+ + " <decision name='decision'>"
+ + " <handler class='"
+ + TimedDecisionHandler.class.getName()
+ + "' />"
+ + " <transition name='default' to='timed' />"
+ + " </decision>"
+ + " <state name='timed'>"
+ + " <timer name='reminder' "
+ + " duedate='0 seconds' "
+ + " transition='timer fires' />"
+ + " <transition name='timer fires'
to='async'/>"
+ + " <transition name='normal continuation'
to='end'/>"
+ + " </state>"
+ + " <node name='async' async='true'>"
+ + " <transition to='subprocess'/>"
+ + " </node>"
+ + " <process-state name='subprocess'>"
+ + " <sub-process name='sub' />"
+ + " <variable name='a'/>"
+ + " <variable name='b'/>"
+ + " <transition to='decision' />"
+ + " </process-state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(superDefinition);
- newTransaction();
- try {
- ProcessInstance superInstance =
jbpmContext.newProcessInstanceForUpdate("super");
- ContextInstance superContext = superInstance.getContextInstance();
- superContext.setVariable("a", "value a");
- superContext.setVariable("b", "value b");
- superInstance.signal();
+ ProcessInstance superInstance =
jbpmContext.newProcessInstanceForUpdate("super");
+ ContextInstance superContext = superInstance.getContextInstance();
+ superContext.setVariable("a", "value a");
+ superContext.setVariable("b", "value b");
+ superInstance.signal();
- processJobs(60 * 1000);
+ processJobs(60 * 1000);
- superInstance = jbpmContext.loadProcessInstance(superInstance.getId());
- assertEquals("subprocess",
superInstance.getRootToken().getNode().getName());
+ superInstance = jbpmContext.loadProcessInstance(superInstance.getId());
+ assertEquals("subprocess",
superInstance.getRootToken().getNode().getName());
- List taskInstances = jbpmContext.getTaskList("victim");
- assertEquals(1, taskInstances.size());
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- taskInstance.setVariable("a", "value a updated");
- taskInstance.setVariable("b", "value b updated");
- taskInstance.end();
+ List taskInstances = jbpmContext.getTaskList("victim");
+ assertEquals(1, taskInstances.size());
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ taskInstance.setVariable("a", "value a updated");
+ taskInstance.setVariable("b", "value b updated");
+ taskInstance.end();
- jbpmContext.save(taskInstance);
- long taskInstanceId = taskInstance.getId();
- long tokenId = taskInstance.getToken().getId();
+ jbpmContext.save(taskInstance);
+ long taskInstanceId = taskInstance.getId();
+ long tokenId = taskInstance.getToken().getId();
- newTransaction();
- taskInstance = jbpmContext.loadTaskInstance(taskInstanceId);
- assertEquals("value a updated",
taskInstance.getVariable("a"));
- assertEquals("value b updated",
taskInstance.getVariable("b"));
+ newTransaction();
+ taskInstance = jbpmContext.loadTaskInstance(taskInstanceId);
+ assertEquals("value a updated", taskInstance.getVariable("a"));
+ assertEquals("value b updated", taskInstance.getVariable("b"));
- Token token = jbpmContext.loadToken(tokenId);
- ContextInstance subContextInstance =
token.getProcessInstance().getContextInstance();
- assertEquals("value a", subContextInstance.getVariable("a"));
- assertEquals("value b updated",
subContextInstance.getVariable("b"));
- }
- finally {
- graphSession.deleteProcessDefinition(superDefinition.getId());
- graphSession.deleteProcessDefinition(subDefinition.getId());
- }
+ Token token = jbpmContext.loadToken(tokenId);
+ ContextInstance subContextInstance =
token.getProcessInstance().getContextInstance();
+ assertEquals("value a", subContextInstance.getVariable("a"));
+ assertEquals("value b updated",
subContextInstance.getVariable("b"));
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/TwoSubProcessesInOneTransactionDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/TwoSubProcessesInOneTransactionDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scenarios/TwoSubProcessesInOneTransactionDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -10,74 +10,53 @@
public class TwoSubProcessesInOneTransactionDbTest extends AbstractDbTestCase {
public void testTwoSubProcessesInOneTransaction() throws Throwable {
- ProcessDefinition subProcess = ProcessDefinition.parseXmlString(
- "<process-definition name='sub'>" +
- " <start-state>" +
- " <transition to='end' />" +
- " </start-state>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(subProcess);
-
- ProcessDefinition superProcess = ProcessDefinition.parseXmlString(
- "<process-definition name='super'>" +
- " <start-state>" +
- " <transition to='subprocess one' />" +
- " </start-state>" +
- " <process-state name='subprocess one'>" +
- " <sub-process name='sub' />" +
- " <transition to='subprocess two'/>" +
- " </process-state>" +
- " <process-state name='subprocess two'>" +
- " <sub-process name='sub' />" +
- " <transition to='wait'/>" +
- " </process-state>" +
- " <state name='wait' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(superProcess);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("super");
- processInstance.signal();
- jbpmContext.save(processInstance);
-
- newTransaction();
-
- Query query = session.createQuery(
- "select pi " +
- "from org.jbpm.graph.exe.ProcessInstance pi " +
- "where pi.processDefinition.name = 'super'"
- );
- List superInstances = query.list();
- assertEquals(1, superInstances.size());
- ProcessInstance superInstance = (ProcessInstance) superInstances.get(0);
- assertEquals("wait", superInstance.getRootToken().getNode().getName());
+ ProcessDefinition subProcess =
ProcessDefinition.parseXmlString("<process-definition
name='sub'>"
+ + " <start-state>"
+ + " <transition to='end' />"
+ + " </start-state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(subProcess);
- query = session.createQuery(
- "select pi " +
- "from org.jbpm.graph.exe.ProcessInstance pi " +
- "where pi.processDefinition.name = 'sub'"
- );
- List subInstances = query.list();
- assertEquals(2, subInstances.size());
-
- ProcessInstance subInstance = (ProcessInstance) subInstances.get(0);
- assertTrue(subInstance.hasEnded());
- assertEquals(superInstance.getRootToken(), subInstance.getSuperProcessToken());
-
- subInstance = (ProcessInstance) subInstances.get(1);
- assertTrue(subInstance.hasEnded());
- assertEquals(superInstance.getRootToken(), subInstance.getSuperProcessToken());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(superProcess.getId());
- jbpmContext.getGraphSession().deleteProcessDefinition(subProcess.getId());
- }
-
+ ProcessDefinition superProcess =
ProcessDefinition.parseXmlString("<process-definition
name='super'>"
+ + " <start-state>"
+ + " <transition to='subprocess one' />"
+ + " </start-state>"
+ + " <process-state name='subprocess one'>"
+ + " <sub-process name='sub' />"
+ + " <transition to='subprocess two'/>"
+ + " </process-state>"
+ + " <process-state name='subprocess two'>"
+ + " <sub-process name='sub' />"
+ + " <transition to='wait'/>"
+ + " </process-state>"
+ + " <state name='wait' />"
+ + "</process-definition>");
+ deployProcessDefinition(superProcess);
+
+ ProcessInstance processInstance = jbpmContext.newProcessInstance("super");
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
+ newTransaction();
+ Query query = session.createQuery("from org.jbpm.graph.exe.ProcessInstance pi
"
+ + "where pi.processDefinition.name = 'super'");
+ List superInstances = query.list();
+ assertEquals(1, superInstances.size());
+ ProcessInstance superInstance = (ProcessInstance) superInstances.get(0);
+ assertEquals("wait", superInstance.getRootToken().getNode().getName());
+
+ query = session.createQuery("from org.jbpm.graph.exe.ProcessInstance pi "
+ + "where pi.processDefinition.name = 'sub'");
+ List subInstances = query.list();
+ assertEquals(2, subInstances.size());
+
+ ProcessInstance subInstance = (ProcessInstance) subInstances.get(0);
+ assertTrue(subInstance.hasEnded());
+ assertEquals(superInstance.getRootToken(), subInstance.getSuperProcessToken());
+
+ subInstance = (ProcessInstance) subInstances.get(1);
+ assertTrue(subInstance.hasEnded());
+ assertEquals(superInstance.getRootToken(), subInstance.getSuperProcessToken());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -327,7 +327,7 @@
timer.execute(jbpmContext);
newTransaction();
- timer = (Timer) jobSession.loadTimer(timer.getId());
+ timer = jobSession.loadTimer(timer.getId());
assertEquals(dueDate.getTime() + 60 * 1000, timer.getDueDate().getTime());
processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -20,28 +20,21 @@
JobExecutor jobExecutor = getJbpmConfiguration().getJobExecutor();
assertEquals(CustomJobExecutor.class, jobExecutor.getClass());
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='custom job exec'>" +
- " <start-state name='start'>" +
- " <transition to='end'/>" +
- " </start-state>" +
- " <end-state name='end' async='true' />" +
- "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='custom job
exec'>"
+ + " <start-state name='start'>"
+ + " <transition to='end'/>"
+ + " </start-state>"
+ + " <end-state name='end' async='true' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("custom job exec");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("custom job exec");
+ processInstance.signal();
- processJobs(60 * 1000);
-
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertEquals(Boolean.TRUE,
processInstance.getContextInstance().getVariable("custom"));
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processJobs(60 * 1000);
+
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertEquals(Boolean.TRUE,
processInstance.getContextInstance().getVariable("custom"));
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/svc/ServicesTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/svc/ServicesTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/svc/ServicesTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -152,6 +152,7 @@
public JobSession getJobSession() {return null;}
public ContextSession getContextSession() {return null;}
public TaskMgmtSession getTaskMgmtSession() {return null;}
+ public Object getCustomSession(Class sessionClass) {return null;}
public boolean isRollbackOnly() {return false;}
public void setRollbackOnly(boolean isRollbackOnly) {}
public void setRollbackOnly() {}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/BlockingTaskDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/BlockingTaskDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/BlockingTaskDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -6,50 +6,40 @@
public class BlockingTaskDbTest extends AbstractDbTestCase {
- public void testBlockingTask()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='blockingprocess'>" +
- " <start-state>" +
- " <transition to='approval' />" +
- " </start-state>" +
- " <task-node name='approval'>" +
- " <task name='approve' blocking='true' />" +
- " <transition name='approve' to='order'/>" +
- " <transition name='reject' to='cancelled'/>"
+
- " </task-node>" +
- " <state name='order' />" +
- " <state name='cancelled' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ public void testBlockingTask() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='blockingprocess'>"
+ + " <start-state>"
+ + " <transition to='approval' />"
+ + " </start-state>"
+ + " <task-node name='approval'>"
+ + " <task name='approve' blocking='true' />"
+ + " <transition name='approve' to='order'/>"
+ + " <transition name='reject'
to='cancelled'/>"
+ + " </task-node>"
+ + " <state name='order' />"
+ + " <state name='cancelled' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("blockingprocess");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("blockingprocess");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
+ assertEquals("approval",
processInstance.getRootToken().getNode().getName());
- assertEquals("approval",
processInstance.getRootToken().getNode().getName());
- TaskInstance taskInstance =
(TaskInstance)processInstance.getTaskMgmtInstance().getTaskInstances().iterator().next();
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ assertTrue(taskInstance.isBlocking());
- assertTrue(taskInstance.isBlocking());
-
- try
- {
- processInstance.signal();
- fail("expected RuntimeException");
- }
- catch (RuntimeException e)
- {
- // OK
- }
+ try {
+ processInstance.signal();
+ fail("expected RuntimeException");
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+ catch (IllegalStateException e) {
+ assertTrue("expected " + e + " to be about blocking tasks",
e.getMessage()
+ .indexOf("blocking tasks") != -1);
}
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/EndTasksDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/EndTasksDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/EndTasksDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -35,30 +35,20 @@
+ " <transition name='cancel'
to='cancelled'/>"
+ " </task-node>"
+ " <state name='process' />"
- + " <state name='cancelled' />" +
"</process-definition>");
+ + " <state name='cancelled' />"
+ + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstance("endtasksprocess");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstance("endtasksprocess");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- assertEquals("approval", processInstance.getRootToken()
- .getNode()
- .getName());
+ processInstance = saveAndReload(processInstance);
+ assertEquals("approval",
processInstance.getRootToken().getNode().getName());
- processInstance = saveAndReload(processInstance);
- processInstance.signal("cancel");
- assertEquals("cancelled", processInstance.getRootToken()
- .getNode()
- .getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal("cancel");
+ assertEquals("cancelled",
processInstance.getRootToken().getNode().getName());
}
public void testApprove() {
@@ -77,31 +67,20 @@
+ " <state name='process' />"
+ " <state name='cancelled' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- assertEquals("approval", processInstance.getRootToken()
- .getNode()
- .getName());
+ processInstance = saveAndReload(processInstance);
+ assertEquals("approval",
processInstance.getRootToken().getNode().getName());
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
- taskInstance.end("approve");
- assertEquals("process", processInstance.getRootToken()
- .getNode()
- .getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
- }
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ taskInstance.end("approve");
+ assertEquals("process",
processInstance.getRootToken().getNode().getName());
}
public void testReject() {
@@ -120,31 +99,20 @@
+ " <state name='process' />"
+ " <state name='cancelled' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- assertEquals("approval", processInstance.getRootToken()
- .getNode()
- .getName());
+ processInstance = saveAndReload(processInstance);
+ assertEquals("approval",
processInstance.getRootToken().getNode().getName());
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
- taskInstance.end("reject");
- assertEquals("cancelled", processInstance.getRootToken()
- .getNode()
- .getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
- }
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ taskInstance.end("reject");
+ assertEquals("cancelled",
processInstance.getRootToken().getNode().getName());
}
public void testTaskInstancesAfterCancellation() {
@@ -163,31 +131,22 @@
+ " <state name='process' />"
+ " <state name='cancelled' />"
+ "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
- newTransaction();
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("endtasksprocess");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- processInstance = saveAndReload(processInstance);
- processInstance.signal("cancel");
+ processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal("cancel");
- Collection taskInstances = processInstance.getTaskMgmtInstance()
- .getTaskInstances();
- assertEquals(1, taskInstances.size());
+ Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances();
+ assertEquals(1, taskInstances.size());
- TaskInstance taskInstance = (TaskInstance) taskInstances.iterator()
- .next();
- assert taskInstance.hasEnded() : taskInstance;
- assert !taskInstance.isCancelled() : taskInstance;
- assert !taskInstance.isBlocking() : taskInstance;
- assert !taskInstance.isSignalling() : taskInstance;
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(
- processDefinition.getId());
- }
+ TaskInstance taskInstance = (TaskInstance) taskInstances.iterator().next();
+ assert taskInstance.hasEnded() : taskInstance;
+ assert !taskInstance.isCancelled() : taskInstance;
+ assert !taskInstance.isBlocking() : taskInstance;
+ assert !taskInstance.isSignalling() : taskInstance;
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -34,733 +34,604 @@
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.def.AssignmentHandler;
-public class SwimlaneDbTest extends AbstractDbTestCase
-{
-
- public void testStartStateSwimlaneInitialization()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testStartStateSwimlaneInitialization'>" +
- " <swimlane name='initiator' />" +
- " <start-state>" +
- " <task swimlane='initiator' />" +
- " <transition to='a' />" +
- " </start-state>" +
- " <state name='a' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance;
- TaskMgmtInstance taskMgmtInstance;
- jbpmContext.setActorId("the other guy");
- try {
- processInstance =
jbpmContext.newProcessInstanceForUpdate("testStartStateSwimlaneInitialization");
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- taskMgmtInstance.createStartTaskInstance();
- processInstance.signal();
- } finally {
- jbpmContext.setActorId(null);
- }
+public class SwimlaneDbTest extends AbstractDbTestCase {
- newTransaction();
+ public void testStartStateSwimlaneInitialization() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testStartStateSwimlaneInitialization'>"
+ + " <swimlane name='initiator' />"
+ + " <start-state>"
+ + " <task swimlane='initiator' />"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <state name='a' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- taskMgmtInstance = (TaskMgmtInstance) session.load(TaskMgmtInstance.class, new
Long(taskMgmtInstance.getId()));
- assertEquals("the other guy",
taskMgmtInstance.getSwimlaneInstance("initiator").getActorId());
+ ProcessInstance processInstance;
+ TaskMgmtInstance taskMgmtInstance;
+ jbpmContext.setActorId("the other guy");
+ try {
+ processInstance =
jbpmContext.newProcessInstanceForUpdate("testStartStateSwimlaneInitialization");
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ taskMgmtInstance.createStartTaskInstance();
+ processInstance.signal();
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+ finally {
+ jbpmContext.setActorId(null);
}
+
+ newTransaction();
+ taskMgmtInstance = (TaskMgmtInstance) session.load(TaskMgmtInstance.class, new Long(
+ taskMgmtInstance.getId()));
+ assertEquals("the other guy",
taskMgmtInstance.getSwimlaneInstance("initiator")
+ .getActorId());
}
-
- public static class TestAssignmentHandler implements AssignmentHandler
- {
+ public static class TestAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception
- {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
assignable.setActorId("me");
}
}
public void testSwimlaneAssignmentHandler() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='testSwimlaneAssignmentHandler'>"
+
- " <swimlane name='stalker'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneAssignmentHandler");
- processInstance.signal();
-
- processInstance = saveAndReload(processInstance);
-
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertEquals("me", stalker.getActorId());
- assertEquals("me", changeNappy.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlaneAssignmentHandler'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneAssignmentHandler");
+ processInstance.signal();
+
+ processInstance = saveAndReload(processInstance);
+
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertEquals("me", stalker.getActorId());
+ assertEquals("me", changeNappy.getActorId());
}
public void testSwimlaneActorId() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='testSwimlaneActorId'>" +
- " <swimlane name='stalker'>" +
- " <assignment actor-id='johndoe' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneActorId");
- processInstance.signal();
-
- processInstance = saveAndReload(processInstance);
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlaneActorId'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment actor-id='johndoe' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertEquals("johndoe", stalker.getActorId());
- assertEquals("johndoe", changeNappy.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneActorId");
+ processInstance.signal();
+
+ processInstance = saveAndReload(processInstance);
+
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertEquals("johndoe", stalker.getActorId());
+ assertEquals("johndoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActor() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='testSwimlanePooledActor'>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActor");
- processInstance.signal();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePooledActor'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActor");
+ processInstance.signal();
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertNull(stalker.getActorId());
- assertNull(changeNappy.getActorId());
+ processInstance = saveAndReload(processInstance);
- Set retrievedSwimlaneInstancePooledActorIds = new HashSet();
- Iterator iter = stalker.getPooledActors().iterator();
- while (iter.hasNext()) {
- PooledActor pooledActor = (PooledActor) iter.next();
- retrievedSwimlaneInstancePooledActorIds.add(pooledActor.getActorId());
- }
-
- Set expectedPooledActorIds = new HashSet();
- expectedPooledActorIds.add("hippies");
- expectedPooledActorIds.add("hells angles");
-
- assertEquals(expectedPooledActorIds, retrievedSwimlaneInstancePooledActorIds);
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertNull(stalker.getActorId());
+ assertNull(changeNappy.getActorId());
- Set retrievedTaskInstancePooledActorIds = new HashSet();
- iter = changeNappy.getPooledActors().iterator();
- while (iter.hasNext()) {
- PooledActor pooledActor = (PooledActor) iter.next();
- retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
- }
-
- assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
+ Set retrievedSwimlaneInstancePooledActorIds = new HashSet();
+ for (Iterator iter = stalker.getPooledActors().iterator(); iter.hasNext();) {
+ PooledActor pooledActor = (PooledActor) iter.next();
+ retrievedSwimlaneInstancePooledActorIds.add(pooledActor.getActorId());
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+
+ Set expectedPooledActorIds = new HashSet();
+ expectedPooledActorIds.add("hippies");
+ expectedPooledActorIds.add("hells angles");
+
+ assertEquals(expectedPooledActorIds, retrievedSwimlaneInstancePooledActorIds);
+
+ Set retrievedTaskInstancePooledActorIds = new HashSet();
+ for (Iterator iter = changeNappy.getPooledActors().iterator(); iter.hasNext();) {
+ PooledActor pooledActor = (PooledActor) iter.next();
+ retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
-
+
+ assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
-
+
public void testSwimlanePooledActorThenTaskInstanceAssignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePooledActorThenTaskInstanceAssignment'>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenTaskInstanceAssignment");
- processInstance.signal();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePooledActorThenTaskInstanceAssignment'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenTaskInstanceAssignment");
+ processInstance.signal();
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertNull(stalker.getActorId());
- assertNull(changeNappy.getActorId());
-
- changeNappy.setActorId("johndoe");
-
- stalker = (SwimlaneInstance) session.load(SwimlaneInstance.class, new
Long(stalker.getId()));
- assertEquals("johndoe", stalker.getActorId());
+ processInstance = saveAndReload(processInstance);
- changeNappy = (TaskInstance) session.load(TaskInstance.class, new
Long(changeNappy.getId()));
- assertEquals("johndoe", changeNappy.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertNull(stalker.getActorId());
+ assertNull(changeNappy.getActorId());
+
+ changeNappy.setActorId("johndoe");
+
+ stalker = (SwimlaneInstance) session.load(SwimlaneInstance.class, new
Long(stalker.getId()));
+ assertEquals("johndoe", stalker.getActorId());
+
+ changeNappy = (TaskInstance) session.load(TaskInstance.class, new
Long(changeNappy.getId()));
+ assertEquals("johndoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActorThenTaskInstanceReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePooledActorThenTaskInstanceReassignment'>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenTaskInstanceReassignment");
- processInstance.signal();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePooledActorThenTaskInstanceReassignment'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenTaskInstanceReassignment");
+ processInstance.signal();
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertNull(stalker.getActorId());
- assertNull(changeNappy.getActorId());
-
- changeNappy.setActorId("johndoe");
- changeNappy.setActorId("joesmoe");
+ processInstance = saveAndReload(processInstance);
- processInstance = saveAndReload(processInstance);
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertNull(stalker.getActorId());
+ assertNull(changeNappy.getActorId());
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- stalker = taskMgmtInstance.getSwimlaneInstance("stalker");
+ changeNappy.setActorId("johndoe");
+ changeNappy.setActorId("joesmoe");
- assertEquals("joesmoe", stalker.getActorId());
- assertEquals("joesmoe", changeNappy.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances().iterator().next();
+ stalker = taskMgmtInstance.getSwimlaneInstance("stalker");
+
+ assertEquals("joesmoe", stalker.getActorId());
+ assertEquals("joesmoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActorThenSwimlaneInstanceAssignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePooledActorThenSwimlaneInstanceAssignment'>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
-
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenSwimlaneInstanceAssignment");
- processInstance.signal();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePooledActorThenSwimlaneInstanceAssignment'>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorThenSwimlaneInstanceAssignment");
+ processInstance.signal();
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
- assertNotNull(stalker);
- assertNull(stalker.getActorId());
- assertNull(changeNappy.getActorId());
-
- stalker.setActorId("johndoe");
+ processInstance = saveAndReload(processInstance);
- processInstance = saveAndReload(processInstance);
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
+ assertNotNull(stalker);
+ assertNull(stalker.getActorId());
+ assertNull(changeNappy.getActorId());
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- stalker = taskMgmtInstance.getSwimlaneInstance("stalker");
+ stalker.setActorId("johndoe");
- assertEquals("johndoe", stalker.getActorId());
- assertNull(changeNappy.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances().iterator().next();
+ stalker = taskMgmtInstance.getSwimlaneInstance("stalker");
+
+ assertEquals("johndoe", stalker.getActorId());
+ assertNull(changeNappy.getActorId());
}
-
+
public void testSwimlaneReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='testSwimlaneReassignment'>" +
- " <swimlane name='hero'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlaneReassignment'>"
+ + " <swimlane name='hero'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneReassignment");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneReassignment");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- changeNappy.setActorId("johndoe");
- changeNappy.end();
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ changeNappy.setActorId("johndoe");
+ changeNappy.end();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- assertEquals("johndoe", makeBottle.getActorId());
-
- Set retrievedTaskInstancePooledActorIds = new HashSet();
- Iterator iter = makeBottle.getPooledActors().iterator();
- while (iter.hasNext()) {
- PooledActor pooledActor = (PooledActor) iter.next();
- retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
- }
-
- Set expectedPooledActorIds = new HashSet();
- expectedPooledActorIds.add("hippies");
- expectedPooledActorIds.add("hells angles");
-
- assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ assertEquals("johndoe", makeBottle.getActorId());
+
+ Set retrievedTaskInstancePooledActorIds = new HashSet();
+ for (Iterator iter = makeBottle.getPooledActors().iterator(); iter.hasNext();) {
+ PooledActor pooledActor = (PooledActor) iter.next();
+ retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+
+ Set expectedPooledActorIds = new HashSet();
+ expectedPooledActorIds.add("hippies");
+ expectedPooledActorIds.add("hells angles");
+
+ assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
public void testSwimlanePooledActorsUpdate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePooledActorsUpdate'>" +
- " <swimlane name='hero'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePooledActorsUpdate'>"
+ + " <swimlane name='hero'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorsUpdate");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePooledActorsUpdate");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- SwimlaneInstance hero = taskMgmtInstance.getSwimlaneInstance("hero");
- changeNappy.setActorId("johndoe");
- hero.setPooledActors(new String[]{"footballers", "hooligans",
"stewards"});
-
- changeNappy.end();
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ SwimlaneInstance hero = taskMgmtInstance.getSwimlaneInstance("hero");
+ changeNappy.setActorId("johndoe");
+ hero.setPooledActors(new String[] { "footballers", "hooligans",
"stewards" });
- processInstance = saveAndReload(processInstance);
+ changeNappy.end();
- Token token = processInstance.getRootToken();
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
- assertEquals("johndoe", makeBottle.getActorId());
-
- Set retrievedTaskInstancePooledActorIds = new HashSet();
- Iterator iter = makeBottle.getPooledActors().iterator();
- while (iter.hasNext()) {
- PooledActor pooledActor = (PooledActor) iter.next();
- retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
- }
-
- Set expectedPooledActorIds = new HashSet();
- expectedPooledActorIds.add("footballers");
- expectedPooledActorIds.add("hooligans");
- expectedPooledActorIds.add("stewards");
+ processInstance = saveAndReload(processInstance);
- assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
+ Token token = processInstance.getRootToken();
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
+ assertEquals("johndoe", makeBottle.getActorId());
+
+ Set retrievedTaskInstancePooledActorIds = new HashSet();
+ for (Iterator iter = makeBottle.getPooledActors().iterator(); iter.hasNext();) {
+ PooledActor pooledActor = (PooledActor) iter.next();
+ retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+
+ Set expectedPooledActorIds = new HashSet();
+ expectedPooledActorIds.add("footballers");
+ expectedPooledActorIds.add("hooligans");
+ expectedPooledActorIds.add("stewards");
+
+ assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
-
public void testSwimlaneActorReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='testSwimlaneActorReassignment'>"
+
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlaneActorReassignment'>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneActorReassignment");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlaneActorReassignment");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- assertEquals("me", changeNappy.getActorId());
- changeNappy.end();
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ assertEquals("me", changeNappy.getActorId());
+ changeNappy.end();
- processInstance = saveAndReload(processInstance);
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ processInstance = saveAndReload(processInstance);
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
- assertEquals("me", makeBottle.getActorId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
+ assertEquals("me", makeBottle.getActorId());
}
-
- public static class MultipleAssignmentHandler implements AssignmentHandler
- {
+ public static class MultipleAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception
- {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
assignable.setPooledActors(new String[] { "me", "you",
"them" });
}
}
-
+
public void testSwimlanePoolInitialization() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePoolInitialization'>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePoolInitialization'>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolInitialization");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolInitialization");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
- assertNull(changeNappy.getActorId());
-
- Set pooledActors = changeNappy.getPooledActors();
- assertEquals(3, pooledActors.size());
-
- List expectedPooledActorIds = Arrays.asList(new String[]{"me",
"you", "them"});
- Iterator iter = pooledActors.iterator();
- while (iter.hasNext()) {
- PooledActor pooledActor = (PooledActor) iter.next();
- assertTrue(expectedPooledActorIds.contains(pooledActor.getActorId()));
- }
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+ assertNull(changeNappy.getActorId());
+
+ Set pooledActors = changeNappy.getPooledActors();
+ assertEquals(3, pooledActors.size());
+
+ List expectedPooledActorIds = Arrays.asList(new String[] { "me",
"you", "them" });
+ for (Iterator iter = pooledActors.iterator(); iter.hasNext();) {
+ PooledActor pooledActor = (PooledActor) iter.next();
+ assertTrue(expectedPooledActorIds.contains(pooledActor.getActorId()));
}
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
}
public void testSwimlanePoolReassignmentOfNonTakenTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePoolReassignmentOfNonTakenTask'>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePoolReassignmentOfNonTakenTask'>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolReassignmentOfNonTakenTask");
- processInstance.signal();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolReassignmentOfNonTakenTask");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
- assertNull(changeNappy.getActorId());
- assertEquals(3, changeNappy.getPooledActors().size());
- assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
-
- changeNappy.end();
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
- processInstance = saveAndReload(processInstance);
+ assertNull(changeNappy.getActorId());
+ assertEquals(3, changeNappy.getPooledActors().size());
+ assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- swimlaneInstance = taskMgmtInstance.getSwimlaneInstance("hero");
-
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
- assertNull(makeBottle.getActorId());
- assertEquals(3, makeBottle.getPooledActors().size());
- assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ changeNappy.end();
+
+ processInstance = saveAndReload(processInstance);
+
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ swimlaneInstance = taskMgmtInstance.getSwimlaneInstance("hero");
+
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
+ assertNull(makeBottle.getActorId());
+ assertEquals(3, makeBottle.getPooledActors().size());
+ assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
}
public void testSwimlanePoolReassignmentOfTakenTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testSwimlanePoolReassignmentOfTakenTask'>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='testSwimlanePoolReassignmentOfTakenTask'>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolReassignmentOfTakenTask");
- processInstance.signal();
-
- processInstance = saveAndReload(processInstance);
-
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
changeNappy.setActorId("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to");
-
-
assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
changeNappy.getActorId());
- assertEquals(3, changeNappy.getPooledActors().size());
- assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
-
- changeNappy.end();
+ ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testSwimlanePoolReassignmentOfTakenTask");
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- taskMgmtInstance = processInstance.getTaskMgmtInstance();
- swimlaneInstance = taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
-
assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
makeBottle.getActorId());
- assertEquals(3, makeBottle.getPooledActors().size());
- assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+
changeNappy.setActorId("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to");
+
+ assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
+ changeNappy.getActorId());
+ assertEquals(3, changeNappy.getPooledActors().size());
+ assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
+
+ changeNappy.end();
+
+ processInstance = saveAndReload(processInstance);
+
+ taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ swimlaneInstance = taskMgmtInstance.getSwimlaneInstance("hero");
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
+ assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
+ makeBottle.getActorId());
+ assertEquals(3, makeBottle.getPooledActors().size());
+ assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
}
- public static class NullAssignmentHandler implements AssignmentHandler
- {
+ public static class NullAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception
- {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
}
}
public void testNullActorsForSwimlaneInitialization() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition
name='testNullActorsForSwimlaneInitialization'>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$NullAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " </task-node>" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='null
actors'>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$NullAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("testNullActorsForSwimlaneInitialization");
- processInstance.signal();
-
- processInstance = saveAndReload(processInstance);
- TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
- assertNull(swimlaneInstance.getActorId());
- assertEquals(0, swimlaneInstance.getPooledActors().size());
- assertNull(changeNappy.getActorId());
- assertEquals(0, changeNappy.getPooledActors().size());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("null
actors");
+ processInstance.signal();
+
+ processInstance = saveAndReload(processInstance);
+ TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+ SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+
+ assertNull(swimlaneInstance.getActorId());
+ assertEquals(0, swimlaneInstance.getPooledActors().size());
+ assertNull(changeNappy.getActorId());
+ assertEquals(0, changeNappy.getPooledActors().size());
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/SwimlaneTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -37,25 +37,23 @@
import org.jbpm.taskmgmt.def.AssignmentHandler;
public class SwimlaneTest extends AbstractJbpmTestCase {
-
- static JbpmConfiguration jbpmConfiguration =
JbpmConfiguration.getInstance("org/jbpm/jbpm.test.cfg.xml");
+
+ static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
static int invocationCount = 0;
-
+
protected void setUp() {
invocationCount = 0;
}
-
+
public void testStartStateSwimlaneInitialization() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='initiator' />" +
- " <start-state>" +
- " <task swimlane='initiator' />" +
- " <transition to='a' />" +
- " </start-state>" +
- " <state name='a' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='initiator' />"
+ + " <start-state>"
+ + " <task swimlane='initiator' />"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <state name='a' />"
+ + "</process-definition>");
ProcessInstance processInstance;
TaskMgmtInstance taskMgmtInstance;
@@ -66,104 +64,110 @@
taskMgmtInstance = processInstance.getTaskMgmtInstance();
taskMgmtInstance.createStartTaskInstance();
processInstance.signal();
- } finally {
+ }
+ finally {
jbpmContext.setActorId(null);
jbpmContext.close();
}
- assertEquals("the other guy",
taskMgmtInstance.getSwimlaneInstance("initiator").getActorId());
+ assertEquals("the other guy",
taskMgmtInstance.getSwimlaneInstance("initiator")
+ .getActorId());
}
public static class TestAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception {
+
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
invocationCount++;
assignable.setActorId("me");
}
}
public void testSwimlaneAssignmentHandler() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='beauty sleep' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='beauty sleep' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertEquals(1, invocationCount);
assertEquals("me", stalker.getActorId());
assertEquals("me", changeNappy.getActorId());
-
+
changeNappy.end();
-
+
Token token = processInstance.getRootToken();
- TaskInstance beautySleep = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
+ TaskInstance beautySleep = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
assertEquals("me", beautySleep.getActorId());
}
-
+
public void testSwimlaneActorId() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment actor-id='johndoe' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment actor-id='johndoe' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertEquals("johndoe", stalker.getActorId());
assertEquals("johndoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActor() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertNull(stalker.getActorId());
@@ -175,11 +179,11 @@
PooledActor pooledActor = (PooledActor) iter.next();
retrievedSwimlaneInstancePooledActorIds.add(pooledActor.getActorId());
}
-
+
Set expectedPooledActorIds = new HashSet();
expectedPooledActorIds.add("hippies");
expectedPooledActorIds.add("hells angles");
-
+
assertEquals(expectedPooledActorIds, retrievedSwimlaneInstancePooledActorIds);
Set retrievedTaskInstancePooledActorIds = new HashSet();
@@ -188,193 +192,197 @@
PooledActor pooledActor = (PooledActor) iter.next();
retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
-
+
assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
-
+
public void testSwimlanePooledActorThenTaskInstanceAssignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertNull(stalker.getActorId());
assertNull(changeNappy.getActorId());
-
+
changeNappy.setActorId("johndoe");
-
+
assertEquals("johndoe", stalker.getActorId());
assertEquals("johndoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActorThenTaskInstanceReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertNull(stalker.getActorId());
assertNull(changeNappy.getActorId());
-
+
changeNappy.setActorId("johndoe");
changeNappy.setActorId("joesmoe");
-
+
assertEquals("joesmoe", stalker.getActorId());
assertEquals("joesmoe", changeNappy.getActorId());
}
-
+
public void testSwimlanePooledActorThenSwimlaneInstanceAssignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='stalker'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='stalker'
/>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='stalker'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='stalker'
/>"
+ + " </task-node>"
+ + "</process-definition>");
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker =
taskMgmtInstance.getSwimlaneInstance("stalker");
assertNotNull(stalker);
assertNull(stalker.getActorId());
assertNull(changeNappy.getActorId());
-
+
stalker.setActorId("johndoe");
-
+
assertEquals("johndoe", stalker.getActorId());
assertNull(changeNappy.getActorId());
}
-
+
public void testSwimlaneReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
changeNappy.setActorId("johndoe");
changeNappy.end();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
assertEquals("johndoe", makeBottle.getActorId());
-
+
Set retrievedTaskInstancePooledActorIds = new HashSet();
Iterator iter = makeBottle.getPooledActors().iterator();
while (iter.hasNext()) {
PooledActor pooledActor = (PooledActor) iter.next();
retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
-
+
Set expectedPooledActorIds = new HashSet();
expectedPooledActorIds.add("hippies");
expectedPooledActorIds.add("hells angles");
-
+
assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
public void testSwimlanePooledActorsUpdate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment pooled-actors='hippies,hells angles' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment pooled-actors='hippies,hells angles'
/>"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
SwimlaneInstance stalker = taskMgmtInstance.getSwimlaneInstance("hero");
changeNappy.setActorId("johndoe");
- stalker.setPooledActors(new String[]{"footballers", "hooligans",
"stewards"});
-
+ stalker.setPooledActors(new String[] { "footballers",
"hooligans", "stewards" });
+
changeNappy.end();
Token token = processInstance.getRootToken();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
assertEquals("johndoe", makeBottle.getActorId());
-
+
Set retrievedTaskInstancePooledActorIds = new HashSet();
Iterator iter = makeBottle.getPooledActors().iterator();
while (iter.hasNext()) {
PooledActor pooledActor = (PooledActor) iter.next();
retrievedTaskInstancePooledActorIds.add(pooledActor.getActorId());
}
-
+
Set expectedPooledActorIds = new HashSet();
expectedPooledActorIds.add("footballers");
expectedPooledActorIds.add("hooligans");
@@ -383,76 +391,78 @@
assertEquals(expectedPooledActorIds, retrievedTaskInstancePooledActorIds);
}
-
public void testSwimlaneActorReassignment() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$TestAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
assertEquals("me", changeNappy.getActorId());
assertEquals(1, invocationCount);
changeNappy.end();
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
assertEquals("me", makeBottle.getActorId());
assertEquals(1, invocationCount);
}
-
public static class MultipleAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception {
+
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
invocationCount++;
- assignable.setPooledActors(new String[]{"me", "you",
"them"});
+ assignable.setPooledActors(new String[] { "me", "you",
"them" });
}
}
+
public void testSwimlanePoolInitialization() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " </task-node>"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
assertNull(changeNappy.getActorId());
-
+
Set pooledActors = changeNappy.getPooledActors();
assertEquals(3, pooledActors.size());
assertEquals(1, invocationCount);
-
- List expectedPooledActorIds = Arrays.asList(new String[]{"me",
"you", "them"});
+
+ List expectedPooledActorIds = Arrays.asList(new String[] { "me",
"you", "them" });
Iterator iter = pooledActors.iterator();
while (iter.hasNext()) {
PooledActor pooledActor = (PooledActor) iter.next();
@@ -461,115 +471,122 @@
}
public void testSwimlanePoolReassignmentOfNonTakenTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+
assertNull(changeNappy.getActorId());
assertEquals(3, changeNappy.getPooledActors().size());
assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
-
+
changeNappy.end();
assertEquals(1, invocationCount);
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
assertNull(makeBottle.getActorId());
assertEquals(3, makeBottle.getPooledActors().size());
assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
}
public void testSwimlanePoolReassignmentOfTakenTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='make bottle' swimlane='hero'
/>'" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$MultipleAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='make bottle' swimlane='hero'
/>'"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
changeNappy.setActorId("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to");
-
- assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
changeNappy.getActorId());
+
+ assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
+ changeNappy.getActorId());
assertEquals(3, changeNappy.getPooledActors().size());
assertEquals(changeNappy.getPooledActors(), swimlaneInstance.getPooledActors());
-
+
changeNappy.end();
assertEquals(1, invocationCount);
- TaskInstance makeBottle = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(processInstance.getRootToken()).iterator().next();
- assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
makeBottle.getActorId());
+ TaskInstance makeBottle = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(
+ processInstance.getRootToken()).iterator().next();
+ assertEquals("should-be-one-of-the-actors-in-the-pool-but-doesnt-have-to",
+ makeBottle.getActorId());
assertEquals(3, makeBottle.getPooledActors().size());
assertEquals(makeBottle.getPooledActors(), swimlaneInstance.getPooledActors());
}
public static class NullAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception {
+
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
}
}
+
public void testNullActorsForSwimlaneInitialization() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hero'>" +
- " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$NullAssignmentHandler' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='change nappy' swimlane='hero'
/>'" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hero'>"
+ + " <assignment
class='org.jbpm.taskmgmt.exe.SwimlaneTest$NullAssignmentHandler' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='change nappy' swimlane='hero'
/>'"
+ + " </task-node>"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
SwimlaneInstance swimlaneInstance =
taskMgmtInstance.getSwimlaneInstance("hero");
- TaskInstance changeNappy = (TaskInstance)
taskMgmtInstance.getTaskInstances().iterator().next();
-
+ TaskInstance changeNappy = (TaskInstance) taskMgmtInstance.getTaskInstances()
+ .iterator()
+ .next();
+
assertNull(swimlaneInstance.getActorId());
assertNull(swimlaneInstance.getPooledActors());
assertNull(changeNappy.getActorId());
@@ -577,51 +594,55 @@
}
public void testTwoSwimlanes() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='hooligan'>" +
- " <assignment actor-id='johndoe' />" +
- " </swimlane>" +
- " <swimlane name='policeman'>" +
- " <assignment actor-id='joesmoe' />" +
- " </swimlane>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='throw rock' swimlane='hooligan'
/>" +
- " <transition to='b' />" +
- " </task-node>" +
- " <task-node name='b'>" +
- " <task name='hit him with your rithem stick'
swimlane='policeman' />" +
- " <transition to='c' />" +
- " </task-node>" +
- " <task-node name='c'>" +
- " <task name='get nursed' swimlane='hooligan'
/>" +
- " <transition to='a' />" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='hooligan'>"
+ + " <assignment actor-id='johndoe' />"
+ + " </swimlane>"
+ + " <swimlane name='policeman'>"
+ + " <assignment actor-id='joesmoe' />"
+ + " </swimlane>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='throw rock' swimlane='hooligan'
/>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <task-node name='b'>"
+ + " <task name='hit him with your rithem stick'
swimlane='policeman' />"
+ + " <transition to='c' />"
+ + " </task-node>"
+ + " <task-node name='c'>"
+ + " <task name='get nursed' swimlane='hooligan'
/>"
+ + " <transition to='a' />"
+ + " </task-node>"
+ + "</process-definition>");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
Token token = processInstance.getRootToken();
processInstance.signal();
-
+
TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
- TaskInstance throwRock = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
+ TaskInstance throwRock = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
assertEquals("johndoe", throwRock.getActorId());
-
+
throwRock.end();
- TaskInstance hitWithRithmStick = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
+ TaskInstance hitWithRithmStick = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
assertEquals("joesmoe", hitWithRithmStick.getActorId());
-
+
hitWithRithmStick.end();
- TaskInstance getNursed = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
+ TaskInstance getNursed = (TaskInstance) taskMgmtInstance.getUnfinishedTasks(token)
+ .iterator()
+ .next();
assertEquals("johndoe", getNursed.getActorId());
-
- SwimlaneInstance hooligan =
taskMgmtInstance.getSwimlaneInstance("hooligan");
+
+ SwimlaneInstance hooligan =
taskMgmtInstance.getSwimlaneInstance("hooligan");
hooligan.setActorId("janedane");
-
+
getNursed.end();
throwRock = (TaskInstance)
taskMgmtInstance.getUnfinishedTasks(token).iterator().next();
assertEquals("janedane", throwRock.getActorId());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskAssignmentDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskAssignmentDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskAssignmentDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -35,85 +35,73 @@
public void testPersonalTasklist() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='personal'>"
- + " <start-state>"
- + " <transition to='work' />"
- + " </start-state>"
- + " <task-node name='work'>"
- + " <task name='feed the chickens'>"
- + " <assignment actor-id='john' />"
- + " </task>"
- + " <task name='walk the dog'>"
- + " <assignment actor-id='john' />"
- + " </task>"
- + " <task name='play with wife'>"
- + " <assignment actor-id='john' />"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='work' />"
+ + " </start-state>"
+ + " <task-node name='work'>"
+ + " <task name='feed the chickens'>"
+ + " <assignment actor-id='john' />"
+ + " </task>"
+ + " <task name='walk the dog'>"
+ + " <assignment actor-id='john' />"
+ + " </task>"
+ + " <task name='play with wife'>"
+ + " <assignment actor-id='john' />"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ List taskInstances = jbpmContext.getTaskList("john");
+ assertNotNull(taskInstances);
+ assertEquals(3, taskInstances.size());
- newTransaction();
- List taskInstances = jbpmContext.getTaskList("john");
- assertNotNull(taskInstances);
- assertEquals(3, taskInstances.size());
-
- List taskNames = Arrays.asList(new String[] { "feed the chickens",
"walk the dog", "play with wife" });
- for (Iterator i = taskInstances.iterator(); i.hasNext();) {
- TaskInstance taskInstance = (TaskInstance) i.next();
- assert taskNames.contains(taskInstance.getName()) : taskInstance.getName();
- }
+ List taskNames = Arrays.asList(new String[] { "feed the chickens",
"walk the dog",
+ "play with wife" });
+ for (Iterator i = taskInstances.iterator(); i.hasNext();) {
+ TaskInstance taskInstance = (TaskInstance) i.next();
+ assert taskNames.contains(taskInstance.getName()) : taskInstance.getName();
}
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
}
public static class PoolAssignmentHandler implements AssignmentHandler {
-
private static final long serialVersionUID = 1L;
- public void assign(Assignable assignable, ExecutionContext executionContext) throws
Exception {
+ public void assign(Assignable assignable, ExecutionContext executionContext)
+ throws Exception {
assignable.setPooledActors(new String[] { "john", "joe",
"homer" });
}
}
public void testPooledTasklist() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='pool'>"
- + " <start-state>"
- + " <transition to='work' />"
- + " </start-state>"
- + " <task-node name='work'>"
- + " <task name='feed the chickens'>"
- + " <assignment pooled-actors='john' />"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='work' />"
+ + " </start-state>"
+ + " <task-node name='work'>"
+ + " <task name='feed the chickens'>"
+ + " <assignment pooled-actors='john' />"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ List taskInstances = taskMgmtSession.findPooledTaskInstances("john");
+ assertNotNull(taskInstances);
+ assertEquals(1, taskInstances.size());
- newTransaction();
- List taskInstances = taskMgmtSession.findPooledTaskInstances("john");
- assertNotNull(taskInstances);
- assertEquals(1, taskInstances.size());
-
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- assertEquals("feed the chickens", taskInstance.getName());
- assertNull(taskInstance.getActorId());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ assertEquals("feed the chickens", taskInstance.getName());
+ assertNull(taskInstance.getActorId());
}
-
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskExecutionTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskExecutionTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskExecutionTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -23,7 +23,6 @@
import java.util.Collection;
import java.util.Iterator;
-import java.util.List;
import org.jbpm.AbstractJbpmTestCase;
import org.jbpm.graph.def.ProcessDefinition;
@@ -400,7 +399,7 @@
processInstance.getContextInstance().setVariable("item",
"shoes");
processInstance.signal();
Token token = processInstance.getRootToken();
- Collection taskInstances = (List)
processInstance.getTaskMgmtInstance().getUnfinishedTasks(token);
+ Collection taskInstances =
processInstance.getTaskMgmtInstance().getUnfinishedTasks(token);
assertEquals(1, taskInstances.size());
TaskInstance taskInstance = (TaskInstance) taskInstances.iterator().next();
assertEquals("This task is about shoes", taskInstance.getDescription());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariableAccessDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariableAccessDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariableAccessDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -14,112 +14,93 @@
public class TaskVariableAccessDbTest extends AbstractDbTestCase {
/**
- * verifies task local variables.
+ * verifies task local variables.
*/
public void testVarUpdate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='panem et circenses'>" +
- " <start-state name='start'>" +
- " <transition to='f' />" +
- " </start-state>" +
- " <fork name='f'>" +
- " <transition name='left' to='panem' />" +
- " <transition name='right' to='circenses' />" +
- " </fork>" +
- " <task-node name='panem'>" +
- " <task name='bake bread'>" +
- " <controller>" +
- // empty access means this is a task instance local variable with no
counterpart in the process variables.
- " <variable name='hero' access='' />" +
- " </controller>" +
- " </task>" +
- " <transition to='j' />" +
- " </task-node>" +
- " <task-node name='circenses'>" +
- " <task name='play monopoly'>" +
- " <controller>" +
- // empty access means this is a task instance local variable with no
counterpart in the process variables.
- " <variable name='hero' access='' />" +
- " </controller>" +
- " </task>" +
- " <transition to='j' />" +
- " </task-node>" +
- " <join name='j'>" +
- " <transition to='end' />" +
- " </join>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
- newTransaction();
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition"
+ + " name='panem et circenses'>"
+ + " <start-state name='start'>"
+ + " <transition to='f' />"
+ + " </start-state>"
+ + " <fork name='f'>"
+ + " <transition name='left' to='panem' />"
+ + " <transition name='right' to='circenses' />"
+ + " </fork>"
+ + " <task-node name='panem'>"
+ + " <task name='bake bread'>"
+ + " <controller>"
+ + " <!-- empty access means this is a task-local variable
-->"
+ + " <!-- with no counterpart in the process variables -->"
+ + " <variable name='hero' access='' />"
+ + " </controller>"
+ + " </task>"
+ + " <transition to='j' />"
+ + " </task-node>"
+ + " <task-node name='circenses'>"
+ + " <task name='play monopoly'>"
+ + " <controller>"
+ + " <variable name='hero' access='' />"
+ + " </controller>"
+ + " </task>"
+ + " <transition to='j' />"
+ + " </task-node>"
+ + " <join name='j'>"
+ + " <transition to='end' />"
+ + " </join>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- ProcessInstance processInstance =
jbpmContext.newProcessInstanceForUpdate("panem et circenses");
- processInstance.signal();
+ ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("panem
et circenses");
+ processInstance.signal();
- newTransaction();
+ newTransaction();
+ TaskInstance breadTaskInstance = findTask("bake bread");
+ breadTaskInstance.setVariable("hero", "asterix");
+ jbpmContext.save(breadTaskInstance);
+ long breadTokenId = breadTaskInstance.getToken().getId();
- TaskInstance breadTaskInstance = findTask("bake bread");
- breadTaskInstance.setVariable("hero", "asterix");
- jbpmContext.save(breadTaskInstance);
- long breadTokenId = breadTaskInstance.getToken().getId();
+ newTransaction();
+ Token breadToken = jbpmContext.loadToken(breadTokenId);
+ ContextInstance contextInstance =
breadToken.getProcessInstance().getContextInstance();
+ assertNull(contextInstance.getVariable("hero", breadToken));
- newTransaction();
+ newTransaction();
+ breadTaskInstance = jbpmContext.loadTaskInstance(breadTaskInstance.getId());
+ assertEquals("asterix", breadTaskInstance.getVariable("hero"));
- Token breadToken = jbpmContext.loadToken(breadTokenId);
- ContextInstance contextInstance =
breadToken.getProcessInstance().getContextInstance();
- assertNull(contextInstance.getVariable("hero", breadToken));
+ newTransaction();
+ TaskInstance monopolyTaskInstance = findTask("play monopoly");
+ monopolyTaskInstance.setVariable("hero", "obelix");
+ jbpmContext.save(monopolyTaskInstance);
+ long monopolyTokenId = monopolyTaskInstance.getToken().getId();
- newTransaction();
+ newTransaction();
+ monopolyTaskInstance = jbpmContext.loadTaskInstance(monopolyTaskInstance.getId());
+ assertEquals("obelix",
monopolyTaskInstance.getVariable("hero"));
- breadTaskInstance = jbpmContext.loadTaskInstance(breadTaskInstance.getId());
- assertEquals("asterix",
breadTaskInstance.getVariable("hero"));
+ newTransaction();
+ Token monopolyToken = jbpmContext.loadToken(monopolyTokenId);
+ contextInstance = monopolyToken.getProcessInstance().getContextInstance();
+ assertNull(contextInstance.getVariable("hero", monopolyToken));
- newTransaction();
+ newTransaction();
+ breadTaskInstance =
jbpmContext.loadTaskInstanceForUpdate(breadTaskInstance.getId());
+ breadTaskInstance.end();
- TaskInstance monopolyTaskInstance = findTask("play monopoly");
- monopolyTaskInstance.setVariable("hero", "obelix");
- jbpmContext.save(monopolyTaskInstance);
- long monopolyTokenId = monopolyTaskInstance.getToken().getId();
+ newTransaction();
+ monopolyTaskInstance =
jbpmContext.loadTaskInstanceForUpdate(monopolyTaskInstance.getId());
+ monopolyTaskInstance.end();
- newTransaction();
-
- monopolyTaskInstance = jbpmContext.loadTaskInstance(monopolyTaskInstance.getId());
- assertEquals("obelix",
monopolyTaskInstance.getVariable("hero"));
-
- newTransaction();
-
- Token monopolyToken = jbpmContext.loadToken(monopolyTokenId);
- contextInstance = monopolyToken.getProcessInstance().getContextInstance();
- assertNull(contextInstance.getVariable("hero", monopolyToken));
-
- newTransaction();
-
- breadTaskInstance =
jbpmContext.loadTaskInstanceForUpdate(breadTaskInstance.getId());
- breadTaskInstance.end();
-
- newTransaction();
-
- monopolyTaskInstance =
jbpmContext.loadTaskInstanceForUpdate(monopolyTaskInstance.getId());
- monopolyTaskInstance.end();
-
- newTransaction();
-
- breadToken = jbpmContext.loadToken(breadTokenId);
- monopolyToken = jbpmContext.loadToken(monopolyTokenId);
- contextInstance = breadToken.getProcessInstance().getContextInstance();
- assertNull(contextInstance.getVariable("hero", breadToken));
- assertNull(contextInstance.getVariable("hero", monopolyToken));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ newTransaction();
+ breadToken = jbpmContext.loadToken(breadTokenId);
+ monopolyToken = jbpmContext.loadToken(monopolyTokenId);
+ contextInstance = breadToken.getProcessInstance().getContextInstance();
+ assertNull(contextInstance.getVariable("hero", breadToken));
+ assertNull(contextInstance.getVariable("hero", monopolyToken));
}
- TaskInstance findTask(String taskName) {
+ private TaskInstance findTask(String taskName) {
Session session = jbpmContext.getSession();
Criteria criteria = session.createCriteria(TaskInstance.class);
criteria.add(Restrictions.eq("name", taskName));
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -41,356 +41,305 @@
public void testDefaultVariablePersistence() {
ProcessDefinition processDefinition =
ProcessDefinition.createNewProcessDefinition();
processDefinition.setName("default variable persistence");
- jbpmContext.deployProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- TaskInstance taskInstance = processInstance.getTaskMgmtInstance()
- .createTaskInstance(processInstance.getRootToken());
- taskInstance.setVariable("key", "value");
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ TaskInstance taskInstance =
processInstance.getTaskMgmtInstance().createTaskInstance(
+ processInstance.getRootToken());
+ taskInstance.setVariable("key", "value");
- taskInstance = saveAndReload(taskInstance);
- assertNotNull(taskInstance);
- assertEquals("value", taskInstance.getVariable("key"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ taskInstance = saveAndReload(taskInstance);
+ assertNotNull(taskInstance);
+ assertEquals("value", taskInstance.getVariable("key"));
}
public void testSetOnTaskInstanceGetOnProcess() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='set on task get on
process'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask' />"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- ContextInstance contextInstance = processInstance.getContextInstance();
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ processInstance = saveAndReload(processInstance);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
- Map expectedVariables = new HashMap();
- assertEquals(expectedVariables, taskInstance.getVariables());
+ Map expectedVariables = new HashMap();
+ assertEquals(expectedVariables, taskInstance.getVariables());
- assertFalse(taskInstance.hasVariable("a"));
- assertNull(taskInstance.getVariable("a"));
- assertNull(contextInstance.getVariable("a"));
+ assertFalse(taskInstance.hasVariable("a"));
+ assertNull(taskInstance.getVariable("a"));
+ assertNull(contextInstance.getVariable("a"));
- taskInstance.setVariable("a", "1");
+ taskInstance.setVariable("a", "1");
- taskInstance = saveAndReload(taskInstance);
- contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ contextInstance = taskInstance.getContextInstance();
- expectedVariables.put("a", "1");
- assertEquals(expectedVariables, taskInstance.getVariables());
+ expectedVariables.put("a", "1");
+ assertEquals(expectedVariables, taskInstance.getVariables());
- assertTrue(taskInstance.hasVariable("a"));
- assertEquals("1", taskInstance.getVariable("a"));
- assertEquals("1", contextInstance.getVariable("a"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertTrue(taskInstance.hasVariable("a"));
+ assertEquals("1", taskInstance.getVariable("a"));
+ assertEquals("1", contextInstance.getVariable("a"));
}
public void testSetOnProcessGetOnTaskInstance() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='set on process get
on task'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask' />"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "1");
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ processInstance = saveAndReload(processInstance);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "1");
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
- taskInstance = saveAndReload(taskInstance);
- Map expectedVariables = new HashMap();
- expectedVariables.put("a", "1");
- assertEquals(expectedVariables, taskInstance.getVariables());
+ taskInstance = saveAndReload(taskInstance);
+ Map expectedVariables = new HashMap();
+ expectedVariables.put("a", "1");
+ assertEquals(expectedVariables, taskInstance.getVariables());
- taskInstance = saveAndReload(taskInstance);
- contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ contextInstance = taskInstance.getContextInstance();
- assertTrue(taskInstance.hasVariable("a"));
- assertEquals("1", taskInstance.getVariable("a"));
- assertEquals("1", contextInstance.getVariable("a"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertTrue(taskInstance.hasVariable("a"));
+ assertEquals("1", taskInstance.getVariable("a"));
+ assertEquals("1", contextInstance.getVariable("a"));
}
public void testSetLocally() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='set
locally'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask' />"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
- taskInstance = saveAndReload(taskInstance);
- ContextInstance contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ ContextInstance contextInstance = taskInstance.getContextInstance();
- Map expectedVariables = new HashMap();
- assertEquals(expectedVariables, taskInstance.getVariables());
- assertFalse(taskInstance.hasVariable("a"));
- assertNull(taskInstance.getVariable("a"));
- assertNull(contextInstance.getVariable("a"));
+ Map expectedVariables = new HashMap();
+ assertEquals(expectedVariables, taskInstance.getVariables());
+ assertFalse(taskInstance.hasVariable("a"));
+ assertNull(taskInstance.getVariable("a"));
+ assertNull(contextInstance.getVariable("a"));
- taskInstance.setVariableLocally("a", "1");
+ taskInstance.setVariableLocally("a", "1");
- taskInstance = saveAndReload(taskInstance);
- contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ contextInstance = taskInstance.getContextInstance();
- expectedVariables.put("a", "1");
- assertEquals(expectedVariables, taskInstance.getVariables());
+ expectedVariables.put("a", "1");
+ assertEquals(expectedVariables, taskInstance.getVariables());
- assertTrue(taskInstance.hasVariable("a"));
- assertEquals("1", taskInstance.getVariable("a"));
- assertNull(contextInstance.getVariable("a"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertTrue(taskInstance.hasVariable("a"));
+ assertEquals("1", taskInstance.getVariable("a"));
+ assertNull(contextInstance.getVariable("a"));
}
public void testCopyWithController() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='copy with
controller'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask'>"
- + " <controller>"
- + " <variable name='a' />"
- + " <variable name='b' />"
- + " </controller>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask'>"
+ + " <controller>"
+ + " <variable name='a' />"
+ + " <variable name='b' />"
+ + " </controller>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "1");
- contextInstance.setVariable("b", "2");
- contextInstance.setVariable("c", "3");
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "1");
+ contextInstance.setVariable("b", "2");
+ contextInstance.setVariable("c", "3");
- processInstance.signal();
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ processInstance.signal();
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
- taskInstance = saveAndReload(taskInstance);
+ taskInstance = saveAndReload(taskInstance);
- Map expectedVariables = new HashMap();
- expectedVariables.put("a", "1");
- expectedVariables.put("b", "2");
- expectedVariables.put("c", "3");
- assertEquals(expectedVariables, taskInstance.getVariables());
+ Map expectedVariables = new HashMap();
+ expectedVariables.put("a", "1");
+ expectedVariables.put("b", "2");
+ expectedVariables.put("c", "3");
+ assertEquals(expectedVariables, taskInstance.getVariables());
- taskInstance.setVariable("a", "1 modified");
- taskInstance.setVariable("b", "2 modified");
- taskInstance.setVariable("c", "3 modified");
+ taskInstance.setVariable("a", "1 modified");
+ taskInstance.setVariable("b", "2 modified");
+ taskInstance.setVariable("c", "3 modified");
- taskInstance = saveAndReload(taskInstance);
+ taskInstance = saveAndReload(taskInstance);
- expectedVariables.clear();
- expectedVariables.put("a", "1 modified");
- expectedVariables.put("b", "2 modified");
- expectedVariables.put("c", "3 modified");
- assertEquals(expectedVariables, taskInstance.getVariables());
+ expectedVariables.clear();
+ expectedVariables.put("a", "1 modified");
+ expectedVariables.put("b", "2 modified");
+ expectedVariables.put("c", "3 modified");
+ assertEquals(expectedVariables, taskInstance.getVariables());
- taskInstance = saveAndReload(taskInstance);
- contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ contextInstance = taskInstance.getContextInstance();
- expectedVariables.clear();
- expectedVariables.put("a", "1"); // task instance had local
copy for var a
- expectedVariables.put("b", "2"); // task instance had local
copy for var b
- expectedVariables.put("c", "3 modified");
- assertEquals(expectedVariables, contextInstance.getVariables());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ expectedVariables.clear();
+ expectedVariables.put("a", "1"); // task instance had local copy
for var a
+ expectedVariables.put("b", "2"); // task instance had local copy
for var b
+ expectedVariables.put("c", "3 modified");
+ assertEquals(expectedVariables, contextInstance.getVariables());
}
public void testOverwriteNullValue() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='overwrite-null-value'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask'>"
- + " <controller>"
- + " <variable name='v' />"
- + " </controller>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask'>"
+ + " <controller>"
+ + " <variable name='v' />"
+ + " </controller>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
+ processInstance = saveAndReload(processInstance);
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
- assertNull(taskInstance.getVariable("v"));
- taskInstance.setVariable("v", "facelets is great");
+ assertNull(taskInstance.getVariable("v"));
+ taskInstance.setVariable("v", "facelets is great");
- taskInstance = saveAndReload(taskInstance);
- assertEquals("facelets is great",
taskInstance.getVariable("v"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ taskInstance = saveAndReload(taskInstance);
+ assertEquals("facelets is great",
taskInstance.getVariable("v"));
}
public void testNewTaskInstanceVariablesWithoutController() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='task variables
without controller'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t'>"
- + " <task name='vartask' />"
- + " <transition to='u' />"
- + " </task-node>"
- + " <state name='u' />"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t'>"
+ + " <task name='vartask' />"
+ + " <transition to='u' />"
+ + " </task-node>"
+ + " <state name='u' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
- taskInstance.setVariableLocally("a", "value-a");
- taskInstance.setVariableLocally("b", "value-b");
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ taskInstance.setVariableLocally("a", "value-a");
+ taskInstance.setVariableLocally("b", "value-b");
- taskInstance = saveAndReload(taskInstance);
- ContextInstance contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ ContextInstance contextInstance = taskInstance.getContextInstance();
- assertFalse(contextInstance.hasVariable("a"));
- assertFalse(contextInstance.hasVariable("b"));
+ assertFalse(contextInstance.hasVariable("a"));
+ assertFalse(contextInstance.hasVariable("b"));
- assertEquals("value-a", taskInstance.getVariable("a"));
- assertEquals("value-b", taskInstance.getVariable("b"));
+ assertEquals("value-a", taskInstance.getVariable("a"));
+ assertEquals("value-b", taskInstance.getVariable("b"));
- taskInstance.end();
+ taskInstance.end();
- assertEquals("value-a", contextInstance.getVariable("a"));
- assertEquals("value-b", contextInstance.getVariable("b"));
+ assertEquals("value-a", contextInstance.getVariable("a"));
+ assertEquals("value-b", contextInstance.getVariable("b"));
- taskInstance = saveAndReload(taskInstance);
- contextInstance = taskInstance.getContextInstance();
+ taskInstance = saveAndReload(taskInstance);
+ contextInstance = taskInstance.getContextInstance();
- assertEquals("value-a", contextInstance.getVariable("a"));
- assertEquals("value-b", contextInstance.getVariable("b"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("value-a", contextInstance.getVariable("a"));
+ assertEquals("value-b", contextInstance.getVariable("b"));
}
public void testTaskVariableQuery() {
ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='task-variable-query'>"
- + " <start-state>"
- + " <transition to='t' />"
- + " </start-state>"
- + " <task-node name='t' create-tasks='no'>"
- + " <event type='node-enter'>"
- + " <action class='"
- + CreateTasksAction.class.getName()
- + "'/>"
- + " </event>"
- + " <task name='vartask'>"
- + " <assignment actor-id='me' />"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- jbpmContext.deployProcessDefinition(processDefinition);
+ + " <start-state>"
+ + " <transition to='t' />"
+ + " </start-state>"
+ + " <task-node name='t' create-tasks='no'>"
+ + " <event type='node-enter'>"
+ + " <action class='"
+ + CreateTasksAction.class.getName()
+ + "'/>"
+ + " </event>"
+ + " <task name='vartask'>"
+ + " <assignment actor-id='me' />"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+
newTransaction();
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ assertEquals(5, jbpmContext.getTaskList("me").size());
- newTransaction();
- assertEquals(5, jbpmContext.getTaskList("me").size());
-
- newTransaction();
- TaskInstance task = getTask("index", 3, "me");
- assertEquals(3, ((Long) task.getVariable("index")).longValue());
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ TaskInstance task = getTask("index", 3, "me");
+ assertEquals(3, ((Long) task.getVariable("index")).longValue());
}
private TaskInstance getTask(String variableName, long variableValue, String actorId)
{
- return (TaskInstance) jbpmContext.getSession()
- .createCriteria(TaskInstance.class)
- .add(Restrictions.eq("actorId", actorId))
- .createCriteria("variableInstances")
- .add(Restrictions.eq("name", variableName))
- .add(Restrictions.sqlRestriction("{alias}.LONGVALUE_ = ?", new
Long(variableValue), Hibernate.LONG))
- .uniqueResult();
+ return (TaskInstance)
jbpmContext.getSession().createCriteria(TaskInstance.class).add(
+ Restrictions.eq("actorId",
actorId)).createCriteria("variableInstances").add(
+ Restrictions.eq("name", variableName)).add(
+ Restrictions.sqlRestriction("{alias}.LONGVALUE_ = ?", new
Long(variableValue),
+ Hibernate.LONG)).uniqueResult();
}
public static final class CreateTasksAction implements ActionHandler {
-
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
@@ -403,6 +352,5 @@
ti.setVariableLocally("index", new Long(index));
}
}
-
}
}
Deleted:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm.test.cfg.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm.test.cfg.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm.test.cfg.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,2 +0,0 @@
-<jbpm-configuration>
-</jbpm-configuration>
Added:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/.gpd.timerprocess.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/.gpd.timerprocess.xml
(rev 0)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/.gpd.timerprocess.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root-container name="jbpm1135" width="880"
height="621">
+ <node name="start" x="0" y="0" width="132"
height="36">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="firstNode" x="0" y="0"
width="132" height="36">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="secondNode" x="0" y="0"
width="132" height="36">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="end" x="0" y="0" width="132"
height="36"/>
+</root-container>
Property changes on:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/.gpd.timerprocess.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/timerprocess.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/timerprocess.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm1135/timerprocess.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process-definition name="timerProcess"
xmlns="urn:jbpm.org:jpdl-3.2"
+<process-definition name="jbpm1135" xmlns="urn:jbpm.org:jpdl-3.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:jbpm.org:jpdl-3.2
http://jbpm.org/xsd/jpdl-3.2.xsd">
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process-definition xmlns="urn:jbpm.org:jpdl-3.2"
name="bpm_orchestration2">
+<process-definition xmlns="urn:jbpm.org:jpdl-3.2"
name="jbpm2094">
<start-state name="Start">
<transition to="Receive Order"/>
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2787/processdefinition.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process-definition xmlns="" name="prequalification">
+<process-definition xmlns="urn:jbpm.org:jpdl-3.2"
name="jbpm2787">
<start-state name="StartPrequalification">
<transition to="InitializeVariables" />
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/mail/MailTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/mail/MailTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/mail/MailTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -36,8 +36,7 @@
public class MailTest extends AbstractJbpmTestCase {
- private static SimpleSmtpServer server;
-
+ static SimpleSmtpServer server;
private static final String XML_DECL = "<?xml
version='1.0'?>";
public static Test suite() {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Entity.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Entity.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Entity.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,9 +21,10 @@
*/
package org.jbpm.identity;
-import java.io.*;
-import java.security.*;
-import java.util.*;
+import java.io.Serializable;
+import java.security.Permission;
+import java.util.HashSet;
+import java.util.Set;
/**
* common supertype for users, groups and memberships
@@ -33,10 +34,10 @@
private static final long serialVersionUID = 1L;
- long id = 0;
- protected String name = null;
- /* permissions is a set of java.security.Permission's */
- protected Set permissions = null;
+ private long id;
+ protected String name;
+ /* permissions is a set of java.security.Permission */
+ protected Set permissions;
// constructors /////////////////////////////////////////////////////////////
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Group.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Group.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Group.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,7 +21,9 @@
*/
package org.jbpm.identity;
-import java.util.*;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
/**
* group of users.
@@ -45,10 +47,10 @@
private static final long serialVersionUID = 1L;
- protected String type = null;
- protected Group parent = null;
- protected Set children = null;
- protected Set memberships = null;
+ protected String type;
+ protected Group parent;
+ protected Set children;
+ protected Set memberships;
public Group() {
}
@@ -100,9 +102,6 @@
return users;
}
- public long getId() {
- return id;
- }
public Set getMemberships() {
return memberships;
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Membership.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Membership.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/Membership.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,27 +21,23 @@
*/
package org.jbpm.identity;
-import java.io.*;
-
/**
- * one association between user and a group.
- * The name of the membership represents the role-name that
- * the user fullfills in the group.
- * A membership can be a position in an organisation, therefor
- * permissions can be associated with a membership.
- * The name of the membership can be used as the role name. Meaning
- * which role does the user fullfill in the group.
+ * one association between user and a group. The name of the membership
+ * represents the role-name that the user fulfills in the group. A membership
+ * can be a position in an organisation, therefore permissions can be associated
+ * with a membership. The name of the membership can be used as the role name.
+ * Meaning which role does the user play in the group.
*/
-public class Membership extends Entity implements Serializable {
-
+public class Membership extends Entity {
+
private static final long serialVersionUID = 1L;
- protected String role = null;
- protected User user = null;
- protected Group group = null;
-
+ protected String role;
+ protected User user;
+ protected Group group;
+
// constructors /////////////////////////////////////////////////////////////
-
+
public Membership() {
}
@@ -62,24 +58,25 @@
public void setUser(User user) {
this.user = user;
}
+
public void setGroup(Group group) {
this.group = group;
}
// getters //////////////////////////////////////////////////////////////////
- public long getId() {
- return id;
- }
public Group getGroup() {
return group;
}
+
public User getUser() {
return user;
}
+
public String getRole() {
return role;
}
+
public void setRole(String role) {
this.role = role;
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/User.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/User.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/User.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,8 +21,11 @@
*/
package org.jbpm.identity;
-import java.security.*;
-import java.util.*;
+import java.security.Principal;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
/**
* user or a system.
@@ -30,11 +33,11 @@
public class User extends Entity implements Principal {
private static final long serialVersionUID = 1L;
-
- protected String password = null;
- protected String email = null;
- protected Set memberships = null;
-
+
+ protected String password;
+ protected String email;
+ protected Set memberships;
+
public User() {
}
@@ -43,18 +46,18 @@
}
public void addMembership(Membership membership) {
- if (memberships==null) memberships = new HashSet();
+ if (memberships == null) memberships = new HashSet();
memberships.add(membership);
membership.setUser(this);
}
-
+
public Set getGroupsForGroupType(String groupType) {
- Set groups = new HashSet();
- if(memberships!=null) {
- Iterator iter = memberships.iterator();
- while (iter.hasNext()) {
+ Set groups = Collections.EMPTY_SET;
+ if (memberships != null) {
+ for (Iterator iter = memberships.iterator(); iter.hasNext();) {
Membership membership = (Membership) iter.next();
if (groupType.equals(membership.getGroup().getType())) {
+ if (groups.isEmpty()) groups = new HashSet();
groups.add(membership.getGroup());
}
}
@@ -63,12 +66,12 @@
}
public Set getGroupsForMembershipRole(String membershipRole) {
- Set groups = new HashSet();
- if(memberships!=null) {
- Iterator iter = memberships.iterator();
- while (iter.hasNext()) {
+ Set groups = Collections.EMPTY_SET;
+ if (memberships != null) {
+ for (Iterator iter = memberships.iterator(); iter.hasNext();) {
Membership membership = (Membership) iter.next();
if (membershipRole.equals(membership.getRole())) {
+ if (groups.isEmpty()) groups = new HashSet();
groups.add(membership.getGroup());
}
}
@@ -79,16 +82,37 @@
public void setPassword(String password) {
this.password = password;
}
+
public String getPassword() {
return password;
}
+
public Set getMemberships() {
return memberships;
}
+
public String getEmail() {
return email;
}
+
public void setEmail(String email) {
this.email = email;
}
+
+ public boolean equals(Object obj) {
+ if (this == obj) return true;
+ if (!(obj instanceof User)) return false;
+
+ User other = (User) obj;
+ return name != null ? name.equals(other.getName()) : false;
+ }
+
+ public int hashCode() {
+ return name != null ? name.hashCode() : System.identityHashCode(this);
+ }
+
+ public String toString() {
+ return "User(" + name + ")";
+ }
+
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySession.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySession.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySession.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -23,8 +23,6 @@
import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
@@ -39,12 +37,11 @@
import org.jbpm.identity.User;
import org.jbpm.identity.assignment.ExpressionSession;
import org.jbpm.identity.security.IdentityService;
+import org.jbpm.persistence.JbpmPersistenceException;
public class IdentitySession implements IdentityService, ExpressionSession {
- private static final Log log = LogFactory.getLog(IdentitySession.class);
-
- final Session session;
+ private final Session session;
private Transaction transaction;
public IdentitySession(Session session) {
@@ -53,7 +50,7 @@
public IdentitySession() {
JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
- if (jbpmContext == null) throw new RuntimeException("no active jbpm
context");
+ if (jbpmContext == null) throw new JbpmException("no active jbpm
context");
session = jbpmContext.getSession();
if (session == null) throw new JbpmException("no active hibernate
session");
@@ -63,10 +60,10 @@
public Object verify(String userName, String pwd) {
return session.createCriteria(User.class)
- .setProjection(Projections.property("id"))
- .add(Restrictions.eq("name", userName))
- .add(Restrictions.eq("password", pwd))
- .uniqueResult();
+ .setProjection(Projections.property("id"))
+ .add(Restrictions.eq("name", userName))
+ .add(Restrictions.eq("password", pwd))
+ .uniqueResult();
}
public User getUserById(Object userId) {
@@ -75,89 +72,84 @@
// transaction convenience methods //////////////////////////////////////////
- /** @deprecated */
public Session getSession() {
return session;
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.getTransaction() instead */
public Transaction getTransaction() {
return transaction;
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.beginTransaction() instead */
public void beginTransaction() {
try {
transaction = session.beginTransaction();
}
catch (HibernateException e) {
- log.error(e);
- throw new RuntimeException("couldn't begin a transaction", e);
+ throw new JbpmPersistenceException("could not begin transaction", e);
}
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.getTransaction().commit() instead */
public void commitTransaction() {
if (transaction == null) {
- throw new RuntimeException("can't commit : no transaction started");
+ throw new JbpmException("cannot commit: no transaction started");
}
try {
session.flush();
transaction.commit();
}
catch (HibernateException e) {
- log.error(e);
- throw new RuntimeException("couldn't commit transaction", e);
+ throw new JbpmPersistenceException("could not commit transaction", e);
}
transaction = null;
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.getTransaction().rollback() instead */
public void rollbackTransaction() {
if (transaction == null) {
- throw new RuntimeException("can't rollback : no transaction
started");
+ throw new JbpmException("cannot rollback: no transaction started");
}
try {
transaction.rollback();
}
catch (HibernateException e) {
- log.error(e);
- throw new RuntimeException("couldn't rollback transaction", e);
+ throw new JbpmPersistenceException("could not rollback transaction", e);
}
transaction = null;
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.getTransaction().commit() instead */
public void commitTransactionAndClose() {
commitTransaction();
close();
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.getTransaction().rollback() instead */
public void rollbackTransactionAndClose() {
rollbackTransaction();
close();
}
- /** @deprecated */
+ /** @deprecated call {@link #getSession()}.close() instead */
public void close() {
try {
session.close();
}
catch (HibernateException e) {
- log.error(e);
- throw new RuntimeException("couldn't close the hibernate connection",
e);
+ throw new JbpmPersistenceException("could not close hibernate session",
e);
}
}
// identity methods /////////////////////////////////////////////////////////
- /** @deprecated use {@link #saveEntity(Entity)} instead */
+ /** @deprecated call {@link #saveEntity(Entity)} instead */
public void saveUser(User user) {
session.save(user);
}
- /** @deprecated use {@link #saveEntity(Entity)} instead */
+ /** @deprecated call {@link #saveEntity(Entity)} instead */
public void saveGroup(Group group) {
session.save(group);
}
@@ -166,7 +158,7 @@
session.save(entity);
}
- /** @deprecated use {@link #saveEntity(Entity)} instead */
+ /** @deprecated call {@link #saveEntity(Entity)} instead */
public void saveMembership(Membership membership) {
session.save(membership);
}
@@ -179,12 +171,12 @@
return (Group) session.load(Group.class, new Long(groupId));
}
- /** @deprecated use {@link #deleteEntity(Entity)} instead */
+ /** @deprecated call {@link #deleteEntity(Entity)} instead */
public void deleteGroup(Group group) {
session.delete(group);
}
- /** @deprecated use {@link #deleteEntity(Entity)} instead */
+ /** @deprecated call {@link #deleteEntity(Entity)} instead */
public void deleteUser(User user) {
session.delete(user);
}
@@ -194,15 +186,17 @@
}
public User getUserByName(String userName) {
- List users = session.createCriteria(User.class).add(Restrictions.eq("name",
userName)).list();
- return users.isEmpty() ? null : (User) users.get(0);
+ return (User) session.createCriteria(User.class)
+ .add(Restrictions.eq("name", userName))
+ .setMaxResults(1)
+ .uniqueResult();
}
public Group getGroupByName(String groupName) {
- List groups = session.createCriteria(Group.class)
- .add(Restrictions.eq("name", groupName))
- .list();
- return groups.isEmpty() ? null : (Group) groups.get(0);
+ return (Group) session.createCriteria(Group.class)
+ .add(Restrictions.eq("name", groupName))
+ .setMaxResults(1)
+ .uniqueResult();
}
public List getUsers() {
@@ -211,20 +205,20 @@
public List getGroupNamesByUserAndGroupType(String userName, String groupType) {
return session.createCriteria(Membership.class)
- .createAlias("group", "g")
- .createAlias("user", "u")
- .add(Restrictions.eq("u.name", userName))
- .add(Restrictions.eq("g.type", groupType))
- .setProjection(Projections.property("g.name"))
- .list();
+ .createAlias("group", "g")
+ .createAlias("user", "u")
+ .add(Restrictions.eq("u.name", userName))
+ .add(Restrictions.eq("g.type", groupType))
+ .setProjection(Projections.property("g.name"))
+ .list();
}
public User getUserByGroupAndRole(String groupName, String role) {
return (User) session.createCriteria(Membership.class)
- .createAlias("group", "g")
- .add(Restrictions.eq("role", role))
- .add(Restrictions.eq("g.name", groupName))
- .setProjection(Projections.property("user"))
- .uniqueResult();
+ .createAlias("group", "g")
+ .add(Restrictions.eq("role", role))
+ .add(Restrictions.eq("g.name", groupName))
+ .setProjection(Projections.property("user"))
+ .uniqueResult();
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/IdentityDbTestCase.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/IdentityDbTestCase.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/IdentityDbTestCase.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,83 +21,34 @@
*/
package org.jbpm.identity;
-import org.hibernate.Session;
-import org.jbpm.JbpmContext;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.identity.hibernate.IdentitySession;
-public abstract class IdentityDbTestCase extends AbstractDbTestCase
-{
+public abstract class IdentityDbTestCase extends AbstractDbTestCase {
+
protected IdentitySession identitySession;
- protected void tearDown() throws Exception
- {
- super.tearDown();
- if (hasLeftOverRecords())
- {
- // We exit because subsequent tests start in an undefined state
- System.exit(1);
- }
+ protected void initializeMembers() {
+ super.initializeMembers();
+ identitySession = (IdentitySession) jbpmContext.getServices()
+ .getPersistenceService()
+ .getCustomSession(IdentitySession.class);
}
- private boolean hasLeftOverRecords()
- {
- boolean foundLeftOvers = false;
- JbpmContext jbpmContext = getJbpmConfiguration().createJbpmContext();
- Session session = jbpmContext.getSession();
- try
- {
- if (session.createQuery("from " + Group.class.getName()).list().size()
> 0)
- {
- System.err.println("FIXME: left over Group after: " + getShortName());
- foundLeftOvers = true;
- }
- if (session.createQuery("from " + User.class.getName()).list().size()
> 0)
- {
- System.err.println("FIXME: left over User after: " + getShortName());
- foundLeftOvers = true;
- }
- }
- catch (Exception ex)
- {
- System.err.println("FIXME: cannot query left overs: " + ex);
- }
- finally
- {
- jbpmContext.close();
- }
- return foundLeftOvers;
+ protected void resetMembers() {
+ super.resetMembers();
+ identitySession = null;
}
-
- protected void initializeMembers()
- {
- super.initializeMembers();
- identitySession = new IdentitySession(session);
- }
- protected User saveAndReload(User user)
- {
+ protected User saveAndReload(User user) {
identitySession.saveEntity(user);
newTransaction();
return identitySession.loadUser(user.getId());
}
- protected Group saveAndReload(Group group)
- {
+ protected Group saveAndReload(Group group) {
identitySession.saveEntity(group);
newTransaction();
return identitySession.loadGroup(group.getId());
}
-
- protected void deleteGroup(long groupId)
- {
- Group group = identitySession.loadGroup(groupId);
- identitySession.deleteEntity(group);
- }
-
- protected void deleteUser(long userId)
- {
- User user = identitySession.loadUser(userId);
- identitySession.deleteEntity(user);
- }
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/MembershipTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/MembershipTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/MembershipTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,9 +21,10 @@
*/
package org.jbpm.identity;
-import java.util.*;
+import java.util.Iterator;
+import java.util.Set;
-import junit.framework.*;
+import junit.framework.TestCase;
public class MembershipTest extends TestCase {
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -21,8 +21,12 @@
*/
package org.jbpm.identity.assignment;
+import java.util.Iterator;
import java.util.Set;
+import org.jbpm.context.def.ContextDefinition;
+import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.context.log.VariableLog;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
@@ -30,7 +34,10 @@
import org.jbpm.identity.IdentityDbTestCase;
import org.jbpm.identity.Membership;
import org.jbpm.identity.User;
+import org.jbpm.logging.exe.LoggingInstance;
+import org.jbpm.logging.log.ProcessLog;
import org.jbpm.taskmgmt.def.Swimlane;
+import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
import org.jbpm.taskmgmt.exe.PooledActor;
import org.jbpm.taskmgmt.exe.SwimlaneInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
@@ -42,25 +49,24 @@
ProcessInstance processInstance;
ExecutionContext executionContext;
- ProcessDefinition processDefinition;
Membership membershipJohn, membershipBill;
Group hellsangels;
User john, bill;
public void setUp() throws Exception {
super.setUp();
+
expressionAssignmentHandler = new ExpressionAssignmentHandler();
setUpProcessInstance();
setUpUserData();
- newTransaction();
jbpmContext.setActorId("bill");
}
protected void tearDown() throws Exception {
- deleteUser(john.getId());
- deleteUser(bill.getId());
- deleteGroup(hellsangels.getId());
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ identitySession.deleteEntity(hellsangels);
+ identitySession.deleteEntity(john);
+ identitySession.deleteEntity(bill);
+
super.tearDown();
}
@@ -79,14 +85,15 @@
}
private void setUpProcessInstance() {
- processDefinition =
ProcessDefinition.parseXmlString("<process-definition/>");
- graphSession.saveProcessDefinition(processDefinition);
- processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
- }
+ TaskMgmtDefinition taskMgmtDefinition = new TaskMgmtDefinition();
+ taskMgmtDefinition.addSwimlane(new Swimlane("boss"));
- protected void newTransaction() {
- super.newTransaction();
+ ProcessDefinition processDefinition = new ProcessDefinition("exp");
+ processDefinition.addDefinition(taskMgmtDefinition);
+ processDefinition.addDefinition(new ContextDefinition());
+ deployProcessDefinition(processDefinition);
+
+ processInstance = jbpmContext.newProcessInstanceForUpdate("exp");
executionContext = new ExecutionContext(processInstance.getRootToken());
}
@@ -97,10 +104,11 @@
}
public void testFirstTermSwimlane() {
+ SwimlaneInstance swimlaneInstance = processInstance.getTaskMgmtInstance()
+ .createSwimlaneInstance("boss");
+ swimlaneInstance.setActorId("john");
+
expressionAssignmentHandler.expression = "swimlane(boss)";
- SwimlaneInstance swimlaneInstance = new SwimlaneInstance(new
Swimlane("boss"));
- swimlaneInstance.setActorId("john");
- processInstance.getTaskMgmtInstance().addSwimlaneInstance(swimlaneInstance);
expressionAssignmentHandler.assign(assignable, executionContext);
assertEquals("john", assignable.getActorId());
}
@@ -117,30 +125,47 @@
}
public void testFirstTermVariableString() {
+ processInstance.getContextInstance().setVariable("actoridstringvariable",
"john");
+
expressionAssignmentHandler.expression =
"variable(actoridstringvariable)";
- processInstance.getContextInstance().setVariable("actoridstringvariable",
"john");
expressionAssignmentHandler.assign(assignable, executionContext);
assertEquals("john", assignable.getActorId());
}
public void testFirstTermVariableUser() {
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("uservariable", john);
+
expressionAssignmentHandler.expression = "variable(uservariable)";
- User john = identitySession.getUserByName("john");
- processInstance.getContextInstance().setVariable("uservariable", john);
expressionAssignmentHandler.assign(assignable, executionContext);
assertEquals("john", assignable.getActorId());
+
+ contextInstance.deleteVariable("uservariable");
+ deleteLogs(processInstance.getLoggingInstance(), VariableLog.class);
}
public void testFirstTermVariableGroup() {
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("groupvariable", hellsangels);
+
expressionAssignmentHandler.expression = "variable(groupvariable)";
- Group hellsangels = identitySession.getGroupByName("hellsangels");
- processInstance.getContextInstance().setVariable("groupvariable",
hellsangels);
expressionAssignmentHandler.assign(assignable, executionContext);
+
Set pooledActors = assignable.getPooledActors();
PooledActor pooledActor = (PooledActor) pooledActors.iterator().next();
assertEquals("hellsangels", pooledActor.getActorId());
+
+ contextInstance.deleteVariable("groupvariable");
+ deleteLogs(processInstance.getLoggingInstance(), VariableLog.class);
}
+ private static void deleteLogs(LoggingInstance loggingInstance, Class logClass) {
+ for (Iterator i = loggingInstance.getLogs().iterator(); i.hasNext();) {
+ ProcessLog processLog = (ProcessLog) i.next();
+ if (logClass.isInstance(processLog)) i.remove();
+ }
+ }
+
public void testFirstTermVariableUnexisting() {
expressionAssignmentHandler.expression =
"variable(unexistingvariablename)";
try {
@@ -172,6 +197,7 @@
public void testFirstTermGroup() {
expressionAssignmentHandler.expression = "group(hellsangels)";
expressionAssignmentHandler.assign(assignable, executionContext);
+
Set pooledActors = assignable.getPooledActors();
PooledActor pooledActor = (PooledActor) pooledActors.iterator().next();
assertEquals("hellsangels", pooledActor.getActorId());
@@ -202,6 +228,7 @@
public void testNextTermGroup() {
expressionAssignmentHandler.expression = "user(john) -->
group(hierarchy)";
expressionAssignmentHandler.assign(assignable, executionContext);
+
Set pooledActors = assignable.getPooledActors();
PooledActor pooledActor = (PooledActor) pooledActors.iterator().next();
assertEquals("hellsangels", pooledActor.getActorId());
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/GroupDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/GroupDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/GroupDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -32,19 +32,17 @@
import org.jbpm.identity.Membership;
import org.jbpm.identity.User;
-public class GroupDbTest extends IdentityDbTestCase
-{
- public void testGroup()
- {
- Group group = new Group("people with read hair");
+public class GroupDbTest extends IdentityDbTestCase {
+
+ public void testGroup() {
+ Group group = new Group("people with red hair");
group = saveAndReload(group);
- assertEquals("people with read hair", group.getName());
-
- deleteGroup(group.getId());
+ assertEquals("people with red hair", group.getName());
+
+ identitySession.deleteEntity(group);
}
- public void testGroupMemberships()
- {
+ public void testGroupMemberships() {
Group chicagoBulls = new Group("chicago bulls");
User tyson = new User("tyson");
User eddy = new User("eddy");
@@ -58,16 +56,20 @@
chicagoBulls = saveAndReload(chicagoBulls);
assertEquals(4, chicagoBulls.getUsers().size());
-
- deleteGroup(chicagoBulls.getId());
- deleteUser(tyson.getId());
- deleteUser(eddy.getId());
- deleteUser(antonio.getId());
- deleteUser(chris.getId());
+
+ tyson = identitySession.loadUser(tyson.getId());
+ eddy = identitySession.loadUser(eddy.getId());
+ antonio = identitySession.loadUser(antonio.getId());
+ chris = identitySession.loadUser(chris.getId());
+
+ identitySession.deleteEntity(chicagoBulls);
+ identitySession.deleteEntity(tyson);
+ identitySession.deleteEntity(eddy);
+ identitySession.deleteEntity(antonio);
+ identitySession.deleteEntity(chris);
}
- public void testGroupPermissions()
- {
+ public void testGroupPermissions() {
Group chicagoBulls = new Group("chicago bulls");
chicagoBulls.addPermission(new SocketPermission("basket",
"connect"));
chicagoBulls.addPermission(new FilePermission("ticket",
"write"));
@@ -75,12 +77,11 @@
chicagoBulls = saveAndReload(chicagoBulls);
assertEquals(2, chicagoBulls.getPermissions().size());
-
- deleteGroup(chicagoBulls.getId());
+
+ identitySession.deleteEntity(chicagoBulls);
}
- public void testGroups()
- {
+ public void testGroups() {
Group clowns = new Group("clowns");
identitySession.saveEntity(clowns);
@@ -88,12 +89,11 @@
clowns = identitySession.loadGroup(clowns.getId());
assertEquals("clowns", clowns.getName());
-
- deleteGroup(clowns.getId());
+
+ identitySession.deleteEntity(clowns);
}
- public void testGroupChildren()
- {
+ public void testGroupChildren() {
Group clowns = new Group("clowns");
clowns.addChild(new Group("cowboys"));
clowns.addChild(new Group("indians"));
@@ -109,10 +109,10 @@
Set childNames = new HashSet();
Iterator iter = children.iterator();
- Group child = (Group)iter.next();
+ Group child = (Group) iter.next();
assertEquals("clowns", child.getParent().getName());
childNames.add(child.getName());
- child = (Group)iter.next();
+ child = (Group) iter.next();
assertEquals("clowns", child.getParent().getName());
childNames.add(child.getName());
@@ -122,6 +122,6 @@
assertEquals(expectedChildNames, childNames);
- deleteGroup(clowns.getId());
+ identitySession.deleteEntity(clowns);
}
}
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/UserDbTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/UserDbTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/hibernate/UserDbTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -38,7 +38,7 @@
user = saveAndReload(user);
assertEquals("johndoe", user.getName());
- deleteUser(user.getId());
+ identitySession.deleteEntity(user);
}
public void testUserMemberships() {
@@ -51,15 +51,24 @@
john = saveAndReload(john);
Set groups = john.getGroupsForGroupType("hierarchy");
-
assertEquals(2, groups.size());
- assertEquals(2, groups.size());
- assertTrue(containsGroup(groups, "qa team"));
- assertTrue(containsGroup(groups, "marketing team"));
- deleteGroup(marketingTeam.getId());
- deleteGroup(qaTeam.getId());
- deleteUser(john.getId());
+ Iterator groupIterator = groups.iterator();
+ Group group = (Group) groupIterator.next();
+ if ("qa team".equals(group.getName())) {
+ qaTeam = group;
+ marketingTeam = (Group) groupIterator.next();
+ assertEquals("marketing team", marketingTeam.getName());
+ }
+ else {
+ qaTeam = (Group) groupIterator.next();
+ marketingTeam = group;
+ assertEquals("qa team", qaTeam.getName());
+ }
+
+ identitySession.deleteEntity(john);
+ identitySession.deleteEntity(qaTeam);
+ identitySession.deleteEntity(marketingTeam);
}
public void testUserPermissions() {
@@ -68,12 +77,10 @@
user.addPermission(new AllPermission("all", "everything"));
user = saveAndReload(user);
-
Set permissions = user.getPermissions();
- assertNotNull(permissions);
assertEquals(2, permissions.size());
- deleteUser(user.getId());
+ identitySession.deleteEntity(user);
}
public void testVerifyWrongUser() {
@@ -83,22 +90,9 @@
public void testVerifyValidPwd() {
User user = new User("johndoe");
user.setPassword("johnspwd");
+
user = saveAndReload(user);
- try {
- assertEquals(new Long(user.getId()), identitySession.verify("johndoe",
"johnspwd"));
- }
- finally {
- deleteUser(user.getId());
- }
+ assertEquals(new Long(user.getId()), identitySession.verify("johndoe",
"johnspwd"));
+ identitySession.deleteEntity(user);
}
-
- private boolean containsGroup(Set groups, String groupName) {
- for (Iterator i = groups.iterator(); i.hasNext();) {
- Group group = (Group) i.next();
- if (groupName.equals(group.getName())) {
- return true;
- }
- }
- return false;
- }
}
Deleted: jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/resources/ehcache.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/resources/ehcache.xml 2010-03-18
12:06:08 UTC (rev 6229)
+++ jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/resources/ehcache.xml 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,48 +0,0 @@
-<ehcache>
- <!-- Sets the path to the directory where cache .data files are created.
-
- If the path is a Java System Property it is replaced by
- its value in the running VM.
-
- The following properties are translated:
- user.home - User's home directory
- user.dir - User's current working directory
- java.io.tmpdir - Default temp file path
- <diskStore path="java.io.tmpdir"/> -->
-
- <!--Default Cache configuration. These will applied to caches programmatically
created through
- the CacheManager.
-
- The following attributes are required:
-
- maxElementsInMemory - Sets the maximum number of objects that will be
created in memory
- eternal - Sets whether elements are eternal. If eternal,
timeouts are ignored and the
- element is never expired.
- overflowToDisk - Sets whether elements can overflow to disk when
the in-memory cache
- has reached the maxInMemory limit.
-
- The following attributes are optional:
- timeToIdleSeconds - Sets the time to idle for an element before it
expires.
- i.e. The maximum amount of time between accesses
before an element expires
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that an
Element can idle for infinity.
- The default value is 0.
- timeToLiveSeconds - Sets the time to live for an element before it
expires.
- i.e. The maximum time between creation time and
when an element expires.
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that and
Element can live for infinity.
- The default value is 0.
- diskPersistent - Whether the disk store persists between restarts
of the Virtual Machine.
- The default value is false.
- diskExpiryThreadIntervalSeconds- The number of seconds between runs of the disk
expiry thread. The default value
- is 120 seconds.
- -->
-
- <defaultCache
- maxElementsInMemory="100000"
- eternal="true"
- overflowToDisk="false"
- diskPersistent="false"
- />
-
-</ehcache>
\ No newline at end of file
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/exe/JbpmSimulationExperimentRunner.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/exe/JbpmSimulationExperimentRunner.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/exe/JbpmSimulationExperimentRunner.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -52,17 +52,17 @@
*/
public void run(final String experimentConfigurationXml) {
if (async) {
- new Thread() {
+ new Thread(new Runnable() {
public void run() {
doTheJob(experimentConfigurationXml);
}
- }.start();
+ }).start();
}
else
doTheJob(experimentConfigurationXml);
}
- private void doTheJob(String experimentConfigurationXmlPath) {
+ void doTheJob(String experimentConfigurationXmlPath) {
ExperimentReader reader = new ExperimentReader(
new
InputSource(this.getClass().getResourceAsStream(experimentConfigurationXmlPath)));
JbpmSimulationExperiment experiment = reader.readExperiment();
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/report/jasper/AbstractBaseJasperReport.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/report/jasper/AbstractBaseJasperReport.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/report/jasper/AbstractBaseJasperReport.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -14,6 +14,8 @@
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.PrinterName;
+import org.jbpm.JbpmException;
+
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperExportManager;
@@ -28,19 +30,16 @@
import net.sf.jasperreports.view.JasperViewer;
/**
- * Helper class to instantiate, fill, show and print the
- * basic JasperReports report shipping with the simulation
- * framework.
+ * Helper class to instantiate, fill, show and print the basic JasperReports
+ * report shipping with the simulation framework.
*
- * Code basically copied from the jasper commands in the
- * jbop framework (a development from camunda,
- * unfortunately closed source).
+ * Code basically copied from the jasper commands in the jbop framework (a
+ * development from camunda, unfortunately closed source).
*
* @author bernd.ruecker(a)camunda.com
*/
-public abstract class AbstractBaseJasperReport {
+public abstract class AbstractBaseJasperReport {
-
private boolean initialized = false;
private JasperReport mainReport;
@@ -57,12 +56,12 @@
}
public void printOnDefaultPrinter(boolean withPrintDialog) {
- try {
+ try {
JasperPrint jp = getJasperPrint();
- JasperPrintManager.printPages(jp, 0, jp.getPages().size()-1, withPrintDialog);
+ JasperPrintManager.printPages(jp, 0, jp.getPages().size() - 1, withPrintDialog);
}
catch (JRException ex) {
- throw new RuntimeException("report can not be filled! Please check nested
exception for details.", ex);
+ throw new JbpmException("could not print report", ex);
}
}
@@ -72,7 +71,7 @@
PrintServiceAttributeSet printServiceAttributeSet = new
HashPrintServiceAttributeSet();
printServiceAttributeSet.add(new PrinterName(printerName, null));
- //printServiceAttributeSet.add(new PrinterName("HP LaserJet 4P", null));
+ // printServiceAttributeSet.add(new PrinterName("HP LaserJet 4P", null));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
@@ -82,12 +81,12 @@
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG,
Boolean.FALSE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG,
Boolean.FALSE);
- try {
+ try {
exporter.exportReport();
}
catch (JRException ex) {
- throw new RuntimeException("report can not be filled and printed! Please check
nested exception for details.", ex);
- }
+ throw new JbpmException("could not print report", ex);
+ }
}
public OutputStream getAsPDF() {
@@ -97,7 +96,7 @@
return result;
}
catch (JRException ex) {
- throw new RuntimeException("report can not be filled! Please check nested
exception for details.", ex);
+ throw new JbpmException("could not export report to pdf", ex);
}
}
@@ -106,26 +105,29 @@
return;
}
try {
- InputStream resourceAsStream =
this.getClass().getResourceAsStream(getReportPath());
- if (resourceAsStream==null)
- throw new RuntimeException("Report '" + getReportPath() +
"' couldn't be loaded from classpath");
- mainReport = (JasperReport) JRLoader.loadObject(resourceAsStream);
+ String resource = getReportPath();
+ InputStream reportStream = getClass().getResourceAsStream(resource);
+ if (reportStream == null) {
+ throw new JbpmException("report resource not found: " + resource);
+ }
+ mainReport = (JasperReport) JRLoader.loadObject(reportStream);
Map subreports = getSubreportPaths();
if (subreports != null) {
- Iterator iter = subreports.keySet().iterator();
- while (iter.hasNext()) {
- String name = (String)iter.next();
- resourceAsStream = this.getClass().getResourceAsStream(
(String)subreports.get(name) );
- if (resourceAsStream==null)
- throw new RuntimeException("Subreport '" + subreports.get(name)
+ "' couldn't be loaded from classpath");
- subReports.put(name, (JasperReport) JRLoader.loadObject(resourceAsStream));
+ for (Iterator iter = subreports.keySet().iterator(); iter.hasNext();) {
+ String subreport = (String) iter.next();
+ resource = (String) subreports.get(subreport);
+ reportStream = getClass().getResourceAsStream(resource);
+ if (reportStream == null) {
+ throw new JbpmException("report resource not found: " +
subreports.get(subreport));
+ }
+ subReports.put(subreport, JRLoader.loadObject(reportStream));
}
}
initialized = true;
}
catch (JRException ex) {
- throw new RuntimeException("reports can not be loaded! Check nested exception
for details.", ex);
+ throw new JbpmException("could not load report", ex);
}
}
@@ -134,22 +136,20 @@
initReports();
try {
Map params = getReportParameters();
- if (params == null)
- params = new HashMap();
+ if (params == null) params = new HashMap();
params.putAll(subReports);
- jasperPrint = JasperFillManager.fillReport(mainReport, params, new
JRBeanArrayDataSource(getContent()));
+ jasperPrint = JasperFillManager.fillReport(mainReport, params, new
JRBeanArrayDataSource(
+ getContent()));
}
catch (JRException ex) {
- throw new RuntimeException(
- "report can not be filled! Please check nested exception for
details.", ex);
+ throw new JbpmException("could not fill report", ex);
}
}
return jasperPrint;
}
-
public abstract String getReportPath();
/**
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/test/java/org/jbpm/sim/VariableSourceAndFilterTest.java
===================================================================
---
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/test/java/org/jbpm/sim/VariableSourceAndFilterTest.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/test/java/org/jbpm/sim/VariableSourceAndFilterTest.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -49,8 +49,8 @@
+ " <output path='target' />" // currently just used as
parameter for DESMO-J
+ "</experiment>";
- private static boolean dataSourceIsCalled = false;
- private static boolean dataFilterIsCalled = false;
+ static boolean dataSourceIsCalled = false;
+ static boolean dataFilterIsCalled = false;
public static class TestProcessVariableSource implements ProcessDataSource {
@@ -120,7 +120,7 @@
+ " <output path='target' />" // currently just used as
parameter for DESMO-J
+ "</experiment>";
- private static int calledCount = 0;
+ static int calledCount = 0;
public static class TestProcessVariableSourceExhausting implements ProcessDataSource {
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/CancelActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/CancelActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/CancelActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,6 +1,5 @@
package org.jbpm.jsf.core.action;
-import java.util.Collection;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.jsf.JbpmActionListener;
@@ -43,14 +42,16 @@
} else if (value instanceof Token) {
final Token token = ((Token) value);
token.end();
- for (TaskInstance task : (Collection<TaskInstance>)
token.getProcessInstance().getTaskMgmtInstance().getUnfinishedTasks(token)) {
+ for (Object element :
token.getProcessInstance().getTaskMgmtInstance().getUnfinishedTasks(token)) {
+ TaskInstance task = (TaskInstance) element;
task.cancel();
}
context.addSuccessMessage("Token ended");
} else if (value instanceof ProcessInstance) {
final ProcessInstance processInstance = ((ProcessInstance) value);
processInstance.end();
- for (TaskInstance task : (Collection<TaskInstance>)
processInstance.getTaskMgmtInstance().getUnfinishedTasks(processInstance.getRootToken()))
{
+ for (Object element :
processInstance.getTaskMgmtInstance().getUnfinishedTasks(processInstance.getRootToken()))
{
+ TaskInstance task = (TaskInstance) element;
task.setSignalling(false);
task.cancel();
}
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/GetDiagramInfoActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/GetDiagramInfoActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/GetDiagramInfoActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -65,7 +65,7 @@
final int nodeNodeListLength = nodeNodeList.getLength();
for (int i = 0; i < nodeNodeListLength; i ++) {
final Node nodeNode = nodeNodeList.item(i);
- if (nodeNode instanceof Node && nodeNode.getParentNode() ==
processDiagramElement) {
+ if (nodeNode.getParentNode() == processDiagramElement) {
final Element nodeElement = (Element) nodeNode;
final String nodeName = nodeElement.getAttribute("name");
final String nodeXString = nodeElement.getAttribute("x");
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/ListTasksForProcessInstanceActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/ListTasksForProcessInstanceActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/ListTasksForProcessInstanceActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -1,12 +1,10 @@
package org.jbpm.jsf.core.action;
-import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
-import java.util.List;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.jsf.JbpmActionListener;
import org.jbpm.jsf.JbpmJsfContext;
-import org.jbpm.taskmgmt.exe.TaskInstance;
import javax.el.ELContext;
import javax.el.ValueExpression;
@@ -31,9 +29,9 @@
final FacesContext facesContext = FacesContext.getCurrentInstance();
final ELContext elContext = facesContext.getELContext();
final ProcessInstance processInstance = (ProcessInstance)
processInstanceExpression.getValue(elContext);
- final List<TaskInstance> taskList =
- Collections.unmodifiableList(new
ArrayList<TaskInstance>(processInstance.getTaskMgmtInstance().getTaskInstances()));
- targetExpression.setValue(elContext, taskList);
+ Collection<?> taskInstances =
processInstance.getTaskMgmtInstance().getTaskInstances();
+ taskInstances = Collections.unmodifiableCollection(taskInstances);
+ targetExpression.setValue(elContext, taskInstances);
context.selectOutcome("success");
} catch (Exception ex) {
context.setError("Error loading task list", ex);
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/StartProcessActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/StartProcessActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/core/action/StartProcessActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -4,7 +4,6 @@
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.jsf.JbpmActionListener;
import org.jbpm.jsf.JbpmJsfContext;
-import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
import javax.el.ELContext;
@@ -51,7 +50,8 @@
context.addSuccessMessage("Started process");
final TaskMgmtInstance taskMgmtInstance = instance.getTaskMgmtInstance();
- final TaskInstance startTaskInstance =
taskMgmtInstance.createStartTaskInstance();
+ // final TaskInstance startTaskInstance =
+ taskMgmtInstance.createStartTaskInstance();
/* next piece causes NPE.
* and i don't think it is needed to signal a new process automatically.
that can
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateGroupActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateGroupActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateGroupActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -63,7 +63,7 @@
}
group.setType(typeValue.toString());
}
- identitySession.saveGroup(group);
+ identitySession.saveEntity(group);
if (targetExpression != null) {
targetExpression.setValue(elContext, group);
}
Modified:
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateUserActionListener.java
===================================================================
---
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateUserActionListener.java 2010-03-18
12:06:08 UTC (rev 6229)
+++
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/src/main/java/org/jbpm/jsf/identity/action/CreateUserActionListener.java 2010-03-18
20:29:41 UTC (rev 6230)
@@ -71,7 +71,7 @@
}
user.setEmail(emailValue.toString());
}
- identitySession.saveUser(user);
+ identitySession.saveEntity(user);
if (targetExpression != null) {
targetExpression.setValue(elContext, user);
}