JBoss JBPM SVN: r6239 - in jbpm3/branches/jbpm-3.2-soa/modules: core/src/main/java/org/jbpm/taskmgmt/exe and 19 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-31 04:20:39 -0400 (Wed, 31 Mar 2010)
New Revision: 6239
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/impl/JbpmExpressionEvaluator.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/taskmgmt/impl/DefaultTaskInstanceFactoryImpl.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Clock.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/ContextInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/TokenVariableMapDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/IdAssignmentDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/action/ActionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/DescriptionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/EventDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ExceptionHandlerDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ProcessDefinitionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/TransitionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/CommentDbTest.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/RuntimeActionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/StateDbTest.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/EndStateDbTest.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/StartStateDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1024/JBPM1024Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1085/JBPM1085Test.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2608/JBPM2608Test.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/perf/TaskWithVariablesTest.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/scheduler/exe/UnsafeSessionUsageTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/SwimlaneDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskControllerDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskMgmtInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java
Log:
JBPM-2787: delete process definitions on test case teardown automatically;
get date generator from configuration entry jbpm.date.generator
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/impl/JbpmExpressionEvaluator.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/impl/JbpmExpressionEvaluator.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/jpdl/el/impl/JbpmExpressionEvaluator.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -1,7 +1,9 @@
package org.jbpm.jpdl.el.impl;
-import org.jbpm.JbpmConfiguration;
+import java.util.regex.Pattern;
+
import org.jbpm.JbpmException;
+import org.jbpm.JbpmConfiguration.Configs;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.jpdl.el.ELException;
import org.jbpm.jpdl.el.ExpressionEvaluator;
@@ -14,7 +16,7 @@
private static ExpressionEvaluator getExpressionEvaluator() {
return expressionEvaluator != null ? expressionEvaluator
- : (ExpressionEvaluator) JbpmConfiguration.Configs.getObject("jbpm.expression.evaluator");
+ : (ExpressionEvaluator) Configs.getObject("jbpm.expression.evaluator");
}
/**
@@ -59,43 +61,38 @@
}
catch (ELException e) {
Throwable rootCause = e.getRootCause();
- throw new JbpmException("failed to evaluate " + expression, rootCause != null ? rootCause : e);
+ throw new JbpmException("failed to evaluate " + expression,
+ rootCause != null ? rootCause : e);
}
finally {
ExecutionContext.popCurrentContext(executionContext);
}
}
- private static String translateExpressionToDollars(String expression) {
- int hashIndex = expression.indexOf("#{");
- if (hashIndex == -1) return expression;
+ private static Pattern hashPattern = Pattern.compile("\\#\\{([^\\}]*)\\}");
- char[] expressionChars = expression.toCharArray();
- do {
- expressionChars[hashIndex] = '$';
- hashIndex = expression.indexOf("#{", hashIndex + 2);
- } while (hashIndex != -1);
- return new String(expressionChars);
+ private static String translateExpressionToDollars(String expression) {
+ return hashPattern.matcher(expression).replaceAll("\\${$1}");
}
- /** @deprecated Use {@link #getVariableResolver()} instead */
+ /** @deprecated call {@link #getVariableResolver()} instead */
public static VariableResolver getUsedVariableResolver() {
return getVariableResolver();
}
public static VariableResolver getVariableResolver() {
return variableResolver != null ? variableResolver
- : (VariableResolver) JbpmConfiguration.Configs.getObject("jbpm.variable.resolver");
+ : (VariableResolver) Configs.getObject("jbpm.variable.resolver");
}
- /** @deprecated Use {@link #getFunctionMapper()} instead */
+ /** @deprecated call {@link #getFunctionMapper()} instead */
public static FunctionMapper getUsedFunctionMapper() {
return getFunctionMapper();
}
public static FunctionMapper getFunctionMapper() {
- return functionMapper != null ? functionMapper : JbpmConfiguration.Configs
- .hasObject("jbpm.function.mapper") ? (FunctionMapper) JbpmConfiguration.Configs
- .getObject("jbpm.function.mapper") : null;
+ return functionMapper != null ? functionMapper
+ : Configs.hasObject("jbpm.function.mapper") ?
+ (FunctionMapper) Configs.getObject("jbpm.function.mapper") : null;
}
}
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -35,6 +35,7 @@
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmException;
+import org.jbpm.JbpmConfiguration.Configs;
import org.jbpm.calendar.BusinessCalendar;
import org.jbpm.calendar.Duration;
import org.jbpm.graph.def.DelegationException;
@@ -344,8 +345,11 @@
}
TaskInstance instantiateNewTaskInstance(ExecutionContext executionContext) {
- TaskInstanceFactory taskInstanceFactory = (TaskInstanceFactory) JbpmConfiguration.Configs.getObject("jbpm.task.instance.factory");
- return taskInstanceFactory.createTaskInstance(executionContext);
+ if (Configs.hasObject("jbpm.task.instance.factory")) {
+ TaskInstanceFactory factory = (TaskInstanceFactory) Configs.getObject("jbpm.task.instance.factory");
+ return factory.createTaskInstance(executionContext);
+ }
+ return new TaskInstance();
}
/**
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/impl/DefaultTaskInstanceFactoryImpl.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/impl/DefaultTaskInstanceFactoryImpl.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/impl/DefaultTaskInstanceFactoryImpl.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -27,6 +27,10 @@
/**
* the default task instance factory.
+ *
+ * @deprecated leave configuration entry <code>jbpm.task.instance.factory</code>
+ * unset instead
+ *
*/
public class DefaultTaskInstanceFactoryImpl implements TaskInstanceFactory {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Clock.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Clock.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/util/Clock.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -2,21 +2,42 @@
import java.util.Date;
-public abstract class Clock {
-
- public static DateGenerator dateGenerator = new DefaultDateGenerator();
-
+import org.jbpm.JbpmConfiguration.Configs;
+
+public class Clock {
+
+ private Clock() {
+ // hide default constructor to prevent instantiation
+ }
+
+ /**
+ * @deprecated set configuration entry <code>jbpm.date.generator</code>
+ * instead
+ */
+ public static DateGenerator dateGenerator;
+
public interface DateGenerator {
Date getCurrentTime();
}
-
+
+ /**
+ * @deprecated leave configuration entry <code>jbpm.date.generator</code>
+ * unset instead
+ */
public static class DefaultDateGenerator implements DateGenerator {
public Date getCurrentTime() {
return new Date();
}
}
-
+
public static Date getCurrentTime() {
- return dateGenerator.getCurrentTime();
+ if (dateGenerator != null) return dateGenerator.getCurrentTime();
+
+ if (Configs.hasObject("jbpm.date.generator")) {
+ DateGenerator configDateGen = (DateGenerator) Configs.getObject("jbpm.date.generator");
+ return configDateGen.getCurrentTime();
+ }
+
+ return new Date();
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-31 08:20:39 UTC (rev 6239)
@@ -6,13 +6,15 @@
objects described here and override any object with the same name.
To customize specific objects, the custom configuration needs only contain
- descriptions for those objects alone. For instance, to load a custom
- Hibernate configuration resource, the following document suffices.
+ descriptions for the custom objects alone. For instance, to load a different
+ Hibernate configuration resource, the configuration document only needs the
+ following content.
+
<jbpm-configuration>
<string name="resource.hibernate.cfg.xml" value="my.hibernate.cfg.xml" />
</jbpm-configuration>
-->
-
+
<jbpm-context>
<service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
<!-- Logging Service (begin) -->
@@ -26,7 +28,7 @@
<!-- database persistence configuration -->
<string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
- <!-- additional database persistence properties
+ <!-- extra database persistence properties
<string name="resource.hibernate.properties" value="hibernate.properties" />
-->
@@ -43,34 +45,66 @@
<!-- alternate delegation class loader
<string name="jbpm.class.loader" value="context" />
-->
- <bean name="process.class.loader.factory" class="org.jbpm.instantiation.SharedProcessClassLoaderFactory" singleton="true" />
- <bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
+ <bean name="process.class.loader.factory" class="org.jbpm.instantiation.SharedProcessClassLoaderFactory"
+ singleton="true" />
<!-- make sure the block size matches the length in ByteArray.hbm.xml -->
- <int name="jbpm.byte.block.size" value="1024" singleton="true" />
+ <int name="jbpm.byte.block.size" value="1024" />
- <bean name="jbpm.expression.evaluator" class="org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl" singleton="true" />
- <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
+ <bean name="jbpm.expression.evaluator" class="org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl"
+ singleton="true" />
+ <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver"
+ singleton="true" />
<!-- custom function mapper
<bean name="jbpm.function.mapper" class="org.example.FunctionMapperImpl" />
-->
+
+ <!-- custom task instance factory
+ <bean name="jbpm.task.instance.factory" class="org.example.TaskInstanceFactoryImpl" />
+ -->
<!-- user code interceptor
<bean name="jbpm.user.code.interceptor" class="org.example.UserCodeInterceptorImpl" />
-->
+ <!-- custom date generator
+ <bean name="jbpm.date.generator" class="org.example.DateGeneratorImpl" />
+ -->
+ <!-- email sending properties -->
<string name="jbpm.mail.smtp.host" value="localhost" />
<string name="jbpm.mail.from.address" value="jbpm@noreply" />
- <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
-
- <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
- <property name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></property>
- <property name="name"><string value="JbpmJobExecutor" /></property>
- <property name="nbrOfThreads"><int value="1" /></property>
- <property name="retries"><int value="3" /></property>
- <property name="idleInterval"><!-- 5 seconds --><int value="5000" /></property>
- <property name="maxIdleInterval"><!-- 1 hour --><int value="3600000" /></property>
- <property name="maxLockTime"><!-- 10 minutes --><int value="600000" /></property>
- <property name="lockMonitorInterval"><!-- 1 minute --><int value="60000" /></property>
+ <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver"
+ singleton="true" />
+
+ <!-- job execution properties -->
+ <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor" singleton="true">
+ <property name="jbpmConfiguration">
+ <ref bean="jbpmConfiguration" />
+ </property>
+ <property name="name">
+ <string value="JbpmJobExecutor" />
+ </property>
+ <property name="nbrOfThreads">
+ <int value="1" />
+ </property>
+ <property name="retries">
+ <int value="3" />
+ </property>
+ <property name="idleInterval">
+ <!-- 5 seconds -->
+ <int value="5000" />
+ </property>
+ <property name="maxIdleInterval">
+ <!-- 1 hour -->
+ <int value="3600000" />
+ </property>
+ <property name="maxLockTime">
+ <!-- 10 minutes -->
+ <int value="600000" />
+ </property>
+ <property name="lockMonitorInterval">
+ <!-- 1 minute -->
+ <int value="60000" />
+ </property>
</bean>
</jbpm-configuration>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/ContextInstanceDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/ContextInstanceDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/ContextInstanceDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -33,67 +33,53 @@
public class ContextInstanceDbTest extends AbstractDbTestCase {
public void testContextInstanceTokenVariableMaps() {
- ProcessDefinition processDefinition = new ProcessDefinition();
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- Token rootToken = processInstance.getRootToken();
- Token childToken = new Token(rootToken, "shipping");
-
- ContextInstance contextInstance = processInstance.getContextInstance();
- Map tokenVariableMaps = new HashMap();
- tokenVariableMaps.put(rootToken, new TokenVariableMap(rootToken, contextInstance));
- tokenVariableMaps.put(childToken, new TokenVariableMap(childToken, contextInstance));
- contextInstance.tokenVariableMaps = tokenVariableMaps;
-
- processInstance = saveAndReload(processInstance);
- rootToken = processInstance.getRootToken();
- childToken = rootToken.getChild("shipping");
- contextInstance = processInstance.getContextInstance();
- tokenVariableMaps = contextInstance.tokenVariableMaps;
-
- assertEquals(2, tokenVariableMaps.size());
- assertTrue(tokenVariableMaps.containsKey(rootToken));
- assertTrue(tokenVariableMaps.containsKey(childToken));
- TokenVariableMap tokenVariableMap = (TokenVariableMap)tokenVariableMaps.get(rootToken);
- assertNotNull(tokenVariableMap);
- tokenVariableMap = (TokenVariableMap)tokenVariableMaps.get(childToken);
- assertNotNull(tokenVariableMap);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Token rootToken = processInstance.getRootToken();
+ Token childToken = new Token(rootToken, "shipping");
+
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ Map tokenVariableMaps = new HashMap();
+ tokenVariableMaps.put(rootToken, new TokenVariableMap(rootToken, contextInstance));
+ tokenVariableMaps.put(childToken, new TokenVariableMap(childToken, contextInstance));
+ contextInstance.tokenVariableMaps = tokenVariableMaps;
+
+ processInstance = saveAndReload(processInstance);
+ rootToken = processInstance.getRootToken();
+ childToken = rootToken.getChild("shipping");
+ contextInstance = processInstance.getContextInstance();
+ tokenVariableMaps = contextInstance.tokenVariableMaps;
+
+ assertEquals(2, tokenVariableMaps.size());
+ assertTrue(tokenVariableMaps.containsKey(rootToken));
+ assertTrue(tokenVariableMaps.containsKey(childToken));
+ TokenVariableMap tokenVariableMap = (TokenVariableMap) tokenVariableMaps.get(rootToken);
+ assertNotNull(tokenVariableMap);
+ tokenVariableMap = (TokenVariableMap) tokenVariableMaps.get(childToken);
+ assertNotNull(tokenVariableMap);
}
-
+
public void testVariableUpdate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition />"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "one");
-
- processInstance = saveAndReload(processInstance);
-
- contextInstance = processInstance.getContextInstance();
- assertEquals("one", contextInstance.getVariable("a"));
- contextInstance.setVariable("a", "two");
-
- processInstance = saveAndReload(processInstance);
-
- contextInstance = processInstance.getContextInstance();
- assertEquals("two", contextInstance.getVariable("a"));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ processDefinition.addDefinition(new ContextDefinition());
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "one");
+
+ processInstance = saveAndReload(processInstance);
+
+ contextInstance = processInstance.getContextInstance();
+ assertEquals("one", contextInstance.getVariable("a"));
+ contextInstance.setVariable("a", "two");
+
+ processInstance = saveAndReload(processInstance);
+
+ contextInstance = processInstance.getContextInstance();
+ assertEquals("two", contextInstance.getVariable("a"));
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -37,12 +37,19 @@
protected JbpmConfiguration getJbpmConfiguration() {
if (jbpmConfiguration == null) {
- jbpmConfiguration = JbpmConfiguration.parseResource(getJbpmTestConfig());
+ // disable logging service to prevent logs from referencing custom object
+ jbpmConfiguration = JbpmConfiguration.parseXmlString("<jbpm-configuration>"
+ + "<jbpm-context>"
+ + " <service name='persistence'"
+ + " factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />"
+ + " <service name='tx' factory='org.jbpm.tx.TxServiceFactory' />"
+ + "</jbpm-context>"
+ + "</jbpm-configuration>");
+
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
- DbPersistenceServiceFactory persistenceServiceFactory = (DbPersistenceServiceFactory) jbpmContext
- .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
-
+ DbPersistenceServiceFactory persistenceServiceFactory =
+ (DbPersistenceServiceFactory) jbpmContext.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
Configuration configuration = persistenceServiceFactory.getConfiguration();
configuration.addClass(CustomLongClass.class);
@@ -62,31 +69,27 @@
}
public void testCustomVariableClassWithLongId() {
- // create and save the process definition
- ProcessDefinition processDefinition = new ProcessDefinition();
+ // create and save process definition
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
- CustomLongClass customLongObject = null;
- try {
- // create the process instance
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- // create the custom object
- customLongObject = new CustomLongClass("customname");
- contextInstance.setVariable("custom hibernate object", customLongObject);
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
+ // create process instance
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ // create custom object
+ CustomLongClass customLongObject = new CustomLongClass("my stuff");
+ processInstance.getContextInstance().setVariable("custom", customLongObject);
- // get the custom hibernatable object from the variables
- customLongObject = (CustomLongClass) contextInstance
- .getVariable("custom hibernate object");
- assertNotNull(customLongObject);
- assertEquals("customname", customLongObject.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- if (customLongObject != null) session.delete(customLongObject);
- }
+ // save process instance
+ processInstance = saveAndReload(processInstance);
+ // get custom object from variables
+ customLongObject = (CustomLongClass) processInstance.getContextInstance()
+ .getVariable("custom");
+ assertNotNull(customLongObject);
+ assertEquals("my stuff", customLongObject.getName());
+
+ // delete custom object
+ processInstance.getContextInstance().deleteVariable("custom");
+ session.delete(customLongObject);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -37,12 +37,19 @@
protected JbpmConfiguration getJbpmConfiguration() {
if (jbpmConfiguration == null) {
- jbpmConfiguration = JbpmConfiguration.parseResource(getJbpmTestConfig());
+ // disable logging service to prevent logs from referencing custom object
+ jbpmConfiguration = JbpmConfiguration.parseXmlString("<jbpm-configuration>"
+ + "<jbpm-context>"
+ + " <service name='persistence'"
+ + " factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />"
+ + " <service name='tx' factory='org.jbpm.tx.TxServiceFactory' />"
+ + "</jbpm-context>"
+ + "</jbpm-configuration>");
+
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
- DbPersistenceServiceFactory persistenceServiceFactory = (DbPersistenceServiceFactory) jbpmContext
- .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
-
+ DbPersistenceServiceFactory persistenceServiceFactory =
+ (DbPersistenceServiceFactory) jbpmContext.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
Configuration configuration = persistenceServiceFactory.getConfiguration();
configuration.addClass(CustomStringClass.class);
@@ -62,31 +69,27 @@
}
public void testCustomVariableClassWithStringId() {
- // create and save the process definition
- ProcessDefinition processDefinition = new ProcessDefinition();
+ // create and save process definition
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
- CustomStringClass customStringObject = null;
- try {
- // create the process instance
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- // create the custom object
- customStringObject = new CustomStringClass("customname");
- contextInstance.setVariable("custom hibernate object", customStringObject);
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- contextInstance = processInstance.getContextInstance();
+ // create process instance
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ // create custom object
+ CustomStringClass customStringObject = new CustomStringClass("my stuff");
+ processInstance.getContextInstance().setVariable("custom", customStringObject);
- // get the custom hibernatable object from the variables
- customStringObject = (CustomStringClass) contextInstance
- .getVariable("custom hibernate object");
- assertNotNull(customStringObject);
- assertEquals("customname", customStringObject.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- if (customStringObject != null) session.delete(customStringObject);
- }
+ // save process instance
+ processInstance = saveAndReload(processInstance);
+ // get custom object from variables
+ customStringObject = (CustomStringClass) processInstance.getContextInstance()
+ .getVariable("custom");
+ assertNotNull(customStringObject);
+ assertEquals("my stuff", customStringObject.getName());
+
+ // delete custom object
+ processInstance.getContextInstance().deleteVariable("custom");
+ session.delete(customStringObject);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/TokenVariableMapDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/TokenVariableMapDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/TokenVariableMapDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -33,7 +33,6 @@
public class TokenVariableMapDbTest extends AbstractDbTestCase {
- ProcessDefinition processDefinition;
ProcessInstance processInstance;
Token token;
ContextInstance contextInstance;
@@ -43,9 +42,9 @@
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processInstance = new ProcessInstance(processDefinition);
token = processInstance.getRootToken();
@@ -57,11 +56,6 @@
contextInstance.tokenVariableMaps = tokenVariableMaps;
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testTokenVariableMapContextInstance() {
processInstance = saveAndReload(processInstance);
@@ -97,12 +91,9 @@
tokenVariableMaps = contextInstance.tokenVariableMaps;
tokenVariableMap = (TokenVariableMap) tokenVariableMaps.get(processInstance.getRootToken());
- // System.out.println(tokenVariableMap.getVariable("one"));
- // System.out.println(tokenVariableMap.getVariable("two"));
-
- assertEquals("hello",
- ((StringInstance) tokenVariableMap.variableInstances.get("one")).getValue());
- assertEquals("world",
- ((StringInstance) tokenVariableMap.variableInstances.get("two")).getValue());
+ StringInstance one = (StringInstance) tokenVariableMap.variableInstances.get("one");
+ assertEquals("hello", one.getValue());
+ StringInstance two = (StringInstance) tokenVariableMap.variableInstances.get("two");
+ assertEquals("world", two.getValue());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -36,35 +36,29 @@
public class VariableInstanceDbTest extends AbstractDbTestCase {
- ProcessDefinition processDefinition;
ProcessInstance processInstance;
ContextInstance contextInstance;
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processInstance = new ProcessInstance(processDefinition);
contextInstance = processInstance.getContextInstance();
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testVariableInstanceString() {
contextInstance.setVariable("comment",
- "it's not the size that matters, it's how you use it.");
+ "it's not the size that matters, it's how you use it.");
processInstance = saveAndReload(processInstance);
contextInstance = processInstance.getContextInstance();
assertEquals("it's not the size that matters, it's how you use it.",
- contextInstance.getVariable("comment"));
+ contextInstance.getVariable("comment"));
}
public void testVariableInstanceLong() {
@@ -85,7 +79,6 @@
contextInstance.setVariable("a lot of bytes", bytes);
processInstance = saveAndReload(processInstance);
-
contextInstance = processInstance.getContextInstance();
bytes = (byte[]) contextInstance.getVariable("a lot of bytes");
assertEquals(text, new String(bytes));
@@ -184,21 +177,21 @@
final Date result = (Date) contextInstance.getVariable("a");
// assertEquals(expected, result);
log.info("Now: "
- + now
- + ", "
- + now.getTime()
- + ", "
- + DateDbTestUtil.getInstance().convertDateToSeconds(now));
+ + now
+ + ", "
+ + now.getTime()
+ + ", "
+ + DateDbTestUtil.getInstance().convertDateToSeconds(now));
log.info("Now: "
- + result
- + ", "
- + result.getTime()
- + ", "
- + DateDbTestUtil.getInstance().convertDateToSeconds(result));
+ + result
+ + ", "
+ + result.getTime()
+ + ", "
+ + DateDbTestUtil.getInstance().convertDateToSeconds(result));
assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now),
- DateDbTestUtil.getInstance().convertDateToSeconds(result));
+ DateDbTestUtil.getInstance().convertDateToSeconds(result));
assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now),
- DateDbTestUtil.getInstance().convertDateToSeconds(result));
+ DateDbTestUtil.getInstance().convertDateToSeconds(result));
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -37,34 +37,28 @@
public class VariableUpdateDbTest extends AbstractDbTestCase {
- private ProcessDefinition processDefinition;
private ProcessInstance processInstance;
private ContextInstance contextInstance;
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
+
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processInstance = new ProcessInstance(processDefinition);
contextInstance = processInstance.getContextInstance();
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testVariableCreateLogs() {
contextInstance.setVariable("a", new Integer(3));
-
jbpmContext.save(processInstance);
+
newTransaction();
List logs = loggingSession.findLogsByToken(processInstance.getRootToken().getId());
- VariableCreateLog createLog = (VariableCreateLog) LoggingInstance.getLogs(logs,
- VariableCreateLog.class).get(0);
-
+ VariableCreateLog createLog =
+ (VariableCreateLog) LoggingInstance.getLogs(logs, VariableCreateLog.class).get(0);
assertEquals("a", createLog.getVariableInstance().getName());
}
@@ -75,10 +69,8 @@
VariableUpdateLog variableLog = saveAndReloadUpdateLog(processInstance);
- assertTrue(Arrays.equals("first value".getBytes(),
- ((ByteArray) variableLog.getOldValue()).getBytes()));
- assertTrue(Arrays.equals("second value".getBytes(),
- ((ByteArray) variableLog.getNewValue()).getBytes()));
+ assertTrue(Arrays.equals("first value".getBytes(), ((ByteArray) variableLog.getOldValue()).getBytes()));
+ assertTrue(Arrays.equals("second value".getBytes(), ((ByteArray) variableLog.getNewValue()).getBytes()));
}
public void testDateUpdateLog() {
@@ -91,10 +83,8 @@
VariableUpdateLog variableLog = saveAndReloadUpdateLog(processInstance);
DateDbTestUtil dbUtilInst = DateDbTestUtil.getInstance();
- assertEquals(dbUtilInst.convertDateToSeconds(now),
- dbUtilInst.convertDateToSeconds((Date) variableLog.getOldValue()));
- assertEquals(dbUtilInst.convertDateToSeconds(future),
- dbUtilInst.convertDateToSeconds((Date) variableLog.getNewValue()));
+ assertEquals(dbUtilInst.convertDateToSeconds(now), dbUtilInst.convertDateToSeconds((Date) variableLog.getOldValue()));
+ assertEquals(dbUtilInst.convertDateToSeconds(future), dbUtilInst.convertDateToSeconds((Date) variableLog.getNewValue()));
}
public void testDoubleUpdateLog() {
@@ -138,8 +128,8 @@
jbpmContext.save(processInstance);
newTransaction();
List logs = loggingSession.findLogsByToken(processInstance.getRootToken().getId());
- VariableDeleteLog deleteLog = (VariableDeleteLog) LoggingInstance.getLogs(logs,
- VariableDeleteLog.class).get(0);
+ VariableDeleteLog deleteLog =
+ (VariableDeleteLog) LoggingInstance.getLogs(logs, VariableDeleteLog.class).get(0);
assertEquals("a", deleteLog.getVariableInstance().getName());
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/IdAssignmentDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/IdAssignmentDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/db/IdAssignmentDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -26,69 +26,55 @@
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
-public class IdAssignmentDbTest extends AbstractDbTestCase
-{
+public class IdAssignmentDbTest extends AbstractDbTestCase {
static int successfullInvocations = 0;
-
- protected void setUp() throws Exception
- {
+
+ protected void setUp() throws Exception {
super.setUp();
successfullInvocations = 0;
}
-
- public static class TaskInstanceIdVerifier implements ActionHandler
- {
+
+ public static class TaskInstanceIdVerifier implements ActionHandler {
private static final long serialVersionUID = 1L;
- public void execute(ExecutionContext executionContext) throws Exception
- {
- if (executionContext.getTaskInstance().getId() == 0)
- {
+ public void execute(ExecutionContext executionContext) throws Exception {
+ if (executionContext.getTaskInstance().getId() == 0) {
throw new RuntimeException("task instance didn't have an id");
}
successfullInvocations++;
}
}
- public void testTaskInstanceId()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='task instance id test'>" +
- " <event type='task-create'>" +
- " <action class='org.jbpm.db.IdAssignmentDbTest$TaskInstanceIdVerifier' />" +
- " </event>" +
- " <start-state>" +
- " <transition to='distribute work' />" +
- " </start-state>" +
- " <task-node name='distribute work'>" +
- " <task name='negotiate a rebate' />" +
- " </task-node>" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
-
- assertEquals(1, successfullInvocations);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ public void testTaskInstanceId() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <event type='task-create'>"
+ + " <action class='"
+ + TaskInstanceIdVerifier.class.getName()
+ + "' />"
+ + " </event>"
+ + " <start-state>"
+ + " <transition to='distribute work' />"
+ + " </start-state>"
+ + " <task-node name='distribute work'>"
+ + " <task name='negotiate a rebate' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
+ assertEquals(1, successfullInvocations);
}
- public static class ProcessInstanceIdVerifier implements ActionHandler
- {
+ public static class ProcessInstanceIdVerifier implements ActionHandler {
private static final long serialVersionUID = 1L;
- public void execute(ExecutionContext executionContext) throws Exception
- {
- if (executionContext.getProcessInstance().getId() == 0)
- {
+ public void execute(ExecutionContext executionContext) throws Exception {
+ if (executionContext.getProcessInstance().getId() == 0) {
throw new RuntimeException("process instance didn't have an id");
}
successfullInvocations++;
@@ -96,77 +82,66 @@
}
public void testProcessInstanceId() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='process instance id test'>" +
- " <event type='process-start'>" +
- " <action class='org.jbpm.db.IdAssignmentDbTest$ProcessInstanceIdVerifier' />" +
- " </event>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <state name='a' />" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
-
- assertEquals(1, successfullInvocations);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <event type='process-start'>"
+ + " <action class='"
+ + ProcessInstanceIdVerifier.class.getName()
+ + "'/>"
+ + " </event>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <state name='a' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
+ assertEquals(1, successfullInvocations);
}
- public static class TokenIdVerifier implements ActionHandler
- {
+ public static class TokenIdVerifier implements ActionHandler {
private static final long serialVersionUID = 1L;
- public void execute(ExecutionContext executionContext) throws Exception
- {
- if (executionContext.getToken().getId() == 0)
- {
- throw new RuntimeException("token '" + executionContext.getToken() + "' didn't have an id");
+ public void execute(ExecutionContext executionContext) throws Exception {
+ if (executionContext.getToken().getId() == 0) {
+ throw new RuntimeException("token '"
+ + executionContext.getToken()
+ + "' didn't have an id");
}
successfullInvocations++;
}
}
public void testTokenId() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='f' />" +
- " </start-state>" +
- " <fork name='f'>" +
- " <transition name='a' to='a' />" +
- " <transition name='b' to='b' />" +
- " <event type='node-leave'>" +
- " <action class='org.jbpm.db.IdAssignmentDbTest$TokenIdVerifier' />" +
- " </event>" +
- " </fork>" +
- " <state name='a' />" +
- " <state name='b' />" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
-
- assertEquals(2, successfullInvocations);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='f' />"
+ + " </start-state>"
+ + " <fork name='f'>"
+ + " <transition name='a' to='a' />"
+ + " <transition name='b' to='b' />"
+ + " <event type='node-leave'>"
+ + " <action class='"
+ + TokenIdVerifier.class.getName()
+ + "' />"
+ + " </event>"
+ + " </fork>"
+ + " <state name='a' />"
+ + " <state name='b' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+
+ assertEquals(2, successfullInvocations);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/action/ActionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/action/ActionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/action/ActionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -30,225 +30,148 @@
public class ActionDbTest extends AbstractDbTestCase {
- public void testIsPropagationAllowedFalse()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action name='a' class='unimportant' accept-propagated-events='false' />" +
- " </event>" +
- " </node>" +
- "</process-definition>");
-
+ public void testIsPropagationAllowedFalse() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action name='a' class='unimportant' accept-propagated-events='false' />"
+ + " </event>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Action action = processDefinition.getAction("a");
- assertFalse(action.acceptsPropagatedEvents());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Action action = processDefinition.getAction("a");
+ assertFalse(action.acceptsPropagatedEvents());
}
- public void testIsPropagationAllowedTrue()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action name='a' class='unimportant' accept-propagated-events='true' />" +
- " </event>" +
- " </node>" +
- "</process-definition>");
-
+ public void testIsPropagationAllowedTrue() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action name='a' class='unimportant' accept-propagated-events='true' />"
+ + " </event>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Action action = processDefinition.getAction("a");
- assertTrue(action.acceptsPropagatedEvents());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Action action = processDefinition.getAction("a");
+ assertTrue(action.acceptsPropagatedEvents());
}
- public void testReferencedAction()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action ref-name='a'/>" +
- " </event>" +
- " </node>" +
- " <action name='a' class='unimportant'/>" +
- "</process-definition>");
-
+ public void testReferencedAction() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action ref-name='a'/>"
+ + " </event>"
+ + " </node>"
+ + " <action name='a' class='unimportant'/>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Action nodeAction = (Action) processDefinition.getNode("n").getEvent("node-enter").getActions().get(0);
- assertSame(processDefinition.getAction("a"), nodeAction.getReferencedAction());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Action nodeAction = (Action) processDefinition.getNode("n")
+ .getEvent("node-enter")
+ .getActions()
+ .get(0);
+ assertSame(processDefinition.getAction("a"), nodeAction.getReferencedAction());
}
-
- public void testActionDelegation()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <action name='a' class='myclass' config-type='constructor'>" +
- " <myconfiguration></myconfiguration>" +
- " </action>" +
- "</process-definition>");
+ public void testActionDelegation() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <action name='a' class='myclass' config-type='constructor'>"
+ + " <myconfiguration></myconfiguration>"
+ + " </action>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Action action = processDefinition.getAction("a");
- assertNotNull(action.getActionDelegation());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Action action = processDefinition.getAction("a");
+ assertNotNull(action.getActionDelegation());
}
-
- public void testEvent()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action name='a' class='unimportant'/>" +
- " </event>" +
- " </node>" +
- "</process-definition>");
+ public void testEvent() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action name='a' class='unimportant'/>"
+ + " </event>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Event event = processDefinition.getNode("n").getEvent("node-enter");
- Action action = processDefinition.getAction("a");
- assertSame(event, action.getEvent());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Event event = processDefinition.getNode("n").getEvent("node-enter");
+ Action action = processDefinition.getAction("a");
+ assertSame(event, action.getEvent());
}
-
- public void testProcessDefinition()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action name='a' class='unimportant'/>" +
- " </event>" +
- " </node>" +
- "</process-definition>");
+ public void testProcessDefinition() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action name='a' class='unimportant'/>"
+ + " </event>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Action action = processDefinition.getAction("a");
- assertSame(processDefinition, action.getProcessDefinition());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Action action = processDefinition.getAction("a");
+ assertSame(processDefinition, action.getProcessDefinition());
}
-
- public void testProcessDefinitionActionMap()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <action name='a' class='unimportant'/>" +
- " <action name='b' class='unimportant'/>" +
- " <action name='c' class='unimportant'/>" +
- " <action name='d' class='unimportant'/>" +
- "</process-definition>");
+ public void testProcessDefinitionActionMap() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <action name='a' class='unimportant'/>"
+ + " <action name='b' class='unimportant'/>"
+ + " <action name='c' class='unimportant'/>"
+ + " <action name='d' class='unimportant'/>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("a", processDefinition.getAction("a").getName());
- assertEquals("b", processDefinition.getAction("b").getName());
- assertEquals("c", processDefinition.getAction("c").getName());
- assertEquals("d", processDefinition.getAction("d").getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("a", processDefinition.getAction("a").getName());
+ assertEquals("b", processDefinition.getAction("b").getName());
+ assertEquals("c", processDefinition.getAction("c").getName());
+ assertEquals("d", processDefinition.getAction("d").getName());
}
- public void testNodeEventCascading()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'>" +
- " <action name='a' class='unimportant'/>" +
- " <action name='b' class='unimportant'/>" +
- " <action name='c' class='unimportant'/>" +
- " <action name='d' class='unimportant'/>" +
- " </event>" +
- " </node>" +
- "</process-definition>");
+ public void testNodeEventCascading() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'>"
+ + " <action name='a' class='unimportant'/>"
+ + " <action name='b' class='unimportant'/>"
+ + " <action name='c' class='unimportant'/>"
+ + " <action name='d' class='unimportant'/>"
+ + " </event>"
+ + " </node>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try
- {
- List actions = processDefinition.getNode("n").getEvent("node-enter").getActions();
-
- assertEquals(processDefinition.getAction("a"), actions.get(0));
- assertEquals(processDefinition.getAction("b"), actions.get(1));
- assertEquals(processDefinition.getAction("c"), actions.get(2));
- assertEquals(processDefinition.getAction("d"), actions.get(3));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ List actions = processDefinition.getNode("n").getEvent("node-enter").getActions();
+ assertEquals(processDefinition.getAction("a"), actions.get(0));
+ assertEquals(processDefinition.getAction("b"), actions.get(1));
+ assertEquals(processDefinition.getAction("c"), actions.get(2));
+ assertEquals(processDefinition.getAction("d"), actions.get(3));
}
- public void testTransitionEventCascading()
- {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='n'>" +
- " <action name='a' class='unimportant'/>" +
- " <action name='b' class='unimportant'/>" +
- " <action name='c' class='unimportant'/>" +
- " <action name='d' class='unimportant'/>" +
- " </transition>" +
- " </node>" +
- "</process-definition>");
+ public void testTransitionEventCascading() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='n'>"
+ + " <action name='a' class='unimportant'/>"
+ + " <action name='b' class='unimportant'/>"
+ + " <action name='c' class='unimportant'/>"
+ + " <action name='d' class='unimportant'/>"
+ + " </transition>"
+ + " </node>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try
- {
- List actions = processDefinition.getNode("n").getLeavingTransition("t").getEvent("transition").getActions();
-
- assertEquals(processDefinition.getAction("a"), actions.get(0));
- assertEquals(processDefinition.getAction("b"), actions.get(1));
- assertEquals(processDefinition.getAction("c"), actions.get(2));
- assertEquals(processDefinition.getAction("d"), actions.get(3));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ List actions = processDefinition.getNode("n")
+ .getLeavingTransition("t")
+ .getEvent("transition")
+ .getActions();
+ assertEquals(processDefinition.getAction("a"), actions.get(0));
+ assertEquals(processDefinition.getAction("b"), actions.get(1));
+ assertEquals(processDefinition.getAction("c"), actions.get(2));
+ assertEquals(processDefinition.getAction("d"), actions.get(3));
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/DescriptionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/DescriptionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/DescriptionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -6,81 +6,51 @@
public class DescriptionDbTest extends AbstractDbTestCase {
public void testProcessDefinitionDescription() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <description>haleluja</description>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <description>haleluja</description>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("haleluja", processDefinition.getDescription());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("haleluja", processDefinition.getDescription());
}
public void testNodeDescription() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='a'>" +
- " <description>haleluja</description>" +
- " </node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='a'>"
+ + " <description>haleluja</description>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("haleluja", processDefinition.getNode("a").getDescription());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("haleluja", processDefinition.getNode("a").getDescription());
}
public void testTransitionDescription() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='a'>" +
- " <transition name='self' to='a'>" +
- " <description>haleluja</description>" +
- " </transition>" +
- " </node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='a'>"
+ + " <transition name='self' to='a'>"
+ + " <description>haleluja</description>"
+ + " </transition>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("haleluja", processDefinition.getNode("a").getLeavingTransition("self").getDescription());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("haleluja", processDefinition.getNode("a")
+ .getLeavingTransition("self")
+ .getDescription());
}
public void testTaskDescription() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='a'>" +
- " <task name='self'>" +
- " <description>haleluja</description>" +
- " </task>" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='a'>"
+ + " <task name='self'>"
+ + " <description>haleluja</description>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("a");
- assertEquals("haleluja", taskNode.getTask("self").getDescription());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("a");
+ assertEquals("haleluja", taskNode.getTask("self").getDescription());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/EventDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/EventDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/EventDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -21,118 +21,73 @@
*/
package org.jbpm.graph.def;
-import java.util.Iterator;
+import java.util.List;
import org.jbpm.db.AbstractDbTestCase;
public class EventDbTest extends AbstractDbTestCase {
public void testEventEventType() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <event type='process-start' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <event type='process-start' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("process-start", processDefinition.getEvent("process-start").getEventType());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertEquals("process-start", processDefinition.getEvent("process-start").getEventType());
}
-
- public void testEventGraphElementProcessDefinition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <event type='process-start' />" +
- "</process-definition>");
+ public void testEventGraphElementProcessDefinition() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <event type='process-start' />"
+ + "</process-definition>");
assertSame(processDefinition, processDefinition.getEvent("process-start").getGraphElement());
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertSame(processDefinition, processDefinition.getEvent("process-start").getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertSame(processDefinition, processDefinition.getEvent("process-start").getGraphElement());
}
-
+
public void testEventGraphElementNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <event type='node-enter'/>" +
- " </node>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <event type='node-enter'/>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertSame(processDefinition.getNode("n"), processDefinition.getNode("n").getEvent("node-enter").getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertSame(processDefinition.getNode("n"), processDefinition.getNode("n")
+ .getEvent("node-enter")
+ .getGraphElement());
}
public void testEventGraphElementTransition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='n'>" +
- " <action class='unimportant'/>" +
- " </transition>" +
- " </node>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='n'>"
+ + " <action class='unimportant'/>"
+ + " </transition>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Transition t = processDefinition.getNode("n").getLeavingTransition("t");
- assertSame(t, t.getEvent("transition").getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Transition t = processDefinition.getNode("n").getLeavingTransition("t");
+ assertSame(t, t.getEvent("transition").getGraphElement());
}
public void testEventActions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <event type='process-start'>" +
- " <action class='a'/>" +
- " <action class='b'/>" +
- " <action class='c'/>" +
- " <action class='d'/>" +
- " </event>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <event type='process-start'>"
+ + " <action class='a'/>"
+ + " <action class='b'/>"
+ + " <action class='c'/>"
+ + " <action class='d'/>"
+ + " </event>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Iterator iter = processDefinition.getEvent("process-start").getActions().iterator();
- assertEquals("a", ((Action)iter.next()).getActionDelegation().getClassName());
- assertEquals("b", ((Action)iter.next()).getActionDelegation().getClassName());
- assertEquals("c", ((Action)iter.next()).getActionDelegation().getClassName());
- assertEquals("d", ((Action)iter.next()).getActionDelegation().getClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ List actions = processDefinition.getEvent("process-start").getActions();
+ assertEquals("a", ((Action) actions.get(0)).getActionDelegation().getClassName());
+ assertEquals("b", ((Action) actions.get(1)).getActionDelegation().getClassName());
+ assertEquals("c", ((Action) actions.get(2)).getActionDelegation().getClassName());
+ assertEquals("d", ((Action) actions.get(3)).getActionDelegation().getClassName());
}
-
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ExceptionHandlerDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ExceptionHandlerDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ExceptionHandlerDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -28,110 +28,74 @@
public class ExceptionHandlerDbTest extends AbstractDbTestCase {
public void testExceptionClassName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <exception-handler exception-class='org.coincidence.FatalAttractionException' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <exception-handler exception-class='org.coincidence.FatalAttractionException' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers().get(0);
- assertNotNull(exceptionHandler);
- assertEquals("org.coincidence.FatalAttractionException", exceptionHandler.getExceptionClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(0);
+ assertNotNull(exceptionHandler);
+ assertEquals("org.coincidence.FatalAttractionException", exceptionHandler.getExceptionClassName());
}
public void testExceptionHandlerProcessDefinition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <exception-handler exception-class='org.coincidence.FatalAttractionException' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <exception-handler exception-class='org.coincidence.FatalAttractionException' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers().get(0);
- assertSame(processDefinition, exceptionHandler.getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(0);
+ assertSame(processDefinition, exceptionHandler.getGraphElement());
}
public void testExceptionHandlerNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='a'>" +
- " <exception-handler exception-class='org.coincidence.FatalAttractionException' />" +
- " </node>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='a'>"
+ + " <exception-handler exception-class='org.coincidence.FatalAttractionException' />"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node node = processDefinition.getNode("a");
- ExceptionHandler exceptionHandler = (ExceptionHandler) node.getExceptionHandlers().get(0);
- assertSame(node, exceptionHandler.getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Node node = processDefinition.getNode("a");
+ ExceptionHandler exceptionHandler = (ExceptionHandler) node.getExceptionHandlers().get(0);
+ assertSame(node, exceptionHandler.getGraphElement());
}
public void testExceptionHandlerTransition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='a'>" +
- " <transition name='self' to='a'>" +
- " <exception-handler exception-class='org.coincidence.FatalAttractionException' />" +
- " </transition>" +
- " </node>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='a'>"
+ + " <transition name='self' to='a'>"
+ + " <exception-handler exception-class='org.coincidence.FatalAttractionException' />"
+ + " </transition>"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Transition transition = processDefinition.getNode("a").getLeavingTransition("self");
- ExceptionHandler exceptionHandler = (ExceptionHandler) transition.getExceptionHandlers().get(0);
- assertSame(transition, exceptionHandler.getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Transition transition = processDefinition.getNode("a").getLeavingTransition("self");
+ ExceptionHandler exceptionHandler = (ExceptionHandler) transition.getExceptionHandlers()
+ .get(0);
+ assertSame(transition, exceptionHandler.getGraphElement());
}
public void testExceptionHandlerActions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <exception-handler exception-class='org.coincidence.FatalAttractionException'>" +
- " <action class='one' />" +
- " <action class='two' />" +
- " <action class='three' />" +
- " <action class='four' />" +
- " </exception-handler>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <exception-handler exception-class='org.coincidence.FatalAttractionException'>"
+ + " <action class='one' />"
+ + " <action class='two' />"
+ + " <action class='three' />"
+ + " <action class='four' />"
+ + " </exception-handler>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers().get(0);
- List actions = exceptionHandler.getActions();
- assertEquals("one", ((Action)actions.get(0)).getActionDelegation().getClassName());
- assertEquals("two", ((Action)actions.get(1)).getActionDelegation().getClassName());
- assertEquals("three", ((Action)actions.get(2)).getActionDelegation().getClassName());
- assertEquals("four", ((Action)actions.get(3)).getActionDelegation().getClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ExceptionHandler exceptionHandler = (ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(0);
+ List actions = exceptionHandler.getActions();
+ assertEquals("one", ((Action) actions.get(0)).getActionDelegation().getClassName());
+ assertEquals("two", ((Action) actions.get(1)).getActionDelegation().getClassName());
+ assertEquals("three", ((Action) actions.get(2)).getActionDelegation().getClassName());
+ assertEquals("four", ((Action) actions.get(3)).getActionDelegation().getClassName());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ProcessDefinitionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ProcessDefinitionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/ProcessDefinitionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -27,69 +27,41 @@
import org.jbpm.graph.node.StartState;
import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
-public class ProcessDefinitionDbTest extends AbstractDbTestCase
-{
+public class ProcessDefinitionDbTest extends AbstractDbTestCase {
- public void testProcessDefinitionVersion()
- {
+ public void testProcessDefinitionVersion() {
ProcessDefinition processDefinition = new ProcessDefinition("name");
processDefinition.setVersion(3);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition);
- assertEquals(3, processDefinition.getVersion());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertNotNull(processDefinition);
+ assertEquals(3, processDefinition.getVersion());
}
- public void testProcessDefinitionIsTerminationImplicit()
- {
+ public void testProcessDefinitionIsTerminationImplicit() {
ProcessDefinition processDefinition = new ProcessDefinition("name");
processDefinition.setTerminationImplicit(false);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition);
- assertFalse(processDefinition.isTerminationImplicit());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertNotNull(processDefinition);
+ assertFalse(processDefinition.isTerminationImplicit());
}
- public void testProcessDefinitionStartState()
- {
+ public void testProcessDefinitionStartState() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.setStartState(new StartState());
processDefinition = saveAndReload(processDefinition);
- try
- {
- // the start state of a process definition is mapped as a node.
- // therefor the hibernate proxy will be a node
- Node startState = processDefinition.getStartState();
- assertTrue(Node.class.isAssignableFrom(startState.getClass()));
- // reloading gives a better typed proxy
- assertTrue(StartState.class.isAssignableFrom(session.load(StartState.class, new Long(startState.getId())).getClass()));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ // the start state of a process definition is mapped as a node.
+ // therefor the hibernate proxy will be a node
+ Node startState = processDefinition.getStartState();
+ assertTrue(Node.class.isAssignableFrom(startState.getClass()));
+ // reloading gives a better typed proxy
+ assertTrue(StartState.class.isAssignableFrom(session.load(StartState.class, new Long(
+ startState.getId())).getClass()));
}
- public void testProcessDefinitionNodes()
- {
+ public void testProcessDefinitionNodes() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.setStartState(new StartState("s"));
processDefinition.addNode(new Node("a"));
@@ -98,24 +70,15 @@
processDefinition.addNode(new Node("d"));
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("s", processDefinition.getStartState().getName());
- assertEquals("s", ((Node)processDefinition.getNodes().get(0)).getName());
- assertEquals("a", ((Node)processDefinition.getNodes().get(1)).getName());
- assertEquals("b", ((Node)processDefinition.getNodes().get(2)).getName());
- assertEquals("c", ((Node)processDefinition.getNodes().get(3)).getName());
- assertEquals("d", ((Node)processDefinition.getNodes().get(4)).getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertEquals("s", processDefinition.getStartState().getName());
+ assertEquals("s", ((Node) processDefinition.getNodes().get(0)).getName());
+ assertEquals("a", ((Node) processDefinition.getNodes().get(1)).getName());
+ assertEquals("b", ((Node) processDefinition.getNodes().get(2)).getName());
+ assertEquals("c", ((Node) processDefinition.getNodes().get(3)).getName());
+ assertEquals("d", ((Node) processDefinition.getNodes().get(4)).getName());
}
- public void testActions()
- {
+ public void testActions() {
ProcessDefinition processDefinition = new ProcessDefinition();
Action action = new Action();
action.setName("a");
@@ -125,23 +88,14 @@
processDefinition.addAction(action);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals(2, processDefinition.getActions().size());
- assertNotNull(processDefinition.getActions().get("a"));
- assertNotNull(processDefinition.getActions().get("b"));
- assertTrue(Action.class.isAssignableFrom(processDefinition.getAction("a").getClass()));
- assertTrue(Action.class.isAssignableFrom(processDefinition.getAction("b").getClass()));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertEquals(2, processDefinition.getActions().size());
+ assertNotNull(processDefinition.getActions().get("a"));
+ assertNotNull(processDefinition.getActions().get("b"));
+ assertTrue(Action.class.isAssignableFrom(processDefinition.getAction("a").getClass()));
+ assertTrue(Action.class.isAssignableFrom(processDefinition.getAction("b").getClass()));
}
- public void testEvents()
- {
+ public void testEvents() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addEvent(new Event("node-enter"));
processDefinition.addEvent(new Event("node-leave"));
@@ -150,23 +104,14 @@
processDefinition.addEvent(new Event("process-end"));
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition.getEvent("node-enter"));
- assertNotNull(processDefinition.getEvent("node-leave"));
- assertNotNull(processDefinition.getEvent("transition"));
- assertNotNull(processDefinition.getEvent("process-start"));
- assertNotNull(processDefinition.getEvent("process-end"));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertNotNull(processDefinition.getEvent("node-enter"));
+ assertNotNull(processDefinition.getEvent("node-leave"));
+ assertNotNull(processDefinition.getEvent("transition"));
+ assertNotNull(processDefinition.getEvent("process-start"));
+ assertNotNull(processDefinition.getEvent("process-end"));
}
- public void testExceptionHandlers()
- {
+ public void testExceptionHandlers() {
ProcessDefinition processDefinition = new ProcessDefinition();
ExceptionHandler exceptionHandler = new ExceptionHandler();
exceptionHandler.setExceptionClassName("org.disaster.FirstException");
@@ -179,71 +124,38 @@
processDefinition.addExceptionHandler(exceptionHandler);
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertEquals("org.disaster.FirstException", ((ExceptionHandler)processDefinition.getExceptionHandlers().get(0)).getExceptionClassName());
- assertEquals("org.disaster.SecondException", ((ExceptionHandler)processDefinition.getExceptionHandlers().get(1)).getExceptionClassName());
- assertEquals("org.disaster.ThirdException", ((ExceptionHandler)processDefinition.getExceptionHandlers().get(2)).getExceptionClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertEquals("org.disaster.FirstException", ((ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(0)).getExceptionClassName());
+ assertEquals("org.disaster.SecondException", ((ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(1)).getExceptionClassName());
+ assertEquals("org.disaster.ThirdException", ((ExceptionHandler) processDefinition.getExceptionHandlers()
+ .get(2)).getExceptionClassName());
}
- public void testContextModuleDefinition()
- {
+ public void testContextModuleDefinition() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addDefinition(new ContextDefinition());
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- newTransaction();
- processDefinition = graphSession.loadProcessDefinition(processDefinition.getId());
- assertNotNull(processDefinition.getContextDefinition());
- assertTrue(ContextDefinition.class.isAssignableFrom(processDefinition.getContextDefinition().getClass()));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+
+ processDefinition = saveAndReload(processDefinition);
+ assertNotNull(processDefinition.getContextDefinition());
+ assertSame(ContextDefinition.class, processDefinition.getContextDefinition().getClass());
}
- public void testFileDefinition()
- {
+ public void testFileDefinition() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addDefinition(new FileDefinition());
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition.getFileDefinition());
- assertTrue(FileDefinition.class.isAssignableFrom(processDefinition.getFileDefinition().getClass()));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertNotNull(processDefinition.getFileDefinition());
+ assertSame(FileDefinition.class, processDefinition.getFileDefinition().getClass());
}
- public void testTaskMgmtDefinition()
- {
+ public void testTaskMgmtDefinition() {
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addDefinition(new TaskMgmtDefinition());
processDefinition = saveAndReload(processDefinition);
- try
- {
- assertNotNull(processDefinition.getTaskMgmtDefinition());
- assertTrue(TaskMgmtDefinition.class.isAssignableFrom(processDefinition.getTaskMgmtDefinition().getClass()));
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertNotNull(processDefinition.getTaskMgmtDefinition());
+ assertSame(TaskMgmtDefinition.class, processDefinition.getTaskMgmtDefinition().getClass());
}
-
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/SuperStateDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -10,67 +10,45 @@
public class SuperStateDbTest extends AbstractDbTestCase {
public void testGetNodesWithSuperState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='processwithsuperstates'>" +
- " <node name='phase zero'/>" +
- " <super-state name='phase one'>" +
- " <node name='ignition' />" +
- " <node name='explosion' />" +
- " <super-state name='cleanup'>" +
- " <node name='take brush' />" +
- " <node name='sweep floor' />" +
- " <node name='blow dry' />" +
- " </super-state>" +
- " <node name='repare' />" +
- " </super-state>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='phase zero'/>"
+ + " <super-state name='phase one'>"
+ + " <node name='ignition' />"
+ + " <node name='explosion' />"
+ + " <super-state name='cleanup'>"
+ + " <node name='take brush' />"
+ + " <node name='sweep floor' />"
+ + " <node name='blow dry' />"
+ + " </super-state>"
+ + " <node name='repare' />"
+ + " </super-state>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try
- {
- Set expectedNodeNames = new HashSet();
- expectedNodeNames.add("phase zero");
- expectedNodeNames.add("phase one");
-
- Set nodeNames = getNodeNames(processDefinition.getNodes());
-
- assertEquals(expectedNodeNames, nodeNames);
-
- SuperState phaseOne = (SuperState) processDefinition.getNode("phase one");
-
- expectedNodeNames = new HashSet();
- expectedNodeNames.add("ignition");
- expectedNodeNames.add("explosion");
- expectedNodeNames.add("cleanup");
- expectedNodeNames.add("repare");
-
- nodeNames = getNodeNames(phaseOne.getNodes());
+ Set expectedNodeNames = new HashSet();
+ expectedNodeNames.add("phase zero");
+ expectedNodeNames.add("phase one");
+ assertEquals(expectedNodeNames, getNodeNames(processDefinition.getNodes()));
- assertEquals(expectedNodeNames, nodeNames);
+ SuperState phaseOne = (SuperState) processDefinition.getNode("phase one");
+ expectedNodeNames.clear();
+ expectedNodeNames.add("ignition");
+ expectedNodeNames.add("explosion");
+ expectedNodeNames.add("cleanup");
+ expectedNodeNames.add("repare");
+ assertEquals(expectedNodeNames, getNodeNames(phaseOne.getNodes()));
- SuperState cleanup = (SuperState) phaseOne.getNode("cleanup");
-
- expectedNodeNames = new HashSet();
- expectedNodeNames.add("take brush");
- expectedNodeNames.add("sweep floor");
- expectedNodeNames.add("blow dry");
-
- nodeNames = getNodeNames(cleanup.getNodes());
-
- assertEquals(expectedNodeNames, nodeNames);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ SuperState cleanup = (SuperState) phaseOne.getNode("cleanup");
+ expectedNodeNames.clear();
+ expectedNodeNames.add("take brush");
+ expectedNodeNames.add("sweep floor");
+ expectedNodeNames.add("blow dry");
+ assertEquals(expectedNodeNames, getNodeNames(cleanup.getNodes()));
}
- private Set getNodeNames(List nodes) {
+ private static Set getNodeNames(List nodes) {
Set nodeNames = new HashSet();
- Iterator iter = nodes.iterator();
- while (iter.hasNext()) {
+ for (Iterator iter = nodes.iterator(); iter.hasNext();) {
Node node = (Node) iter.next();
nodeNames.add(node.getName());
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/TransitionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/TransitionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/def/TransitionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -26,181 +26,127 @@
public class TransitionDbTest extends AbstractDbTestCase {
public void testTranisitionName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='n' />" +
- " </node>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='n' />"
+ + " </node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Transition t = (Transition) n.getLeavingTransitionsList().get(0);
- assertEquals("t", t.getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Node n = processDefinition.getNode("n");
+ Transition t = (Transition) n.getLeavingTransitionsList().get(0);
+ assertEquals("t", t.getName());
}
public void testTranisitionFrom() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='m' />" +
- " </node>" +
- " <node name='m' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='m' />"
+ + " </node>"
+ + " <node name='m' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Transition t = (Transition) n.getLeavingTransitionsList().get(0);
- assertSame(n, t.getFrom());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Node n = processDefinition.getNode("n");
+ Transition t = (Transition) n.getLeavingTransitionsList().get(0);
+ assertSame(n, t.getFrom());
}
public void testTranisitionTo() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='m' />" +
- " </node>" +
- " <node name='m' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='m' />"
+ + " </node>"
+ + " <node name='m' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Node m = processDefinition.getNode("m");
- Transition t = (Transition) n.getLeavingTransitionsList().get(0);
- assertSame(m, t.getTo());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Node n = processDefinition.getNode("n");
+ Node m = processDefinition.getNode("m");
+ Transition t = (Transition) n.getLeavingTransitionsList().get(0);
+ assertSame(m, t.getTo());
}
public void testUnnamedTransition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition to='m' />" +
- " </node>" +
- " <node name='m' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition to='m' />"
+ + " </node>"
+ + " <node name='m' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Node m = processDefinition.getNode("m");
-
- Transition t = n.getDefaultLeavingTransition();
- assertNotNull(t);
- assertEquals(n, t.getFrom());
- assertEquals(m, t.getTo());
- assertEquals(1, n.getLeavingTransitionsList().size());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Node n = processDefinition.getNode("n");
+ Node m = processDefinition.getNode("m");
+
+ Transition t = n.getDefaultLeavingTransition();
+ assertNotNull(t);
+ assertEquals(n, t.getFrom());
+ assertEquals(m, t.getTo());
+ assertEquals(1, n.getLeavingTransitionsList().size());
}
public void testTwoUnnamedTransitions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition to='m' />" +
- " <transition to='o' />" +
- " </node>" +
- " <node name='m' />" +
- " <node name='o' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition to='m' />"
+ + " <transition to='o' />"
+ + " </node>"
+ + " <node name='m' />"
+ + " <node name='o' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Node m = processDefinition.getNode("m");
-
- Transition t = n.getDefaultLeavingTransition();
- assertNotNull(t);
- assertEquals(n, t.getFrom());
- assertEquals(m, t.getTo());
- assertEquals(2, n.getLeavingTransitionsList().size());
+ Node n = processDefinition.getNode("n");
+ Node m = processDefinition.getNode("m");
- assertEquals(1, n.getLeavingTransitionsMap().size());
- t = n.getLeavingTransition(null);
- assertNotNull(t);
- assertEquals(n, t.getFrom());
- assertEquals(m, t.getTo());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Transition t = n.getDefaultLeavingTransition();
+ assertNotNull(t);
+ assertEquals(n, t.getFrom());
+ assertEquals(m, t.getTo());
+ assertEquals(2, n.getLeavingTransitionsList().size());
+
+ assertEquals(1, n.getLeavingTransitionsMap().size());
+ t = n.getLeavingTransition(null);
+ assertNotNull(t);
+ assertEquals(n, t.getFrom());
+ assertEquals(m, t.getTo());
}
public void testThreeSameNameTransitions() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <node name='n'>" +
- " <transition name='t' to='m' />" +
- " <transition name='t' to='o' />" +
- " <transition name='t2' to='p' />" +
- " </node>" +
- " <node name='m' />" +
- " <node name='o' />" +
- " <node name='p' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <node name='n'>"
+ + " <transition name='t' to='m' />"
+ + " <transition name='t' to='o' />"
+ + " <transition name='t2' to='p' />"
+ + " </node>"
+ + " <node name='m' />"
+ + " <node name='o' />"
+ + " <node name='p' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node n = processDefinition.getNode("n");
- Node m = processDefinition.getNode("m");
- Node p = processDefinition.getNode("p");
-
- Transition t = n.getDefaultLeavingTransition();
- assertNotNull(t);
- assertEquals("t", t.getName());
- assertEquals(n, t.getFrom());
- assertEquals(m, t.getTo());
- assertEquals(3, n.getLeavingTransitionsList().size());
+ Node n = processDefinition.getNode("n");
+ Node m = processDefinition.getNode("m");
+ Node p = processDefinition.getNode("p");
- assertEquals(2, n.getLeavingTransitionsMap().size());
- t = n.getLeavingTransition("t");
- assertNotNull(t);
- assertEquals("t", t.getName());
- assertEquals(n, t.getFrom());
- assertEquals(m, t.getTo());
- t = n.getLeavingTransition("t2");
- assertNotNull(t);
- assertEquals("t2", t.getName());
- assertEquals(n, t.getFrom());
- assertEquals(p, t.getTo());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Transition t = n.getDefaultLeavingTransition();
+ assertNotNull(t);
+ assertEquals("t", t.getName());
+ assertEquals(n, t.getFrom());
+ assertEquals(m, t.getTo());
+ assertEquals(3, n.getLeavingTransitionsList().size());
+
+ assertEquals(2, n.getLeavingTransitionsMap().size());
+ t = n.getLeavingTransition("t");
+ assertNotNull(t);
+ assertEquals("t", t.getName());
+ assertEquals(n, t.getFrom());
+ assertEquals(m, t.getTo());
+ t = n.getLeavingTransition("t2");
+ assertNotNull(t);
+ assertEquals("t2", t.getName());
+ assertEquals(n, t.getFrom());
+ assertEquals(p, t.getTo());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/CommentDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/CommentDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/CommentDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -31,57 +31,44 @@
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
public class CommentDbTest extends AbstractDbTestCase {
-
- public void testComments()
- {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = null;
- jbpmContext.setActorId("miketyson");
- try
- {
- processInstance = new ProcessInstance(processDefinition);
- Token token = processInstance.getRootToken();
- token.addComment("first");
- token.addComment("second");
- token.addComment("third");
- processInstance = saveAndReload(processInstance);
- }
- finally
- {
- jbpmContext.setActorId(null);
- }
+ public void testComments() {
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ jbpmContext.setActorId("miketyson");
+ try {
Token token = processInstance.getRootToken();
- List comments = token.getComments();
+ token.addComment("first");
+ token.addComment("second");
+ token.addComment("third");
+ }
+ finally {
+ jbpmContext.setActorId(null);
+ }
- assertNotNull(comments);
- assertEquals(3, comments.size());
+ processInstance = saveAndReload(processInstance);
+ Token token = processInstance.getRootToken();
+ List comments = token.getComments();
- assertEquals("miketyson", ((Comment)comments.get(0)).getActorId());
- assertNotNull(((Comment)comments.get(0)).getTime());
- assertEquals("first", ((Comment)comments.get(0)).getMessage());
+ assertNotNull(comments);
+ assertEquals(3, comments.size());
- assertEquals("miketyson", ((Comment)comments.get(1)).getActorId());
- assertNotNull(((Comment)comments.get(1)).getTime());
- assertEquals("second", ((Comment)comments.get(1)).getMessage());
+ assertEquals("miketyson", ((Comment) comments.get(0)).getActorId());
+ assertNotNull(((Comment) comments.get(0)).getTime());
+ assertEquals("first", ((Comment) comments.get(0)).getMessage());
- assertEquals("miketyson", ((Comment)comments.get(2)).getActorId());
- assertNotNull(((Comment)comments.get(2)).getTime());
- assertEquals("third", ((Comment)comments.get(2)).getMessage());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ assertEquals("miketyson", ((Comment) comments.get(1)).getActorId());
+ assertNotNull(((Comment) comments.get(1)).getTime());
+ assertEquals("second", ((Comment) comments.get(1)).getMessage());
+
+ assertEquals("miketyson", ((Comment) comments.get(2)).getActorId());
+ assertNotNull(((Comment) comments.get(2)).getTime());
+ assertEquals("third", ((Comment) comments.get(2)).getMessage());
}
-
- public void testCommentsOnDifferentTokens()
- {
+
+ public void testCommentsOnDifferentTokens() {
Token tokenOne = new Token();
tokenOne.addComment("one");
tokenOne.addComment("two");
@@ -97,27 +84,25 @@
long secondTokenId = tokenTwo.getId();
newTransaction();
-
- tokenOne = (Token)session.load(Token.class, new Long(firstTokenId));
+ tokenOne = (Token) session.load(Token.class, new Long(firstTokenId));
List comments = tokenOne.getComments();
assertEquals(3, comments.size());
- assertEquals("one", ((Comment)comments.get(0)).getMessage());
- assertEquals("two", ((Comment)comments.get(1)).getMessage());
- assertEquals("three", ((Comment)comments.get(2)).getMessage());
+ assertEquals("one", ((Comment) comments.get(0)).getMessage());
+ assertEquals("two", ((Comment) comments.get(1)).getMessage());
+ assertEquals("three", ((Comment) comments.get(2)).getMessage());
- tokenTwo = (Token)session.load(Token.class, new Long(secondTokenId));
+ tokenTwo = (Token) session.load(Token.class, new Long(secondTokenId));
comments = tokenTwo.getComments();
assertEquals(3, comments.size());
- assertEquals("first", ((Comment)comments.get(0)).getMessage());
- assertEquals("second", ((Comment)comments.get(1)).getMessage());
- assertEquals("third", ((Comment)comments.get(2)).getMessage());
-
+ assertEquals("first", ((Comment) comments.get(0)).getMessage());
+ assertEquals("second", ((Comment) comments.get(1)).getMessage());
+ assertEquals("third", ((Comment) comments.get(2)).getMessage());
+
session.delete(tokenOne);
session.delete(tokenTwo);
}
-
- public void testTaskInstanceComment()
- {
+
+ public void testTaskInstanceComment() {
TaskInstance taskInstance = new TaskInstance();
taskInstance.addComment("one");
taskInstance.addComment("two");
@@ -125,97 +110,84 @@
session.save(taskInstance);
newTransaction();
-
- taskInstance = (TaskInstance)session.load(TaskInstance.class, new Long(taskInstance.getId()));
+ taskInstance = (TaskInstance) session.load(TaskInstance.class, new Long(
+ taskInstance.getId()));
List comments = taskInstance.getComments();
assertEquals(3, comments.size());
- Comment comment = (Comment)comments.get(0);
+ Comment comment = (Comment) comments.get(0);
assertEquals("one", comment.getMessage());
assertSame(taskInstance, comment.getTaskInstance());
- assertEquals("two", ((Comment)comments.get(1)).getMessage());
- assertEquals("three", ((Comment)comments.get(2)).getMessage());
+ assertEquals("two", ((Comment) comments.get(1)).getMessage());
+ assertEquals("three", ((Comment) comments.get(2)).getMessage());
session.delete(taskInstance);
}
public void testCommentToTokenAndTaskInstance() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='clean ceiling' />" +
- " </task-node>" +
- "</process-definition>"
- );
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
-
- processInstance = saveAndReload(processInstance);
-
- TaskMgmtInstance tmi = processInstance.getTaskMgmtInstance();
- TaskInstance taskInstance = (TaskInstance) tmi.getTaskInstances().iterator().next();
- taskInstance.addComment("one");
- taskInstance.addComment("two");
- taskInstance.addComment("three");
-
- processInstance = saveAndReload(processInstance);
- Token rootToken = processInstance.getRootToken();
-
- taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance().getTaskInstances().iterator().next();
- assertEquals(3, taskInstance.getComments().size());
- assertEquals(3, rootToken.getComments().size());
-
- ArrayList tokenComments = new ArrayList(rootToken.getComments());
- ArrayList taskComments = new ArrayList(taskInstance.getComments());
- assertEquals(tokenComments, taskComments);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+
+ processInstance = saveAndReload(processInstance);
+
+ TaskMgmtInstance tmi = processInstance.getTaskMgmtInstance();
+ TaskInstance taskInstance = (TaskInstance) tmi.getTaskInstances().iterator().next();
+ taskInstance.addComment("one");
+ taskInstance.addComment("two");
+ taskInstance.addComment("three");
+
+ processInstance = saveAndReload(processInstance);
+ Token rootToken = processInstance.getRootToken();
+
+ taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ assertEquals(3, taskInstance.getComments().size());
+ assertEquals(3, rootToken.getComments().size());
+
+ ArrayList tokenComments = new ArrayList(rootToken.getComments());
+ ArrayList taskComments = new ArrayList(taskInstance.getComments());
+ assertEquals(tokenComments, taskComments);
}
-
+
public void testTaskCommentAndLoadProcessInstance() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <task-node name='a'>" +
- " <task name='clean ceiling' />" +
- " <transition to='end' />" +
- " </task-node>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling' />"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- Collection unfinishedTasks = processInstance.getTaskMgmtInstance().getUnfinishedTasks(processInstance.getRootToken());
- TaskInstance taskInstance = (TaskInstance) unfinishedTasks.iterator().next();
- taskInstance.addComment("please hurry!");
-
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ Collection unfinishedTasks = processInstance.getTaskMgmtInstance()
+ .getUnfinishedTasks(processInstance.getRootToken());
+ TaskInstance taskInstance = (TaskInstance) unfinishedTasks.iterator().next();
+ taskInstance.addComment("please hurry!");
- taskMgmtSession.loadTaskInstance(taskInstance.getId());
- graphSession.deleteProcessInstance(processInstance.getId());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+ taskMgmtSession.loadTaskInstance(taskInstance.getId());
+ graphSession.deleteProcessInstance(processInstance.getId());
}
-
}
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/ProcessInstanceDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -29,56 +29,43 @@
public class ProcessInstanceDbTest extends AbstractDbTestCase {
public void testProcessInstanceProcessDefinition() {
- ProcessDefinition processDefinition = new ProcessDefinition("definition");
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
- assertNotNull(processInstance);
- processDefinition = processInstance.getProcessDefinition();
- assertEquals("definition", processDefinition.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ processDefinition = processInstance.getProcessDefinition();
+ assertEquals(getName(), processDefinition.getName());
}
public void testProcessInstanceDates() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ " <start-state>"
+ " <transition to='end' />"
+ " </start-state>"
+ " <end-state name='end'/>"
+ "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- assertNotNull(processInstance.getStart());
- assertNotNull(processInstance.getEnd());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ assertNotNull(processInstance.getStart());
+ assertNotNull(processInstance.getEnd());
}
public void testProcessInstanceRootToken() {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- assertNotNull(processInstance.getRootToken());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+
+ processInstance = saveAndReload(processInstance);
+ assertNotNull(processInstance.getRootToken());
}
public void testProcessInstanceSuperProcessToken() {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/RuntimeActionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -29,81 +29,63 @@
public class RuntimeActionDbTest extends AbstractDbTestCase {
public void testRuntimeActionEvent() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <event type='process-start' />" +
- " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>" +
- "</process-definition>" );
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- Event event = processInstance.getProcessDefinition().getEvent("process-start");
- Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
- processInstance.addRuntimeAction(new RuntimeAction(event, action));
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <event type='process-start' />"
+ + " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Event event = processInstance.getProcessDefinition().getEvent("process-start");
+ Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
+ processInstance.addRuntimeAction(new RuntimeAction(event, action));
- RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
- event = processInstance.getProcessDefinition().getEvent("process-start");
- assertEquals(event.getGraphElement(), runtimeAction.getGraphElement());
- assertEquals(event.getEventType(), runtimeAction.getEventType());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
+ event = processInstance.getProcessDefinition().getEvent("process-start");
+ assertEquals(event.getGraphElement(), runtimeAction.getGraphElement());
+ assertEquals(event.getEventType(), runtimeAction.getEventType());
}
public void testRuntimeActionAction() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <event type='process-start' />" +
- " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>" +
- "</process-definition>" );
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- Event event = processInstance.getProcessDefinition().getEvent("process-start");
- Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
- processInstance.addRuntimeAction(new RuntimeAction(event, action));
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <event type='process-start' />"
+ + " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Event event = processInstance.getProcessDefinition().getEvent("process-start");
+ Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
+ processInstance.addRuntimeAction(new RuntimeAction(event, action));
- RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
- action = processInstance.getProcessDefinition().getAction("gotocheetahs");
- assertSame(action, runtimeAction.getAction());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
+ action = processInstance.getProcessDefinition().getAction("gotocheetahs");
+ assertSame(action, runtimeAction.getAction());
}
public void testRuntimeActionOnNonExistingEvent() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>" +
- "</process-definition>" );
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
- processInstance.addRuntimeAction(new RuntimeAction(processDefinition, "process-start", action));
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <action name='gotocheetahs' class='com.secret.LetsDoItSneeky'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Action action = processInstance.getProcessDefinition().getAction("gotocheetahs");
+ processInstance.addRuntimeAction(new RuntimeAction(processDefinition, "process-start",
+ action));
- RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
- action = processInstance.getProcessDefinition().getAction("gotocheetahs");
- assertSame(action, runtimeAction.getAction());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+ RuntimeAction runtimeAction = (RuntimeAction) processInstance.getRuntimeActions().get(0);
+ action = processInstance.getProcessDefinition().getAction("gotocheetahs");
+ assertSame(action, runtimeAction.getAction());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/StateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/StateDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/StateDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -6,54 +6,42 @@
public final class StateDbTest extends AbstractDbTestCase {
public void testDbState() throws Exception {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state name='zero'>" +
- " <transition to='one' />" +
- " </start-state>" +
- " <state name='one'>" +
- " <transition to='two' />" +
- " </state>" +
- " <state name='two'>" +
- " <transition to='three' />" +
- " </state>" +
- " <state name='three'>" +
- " <transition to='end' />" +
- " </state>" +
- " <end-state name='end' />" +
- "</process-definition>"
- );
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- long instanceId = processInstance.getId();
- Token rootToken = processInstance.getRootToken();
- assertEquals("zero", rootToken.getNode().getName());
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(instanceId);
- rootToken = processInstance.getRootToken();
- processInstance.signal();
- assertEquals("one", rootToken.getNode().getName());
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(instanceId);
- rootToken = processInstance.getRootToken();
- processInstance.signal();
- assertEquals("two", rootToken.getNode().getName());
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(instanceId);
- rootToken = processInstance.getRootToken();
- processInstance.signal();
- assertEquals("three", rootToken.getNode().getName());
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(instanceId);
- rootToken = processInstance.getRootToken();
- processInstance.signal();
- assertEquals("end", rootToken.getNode().getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state name='zero'>"
+ + " <transition to='one' />"
+ + " </start-state>"
+ + " <state name='one'>"
+ + " <transition to='two' />"
+ + " </state>"
+ + " <state name='two'>"
+ + " <transition to='three' />"
+ + " </state>"
+ + " <state name='three'>"
+ + " <transition to='end' />"
+ + " </state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
+
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ assertEquals("zero", processInstance.getRootToken().getNode().getName());
+
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
+ assertEquals("one", processInstance.getRootToken().getNode().getName());
+
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
+ assertEquals("two", processInstance.getRootToken().getNode().getName());
+
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
+ assertEquals("three", processInstance.getRootToken().getNode().getName());
+
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
+ assertEquals("end", processInstance.getRootToken().getNode().getName());
}
}
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/exe/TokenDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -33,118 +33,96 @@
public class TokenDbTest extends AbstractDbTestCase {
public void testTokenName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ " <start-state />"
+ "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.getRootToken().name = "roottoken";
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getRootToken().name = "roottoken";
- assertEquals("roottoken", processInstance.getRootToken().getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ assertEquals("roottoken", processInstance.getRootToken().getName());
}
public void testTokenStartAndEndDate() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ " <start-state>"
+ " <transition to='end' />"
+ " </start-state>"
+ " <end-state name='end'/>"
+ "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- Token token = processInstance.getRootToken();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- assertNotNull(token.getStart());
- assertNotNull(token.getEnd());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ Token token = processInstance.getRootToken();
+ assertNotNull(token.getStart());
+ assertNotNull(token.getEnd());
}
public void testTokenNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ " <start-state name='s' />"
+ "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance = saveAndReload(processInstance);
+ deployProcessDefinition(processDefinition);
- Node s = processInstance.getProcessDefinition().getStartState();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
- assertSame(s, processInstance.getRootToken().getNode());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ Node s = processInstance.getProcessDefinition().getStartState();
+ assertSame(s, processInstance.getRootToken().getNode());
}
public void testTokenProcessInstance() {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
- assertSame(processInstance, processInstance.getRootToken().getProcessInstance());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+
+ processInstance = saveAndReload(processInstance);
+ assertSame(processInstance, processInstance.getRootToken().getProcessInstance());
}
public void testTokenParent() {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- new Token(processInstance.getRootToken(), "one");
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- Token rootToken = processInstance.getRootToken();
- Token childOne = rootToken.getChild("one");
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ new Token(processInstance.getRootToken(), "one");
- assertSame(rootToken, childOne.getParent());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ Token rootToken = processInstance.getRootToken();
+ Token childOne = rootToken.getChild("one");
+ assertSame(rootToken, childOne.getParent());
}
public void testTokenChildren() {
- ProcessDefinition processDefinition = new ProcessDefinition();
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- new Token(processInstance.getRootToken(), "one");
- new Token(processInstance.getRootToken(), "two");
- new Token(processInstance.getRootToken(), "three");
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- Token rootToken = processInstance.getRootToken();
- Token childOne = rootToken.getChild("one");
- Token childTwo = rootToken.getChild("two");
- Token childThree = rootToken.getChild("three");
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ new Token(processInstance.getRootToken(), "one");
+ new Token(processInstance.getRootToken(), "two");
+ new Token(processInstance.getRootToken(), "three");
- assertEquals("one", childOne.getName());
- assertEquals("two", childTwo.getName());
- assertEquals("three", childThree.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ Token rootToken = processInstance.getRootToken();
+ 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());
}
public void testAvailableTransitions() {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/EndStateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/EndStateDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/EndStateDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -27,22 +27,22 @@
public class EndStateDbTest extends AbstractDbTestCase {
public void testEndState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <end-state name='end' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- EndState endState = (EndState) processDefinition.getNode("end");
- assertEquals("end", endState.getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ EndState endState = (EndState) processDefinition.getNode("end");
+ assertEquals("end", endState.getName());
}
+ public void testEndCompleteProcess() {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <end-state name='end' end-complete-process='yes' />"
+ + "</process-definition>");
+
+ processDefinition = saveAndReload(processDefinition);
+ EndState endState = (EndState) processDefinition.getNode("end");
+ assertEquals("yes", endState.endCompleteProcess);
+ }
}
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/JpdlDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -51,20 +51,15 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- Decision decision = (Decision) processDefinition.getNode("d");
- assertEquals("a == 1", decision.getLeavingTransition("one").getCondition());
- assertEquals("a == 2", decision.getLeavingTransition("two").getCondition());
- assertEquals("a == 3", decision.getLeavingTransition("three").getCondition());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Decision decision = (Decision) processDefinition.getNode("d");
+ assertEquals("a == 1", decision.getLeavingTransition("one").getCondition());
+ assertEquals("a == 2", decision.getLeavingTransition("two").getCondition());
+ assertEquals("a == 3", decision.getLeavingTransition("three").getCondition());
}
public static class MyDecisionHandler implements DecisionHandler {
private static final long serialVersionUID = 1L;
- String decisionHandlerConfigText = null;
+ String decisionHandlerConfigText;
public String decide(ExecutionContext executionContext) throws Exception {
return "two";
@@ -74,7 +69,9 @@
public void testDecisionDelegation() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ " <decision name='d' >"
- + " <handler class='org.jbpm.graph.node.JpdlDbTest$MyDecisionHandler'>"
+ + " <handler class='"
+ + MyDecisionHandler.class.getName()
+ + "'>"
+ " <decisionHandlerConfigText>testing... one, two... testing</decisionHandlerConfigText>"
+ " </handler>"
+ " <transition name='one' to='d'/>"
@@ -84,19 +81,10 @@
+ "</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());
- assertEquals(
- "<decisionHandlerConfigText>testing... one, two... testing</decisionHandlerConfigText>",
- decisionDelegation.getConfiguration());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Decision decision = (Decision) processDefinition.getNode("d");
+ Delegation decisionDelegation = decision.getDecisionDelegation();
+ assertEquals(MyDecisionHandler.class.getName(), decisionDelegation.getClassName());
+ assertEquals("<decisionHandlerConfigText>testing... one, two... testing</decisionHandlerConfigText>", decisionDelegation.getConfiguration());
}
public void testFork() {
@@ -105,13 +93,7 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- Fork fork = (Fork) processDefinition.getNode("f");
- assertNotNull(fork);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertSame(Fork.class, processDefinition.getNode("f").getClass());
}
public void testJoin() {
@@ -120,13 +102,7 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- Join join = (Join) processDefinition.getNode("j");
- assertNotNull(join);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertSame(Join.class, processDefinition.getNode("j").getClass());
}
public void testScript() {
@@ -141,15 +117,9 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- Script script = (Script) processDefinition.getAction("s");
- assertNotNull(script);
- assertEquals(4, script.getVariableAccesses().size());
- assertEquals("e = m * Math.pow(c,2);", script.getExpression());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Script script = (Script) processDefinition.getAction("s");
+ assertEquals(4, script.getVariableAccesses().size());
+ assertEquals("e = m * Math.pow(c,2);", script.getExpression());
}
public void testState() {
@@ -158,13 +128,7 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- State state = (State) processDefinition.getNode("s");
- assertNotNull(state);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertSame(State.class, processDefinition.getNode("s").getClass());
}
public void testTaskNode() {
@@ -179,36 +143,30 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
- assertNotNull(taskNode);
- assertEquals("t", taskNode.getName());
- assertEquals(TaskNode.SIGNAL_FIRST_WAIT, taskNode.getSignal());
- assertFalse(taskNode.getCreateTasks());
- assertEquals(3, taskNode.getTasks().size());
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
+ assertNotNull(taskNode);
+ assertEquals("t", taskNode.getName());
+ assertEquals(TaskNode.SIGNAL_FIRST_WAIT, taskNode.getSignal());
+ assertFalse(taskNode.getCreateTasks());
+ assertEquals(3, taskNode.getTasks().size());
- Map tasks = new HashMap();
- Iterator iter = taskNode.getTasks().iterator();
- while (iter.hasNext()) {
- Task task = (Task) iter.next();
- tasks.put(task.getName(), task);
- }
- Task task = (Task) tasks.get("change the world once");
- assertNotNull(task);
- assertSame(taskNode, task.getTaskNode());
- assertTrue(task.isBlocking());
- assertEquals("anyonebutme", task.getAssignmentDelegation().getClassName());
+ Map tasks = new HashMap();
+ for (Iterator iter = taskNode.getTasks().iterator(); iter.hasNext();) {
+ Task task = (Task) iter.next();
+ tasks.put(task.getName(), task);
+ }
+ Task task = (Task) tasks.get("change the world once");
+ assertNotNull(task);
+ assertSame(taskNode, task.getTaskNode());
+ assertTrue(task.isBlocking());
+ assertEquals("anyonebutme", task.getAssignmentDelegation().getClassName());
- task = (Task) tasks.get("change the world twice");
- assertNotNull(task);
- assertSame(taskNode, task.getTaskNode());
- assertFalse(task.isBlocking());
+ task = (Task) tasks.get("change the world twice");
+ assertNotNull(task);
+ assertSame(taskNode, task.getTaskNode());
+ assertFalse(task.isBlocking());
- assertTrue(tasks.containsKey("change the world three times"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertTrue(tasks.containsKey("change the world three times"));
}
public void testNoAccessToObsoleteDecisionConditionTable() {
@@ -233,21 +191,16 @@
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try {
- Decision decision = (Decision) processDefinition.getNode("d");
- assertEquals("#{a == 1}", decision.getLeavingTransition("one").getCondition());
- assertEquals("#{a == 2}", decision.getLeavingTransition("two").getCondition());
- assertEquals("#{a == 3}", decision.getLeavingTransition("three").getCondition());
+ Decision decision = (Decision) processDefinition.getNode("d");
+ assertEquals("#{a == 1}", decision.getLeavingTransition("one").getCondition());
+ assertEquals("#{a == 2}", decision.getLeavingTransition("two").getCondition());
+ assertEquals("#{a == 3}", decision.getLeavingTransition("three").getCondition());
- // Assure org.jbpm.graph.node.Decision#execute gets the conditions from
- // table JBPM_TRANSITIONS rather than the obsolete JBPM_DECISIONCONDITION:
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.getContextInstance().setVariable("a", new Integer(2));
- processInstance.signal();
- assertEquals(processDefinition.getNode("b"), processInstance.getRootToken().getNode());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ // Assure org.jbpm.graph.node.Decision#execute gets the conditions from
+ // table JBPM_TRANSITIONS rather than the obsolete JBPM_DECISIONCONDITION:
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("a", new Integer(2));
+ processInstance.signal();
+ assertEquals(processDefinition.getNode("b"), processInstance.getRootToken().getNode());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/StartStateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/StartStateDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/graph/node/StartStateDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -30,48 +30,30 @@
public class StartStateDbTest extends AbstractDbTestCase {
public void testStartState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state name='start' />" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='start' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Node startState = processDefinition.getNode("start");
- assertEquals("start", startState.getName());
- assertSame(startState, processDefinition.getStartState());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ Node startState = processDefinition.getNode("start");
+ assertEquals("start", startState.getName());
+ assertSame(startState, processDefinition.getStartState());
}
public void testStartStateSwimlane() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='initiator' />" +
- " <start-state name='start'>" +
- " <task swimlane='initiator' />" +
- " </start-state>" +
- "</process-definition>");
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='initiator' />"
+ + " <start-state name='start'>"
+ + " <task swimlane='initiator' />"
+ + " </start-state>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
- Swimlane initiatorSwimlaneViaStartTask = taskMgmtDefinition.getStartTask().getSwimlane();
- assertNotNull(initiatorSwimlaneViaStartTask);
-
- Swimlane initiatorSwimlaneViaDefinition = taskMgmtDefinition.getSwimlane("initiator");
- assertSame(initiatorSwimlaneViaDefinition, initiatorSwimlaneViaStartTask);
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
+ Swimlane initiatorSwimlaneViaStartTask = taskMgmtDefinition.getStartTask().getSwimlane();
+ assertNotNull(initiatorSwimlaneViaStartTask);
+ Swimlane initiatorSwimlaneViaDefinition = taskMgmtDefinition.getSwimlane("initiator");
+ assertSame(initiatorSwimlaneViaDefinition, initiatorSwimlaneViaStartTask);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1024/JBPM1024Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1024/JBPM1024Test.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1024/JBPM1024Test.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -30,38 +30,31 @@
import org.jbpm.instantiation.ProcessClassLoader;
/**
- * Serializable variables are not being deserialized when retrieved from process
+ * Serializable variables are not being deserialized when retrieved from
+ * process. Tests a serializable variable whose class file is stored in the
+ * process definition.
*
- * https://jira.jboss.org/jira/browse/JBPM-1024
- *
- * Tests a serializable variable whose class file is stored in the process definition.
- *
+ * @see <a href="https://jira.jboss.org/jira/browse/JBPM-1024">JBPM-1024</a>
* @author Alejandro Guizar
*/
-public class JBPM1024Test extends AbstractDbTestCase
-{
+public class JBPM1024Test extends AbstractDbTestCase {
- public void testCustomSerializableVariableClass() throws IOException
- {
- // create and save the process definition
+ public void testCustomSerializableVariableClass() throws IOException {
+ // create and deploy process definition
ProcessDefinition processDefinition = ProcessDefinition.parseParResource("org/jbpm/context/exe/CustomSerializable.zip");
- graphSession.saveProcessDefinition(processDefinition);
- try
- {
- // create the process instance
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance = saveAndReload(processInstance);
+ deployProcessDefinition(processDefinition);
- // get the custom object from the context instance
- Object customSerializable = processInstance.getContextInstance().getVariable("custom serializable");
- assertTrue(customSerializable instanceof Serializable);
- assertSame(ProcessClassLoader.class, customSerializable.getClass().getClassLoader().getClass());
- assertEquals("1984", customSerializable.toString());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ // create process instance
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance = saveAndReload(processInstance);
+ // get custom object from context instance
+ Object customSerializable = processInstance.getContextInstance()
+ .getVariable("custom serializable");
+ assertTrue(customSerializable instanceof Serializable);
+ assertSame(ProcessClassLoader.class, customSerializable.getClass()
+ .getClassLoader()
+ .getClass());
+ assertEquals("1984", customSerializable.toString());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1085/JBPM1085Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1085/JBPM1085Test.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm1085/JBPM1085Test.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -25,10 +25,17 @@
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
+/**
+ * Join of new process instance fails in Oracle.
+ *
+ * @see <a href="https://jira.jboss.org/jira/browse/JBPM-1085">JBPM-1085</a>
+ */
public class JBPM1085Test extends AbstractDbTestCase {
public void testJoinPersistence() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ " <start-state>"
+ " <transition to='f' />"
+ " </start-state>"
@@ -47,22 +54,17 @@
+ " </join>"
+ " <end-state name='end'/>"
+ "</process-definition>");
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- processInstance.findToken("/a").signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ processInstance.findToken("/a").signal();
- processInstance = saveAndReload(processInstance);
- processInstance.findToken("/b").signal();
+ processInstance = saveAndReload(processInstance);
+ processInstance.findToken("/b").signal();
- assertEquals("end", processInstance.getRootToken().getNode().getName());
- assertEquals("j", processInstance.findToken("/a").getNode().getName());
- assertEquals("j", processInstance.findToken("/b").getNode().getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals("end", processInstance.getRootToken().getNode().getName());
+ assertEquals("j", processInstance.findToken("/a").getNode().getName());
+ assertEquals("j", processInstance.findToken("/b").getNode().getName());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2608/JBPM2608Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2608/JBPM2608Test.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2608/JBPM2608Test.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -26,36 +26,30 @@
import java.util.List;
import org.jbpm.db.AbstractDbTestCase;
+import org.jbpm.db.JobSession;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.job.Job;
import org.jbpm.job.Timer;
/**
+ * {@link JobSession#findJobsWithOverdueLockTime(Date)} returns incorrect list
+ * of overdue jobs.
+ *
+ * @see <a href="https://jira.jboss.org/jira/browse/JBPM-2608">JBPM-2608</a>
* @author Alejandro Guizar
*/
public class JBPM2608Test extends AbstractDbTestCase {
- private ProcessDefinition processDefinition;
-
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition(getName());
- graphSession.saveProcessDefinition(processDefinition);
- }
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinition);
- super.tearDown();
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ deployProcessDefinition(processDefinition);
}
- /**
- * Test method for
- * {@link org.jbpm.db.JobSession#findJobsWithOverdueLockTime(java.util.Date)}
- * .
- */
public void testFindJobsWithOverdueLockTime() {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(getName());
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, -1);
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2812/JBPM2812Test.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -34,45 +34,32 @@
public class JBPM2812Test extends AbstractDbTestCase {
public void testTimerWithSuperState() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='jbpm2812'>" +
- " <start-state name='start'>" +
- " <transition to='super-state/state1'/>" +
- " </start-state>" +
- " <super-state name='super-state'>" +
- " <state name='state1'>" +
- " <timer duedate='1 second' name='timeout-timer' transition='timeout'/>" +
- " <transition to='state2' name='go'/>" +
- " </state>" +
- " <state name='state2'>" +
- " <transition to='end' name='go'/>" +
- " </state>" +
- " <transition to='timed-out-end' name='timeout'/>" +
- " </super-state>" +
- " <end-state name='timed-out-end'/>" +
- " <end-state name='end'/>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='jbpm2812'>"
+ + " <start-state name='start'>"
+ + " <transition to='super-state/state1'/>"
+ + " </start-state>"
+ + " <super-state name='super-state'>"
+ + " <state name='state1'>"
+ + " <timer duedate='1 second' name='timeout-timer' transition='timeout'/>"
+ + " <transition to='state2' name='go'/>"
+ + " </state>"
+ + " <state name='state2'>"
+ + " <transition to='end' name='go'/>"
+ + " </state>"
+ + " <transition to='timed-out-end' name='timeout'/>"
+ + " </super-state>"
+ + " <end-state name='timed-out-end'/>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try
- {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- // long before = System.currentTimeMillis();
- processInstance.signal();
- assertEquals("state1", processInstance.getRootToken().getNode().getName());
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ assertEquals("state1", processInstance.getRootToken().getNode().getName());
- processJobs(60 * 1000);
-
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertTrue("expected " + processInstance + " to have ended", processInstance.hasEnded());
- assertEquals("timed-out-end", processInstance.getRootToken().getNode().getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processJobs(60 * 1000);
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertTrue("expected " + processInstance + " to have ended", processInstance.hasEnded());
+ assertEquals("timed-out-end", processInstance.getRootToken().getNode().getName());
}
-
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/TaskWithVariablesTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/TaskWithVariablesTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/TaskWithVariablesTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -37,46 +37,44 @@
public static class ErnieAssignmentHandler 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("manager");
}
}
- ProcessDefinition processDefinition;
-
protected void setUp() throws Exception {
super.setUp();
- processDefinition = ProcessDefinition.parseXmlString("<process-definition name='states'>"
- + " <start-state>"
- + " <transition to='one' />"
- + " </start-state>"
- + " <task-node name='one'>"
- + " <task name='one'>"
- + " <assignment class='org.jbpm.perf.TaskWithVariablesTest$ErnieAssignmentHandler' />"
- + " </task>"
- + " <transition to='two' />"
- + " </task-node>"
- + " <task-node name='two'>"
- + " <task name='two'>"
- + " <assignment class='org.jbpm.perf.TaskWithVariablesTest$ErnieAssignmentHandler' />"
- + " </task>"
- + " <transition to='end' />"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='one' />"
+ + " </start-state>"
+ + " <task-node name='one'>"
+ + " <task name='one'>"
+ + " <assignment class='org.jbpm.perf.TaskWithVariablesTest$ErnieAssignmentHandler' />"
+ + " </task>"
+ + " <transition to='two' />"
+ + " </task-node>"
+ + " <task-node name='two'>"
+ + " <task name='two'>"
+ + " <assignment class='"
+ + ErnieAssignmentHandler.class.getName()
+ + "' />"
+ + " </task>"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testStates() {
log.info("");
log.info("=== CREATING PROCESS INSTANCE =======================================================");
log.info("");
- ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("states");
+ ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(getName());
ContextInstance contextInstance = processInstance.getContextInstance();
contextInstance.setVariable("hotel", "best western");
contextInstance.setVariable("city", "wengen");
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -42,13 +42,6 @@
public class TimerDbTest extends AbstractDbTestCase {
- static boolean isNoOpExecuted = false;
-
- protected void setUp() throws Exception {
- super.setUp();
- isNoOpExecuted = false;
- }
-
public void testSaveTimer() {
final Date now = Calendar.getInstance().getTime();
@@ -59,9 +52,8 @@
timer.setRepeat("repeat-duration");
session.save(timer);
+ newTransaction();
try {
- newTransaction();
-
timer = (Timer) session.load(Timer.class, new Long(timer.getId()));
assertEquals("timer-name", timer.getName());
@@ -82,7 +74,7 @@
assertEquals(ncal.get(Calendar.MINUTE), tcal.get(Calendar.MINUTE));
assertEquals(ncal.get(Calendar.SECOND), tcal.get(Calendar.SECOND));
assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now), DateDbTestUtil.getInstance()
- .convertDateToSeconds(timer.getDueDate()));
+ .convertDateToSeconds(timer.getDueDate()));
assertEquals("transition-name", timer.getTransitionName());
assertEquals("repeat-duration", timer.getRepeat());
}
@@ -92,323 +84,295 @@
}
public void testTimerCreation() throws Exception {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='catch crooks' />"
- + " </start-state>"
- + " <state name='catch crooks'>"
- + " <timer name='reminder' duedate='5 seconds' />"
- + " <transition to='end'/>"
- + " </state>"
- + " <end-state name='end'/>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='catch crooks' />"
+ + " </start-state>"
+ + " <state name='catch crooks'>"
+ + " <timer name='reminder' duedate='5 seconds' />"
+ + " <transition to='end'/>"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- // long before = System.currentTimeMillis();
- processInstance.signal();
- // long after = System.currentTimeMillis();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ // long before = System.currentTimeMillis();
+ processInstance.signal();
+ // long after = System.currentTimeMillis();
+ jbpmContext.save(processInstance);
- newTransaction();
-
- Timer timer = (Timer) session.createQuery("from org.jbpm.job.Timer").uniqueResult();
- assertNotNull("Timer is null", timer);
- assertEquals("reminder", timer.getName());
- // Commented out because of timer latency is changing between time
- // required to connect to the database
- // assertTrue((before + 5000) <= timer.getDueDate().getTime());
- // assertTrue(timer.getDueDate().getTime() <= (after + 5000));
- assertEquals("catch crooks", timer.getGraphElement().getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ assertNotNull("Timer is null", timer);
+ assertEquals("reminder", timer.getName());
+ // Commented out because of timer latency is changing between time
+ // required to connect to the database
+ // assertTrue((before + 5000) <= timer.getDueDate().getTime());
+ // assertTrue(timer.getDueDate().getTime() <= (after + 5000));
+ assertEquals("catch crooks", timer.getGraphElement().getName());
}
public void testTimerCancellation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='catch crooks' />"
- + " </start-state>"
- + " <state name='catch crooks'>"
- + " <timer name='reminder' duedate='5 seconds' />"
- + " <transition to='end'/>"
- + " </state>"
- + " <end-state name='end'/>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='catch crooks' />"
+ + " </start-state>"
+ + " <state name='catch crooks'>"
+ + " <timer name='reminder' duedate='5 seconds' />"
+ + " <transition to='end'/>"
+ + " </state>"
+ + " <end-state name='end'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- processInstance.signal();
+ processInstance = saveAndReload(processInstance);
+ processInstance.signal();
- newTransaction();
-
- assertEquals(0, getTimerCount());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ assertEquals(0, getTimerCount());
}
public void testTimerAction() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='process'>"
- + " <start-state>"
- + " <transition to='sometask' />"
- + " </start-state>"
- + " <task-node name='sometask'>"
- + " <timer name='reminder'"
- + " duedate='1 business minutes'"
- + " repeat='1 business minutes'"
- + " transition='time-out-transition' >"
- + " <action class='my-action-handler-class-name' />"
- + " </timer>"
- + " <task name='do something'/>"
- + " <transition name='time-out-transition' to='sometask' />"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='sometask' />"
+ + " </start-state>"
+ + " <task-node name='sometask'>"
+ + " <timer name='reminder'"
+ + " duedate='1 business minutes'"
+ + " repeat='1 business minutes'"
+ + " transition='time-out-transition' >"
+ + " <action class='my-action-handler-class-name' />"
+ + " </timer>"
+ + " <task name='do something'/>"
+ + " <transition name='time-out-transition' to='sometask' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- graphSession.saveProcessDefinition(processDefinition);
- try {
- Node node = processDefinition.getNode("sometask");
+ Node node = processDefinition.getNode("sometask");
+ List actions = node.getEvent(Event.EVENTTYPE_NODE_ENTER).getActions();
+ assertEquals(1, actions.size());
- List actions = node.getEvent(Event.EVENTTYPE_NODE_ENTER).getActions();
- assertEquals(1, actions.size());
+ actions = node.getEvent(Event.EVENTTYPE_NODE_LEAVE).getActions();
+ assertEquals(1, actions.size());
- actions = node.getEvent(Event.EVENTTYPE_NODE_LEAVE).getActions();
- assertEquals(1, actions.size());
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
-
- newTransaction();
-
- assertEquals(1, getTimerCount());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ assertEquals(1, getTimerCount());
}
public void testTaskTimerExecution() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='timed task' />"
- + " </start-state>"
- + " <task-node name='timed task'>"
- + " <task>"
- + " <timer duedate='23 business seconds'>"
- + " <action class='geftem-eu-shuppe-oender-ze-konte'/>"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='timed task' />"
+ + " </start-state>"
+ + " <task-node name='timed task'>"
+ + " <task>"
+ + " <timer duedate='23 business seconds'>"
+ + " <action class='geftem-eu-shuppe-oender-ze-konte'/>"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- assertEquals(1, getTimerCount());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ assertEquals(1, getTimerCount());
}
public void testTimerCancellationAtProcessEnd() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='s' />"
- + " </start-state>"
- + " <state name='s'>"
- + " <event type='node-enter'>"
- + " <create-timer duedate='52 seconds'>"
- + " <action class='claim.you.are.Innocent' />"
- + " </create-timer>"
- + " </event>"
- + " <transition to='end' />"
- + " </state>"
- + " <end-state name='end' />"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='s' />"
+ + " </start-state>"
+ + " <state name='s'>"
+ + " <event type='node-enter'>"
+ + " <create-timer duedate='52 seconds'>"
+ + " <action class='claim.you.are.Innocent' />"
+ + " </create-timer>"
+ + " </event>"
+ + " <transition to='end' />"
+ + " </state>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- assertEquals(1, getTimerCount());
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- newTransaction();
+ processInstance = saveAndReload(processInstance);
+ assertEquals(1, getTimerCount());
+ processInstance.signal();
- assertEquals(1, getTimerCount());
+ newTransaction();
+ assertEquals(1, getTimerCount());
- processJobs(20000);
-
- assertEquals(0, getTimerCount());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processJobs(20000);
+ assertEquals(0, getTimerCount());
}
public void testFindTimersByName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='timed task' />"
- + " </start-state>"
- + " <task-node name='timed task'>"
- + " <task name='find the hole in the market'>"
- + " <timer name='reminder' duedate='23 business seconds'>"
- + " <action class='geftem-eu-shuppe-oender-ze-konte'/>"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='timed task' />"
+ + " </start-state>"
+ + " <task-node name='timed task'>"
+ + " <task name='find the hole in the market'>"
+ + " <timer name='reminder' duedate='23 business seconds'>"
+ + " <action class='geftem-eu-shuppe-oender-ze-konte'/>"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- List timersByName = session.createCriteria(Timer.class)
- .add(Restrictions.eq("name", "reminder"))
- .list();
- assertNotNull(timersByName);
- assertEquals(1, timersByName.size());
+ processInstance = saveAndReload(processInstance);
+ List timersByName = session.createCriteria(Timer.class)
+ .add(Restrictions.eq("name", "reminder"))
+ .list();
+ assertEquals(1, timersByName.size());
- Timer timer = (Timer) timersByName.get(0);
- assertEquals("geftem-eu-shuppe-oender-ze-konte", timer.getAction()
- .getActionDelegation()
- .getClassName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Timer timer = (Timer) timersByName.get(0);
+ assertEquals("geftem-eu-shuppe-oender-ze-konte", timer.getAction()
+ .getActionDelegation()
+ .getClassName());
}
public void testTimerRepeat() throws Exception {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <state name='a'>"
- + " <timer name='reminder' "
- + " duedate='0 seconds'"
- + " repeat='1 minute' >"
- + " <action class='org.jbpm.scheduler.exe.TimerDbTest$NoOp' />"
- + " </timer>"
- + " <transition to='b'/>"
- + " <transition name='back' to='a'/>"
- + " </state>"
- + " <state name='b'/>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <state name='a'>"
+ + " <timer name='reminder' "
+ + " duedate='0 seconds'"
+ + " repeat='1 minute' >"
+ + " <action class='"
+ + NoOp.class.getName()
+ + "'/>"
+ + " </timer>"
+ + " <transition to='b'/>"
+ + " <transition name='back' to='a'/>"
+ + " </state>"
+ + " <state name='b'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
- Timer timer = (Timer) jobSession.getFirstAcquirableJob(null);
- assertNotNull(timer);
- Date dueDate = timer.getDueDate();
- assertNotNull(dueDate);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- timer.execute(jbpmContext);
+ newTransaction();
+ Timer timer = (Timer) jobSession.getFirstAcquirableJob(null);
+ assertNotNull(timer);
+ Date dueDate = timer.getDueDate();
+ assertNotNull(dueDate);
- newTransaction();
- timer = jobSession.loadTimer(timer.getId());
- assertEquals(dueDate.getTime() + 60 * 1000, timer.getDueDate().getTime());
+ timer.execute(jbpmContext);
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- processInstance.signal("back");
- jbpmContext.save(processInstance);
+ newTransaction();
+ timer = jobSession.loadTimer(timer.getId());
+ assertEquals(dueDate.getTime() + 60 * 1000, timer.getDueDate().getTime());
- newTransaction();
- timer = (Timer) jobSession.getFirstAcquirableJob(null);
- assertNotNull(timer);
- dueDate = timer.getDueDate();
- assertNotNull(dueDate);
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ processInstance.signal("back");
+ jbpmContext.save(processInstance);
- newTransaction();
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- processInstance.signal();
- jbpmContext.save(processInstance);
+ newTransaction();
+ timer = (Timer) jobSession.getFirstAcquirableJob(null);
+ assertNotNull(timer);
+ dueDate = timer.getDueDate();
+ assertNotNull(dueDate);
- newTransaction();
- assertEquals(0, getTimerCount());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ processInstance.signal();
+ jbpmContext.save(processInstance);
+ newTransaction();
+ assertEquals(0, getTimerCount());
}
public void testTimerUpdatingProcessVariables() throws Exception {
// variable a will be a task instance local variable
// variable b will be a process instance variable
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='wait for var updates'>"
- + " <controller>"
- + " <variable name ='a' />"
- + " </controller>"
- + " <timer name='update variables' "
- + " duedate='0 seconds'"
- + " repeat='5 seconds' >"
- + " <action class='org.jbpm.scheduler.exe.TimerDbTest$UpdateVariables' />"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("a", "value a");
- contextInstance.setVariable("b", "value b");
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='wait for var updates'>"
+ + " <controller>"
+ + " <variable name ='a' />"
+ + " </controller>"
+ + " <timer name='update variables' "
+ + " duedate='0 seconds'"
+ + " repeat='5 seconds' >"
+ + " <action class='"
+ + UpdateVariables.class.getName()
+ + "'/>"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- newTransaction();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("a", "value a");
+ contextInstance.setVariable("b", "value b");
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- Timer timer = (Timer) jobSession.getFirstAcquirableJob(null);
- timer.execute(jbpmContext);
+ newTransaction();
+ Timer timer = (Timer) jobSession.getFirstAcquirableJob(null);
+ timer.execute(jbpmContext);
- newTransaction();
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ contextInstance = processInstance.getContextInstance();
+ assertEquals("value a", contextInstance.getVariable("a"));
+ assertEquals("value b updated", contextInstance.getVariable("b"));
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- contextInstance = processInstance.getContextInstance();
- assertEquals("value a", contextInstance.getVariable("a"));
- assertEquals("value b updated", contextInstance.getVariable("b"));
-
- TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
- .getTaskInstances()
- .iterator()
- .next();
- assertEquals("value a updated", taskInstance.getVariable("a"));
- assertEquals("value b updated", taskInstance.getVariable("b"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskInstance taskInstance = (TaskInstance) processInstance.getTaskMgmtInstance()
+ .getTaskInstances()
+ .iterator()
+ .next();
+ assertEquals("value a updated", taskInstance.getVariable("a"));
+ assertEquals("value b updated", taskInstance.getVariable("b"));
}
public static class ConcurrentUpdateAction implements ActionHandler {
-
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
@@ -417,16 +381,13 @@
}
public static class NoOp implements ActionHandler {
-
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
- isNoOpExecuted = true;
}
}
public static class UpdateVariables implements ActionHandler {
-
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext executionContext) throws Exception {
@@ -434,5 +395,4 @@
executionContext.setVariable("b", "value b updated");
}
}
-
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -7,32 +7,29 @@
public class UnsafeSessionUsageTest extends AbstractDbTestCase {
public void testTimerRepeat() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='a' />" +
- " </start-state>" +
- " <state name='a'>" +
- " <timer name='reminder' duedate='0 seconds' >" +
- " <action class='org.jbpm.scheduler.exe.TimerDbTest$NoOp' />" +
- " </timer>" +
- " <transition to='b'/>" +
- " <transition name='back' to='a'/>" +
- " </state>" +
- " <state name='b'/>" +
- "</process-definition>"
- );
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <state name='a'>"
+ + " <timer name='reminder' duedate='0 seconds' >"
+ + " <action class='org.jbpm.scheduler.exe.TimerDbTest$NoOp' />"
+ + " </timer>"
+ + " <transition to='b'/>"
+ + " <transition name='back' to='a'/>"
+ + " </state>"
+ + " <state name='b'/>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- processJobs(60 * 1000);
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processJobs(60 * 1000);
+ processInstance = graphSession.loadProcessInstance(processInstance.getId());
+ assertEquals("a", processInstance.getRootToken().getNode().getName());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/SwimlaneDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/SwimlaneDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/SwimlaneDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -37,19 +37,14 @@
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
taskMgmtDefinition = new TaskMgmtDefinition();
+ processDefinition = new ProcessDefinition();
processDefinition.addDefinition(taskMgmtDefinition);
buyer = new Swimlane("buyer");
laundry = new Task("laundry");
dishes = new Task("dishes");
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testSwimlaneAddTask() {
buyer.addTask(laundry);
buyer.addTask(dishes);
@@ -92,14 +87,14 @@
public void testSwimlaneAssignment() {
processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <swimlane name='boss'>"
- + " <assignment class='org.jbpm.TheOneAndOnly' />"
- + " </swimlane>"
- + "</process-definition>");
+ + " <swimlane name='boss'>"
+ + " <assignment class='org.jbpm.TheOneAndOnly' />"
+ + " </swimlane>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
-
taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
+
Swimlane boss = taskMgmtDefinition.getSwimlane("boss");
assertNotNull(boss);
Delegation bossAssignmentDelegation = boss.getAssignmentDelegation();
@@ -111,14 +106,14 @@
public void testSwimlaneTaskMgmtTest() {
processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <swimlane name='boss'>"
- + " <assignment class='org.jbpm.TheOneAndOnly' />"
- + " </swimlane>"
- + "</process-definition>");
+ + " <swimlane name='boss'>"
+ + " <assignment class='org.jbpm.TheOneAndOnly' />"
+ + " </swimlane>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
-
taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
+
Swimlane boss = taskMgmtDefinition.getSwimlane("boss");
assertNotNull(boss);
assertSame(taskMgmtDefinition, boss.getTaskMgmtDefinition());
@@ -126,16 +121,15 @@
public void testTaskToSwimlane() {
processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <swimlane name='boss'>"
- + " <assignment class='org.jbpm.TheOneAndOnly' />"
- + " </swimlane>"
- + " <task-node name='work'>"
- + " <task name='manage' swimlane='boss' />"
- + " </task-node>"
- + "</process-definition>");
+ + " <swimlane name='boss'>"
+ + " <assignment class='org.jbpm.TheOneAndOnly' />"
+ + " </swimlane>"
+ + " <task-node name='work'>"
+ + " <task name='manage' swimlane='boss' />"
+ + " </task-node>"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
-
taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
TaskNode work = (TaskNode) processDefinition.getNode("work");
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskControllerDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskControllerDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskControllerDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -33,97 +33,71 @@
public class TaskControllerDbTest extends AbstractDbTestCase {
public void testTaskControllerWithVariableAccesses() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='t'>" +
- " <task name='clean ceiling'>" +
- " <controller>" +
- " <variable name='a' access='read,write' mapped-name='x' />" +
- " <variable name='b' access='read,write' mapped-name='y' />" +
- " <variable name='c' access='read,write' />" +
- " </controller>" +
- " </task>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='t'>"
+ + " <task name='clean ceiling'>"
+ + " <controller>"
+ + " <variable name='a' access='read,write' mapped-name='x' />"
+ + " <variable name='b' access='read,write' mapped-name='y' />"
+ + " <variable name='c' access='read,write' />"
+ + " </controller>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
- Task task = taskNode.getTask("clean ceiling");
- TaskController taskController = task.getTaskController();
- assertNotNull(taskController);
- assertNull(taskController.getTaskControllerDelegation());
- List variableAccesses = taskController.getVariableAccesses();
- assertNotNull(variableAccesses);
- assertEquals(3, variableAccesses.size());
- VariableAccess variableAccess = (VariableAccess) variableAccesses.get(0);
- assertNotNull(variableAccesses);
- assertEquals("a", variableAccess.getVariableName());
- assertEquals(new Access("read,write"), variableAccess.getAccess());
- assertEquals("x", variableAccess.getMappedName());
- variableAccess = (VariableAccess) variableAccesses.get(2);
- assertNotNull(variableAccesses);
- assertEquals("c", variableAccess.getMappedName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
+ Task task = taskNode.getTask("clean ceiling");
+ TaskController taskController = task.getTaskController();
+ assertNotNull(taskController);
+ assertNull(taskController.getTaskControllerDelegation());
+
+ List variableAccesses = taskController.getVariableAccesses();
+ assertEquals(3, variableAccesses.size());
+
+ VariableAccess variableAccess = (VariableAccess) variableAccesses.get(0);
+ assertEquals("a", variableAccess.getVariableName());
+ assertEquals(new Access("read,write"), variableAccess.getAccess());
+ assertEquals("x", variableAccess.getMappedName());
+
+ variableAccess = (VariableAccess) variableAccesses.get(2);
+ assertEquals("c", variableAccess.getMappedName());
}
-
+
public void testTaskControllerWithDelegation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='t'>" +
- " <task name='clean ceiling'>" +
- " <controller class='my-own-task-controller-handler-class'>" +
- " --here comes the configuration of the task controller handler--" +
- " </controller>" +
- " </task>" +
- " </task-node>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='t'>"
+ + " <task name='clean ceiling'>"
+ + " <controller class='my-own-task-controller-handler-class'>"
+ + " --here comes the configuration of the task controller handler--"
+ + " </controller>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
- Task task = taskNode.getTask("clean ceiling");
- TaskController taskController = task.getTaskController();
- assertTrue( (taskController.getVariableAccesses()==null)
- || (taskController.getVariableAccesses().isEmpty()) );
- Delegation taskControllerDelegation = taskController.getTaskControllerDelegation();
- assertNotNull(taskControllerDelegation);
- assertEquals("my-own-task-controller-handler-class", taskControllerDelegation.getClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("t");
+ Task task = taskNode.getTask("clean ceiling");
+ TaskController taskController = task.getTaskController();
+ assertTrue((taskController.getVariableAccesses() == null)
+ || (taskController.getVariableAccesses().isEmpty()));
+
+ Delegation taskControllerDelegation = taskController.getTaskControllerDelegation();
+ assertNotNull(taskControllerDelegation);
+ assertEquals("my-own-task-controller-handler-class", taskControllerDelegation.getClassName());
}
-
+
public void testStartTaskController() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state name='t'>" +
- " <task name='task to start this process'>" +
- " <controller />" +
- " </task>" +
- " </start-state>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='t'>"
+ + " <task name='task to start this process'>"
+ + " <controller />"
+ + " </task>"
+ + " </start-state>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Task task = processDefinition.getTaskMgmtDefinition().getStartTask();
- assertNotNull(task.getTaskController());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Task task = processDefinition.getTaskMgmtDefinition().getStartTask();
+ assertNotNull(task.getTaskController());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/def/TaskDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -30,209 +30,118 @@
public class TaskDbTest extends AbstractDbTestCase {
public void testTaskName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task name='wash car' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task name='wash car' />"
+ + "</process-definition>");
processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
- Task task = taskMgmtDefinition.getTask("wash car");
- assertNotNull(task);
- assertEquals("wash car", task.getName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
+ Task task = taskMgmtDefinition.getTask("wash car");
+ assertEquals("wash car", task.getName());
}
-
+
public void testTaskDescription() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task name='wash car' description='wash the car till the paint is all gone' />" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task name='wash car' description='wash the car till the paint is all gone' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
- assertEquals("wash the car till the paint is all gone", task.getDescription());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
+ assertEquals("wash the car till the paint is all gone", task.getDescription());
}
public void testTaskBlocking() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task name='wash car' blocking='true' />" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task name='wash car' blocking='true' />"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
- assertTrue(task.isBlocking());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
+ assertTrue(task.isBlocking());
}
public void testTaskNode() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='saturday afternoon'>" +
- " <task name='wash car' />" +
- " </task-node>" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
- Task task = taskNode.getTask("wash car");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='saturday afternoon'>"
+ + " <task name='wash car' />"
+ + " </task-node>"
+ + "</process-definition>");
- assertNotNull(task.getTaskNode());
- assertSame(taskNode, task.getTaskNode());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = saveAndReload(processDefinition);
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
+ Task task = taskNode.getTask("wash car");
+ assertSame(taskNode, task.getTaskNode());
}
public void testTaskMgmtDefinition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='saturday afternoon'>" +
- " <task name='wash car' />" +
- " </task-node>" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
- Task task = taskNode.getTask("wash car");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='saturday afternoon'>"
+ + " <task name='wash car' />"
+ + " </task-node>"
+ + "</process-definition>");
- assertNotNull(task.getTaskMgmtDefinition());
- assertSame(processDefinition.getTaskMgmtDefinition(), task.getTaskMgmtDefinition());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = saveAndReload(processDefinition);
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
+ Task task = taskNode.getTask("wash car");
+ assertSame(processDefinition.getTaskMgmtDefinition(), task.getTaskMgmtDefinition());
}
public void testTaskSwimlane() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <swimlane name='butler' />" +
- " <task-node name='saturday afternoon'>" +
- " <task name='wash car' swimlane='butler' />" +
- " </task-node>" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
- Swimlane butler = taskMgmtDefinition.getSwimlane("butler");
- TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
- Task task = taskNode.getTask("wash car");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <swimlane name='butler' />"
+ + " <task-node name='saturday afternoon'>"
+ + " <task name='wash car' swimlane='butler' />"
+ + " </task-node>"
+ + "</process-definition>");
- assertNotNull(task.getSwimlane());
- assertSame(butler, task.getSwimlane());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = saveAndReload(processDefinition);
+ TaskMgmtDefinition taskMgmtDefinition = processDefinition.getTaskMgmtDefinition();
+ Swimlane butler = taskMgmtDefinition.getSwimlane("butler");
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
+ Task task = taskNode.getTask("wash car");
+ assertSame(butler, task.getSwimlane());
}
public void testTaskAssignmentDelegation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task-node name='saturday afternoon'>" +
- " <task name='wash car'>" +
- " <assignment class='the-wash-car-assignment-handler-class-name' />" +
- " </task>" +
- " </task-node>" +
- "</process-definition>"
- );
-
- processDefinition = saveAndReload(processDefinition);
- try
- {
- TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
- Task task = taskNode.getTask("wash car");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task-node name='saturday afternoon'>"
+ + " <task name='wash car'>"
+ + " <assignment class='the-wash-car-assignment-handler-class-name' />"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
- assertNotNull(task.getAssignmentDelegation());
- assertEquals("the-wash-car-assignment-handler-class-name", task.getAssignmentDelegation().getClassName());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = saveAndReload(processDefinition);
+ TaskNode taskNode = (TaskNode) processDefinition.getNode("saturday afternoon");
+ Task task = taskNode.getTask("wash car");
+ assertEquals("the-wash-car-assignment-handler-class-name", task.getAssignmentDelegation()
+ .getClassName());
}
public void testTaskEvent() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task name='wash car'>" +
- " <event type='task-create' />" +
- " </task>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task name='wash car'>"
+ + " <event type='task-create' />"
+ + " </task>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
- Event event = task.getEvent("task-create");
- assertNotNull(event);
- assertSame(task, event.getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
+ Event event = task.getEvent("task-create");
+ assertSame(task, event.getGraphElement());
}
public void testTaskExceptionHandler() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <task name='wash car'>" +
- " <exception-handler exception-class='TooIntelligentException' />" +
- " </task>" +
- "</process-definition>"
- );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <task name='wash car'>"
+ + " <exception-handler exception-class='TooIntelligentException' />"
+ + " </task>"
+ + "</process-definition>");
+
processDefinition = saveAndReload(processDefinition);
- try
- {
- Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
- ExceptionHandler exceptionHandler = (ExceptionHandler) task.getExceptionHandlers().get(0);
- assertNotNull(exceptionHandler);
- assertEquals("TooIntelligentException",exceptionHandler.getExceptionClassName());
- assertSame(task, exceptionHandler.getGraphElement());
- }
- finally
- {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Task task = processDefinition.getTaskMgmtDefinition().getTask("wash car");
+ ExceptionHandler exceptionHandler = (ExceptionHandler) task.getExceptionHandlers().get(0);
+ assertEquals("TooIntelligentException", exceptionHandler.getExceptionClassName());
+ assertSame(task, exceptionHandler.getGraphElement());
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskInstanceDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskInstanceDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskInstanceDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -50,220 +50,203 @@
}
public void testTaskInstanceBasicLifeCycle() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling' />"
- + " <transition to='end' />"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling' />"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
+ Token rootToken = processInstance.getRootToken();
+ List taskInstances = taskMgmtSession.findTaskInstancesByToken(rootToken.getId());
+ assertEquals(1, taskInstances.size());
- long tokenId = processInstance.getRootToken().getId();
- List taskInstances = taskMgmtSession.findTaskInstancesByToken(tokenId);
- assertEquals(1, taskInstances.size());
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ assertFalse(taskInstance.hasEnded());
+ assertEquals(rootToken, taskInstance.getToken());
+ // do some update
+ taskInstance.end();
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- assertFalse(taskInstance.hasEnded());
- assertEquals(tokenId, taskInstance.getToken().getId());
- // do some updates
- taskInstance.end();
-
- processInstance = saveAndReload(processInstance);
- taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
- assertTrue(taskInstance.hasEnded());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
-
+ processInstance = saveAndReload(processInstance);
+ taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
+ assertTrue("expected " + taskInstance + " to have ended", taskInstance.hasEnded());
}
public void testTaskName() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling' />"
- + " <transition to='end' />"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling' />"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
- .getId());
- assertEquals(1, taskInstances.size());
+ processInstance = saveAndReload(processInstance);
+ List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
+ .getId());
+ assertEquals(1, taskInstances.size());
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- assertFalse(taskInstance.hasEnded());
- assertEquals("clean ceiling", taskInstance.getName());
- assertEquals("clean ceiling", taskInstance.getTask().getName());
- // do some updates
- taskInstance.setName("clean ceiling thoroughly");
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ assertFalse(taskInstance.hasEnded());
+ assertEquals("clean ceiling", taskInstance.getName());
+ assertEquals("clean ceiling", taskInstance.getTask().getName());
+ // do some update
+ taskInstance.setName("clean ceiling thoroughly");
- processInstance = saveAndReload(processInstance);
- taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
- assertEquals("clean ceiling thoroughly", taskInstance.getName());
- assertEquals("clean ceiling", taskInstance.getTask().getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
+ assertEquals("clean ceiling thoroughly", taskInstance.getName());
+ assertEquals("clean ceiling", taskInstance.getTask().getName());
}
public void testTaskComments() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling' />"
- + " <transition to='end' />"
- + " </task-node>"
- + " <end-state name='end' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling' />"
+ + " <transition to='end' />"
+ + " </task-node>"
+ + " <end-state name='end' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
- List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
- .getId());
- assertEquals(1, taskInstances.size());
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- taskInstance.addComment("please hurry!");
+ processInstance = saveAndReload(processInstance);
+ List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
+ .getId());
+ assertEquals(1, taskInstances.size());
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ taskInstance.addComment("please hurry!");
- processInstance = saveAndReload(processInstance);
- taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
+ processInstance = saveAndReload(processInstance);
+ taskInstance = taskMgmtSession.loadTaskInstance(taskInstance.getId());
- List comments = taskInstance.getComments();
- assertEquals(1, comments.size());
+ List comments = taskInstance.getComments();
+ assertEquals(1, comments.size());
- Comment comment = (Comment) comments.get(0);
- assertEquals("please hurry!", comment.getMessage());
- assertSame(taskInstance, comment.getTaskInstance());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ Comment comment = (Comment) comments.get(0);
+ assertEquals("please hurry!", comment.getMessage());
+ assertSame(taskInstance, comment.getTaskInstance());
}
public void testBlockingTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='laundry' blocking='true' />"
- + " <transition to='b' />"
- + " </task-node>"
- + " <state name='b' />"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- Token token = processInstance.getRootToken();
- token.signal();
- assertEquals("a", token.getNode().getName());
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='laundry' blocking='true' />"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <state name='b' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- try {
- processInstance.signal();
- fail("expected exception");
- }
- catch (IllegalStateException e) {
- // OK
- }
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Token token = processInstance.getRootToken();
+ token.signal();
+ assertEquals("a", token.getNode().getName());
+
+ processInstance = saveAndReload(processInstance);
+ try {
+ processInstance.signal();
+ fail("expected exception");
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+ catch (IllegalStateException e) {
+ // OK
}
}
public void testConditionalTasksOne() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='release' />"
- + " </start-state>"
- + " <task-node name='release'>"
- + " <task name='updateWebsite' condition='#{user.admin}' />"
- + " <task name='addNewsItem' />"
- + " <task name='publishRelease' condition='#{user.releaseManager}' />"
- + " </task-node>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.getContextInstance().setVariable("user", new User(true, false));
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='release' />"
+ + " </start-state>"
+ + " <task-node name='release'>"
+ + " <task name='updateWebsite' condition='#{user.admin}' />"
+ + " <task name='addNewsItem' />"
+ + " <task name='publishRelease' condition='#{user.releaseManager}' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("user", new User(true, false));
+ processInstance.signal();
- Set taskNames = new HashSet();
- for (Iterator i = taskInstances.iterator(); i.hasNext();) {
- TaskInstance taskInstance = (TaskInstance) i.next();
- taskNames.add(taskInstance.getName());
- }
- assertEquals(2, taskNames.size());
- assert taskNames.contains("updateWebsite") : taskNames;
- assert taskNames.contains("addNewsItem") : taskNames;
+ processInstance = saveAndReload(processInstance);
+ Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances();
+
+ Set taskNames = new HashSet();
+ for (Iterator i = taskInstances.iterator(); i.hasNext();) {
+ TaskInstance taskInstance = (TaskInstance) i.next();
+ taskNames.add(taskInstance.getName());
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertEquals(2, taskNames.size());
+ assert taskNames.contains("updateWebsite") : taskNames;
+ assert taskNames.contains("addNewsItem") : taskNames;
}
public void testConditionalTasksTwo() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='release' />"
- + " </start-state>"
- + " <task-node name='release'>"
- + " <task name='updateWebsite' condition='#{user.admin}' />"
- + " <task name='addNewsItem' />"
- + " <task name='publishRelease' condition='#{user.releaseManager}' />"
- + " </task-node>"
- + "</process-definition>");
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.getContextInstance().setVariable("user", new User(false, true));
- processInstance.signal();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='release' />"
+ + " </start-state>"
+ + " <task-node name='release'>"
+ + " <task name='updateWebsite' condition='#{user.admin}' />"
+ + " <task name='addNewsItem' />"
+ + " <task name='publishRelease' condition='#{user.releaseManager}' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processInstance = saveAndReload(processInstance);
- Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances();
- Set taskNames = new HashSet();
- for (Iterator i = taskInstances.iterator(); i.hasNext();) {
- TaskInstance taskInstance = (TaskInstance) i.next();
- taskNames.add(taskInstance.getName());
- }
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("user", new User(false, true));
+ processInstance.signal();
- assertEquals(2, taskNames.size());
- assert taskNames.contains("addNewsItem") : taskNames;
- assert taskNames.contains("publishRelease") : taskNames;
+ processInstance = saveAndReload(processInstance);
+ Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances();
+ Set taskNames = new HashSet();
+ for (Iterator i = taskInstances.iterator(); i.hasNext();) {
+ TaskInstance taskInstance = (TaskInstance) i.next();
+ taskNames.add(taskInstance.getName());
}
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+
+ assertEquals(2, taskNames.size());
+ assert taskNames.contains("addNewsItem") : taskNames;
+ assert taskNames.contains("publishRelease") : taskNames;
}
public static class User implements Serializable {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskMgmtInstanceDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskMgmtInstanceDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskMgmtInstanceDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -32,10 +32,6 @@
public class TaskMgmtInstanceDbTest extends AbstractDbTestCase {
- ProcessDefinition processDefinition;
- TaskMgmtDefinition taskMgmtDefinition;
- Swimlane buyer;
- Swimlane seller;
Task laundry;
Task dishes;
@@ -45,19 +41,19 @@
protected void setUp() throws Exception {
super.setUp();
- processDefinition = new ProcessDefinition();
- taskMgmtDefinition = new TaskMgmtDefinition();
+ ProcessDefinition processDefinition = new ProcessDefinition(getName());
+ TaskMgmtDefinition taskMgmtDefinition = new TaskMgmtDefinition();
processDefinition.addDefinition(taskMgmtDefinition);
- buyer = new Swimlane("buyer");
+ Swimlane buyer = new Swimlane("buyer");
taskMgmtDefinition.addSwimlane(buyer);
- seller = new Swimlane("seller");
+ Swimlane seller = new Swimlane("seller");
taskMgmtDefinition.addSwimlane(seller);
laundry = new Task("laundry");
taskMgmtDefinition.addTask(laundry);
dishes = new Task("dishes");
taskMgmtDefinition.addTask(dishes);
- graphSession.saveProcessDefinition(processDefinition);
+ deployProcessDefinition(processDefinition);
processInstance = new ProcessInstance(processDefinition);
processInstance = saveAndReload(processInstance);
@@ -71,11 +67,6 @@
taskMgmtInstance = processInstance.getTaskMgmtInstance();
}
- protected void tearDown() throws Exception {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- super.tearDown();
- }
-
public void testTaskMgmtInstanceTaskInstances() {
taskMgmtInstance.createTaskInstance(laundry, processInstance.getRootToken());
taskMgmtInstance.createTaskInstance(dishes, processInstance.getRootToken());
@@ -86,7 +77,7 @@
}
public void testTaskMgmtInstanceSwimlaneInstances() {
- SwimlaneInstance swimlaneInstance = taskMgmtInstance.createSwimlaneInstance(buyer);
+ SwimlaneInstance swimlaneInstance = taskMgmtInstance.createSwimlaneInstance("buyer");
swimlaneInstance.setActorId("john doe");
swimlaneInstance = taskMgmtInstance.createSwimlaneInstance("seller");
@@ -99,10 +90,10 @@
}
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" });
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java 2010-03-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -45,222 +45,204 @@
}
public void testTimerCreation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling'>"
- + " <timer name='ceiling-timer' duedate='0 seconds'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling'>"
+ + " <timer name='ceiling-timer' duedate='0 seconds'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
-
- Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- assertEquals("ceiling-timer", timer.getName());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ assertEquals("ceiling-timer", timer.getName());
}
public void testTimerDeletion() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling'>"
- + " <timer name='ceiling-timer' duedate='0 seconds'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " </task>"
- + " <transition to='b' />"
- + " </task-node>"
- + " <state name='b' />"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling'>"
+ + " <timer name='ceiling-timer' duedate='0 seconds'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " </task>"
+ + " <transition to='b' />"
+ + " </task-node>"
+ + " <state name='b' />"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- newTransaction();
+ newTransaction();
+ List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
+ .getId());
+ assertEquals(1, taskInstances.size());
- List taskInstances = taskMgmtSession.findTaskInstancesByToken(processInstance.getRootToken()
- .getId());
- assertEquals(1, taskInstances.size());
+ TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
+ taskInstance.end();
+ jbpmContext.save(taskInstance);
- TaskInstance taskInstance = (TaskInstance) taskInstances.get(0);
- taskInstance.end();
- jbpmContext.save(taskInstance);
-
- newTransaction();
-
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertNull("expected variable 'count' to be null", processInstance.getContextInstance()
- .getVariable("count"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ newTransaction();
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertNull("expected variable 'count' to be null", processInstance.getContextInstance()
+ .getVariable("count"));
}
public void testTimerExecution() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling'>"
- + " <timer name='ceiling-timer' duedate='0 seconds'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling'>"
+ + " <timer name='ceiling-timer' duedate='0 seconds'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- processJobs(60 * 1000);
-
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertEquals(new Integer(1), processInstance.getContextInstance()
- .getVariable("count"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processJobs(60 * 1000);
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertEquals(new Integer(1), processInstance.getContextInstance().getVariable("count"));
}
public void testTaskNodeTimerExecution() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <timer name='ceiling-timer' duedate='0 seconds'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " <task name='clean ceiling' />"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <timer name='ceiling-timer' duedate='0 seconds'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " <task name='clean ceiling' />"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- processJobs(60 * 1000);
-
- processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
- assertEquals(new Integer(1), processInstance.getContextInstance()
- .getVariable("count"));
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ processJobs(60 * 1000);
+ processInstance = jbpmContext.loadProcessInstance(processInstance.getId());
+ assertEquals(new Integer(1), processInstance.getContextInstance().getVariable("count"));
}
public void testTimerExecutionRepeat() throws Exception {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling'>"
- + " <timer name='ceiling-timer' duedate='0 seconds' repeat='60 second'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling'>"
+ + " <timer name='ceiling-timer' duedate='0 seconds' repeat='60 second'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- jbpmContext.save(processInstance);
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ jbpmContext.save(processInstance);
- newTransaction();
+ newTransaction();
+ // fetch the original duedate
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ long originalDueDate = timer.getDueDate().getTime();
- // fetch the original duedate
- Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- assertNotNull(timer);
- long originalDueDate = timer.getDueDate().getTime();
+ timer.execute(jbpmContext);
+ processInstance = timer.getProcessInstance();
+ assertEquals(new Integer(1), processInstance.getContextInstance().getVariable("count"));
- timer.execute(jbpmContext);
-
- processInstance = timer.getProcessInstance();
- assertEquals(new Integer(1), processInstance.getContextInstance().getVariable("count"));
-
- // check if the timer has be re-scheduled because of the repeat.
- timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- assertNotNull(timer);
- // check that the timer was rescheduled with a duedate 60 seconds after the original duedate.
- assertEquals(originalDueDate + 60000, timer.getDueDate().getTime());
- }
- finally {
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ // check whether timer has been re-scheduled due to repeat
+ timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ assertNotNull(timer);
+ // verify timer was rescheduled 60 seconds after original duedate
+ assertEquals(originalDueDate + 60000, timer.getDueDate().getTime());
}
public void testTimerELCreation() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
- + " <start-state>"
- + " <transition to='a' />"
- + " </start-state>"
- + " <task-node name='a'>"
- + " <task name='clean ceiling'>"
- + " <timer name='ceiling-timer' duedate='#{baseDate} + 2 days'>"
- + " <action class='" + PlusPlus.class.getName() + "' />"
- + " </timer>"
- + " </task>"
- + " </task-node>"
- + "</process-definition>");
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='"
+ + getName()
+ + "'>"
+ + " <start-state>"
+ + " <transition to='a' />"
+ + " </start-state>"
+ + " <task-node name='a'>"
+ + " <task name='clean ceiling'>"
+ + " <timer name='ceiling-timer' duedate='#{baseDate} + 2 days'>"
+ + " <action class='"
+ + PlusPlus.class.getName()
+ + "' />"
+ + " </timer>"
+ + " </task>"
+ + " </task-node>"
+ + "</process-definition>");
+ deployProcessDefinition(processDefinition);
- processDefinition = saveAndReload(processDefinition);
- try {
- Calendar baseDate = Calendar.getInstance();
- Date dateTestDate = new Date();
- baseDate.setTime(dateTestDate);
- baseDate.clear(Calendar.MILLISECOND);
+ Calendar baseDate = Calendar.getInstance();
+ Date dateTestDate = new Date();
+ baseDate.setTime(dateTestDate);
+ baseDate.clear(Calendar.MILLISECOND);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.getContextInstance().setVariable("baseDate", baseDate.getTime());
- processInstance.signal();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("baseDate", baseDate.getTime());
+ processInstance.signal();
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
+ Calendar baseDateTest = Calendar.getInstance();
+ baseDateTest.setTime(dateTestDate);
+ baseDateTest.clear(Calendar.MILLISECOND);
+ baseDateTest.add(Calendar.DAY_OF_YEAR, 2);
- Calendar baseDateTest = Calendar.getInstance();
- baseDateTest.setTime(dateTestDate);
- baseDateTest.clear(Calendar.MILLISECOND);
- baseDateTest.add(Calendar.DAY_OF_YEAR, 2);
+ Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
+ assertEquals("ceiling-timer", timer.getName());
- Timer timer = (Timer) session.createCriteria(Timer.class).uniqueResult();
- assertEquals("ceiling-timer", timer.getName());
-
- assertNotNull(timer.getDueDate());
- assertEquals(baseDateTest.getTime(), timer.getDueDate());
- }
- finally {
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- }
+ assertNotNull(timer.getDueDate());
+ assertEquals(baseDateTest.getTime(), timer.getDueDate());
}
}
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-30 07:26:14 UTC (rev 6238)
+++ jbpm3/branches/jbpm-3.2-soa/modules/identity/src/test/java/org/jbpm/identity/assignment/ExpressionAssignmentHandlerTest.java 2010-03-31 08:20:39 UTC (rev 6239)
@@ -80,8 +80,6 @@
identitySession.saveEntity(john);
identitySession.saveEntity(bill);
identitySession.saveEntity(hellsangels);
- identitySession.saveEntity(membershipJohn);
- identitySession.saveEntity(membershipBill);
}
private void setUpProcessInstance() {
14 years, 1 month
JBoss JBPM SVN: r6238 - in jbpm3/branches/jbpm-3.2-soa/modules: core/src/test/resources and 14 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-30 03:26:14 -0400 (Tue, 30 Mar 2010)
New Revision: 6238
Added:
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/log4j.xml
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/pom.xml
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/resources/log4j.xml
jbpm3/branches/jbpm-3.2-soa/modules/distribution/scripts/antrun-installer.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/log4j.xml
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/assignment/ExpressionAssignmentHandler.java
jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySessionFactory.java
Log:
SOA-1072: distribute pom files to package and test examples
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-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/perf/SimplePerformanceTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -79,6 +79,7 @@
for (int i = 0; i < count; i++) {
ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("jbpm2043");
processInstance.signal();
+ newTransaction();
}
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/log4j.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/log4j.xml 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/log4j.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -32,19 +32,32 @@
<!-- Limit categories -->
<!-- ================ -->
+ <category name="org.jbpm">
+ <priority value="DEBUG" />
+ </category>
+
<category name="org.hibernate">
<priority value="INFO" />
</category>
+ <!-- proxy narrowing warnings -->
<category name="org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog">
<priority value="ERROR" />
</category>
- <!--
+ <!-- optimistic locking failures
+ <category name="org.hibernate.event.def.AbstractFlushingEventListener">
+ <priority value="FATAL" />
+ </category>
+ -->
+
+ <!-- SQL DML statements
<category name="org.hibernate.SQL">
<priority value="DEBUG" />
</category>
+ -->
+ <!-- JDBC parameters
<category name="org.hibernate.type">
<priority value="TRACE" />
</category>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/distribution/scripts/antrun-installer.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/scripts/antrun-installer.xml 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/scripts/antrun-installer.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -37,26 +37,33 @@
<!-- Configuration -->
<!-- ================================================================== -->
<target name="reorganize-example">
- <basename file="${basedir}" property="example.dir" />
- <echo message="${example.dir}" />
- <!-- copy jpdl resources -->
- <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/main/jpdl" />
- <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/main/jpdl">
- <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test/resources/${example.dir}" />
+ <basename file="${basedir}" property="example.name" />
+ <echo message="${example.name}" />
+ <!-- jpdl resources -->
+ <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}/src/main/jpdl" />
+ <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}/src/main/jpdl">
+ <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test/resources/${example.name}" />
</copy>
- <!-- copy main java files -->
- <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/main/java" />
- <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/main/java">
- <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test/java"
- includes="org/jbpm/examples/${example.dir}/**"
- excludes="org/jbpm/examples/${example.dir}/*Test.java" />
+ <!-- main sources -->
+ <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}/src/main/java" />
+ <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}/src/main">
+ <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test"
+ includes="java/org/jbpm/examples/${example.name}/**"
+ excludes="**/*Test.java" />
</copy>
- <!-- copy test java files -->
- <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/test/java" />
- <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.dir}/src/test/java">
- <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test/java"
- includes="org/jbpm/examples/${example.dir}/*Test.java" />
+ <!-- test sources -->
+ <mkdir dir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}/src/test/java" />
+ <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}">
+ <fileset dir="${project.build.assembly.resources}/jbpm-examples-dev"
+ includes="src/test/java/org/jbpm/examples/${example.name}/*Test.java" />
</copy>
+ <!-- project model -->
+ <copy todir="${project.build.assembly.resources}/jbpm-examples-dist/${example.name}"
+ file="${resources.dir}/examples/module/pom.xml">
+ <filterset>
+ <filter token="example.name" value="${example.name}" />
+ </filterset>
+ </copy>
</target>
<target name="configure">
@@ -107,6 +114,9 @@
<dirset dir="${project.build.assembly.resources}/jbpm-examples-dev/src/test/resources"
includes="*" />
</subant>
+ <copy todir="${project.build.assembly.resources}/jbpm-examples-dist">
+ <fileset dir="${resources.dir}/examples" excludes="module/**" />
+ </copy>
</target>
<!-- ================================================================== -->
Added: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/log4j.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/log4j.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/log4j.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <appender name="FILE" class="org.apache.log4j.FileAppender">
+ <param name="File" value="${log4j.output.dir}/test.log" />
+ <param name="Append" value="false" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n" />
+ </layout>
+ </appender>
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <param name="Threshold" value="INFO" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jbpm">
+ <priority value="DEBUG" />
+ </category>
+
+ <category name="org.hibernate">
+ <priority value="INFO" />
+ </category>
+
+ <!-- proxy narrowing warnings -->
+ <category name="org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog">
+ <priority value="ERROR" />
+ </category>
+
+ <!-- optimistic locking failures
+ <category name="org.hibernate.event.def.AbstractFlushingEventListener">
+ <priority value="FATAL" />
+ </category>
+ -->
+
+ <!-- SQL DML statements
+ <category name="org.hibernate.SQL">
+ <priority value="DEBUG" />
+ </category>
+ -->
+
+ <!-- JDBC parameters
+ <category name="org.hibernate.type">
+ <priority value="TRACE" />
+ </category>
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <!--appender-ref ref="CONSOLE"/-->
+ <appender-ref ref="FILE" />
+ </root>
+
+</log4j:configuration>
Property changes on: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/config/log4j.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/pom.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/pom.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!-- ====================================================================== -->
+<!-- jBPM: Workflow in Java -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <name>JBoss jBPM3 - Example: @example.name@</name>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-example-(a)example.name@</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <artifactId>jbpm-examples-dist</artifactId>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <version>3.2.9</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/jpdl</directory>
+ <targetPath>${project.build.outputDirectory}/(a)example.name@</targetPath>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>../config</directory>
+ </testResource>
+ </testResources>
+ </build>
+</project>
\ No newline at end of file
Property changes on: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/module/pom.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/pom.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/pom.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- jBPM: Workflow in Java -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <name>JBoss jBPM3 - Distribution Examples</name>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-examples-dist</artifactId>
+ <packaging>pom</packaging>
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm</artifactId>
+ <version>3.2.9</version>
+ </parent>
+
+ <modules>
+ <module>assignment</module>
+ <module>businesstrip</module>
+ <module>door</module>
+ <module>mail</module>
+ <module>raise</module>
+ <module>rulesaction</module>
+ <module>simple</module>
+ <module>taskinstance</module>
+ <module>websale</module>
+ </modules>
+
+ <!-- Dependencies -->
+ <dependencies>
+ <!-- jBPM Dependencies -->
+ <dependency>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-identity</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-jpdl</artifactId>
+ <classifier>config</classifier>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- Provided Dependencies -->
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Test Dependencies -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-compiler</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>dumbster</groupId>
+ <artifactId>dumbster</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <!--
+ Repositories
+ [JBPM-2050] jBPM examples cannot be compiled
+ -->
+ <repositories>
+ <repository>
+ <id>repository.jboss.org</id>
+ <url>http://repository.jboss.org/maven2</url>
+ </repository>
+ </repositories>
+
+</project>
Property changes on: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/examples/pom.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentHandler.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -30,13 +30,15 @@
private static Log log = LogFactory.getLog(RulesAssignmentHandler.class);
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {
- // load up the rulebase
+ // load up the rule base
RuleBase ruleBase = readRule(ruleFile);
WorkingMemory workingMemory = ruleBase.newStatefulSession();
// load identity data
- IdentitySession identitySession = new IdentitySession(executionContext.getJbpmContext()
- .getSession());
+ IdentitySession identitySession = (IdentitySession) executionContext.getJbpmContext()
+ .getServices()
+ .getPersistenceService()
+ .getCustomSession(IdentitySession.class);
// users
for (Iterator iter = identitySession.getUsers().iterator(); iter.hasNext();) {
User user = (User) iter.next();
@@ -77,8 +79,9 @@
*/
private static RuleBase readRule(String ruleFileName) throws Exception {
InputStream resStream = RulesAssignmentHandler.class.getResourceAsStream(ruleFileName);
- if (resStream == null)
+ if (resStream == null) {
throw new IllegalStateException("Cannot obtain rules from: " + ruleFileName);
+ }
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(new InputStreamReader(resStream));
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -38,54 +38,47 @@
*/
public class RulesAssignmentTest extends AbstractDbTestCase {
- private long processDefinitionId;
private Entity[] entities;
protected void setUp() throws Exception {
super.setUp();
- loadIdentities();
deployProcess();
+ loadIdentities();
}
protected void tearDown() throws Exception {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionId);
deleteIdentities();
super.tearDown();
}
- protected String getJbpmTestConfig() {
- return null; // use default configuration
- }
-
void deployProcess() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("assignment/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
void loadIdentities() {
- IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
+ IdentitySession identitySession = (IdentitySession) jbpmContext.getServices()
+ .getPersistenceService()
+ .getCustomSession(IdentitySession.class);
entities = IdentityXmlParser.parseEntitiesResource("assignment/identity.db.xml");
for (int i = 0; i < entities.length; i++) {
Entity entity = entities[i];
- if (entity instanceof Membership) continue;
- identitySession.saveEntity(entity);
+ if (!(entity instanceof Membership)) identitySession.saveEntity(entity);
}
}
void deleteIdentities() {
- IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
+ IdentitySession identitySession = (IdentitySession) jbpmContext.getServices()
+ .getPersistenceService()
+ .getCustomSession(IdentitySession.class);
for (int i = 0; i < entities.length; i++) {
Entity entity = entities[i];
- if (entity instanceof Membership) continue;
- identitySession.deleteEntity(entity);
+ if (!(entity instanceof Membership)) identitySession.deleteEntity(entity);
}
}
public void testRulesAssignment() {
// start process
- newTransaction();
long processInstanceId = createNewProcessInstance();
assertFalse("ProcessInstanceId is 0", processInstanceId == 0);
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -13,26 +13,14 @@
public class BusinessTripRequestTest extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
deployProcess();
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
- protected String getJbpmTestConfig() {
- return null; // use default configuration
- }
-
void deployProcess() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("businesstrip/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
TaskInstance createNewProcessInstance() {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -13,26 +13,14 @@
public class RaiseRequestTest extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
deployProcess();
}
- protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
- protected String getJbpmTestConfig() {
- return null; // use default configuration
- }
-
void deployProcess() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("raise/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
TaskInstance createNewProcessInstance() {
@@ -61,7 +49,7 @@
newTransaction();
ProcessInstance processInstance = jbpmContext.loadProcessInstance(taskInstance.getProcessInstance()
- .getId());
+ .getId());
ContextInstance contextInstance = processInstance.getContextInstance();
assertEquals("I need to buy a jet", contextInstance.getVariable("reason"));
assertEquals("600", contextInstance.getVariable("amount"));
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -31,32 +31,18 @@
*/
public class RulesActionTest extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
deployProcess();
}
- protected void tearDown() throws Exception {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
- protected String getJbpmTestConfig() {
- return null; // use default configuration
- }
-
void deployProcess() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("rulesaction/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ deployProcessDefinition(processDefinition);
}
public void testRulesAssignment() {
// start process
- newTransaction();
long processInstanceId = createNewProcessInstance();
assertFalse("ProcessInstanceId is 0", processInstanceId == 0);
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -37,19 +37,17 @@
import org.jbpm.taskmgmt.exe.TaskInstance;
/**
- * This example shows how to extend the TaskInstance by adding a custom property.
+ * This example shows how to extend the TaskInstance by adding a custom
+ * property.
*/
public class CustomTaskInstanceTest extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
deployProcess();
}
protected void tearDown() throws Exception {
- graphSession.deleteProcessDefinition(processDefinitionId);
super.tearDown();
jbpmConfiguration.close();
}
@@ -59,8 +57,7 @@
// the jbpm.cfg.xml file is modified to add the CustomTaskInstanceFactory
// so we will read in the file from the config directory of this example
jbpmConfiguration = JbpmConfiguration.parseResource("taskinstance/jbpm.cfg.xml");
- DbPersistenceServiceFactory factory = (DbPersistenceServiceFactory) jbpmConfiguration
- .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+ DbPersistenceServiceFactory factory = (DbPersistenceServiceFactory) jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
Configuration configuration = factory.getConfiguration();
configuration.addResource("taskinstance/CustomTaskInstance.hbm.xml");
@@ -72,10 +69,8 @@
}
void deployProcess() {
- ProcessDefinition processDefinition = ProcessDefinition
- .parseXmlResource("taskinstance/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("taskinstance/processdefinition.xml");
+ deployProcessDefinition(processDefinition);
}
public void testCustomTaskInstance() {
@@ -104,8 +99,7 @@
long createNewProcessInstance() {
String processDefinitionName = "CustomTaskInstance";
- ProcessInstance processInstance = jbpmContext
- .newProcessInstanceForUpdate(processDefinitionName);
+ ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
ContextInstance contextInstance = processInstance.getContextInstance();
contextInstance.setVariable("processDefinitionName", processDefinitionName);
@@ -130,23 +124,21 @@
}
void completeTask(long taskInstanceId) {
- CustomTaskInstance taskInstance = (CustomTaskInstance) jbpmContext
- .getSession()
- .load(CustomTaskInstance.class, new Long(taskInstanceId));
+ CustomTaskInstance taskInstance = (CustomTaskInstance) jbpmContext.getSession()
+ .load(CustomTaskInstance.class, new Long(taskInstanceId));
taskInstance.end();
}
List findPooledTaskListByCustomId(String actorId, String customId) {
- return jbpmContext
- .getSession()
- .createCriteria(CustomTaskInstance.class)
- .add(Restrictions.isNull("actorId"))
- .add(Restrictions.isNull("end"))
- .add(Restrictions.eq("isCancelled", Boolean.FALSE))
- .add(Restrictions.eq("customId", customId))
- .createCriteria("pooledActors")
- .add(Restrictions.eq("actorId", actorId))
- .list();
+ return jbpmContext.getSession()
+ .createCriteria(CustomTaskInstance.class)
+ .add(Restrictions.isNull("actorId"))
+ .add(Restrictions.isNull("end"))
+ .add(Restrictions.eq("isCancelled", Boolean.FALSE))
+ .add(Restrictions.eq("customId", customId))
+ .createCriteria("pooledActors")
+ .add(Restrictions.eq("actorId", actorId))
+ .list();
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -34,27 +34,14 @@
public class WebsaleTest extends AbstractDbTestCase {
- private long processDefinitionId;
-
protected void setUp() throws Exception {
super.setUp();
deployProcess();
}
- protected void tearDown() throws Exception {
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinitionId);
- super.tearDown();
- }
-
- protected String getJbpmTestConfig() {
- return null; // use default configuration
- }
-
void deployProcess() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("websale/jpdl/processdefinition.xml");
- jbpmContext.deployProcessDefinition(processDefinition);
- processDefinitionId = processDefinition.getId();
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("websale/processdefinition.xml");
+ deployProcessDefinition(processDefinition);
}
TaskInstance createNewProcessInstance() {
@@ -83,7 +70,7 @@
newTransaction();
ProcessInstance processInstance = jbpmContext.loadProcessInstance(taskInstance.getProcessInstance()
- .getId());
+ .getId());
ContextInstance contextInstance = processInstance.getContextInstance();
assertEquals("cookies", contextInstance.getVariable("item"));
assertEquals("lots of them", contextInstance.getVariable("quantity"));
@@ -119,7 +106,8 @@
taskInstance.end();
newTransaction();
- TaskInstance evaluateTaskInstance = (TaskInstance) jbpmContext.getTaskList("manager").get(0);
+ TaskInstance evaluateTaskInstance = (TaskInstance) jbpmContext.getTaskList("manager")
+ .get(0);
evaluateTaskInstance.end("OK");
newTransaction();
@@ -145,7 +133,7 @@
newTransaction();
ProcessInstance processInstance = jbpmContext.getGraphSession()
- .loadProcessInstance(evaluateTaskInstance.getProcessInstance().getId());
+ .loadProcessInstance(evaluateTaskInstance.getProcessInstance().getId());
ContextInstance contextInstance = processInstance.getContextInstance();
// so the cookies should still be in the item process variable.
assertEquals("cookies", contextInstance.getVariable("item"));
@@ -177,7 +165,8 @@
taskInstance.end();
newTransaction();
- TaskInstance evaluateTaskInstance = (TaskInstance) jbpmContext.getTaskList("manager").get(0);
+ TaskInstance evaluateTaskInstance = (TaskInstance) jbpmContext.getTaskList("manager")
+ .get(0);
evaluateTaskInstance.end("More info needed");
jbpmContext.save(evaluateTaskInstance);
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/log4j.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/log4j.xml 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/log4j.xml 2010-03-30 07:26:14 UTC (rev 6238)
@@ -8,14 +8,14 @@
<!-- ================================= -->
<appender name="FILE" class="org.apache.log4j.FileAppender">
- <param name="File" value="${log4j.output.dir}/test.log"/>
- <param name="Append" value="false"/>
+ <param name="File" value="${log4j.output.dir}/test.log" />
+ <param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n" />
</layout>
</appender>
-
+
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
@@ -24,7 +24,7 @@
<param name="Target" value="System.out" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{1}] %m%n" />
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
</layout>
</appender>
@@ -40,23 +40,24 @@
<priority value="INFO" />
</category>
- <!-- hide optimistic locking failures
+ <!-- proxy narrowing warnings -->
+ <category name="org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog">
+ <priority value="ERROR" />
+ </category>
+
+ <!-- optimistic locking failures
<category name="org.hibernate.event.def.AbstractFlushingEventListener">
<priority value="FATAL" />
</category>
-->
- <!-- hide proxy narrowing warns -->
- <category name="org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog">
- <priority value="ERROR" />
- </category>
-
- <!-- show SQL DML statements as they are executed -->
+ <!-- SQL DML statements
<category name="org.hibernate.SQL">
<priority value="DEBUG" />
</category>
+ -->
- <!-- show JDBC parameters
+ <!-- JDBC parameters
<category name="org.hibernate.type">
<priority value="TRACE" />
</category>
@@ -68,7 +69,7 @@
<root>
<!--appender-ref ref="CONSOLE"/-->
- <appender-ref ref="FILE"/>
+ <appender-ref ref="FILE" />
</root>
</log4j:configuration>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/assignment/ExpressionAssignmentHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/assignment/ExpressionAssignmentHandler.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/assignment/ExpressionAssignmentHandler.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -38,10 +38,11 @@
import org.jbpm.taskmgmt.exe.SwimlaneInstance;
/**
- * implements an expression language for assigning actors to tasks based
- * on this identity component.
+ * implements an expression language for assigning actors to tasks based on this
+ * identity component.
*
- * <pre>syntax : first-term --> next-term --> next-term --> ... --> next-term
+ * <pre>
+ * syntax : first-term --> next-term --> next-term --> ... --> next-term
*
* first-term ::= previous |
* swimlane(swimlane-name) |
@@ -51,140 +52,128 @@
*
* next-term ::= group(group-type) |
* member(role-name)
- * </pre>
+ * </pre>
*/
public class ExpressionAssignmentHandler implements AssignmentHandler {
private static final long serialVersionUID = 1L;
-
+
protected String expression;
- protected ExecutionContext executionContext = null;
- protected ExpressionSession expressionSession = null;
+ protected ExecutionContext executionContext;
+ protected ExpressionSession expressionSession;
protected TermTokenizer tokenizer;
- protected Entity entity = null;
+ protected Entity entity;
public void assign(Assignable assignable, ExecutionContext executionContext) {
-
- try {
- expressionSession = getExpressionSession();
- if (expressionSession==null) {
- throw new NullPointerException("getIdentitySession returned null");
- }
- this.tokenizer = new TermTokenizer(expression);
- this.executionContext = executionContext;
- entity = resolveFirstTerm(tokenizer.nextTerm());
- while( tokenizer.hasMoreTerms()
- && (entity!=null) ) {
- entity = resolveNextTerm(tokenizer.nextTerm());
- }
- // if the expression did not resolve to an actor
- if (entity==null) {
- // throw an exception
- throw new RuntimeException("couldn't resolve assignment expression '"+expression+"'");
-
- // else if the expression evaluated to a user
- } else if (entity instanceof User) {
- // do direct assignment
- assignable.setActorId(entity.getName());
-
- // else if the expression evaluated to a group
- } else if (entity instanceof Group) {
- // put the group in the pool
- assignable.setPooledActors(new String []{entity.getName()});
- }
-
- } catch (RuntimeException e) {
- throw new ExpressionAssignmentException("couldn't resolve assignment expression '"+expression+"'", e);
+ expressionSession = getExpressionSession();
+ if (expressionSession == null) {
+ throw new ExpressionAssignmentException("no expression session");
}
+ this.tokenizer = new TermTokenizer(expression);
+ this.executionContext = executionContext;
+ entity = resolveFirstTerm(tokenizer.nextTerm());
+ while (tokenizer.hasMoreTerms() && entity != null) {
+ entity = resolveNextTerm(tokenizer.nextTerm());
+ }
+ // if the expression did not resolve to an actor
+ if (entity == null) {
+ // complain!
+ throw new ExpressionAssignmentException("could not resolve assignment expression: "
+ + expression);
+ }
+ // else if the expression evaluated to a user
+ else if (entity instanceof User) {
+ // do direct assignment
+ assignable.setActorId(entity.getName());
+ }
+ // else if the expression evaluated to a group
+ else if (entity instanceof Group) {
+ // put the group in the pool
+ assignable.setPooledActors(new String[] { entity.getName() });
+ }
}
/**
* serves as a hook for customizing the way the identity session is retrieved.
- * overload this method to reuse this expression assignment handler for your
+ * overload this method to reuse this expression assignment handler for your
* user data store.
*/
protected ExpressionSession getExpressionSession() {
JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
- if (jbpmContext==null) {
- throw new RuntimeException("no active JbpmContext for resolving assignment expression'"+expression+"'");
+ if (jbpmContext == null) {
+ throw new ExpressionAssignmentException("no current jbpm context");
}
- return new IdentitySession(jbpmContext.getSession());
+ return (IdentitySession) jbpmContext.getServices()
+ .getPersistenceService()
+ .getCustomSession(IdentitySession.class);
}
protected Entity resolveFirstTerm(String term) {
- Entity entity = null;
-
- log.debug("resolving first term '"+term+"'");
-
+ Entity entity;
+ log.debug("resolving first term: '" + term);
+
if (term.equalsIgnoreCase("previous")) {
- String userName = SecurityHelper.getAuthenticatedActorId();
- entity = getUserByName(userName);
-
- } else if ( (term.startsWith("swimlane("))
- && (term.endsWith(")")) ) {
- String swimlaneName = term.substring(9,term.length()-1).trim();
+ String userName = SecurityHelper.getAuthenticatedActorId();
+ entity = getUserByName(userName);
+ }
+ else if (term.startsWith("swimlane(") && term.endsWith(")")) {
+ String swimlaneName = term.substring(9, term.length() - 1).trim();
String userName = getSwimlaneActorId(swimlaneName);
entity = getUserByName(userName);
-
- } else if ( (term.startsWith("variable("))
- && (term.endsWith(")")) ) {
- String variableName = term.substring(9,term.length()-1).trim();
+ }
+ else if (term.startsWith("variable(") && term.endsWith(")")) {
+ String variableName = term.substring(9, term.length() - 1).trim();
Object value = getVariable(variableName);
-
- if (value==null) {
- throw new ExpressionAssignmentException("variable '"+variableName+"' is null");
-
- } else if (value instanceof String) {
+
+ if (value instanceof String) {
entity = getUserByName((String) value);
-
- } else if (value instanceof Entity) {
+ }
+ else if (value instanceof Entity) {
entity = (Entity) value;
}
-
- } else if ( (term.startsWith("user("))
- && (term.endsWith(")")) ) {
- String userName = term.substring(5,term.length()-1).trim();
+ else {
+ throw new ExpressionAssignmentException(value + " is neither user name nor entity");
+ }
+ }
+ else if (term.startsWith("user(") && term.endsWith(")")) {
+ String userName = term.substring(5, term.length() - 1).trim();
entity = getUserByName(userName);
-
- } else if ( (term.startsWith("group("))
- && (term.endsWith(")")) ) {
- String groupName = term.substring(6,term.length()-1).trim();
+ }
+ else if (term.startsWith("group(") && term.endsWith(")")) {
+ String groupName = term.substring(6, term.length() - 1).trim();
entity = getGroupByName(groupName);
-
- } else {
- throw new ExpressionAssignmentException("couldn't interpret first term in expression '"+expression+"'");
}
+ else {
+ throw new ExpressionAssignmentException("could not interpret first term: " + term);
+ }
return entity;
}
protected Entity resolveNextTerm(String term) {
+ log.debug("resolving term: " + term);
- log.debug("resolving next term '"+term+"'");
-
- if ( (term.startsWith("group("))
- && (term.endsWith(")")) ) {
- String groupType = term.substring(6,term.length()-1).trim();
+ if (term.startsWith("group(") && term.endsWith(")")) {
+ String groupType = term.substring(6, term.length() - 1).trim();
User user = (User) entity;
Set groups = user.getGroupsForGroupType(groupType);
- if (groups.size()==0) {
- throw new ExpressionAssignmentException("no groups for group-type '"+groupType+"'");
+ if (groups.isEmpty()) {
+ throw new ExpressionAssignmentException("no groups for type: " + groupType);
}
entity = (Entity) groups.iterator().next();
-
- } else if ( (term.startsWith("member("))
- && (term.endsWith(")")) ) {
- String role = term.substring(7,term.length()-1).trim();
+ }
+ else if (term.startsWith("member(") && term.endsWith(")")) {
+ String role = term.substring(7, term.length() - 1).trim();
Group group = (Group) entity;
entity = expressionSession.getUserByGroupAndRole(group.getName(), role);
- if (entity==null) {
- throw new ExpressionAssignmentException("no users in role '"+role+"'");
+ if (entity == null) {
+ throw new ExpressionAssignmentException("no users in role: " + role);
}
-
- } else {
- throw new ExpressionAssignmentException("couldn't interpret term '"+term+"' in expression '"+expression+"'");
}
-
+ else {
+ throw new ExpressionAssignmentException("could not interpret term: " + term);
+ }
+
return entity;
}
@@ -194,32 +183,29 @@
}
protected Entity getGroupByName(String groupName) {
- Group group = null;
- group = expressionSession.getGroupByName(groupName);
- if (group==null) {
- throw new ExpressionAssignmentException("group '"+groupName+"' couldn't be fetched from the user db");
+ Group group = expressionSession.getGroupByName(groupName);
+ if (group == null) {
+ throw new ExpressionAssignmentException("no such group: " + groupName);
}
return group;
}
protected Entity getUserByName(String userName) {
- User user = null;
- user = expressionSession.getUserByName(userName);
- if (user==null) {
- throw new ExpressionAssignmentException("user '"+userName+"' couldn't be fetched from the user db");
+ User user = expressionSession.getUserByName(userName);
+ if (user == null) {
+ throw new ExpressionAssignmentException("no such user: " + user);
}
return user;
}
protected String getSwimlaneActorId(String swimlaneName) {
- SwimlaneInstance swimlaneInstance = executionContext
- .getTaskMgmtInstance()
- .getSwimlaneInstance(swimlaneName);
- if (swimlaneInstance==null) {
- throw new ExpressionAssignmentException("no swimlane instance '"+swimlaneName+"'");
+ SwimlaneInstance swimlaneInstance = executionContext.getTaskMgmtInstance()
+ .getSwimlaneInstance(swimlaneName);
+ if (swimlaneInstance == null) {
+ throw new ExpressionAssignmentException("no such swimlane: " + swimlaneName);
}
return swimlaneInstance.getActorId();
}
-
+
private static final Log log = LogFactory.getLog(ExpressionAssignmentHandler.class);
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySessionFactory.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySessionFactory.java 2010-03-28 00:04:36 UTC (rev 6237)
+++ jbpm3/branches/jbpm-3.2-soa/modules/identity/src/main/java/org/jbpm/identity/hibernate/IdentitySessionFactory.java 2010-03-30 07:26:14 UTC (rev 6238)
@@ -21,17 +21,21 @@
*/
package org.jbpm.identity.hibernate;
-import java.sql.*;
+import java.sql.Connection;
-import org.apache.commons.logging.*;
-import org.hibernate.*;
-import org.hibernate.cfg.*;
-import org.jbpm.identity.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+import org.jbpm.identity.Group;
+import org.jbpm.identity.Membership;
+import org.jbpm.identity.User;
+
public class IdentitySessionFactory {
- protected Configuration configuration = null;
- protected SessionFactory sessionFactory = null;
+ protected Configuration configuration;
+ protected SessionFactory sessionFactory;
public IdentitySessionFactory() {
this(createConfiguration());
14 years, 1 month
JBoss JBPM SVN: r6237 - in jbpm4/trunk: modules/bpmn and 13 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-27 20:04:36 -0400 (Sat, 27 Mar 2010)
New Revision: 6237
Modified:
jbpm4/trunk/modules/bpmn/pom.xml
jbpm4/trunk/modules/devguide/pom.xml
jbpm4/trunk/modules/distro/pom.xml
jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
jbpm4/trunk/modules/integration/console/pom.xml
jbpm4/trunk/modules/integration/form-plugin/pom.xml
jbpm4/trunk/modules/integration/graphView-plugin/pom.xml
jbpm4/trunk/modules/jpdl/pom.xml
jbpm4/trunk/modules/migration/pom.xml
jbpm4/trunk/modules/test-base/pom.xml
jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/pom.xml
jbpm4/trunk/modules/test-load/pom.xml
jbpm4/trunk/modules/test-pojo/pom.xml
jbpm4/trunk/modules/userguide/pom.xml
jbpm4/trunk/pom.xml
Log:
replace deprecated version property with project.version
Modified: jbpm4/trunk/modules/bpmn/pom.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/bpmn/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -52,7 +52,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.beanshell</groupId>
Modified: jbpm4/trunk/modules/devguide/pom.xml
===================================================================
--- jbpm4/trunk/modules/devguide/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/devguide/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
-->
</dependencies>
Modified: jbpm4/trunk/modules/distro/pom.xml
===================================================================
--- jbpm4/trunk/modules/distro/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/distro/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -211,7 +211,7 @@
<goal>single</goal>
</goals>
<configuration>
- <finalName>jbpm-${version}</finalName>
+ <finalName>jbpm-${project.version}</finalName>
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
Modified: jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
===================================================================
--- jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -9,7 +9,7 @@
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
- <baseDirectory>jbpm-${version}</baseDirectory>
+ <baseDirectory>jbpm-${project.version}</baseDirectory>
<!-- Dependency Sets -->
<dependencySets>
Modified: jbpm4/trunk/modules/integration/console/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/console/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/integration/console/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -26,13 +26,13 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: jbpm4/trunk/modules/integration/form-plugin/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/integration/form-plugin/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -20,13 +20,13 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: jbpm4/trunk/modules/integration/graphView-plugin/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/graphView-plugin/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/integration/graphView-plugin/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -20,13 +20,13 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: jbpm4/trunk/modules/jpdl/pom.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/jpdl/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -40,7 +40,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<!-- 3rd Party -->
Modified: jbpm4/trunk/modules/migration/pom.xml
===================================================================
--- jbpm4/trunk/modules/migration/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/migration/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jpdl</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
Modified: jbpm4/trunk/modules/test-base/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-base/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/test-base/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -30,12 +30,12 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-log</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-ejb/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -35,7 +35,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
</dependencies>
Modified: jbpm4/trunk/modules/test-load/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-load/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/test-load/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -30,26 +30,26 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-base</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jpdl</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<!-- TODO remove PVM dependency for compilation (keep it for test)-->
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
Modified: jbpm4/trunk/modules/test-pojo/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-pojo/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/test-pojo/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -30,7 +30,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
@@ -45,7 +45,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
</dependencies>
Modified: jbpm4/trunk/modules/userguide/pom.xml
===================================================================
--- jbpm4/trunk/modules/userguide/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/modules/userguide/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
-->
</dependencies>
Modified: jbpm4/trunk/pom.xml
===================================================================
--- jbpm4/trunk/pom.xml 2010-03-26 04:09:17 UTC (rev 6236)
+++ jbpm4/trunk/pom.xml 2010-03-28 00:04:36 UTC (rev 6237)
@@ -90,104 +90,104 @@
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-db</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-enterprise</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jboss</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jpdl</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-bpmn</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-log</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-base</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-examples</artifactId>
<classifier>tests</classifier>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-db</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-enterprise-ejb</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-spi</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jboss5</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-tomcat6</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-console-integration</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-console-form-plugin</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-console-graphView-plugin</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-console-reports</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jboss4</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
14 years, 1 month
JBoss JBPM SVN: r6236 - jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-26 00:09:17 -0400 (Fri, 26 Mar 2010)
New Revision: 6236
Added:
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.create.xhtml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.evaluate.xhtml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.fix.xhtml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.money.xhtml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/forms.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/gpd.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processdefinition.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processimage.jpg
Removed:
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/images/
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jbpm.css
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/
jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/readme.txt
Log:
SOA-1072: correct file arrangement of websale example
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.create.xhtml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/form.create.xhtml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.create.xhtml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.create.xhtml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:tf="http://jbpm.org/jsf/tf"
+ xmlns:jbpm="http://jbpm.org/jsf">
+<ui:component>
+
+<jbpm:dataform>
+
+ <f:facet name="header">
+ <h:outputText value="#{taskName}"/>
+ </f:facet>
+
+ <!-- TASKFORM ROWS -->
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Item:"/>
+ </f:facet>
+ <h:inputText value="#{var['item']}" />
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Quantity:"/>
+ </f:facet>
+ <h:inputText
+ value="#{var['quantity']}"
+ converter="javax.faces.Integer"
+ converterMessage="The quantity must be numeric."
+ validatorMessage="The quantity must be at least 1.">
+ <f:validateLongRange minimum="1"/>
+ </h:inputText>
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Address:"/>
+ </f:facet>
+ <h:inputText value="#{var['address']}" />
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Actions:"/>
+ </f:facet>
+ <!-- TASKFORM BUTTONS -->
+ <tf:saveButton value="Save"/>
+ <tf:transitionButton value="Evaluate"/>
+ </jbpm:datacell>
+
+</jbpm:dataform>
+
+</ui:component>
+</html>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.evaluate.xhtml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/form.evaluate.xhtml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.evaluate.xhtml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.evaluate.xhtml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:tf="http://jbpm.org/jsf/tf"
+ xmlns:jbpm="http://jbpm.org/jsf">
+<ui:component>
+
+<jbpm:dataform>
+
+ <f:facet name="header">
+ <h:outputText value="#{taskName}"/>
+ </f:facet>
+
+ <!-- TASKFORM ROWS -->
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Item:"/>
+ </f:facet>
+ <h:inputText value="#{var['item']}" />
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Quantity:"/>
+ </f:facet>
+ <h:inputText
+ value="#{var['quantity']}"
+ converter="javax.faces.Integer"
+ converterMessage="The quantity must be numeric."
+ validatorMessage="The quantity must be at least 1.">
+ <f:validateLongRange minimum="1"/>
+ </h:inputText>
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Address:"/>
+ </f:facet>
+ <h:inputText value="#{var['address']}" />
+ </jbpm:datacell>
+
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Actions:"/>
+ </f:facet>
+ <!-- TASKFORM BUTTONS -->
+ <tf:saveButton value="Save"/>
+ <tf:transitionButton transition="OK" value="OK"/>
+ <tf:transitionButton transition="More info needed" value="More Info Needed"/>
+ </jbpm:datacell>
+
+</jbpm:dataform>
+
+</ui:component>
+</html>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.fix.xhtml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/form.fix.xhtml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.fix.xhtml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.fix.xhtml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:tf="http://jbpm.org/jsf/tf"
+ xmlns:jbpm="http://jbpm.org/jsf">
+<ui:component>
+
+<jbpm:dataform>
+
+ <f:facet name="header">
+ <h:outputText value="#{taskName}"/>
+ </f:facet>
+
+ <!-- TASKFORM ROWS -->
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Item:"/>
+ </f:facet>
+ <h:inputText value="#{var['item']}" />
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Quantity:"/>
+ </f:facet>
+ <h:inputText
+ value="#{var['quantity']}"
+ converter="javax.faces.Integer"
+ converterMessage="The quantity must be numeric."
+ validatorMessage="The quantity must be at least 1.">
+ <f:validateLongRange minimum="1"/>
+ </h:inputText>
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Address:"/>
+ </f:facet>
+ <h:inputText value="#{var['address']}" />
+ </jbpm:datacell>
+
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Actions:"/>
+ </f:facet>
+ <!-- TASKFORM BUTTONS -->
+ <tf:saveButton value="Save"/>
+ <tf:transitionButton value="Evaluate"/>
+ </jbpm:datacell>
+
+</jbpm:dataform>
+
+</ui:component>
+</html>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.money.xhtml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/form.money.xhtml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.money.xhtml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/form.money.xhtml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:tf="http://jbpm.org/jsf/tf"
+ xmlns:jbpm="http://jbpm.org/jsf">
+<ui:component>
+
+<jbpm:dataform>
+
+ <f:facet name="header">
+ <h:outputText value="#{taskName}"/>
+ </f:facet>
+
+ <!-- TASKFORM ROWS -->
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Payment ID:"/>
+ </f:facet>
+ <h:inputText value="#{var['paymentId']}"/>
+ </jbpm:datacell>
+ <jbpm:datacell>
+ <f:facet name="header">
+ <h:outputText value="Actions:"/>
+ </f:facet>
+ <!-- TASKFORM BUTTONS -->
+ <tf:saveButton value="Save"/>
+ <tf:transitionButton value="Update Books"/>
+ </jbpm:datacell>
+
+</jbpm:dataform>
+
+</ui:component>
+</html>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/forms.xml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/forms.xml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/forms.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/forms.xml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<forms>
+ <form task="Create new web sale order" form="form.create.xhtml"/>
+ <form task="Evaluate web order" form="form.evaluate.xhtml"/>
+ <form task="Fix web order data" form="form.fix.xhtml"/>
+ <form task="Wait for money" form="form.money.xhtml"/>
+</forms>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/gpd.xml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/gpd.xml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/gpd.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/gpd.xml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root-container name="websale" width="590" height="542">
+ <node name="Create new web sale order" x="276" y="36" width="193" height="37">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="Evaluate web order" x="300" y="108" width="145" height="37">
+ <edge>
+ <label x="9" y="-10"/>
+ </edge>
+ <edge>
+ <label x="-119" y="-24"/>
+ <bendpoint w1="-121" h1="-30" w2="121" h2="-30"/>
+ </edge>
+ </node>
+ <node name="Fix web order data" x="48" y="108" width="140" height="37">
+ <edge>
+ <label x="5" y="-10"/>
+ <bendpoint w1="123" h1="30" w2="-119" h2="30"/>
+ </edge>
+ </node>
+ <node name="salefork" x="300" y="180" width="145" height="25">
+ <edge>
+ <label x="9" y="-14"/>
+ <bendpoint w1="96" h1="35" w2="0" h2="-43"/>
+ </edge>
+ <edge>
+ <label x="-62" y="-11"/>
+ <bendpoint w1="-96" h1="33" w2="0" h2="-45"/>
+ </edge>
+ </node>
+ <node name="Wait for money" x="396" y="252" width="145" height="37">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="update books" x="408" y="324" width="121" height="37">
+ <edge>
+ <label x="5" y="-10"/>
+ <bendpoint w1="0" h1="42" w2="108" h2="-36"/>
+ </edge>
+ </node>
+ <node name="ship item" x="216" y="252" width="121" height="37">
+ <edge>
+ <label x="5" y="-10"/>
+ <bendpoint w1="0" h1="113" w2="-84" h2="-37"/>
+ </edge>
+ </node>
+ <node name="salejoin" x="300" y="408" width="145" height="25">
+ <edge>
+ <label x="5" y="-10"/>
+ </edge>
+ </node>
+ <node name="end" x="300" y="468" width="145" height="37"/>
+ <deployment serverName="localhost" serverPort="8080" serverDeployer="/gpd-deployer">
+ <classesAndResources>
+ <element value="/jbpm-examples/src/test/java/org/jbpm/examples/websale/ShipItem.java"/>
+ <element value="/jbpm-examples/src/test/java/org/jbpm/examples/websale/RemindActor.java"/>
+ <element value="/jbpm-examples/src/test/java/org/jbpm/examples/websale/UpdateBooks.java"/>
+ </classesAndResources>
+ <filesAndFolders>
+ <element value="/jbpm-examples/src/test/resources/websale/form.create.xhtml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/form.evaluate.xhtml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/form.fix.xhtml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/form.money.xhtml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/forms.xml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/gpd.xml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/processdefinition.xml"/>
+ <element value="/jbpm-examples/src/test/resources/websale/processimage.jpg"/>
+ </filesAndFolders>
+ </deployment>
+</root-container>
Deleted: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jbpm.css
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jbpm.css 2010-03-26 02:20:18 UTC (rev 6235)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jbpm.css 2010-03-26 04:09:17 UTC (rev 6236)
@@ -1,132 +0,0 @@
-body, td, p {
- font-family:verdana;
- font-size:10pt;
-}
-
-h1, h2, h3 {
- margin:0pt;
- border:0pt;
- font-size:16pt;
- font-weight:normal;
- color:#5c5c4f;
-}
-
-h2 {
- font-size:14pt;
-}
-
-h3 {
- font-size:12pt;
-}
-
-a {
- cursor: pointer;
- color: rgb(110, 110, 170);
- text-decoration: none;
- font-weight: bold;
-}
-
-a.menu, span.menu, a.submenu {
- background-color:#5c5c4f;
- color:#ffffff;
- text-align:center;
- font-weight: bold;
- text-decoration: none;
- width:100%;
- display: block;
- font-size: 12px;
- line-height:12px;
- margin-top:1px;
- padding-top:5px;
- padding-bottom:5px;
-}
-
-a.menu:hover, a.submenu {
- background-color:#aca899;
-}
-
-a.submenu:hover {
- background-color:#5c5c4f;
-}
-
-table {
- border:0px;
-}
-
-th {
- font-size: 11px;
- border:0px;
- background-color:#aca899;
- color:#ffffff;
- padding-top:4px;
- padding-bottom:4px;
- padding-left:2px;
- padding-right:2px;
-}
-
-td {
- border:0px;
- padding-top:2px;
- padding-bottom:2px;
- padding-left:4px;
- padding-right:4px;
-}
-
-tr, tr.normal {
- background-color:#ece9d8;
-}
-
-td.layout {
- border:0px;
- background-color:#ffffff;
- padding:0px;
-}
-
-td.contentlayout {
- width:100%;
- height:100%;
- border:0px;
- background-color:#ffffff;
- padding-top:0px;
- padding-left:20px;
- padding-bottom:10px;
- padding-right:0px;
-}
-
-table.content {
- margin-bottom:25px;
-}
-
-th.title {
- background-color:#5c5c4f;
- text-align:left;
-}
-
-td.selectable {
- cursor: pointer;
-}
-
-tr.hovered {
- background-color:yellow;
-}
-
-table.form, th.form, td.form {
- margin:0px;
- border:0px;
- padding:0px;
- padding-left:10px;
- padding-right:10px;
- background-color:#ece9d8;
-}
-
-table.form {
- border:2px;
- border-style:solid;
- border-color:#166aee;
-}
-
-th.form {
- font-size:16pt;
- color:#5c5c4f;
-}
-
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processdefinition.xml (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/processdefinition.xml)
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processdefinition.xml (rev 0)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processdefinition.xml 2010-03-26 04:09:17 UTC (rev 6236)
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+
+<process-definition name="websale"
+ xmlns="urn:jbpm.org:jpdl-3.2">
+
+ <!-- SWIMLANES (= process roles) -->
+
+ <swimlane name="buyer" />
+
+ <swimlane name="salesman">
+ <assignment actor-id="manager" />
+ </swimlane>
+
+ <swimlane name="accountant">
+ <assignment actor-id="shipper" />
+ </swimlane>
+
+ <swimlane name="shipper">
+ <assignment actor-id="admin" />
+ </swimlane>
+
+ <!-- NODES -->
+
+ <start-state name="Create new web sale order">
+ <task swimlane="buyer" />
+ <transition to="Evaluate web order" />
+ </start-state>
+
+ <task-node name="Evaluate web order">
+ <task swimlane="salesman">
+ <timer duedate="20 seconds" repeat="10 seconds">
+ <action class="org.jbpm.examples.websale.RemindActor">
+ <swimlaneName>salesman</swimlaneName>
+ </action>
+ </timer>
+ </task>
+ <transition name="OK" to="salefork" />
+ <transition name="More info needed" to="Fix web order data" />
+ </task-node>
+
+ <task-node name="Fix web order data">
+ <task swimlane="buyer" />
+ <transition to="Evaluate web order" />
+ </task-node>
+
+ <fork name="salefork">
+ <transition name="payment" to="Wait for money" />
+ <transition name="shipping" to="ship item" />
+ </fork>
+
+ <task-node name="Wait for money">
+ <task swimlane="accountant" />
+ <transition to="update books" />
+ </task-node>
+
+ <node name="update books">
+ <action class="org.jbpm.examples.websale.UpdateBooks">
+ <msg>accountancy application is now informed of the payment</msg>
+ </action>
+ <transition to="salejoin" />
+ </node>
+
+ <node name="ship item">
+ <action class="org.jbpm.examples.websale.ShipItem">
+ <swimlaneName>shipper</swimlaneName>
+ <msg>${shipper} now ships ${item} to ${address}</msg>
+ </action>
+ <transition to="salejoin" />
+ </node>
+
+ <join name="salejoin">
+ <transition to="end" />
+ </join>
+
+ <end-state name="end" />
+
+</process-definition>
Copied: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/processimage.jpg (from rev 6232, jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/jpdl/processimage.jpg)
===================================================================
(Binary files differ)
Deleted: jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/readme.txt
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/readme.txt 2010-03-26 02:20:18 UTC (rev 6235)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/src/test/resources/websale/readme.txt 2010-03-26 04:09:17 UTC (rev 6236)
@@ -1,11 +0,0 @@
-this css file is only for enabling display of the process forms
-in a plain web browser.
-
-@see also the form.* in the websale.par example process
-
-together with the facelets jsfc attribute (e.g. jsfc="h:inputText"),
-the forms can be developed and validated before they are deployed
-into jBPM. this should speed up development of complicated forms.
-
-for simple forms, we will provide a creation wizard in the gpd and
-some simple form generation capabilities.
14 years, 1 month
JBoss JBPM SVN: r6235 - in jbpm3/branches/jbpm-3.2-soa/modules: core/src/main/resources/org/jbpm and 1 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-25 22:20:18 -0400 (Thu, 25 Mar 2010)
New Revision: 6235
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/resources/org/jbpm/default.jbpm.cfg.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml
Log:
SOA-1998: set default value of job executor retries to 3;
move job executor properties documentation to configuration chapter
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-25 20:03:31 UTC (rev 6234)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-03-26 02:20:18 UTC (rev 6235)
@@ -25,7 +25,7 @@
protected JbpmConfiguration jbpmConfiguration;
protected String name;
protected int nbrOfThreads;
- private int retries = 1;
+ private int retries;
protected int idleInterval;
protected int maxIdleInterval;
/** @deprecated property has no effect */
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-25 20:03:31 UTC (rev 6234)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-26 02:20:18 UTC (rev 6235)
@@ -66,7 +66,7 @@
<property name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></property>
<property name="name"><string value="JbpmJobExecutor" /></property>
<property name="nbrOfThreads"><int value="1" /></property>
- <property name="retries"><int value="2" /></property>
+ <property name="retries"><int value="3" /></property>
<property name="idleInterval"><!-- 5 seconds --><int value="5000" /></property>
<property name="maxIdleInterval"><!-- 1 hour --><int value="3600000" /></property>
<property name="maxLockTime"><!-- 10 minutes --><int value="600000" /></property>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml 2010-03-25 20:03:31 UTC (rev 6234)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml 2010-03-26 02:20:18 UTC (rev 6235)
@@ -178,76 +178,6 @@
</para>
</section>
- <section id="configuringjobexecutor">
- <title>Configuring the job executor</title>
-
- <para>The job executor exposes a few properties you can tune. To change any of the
- values described below, edit the <literal>jbpm.job.executor</literal> bean in
- <literal>jbpm.cfg.xml</literal>.</para>
-
- <table><title>Job executor properties</title>
- <tgroup cols='3'>
- <colspec colname='attr' colwidth="*" />
- <colspec colname='desc' colwidth="4*" />
- <colspec colname="def" colwidth="*"/>
-
- <thead>
- <row>
- <entry>Property</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
-
- <![CDATA[
- <property name="nbrOfThreads"><int value="1" /></property>
- <property name="retries"><int value="3" /></property>
- <property name="idleInterval"><int value="5000" /></property>
- <property name="maxIdleInterval"><int value="3600000" /><!-- 1 hour --></property>
- <property name="maxLockTime"><int value="600000" /><!-- 10 minutes --></property>
- <property name="lockMonitorInterval"><int value="60000" /><!-- 1 minute --></property>
- <property name="lockBufferTime"><int value="5000" /><!-- 5 seconds --></property>]]>
-
- <tbody>
- <row>
- <entry>nbrOfThreads</entry>
- <entry>Size of the job executor thread pool</entry>
- <entry>1</entry>
- </row>
- <row>
- <entry>retries</entry>
- <entry>Number of times the job executor retries a failed job</entry>
- <entry>2</entry>
- </row>
- <row>
- <entry>idleInterval</entry>
- <entry>Period between checks for new jobs (milliseconds)</entry>
- <entry>5 seconds</entry>
- </row>
- <row>
- <entry>maxIdleInterval</entry>
- <entry>When a job fails, the affected thread pauses for a period initially equal
- to <literal>idleInterval</literal>, which is increased twofold until it reaches
- <literal>maxIdleInterval</literal> (milliseconds)</entry>
- <entry>1 hour</entry>
- </row>
- <row>
- <entry>maxLockTime</entry>
- <entry>Amount of time a job executor thread is allowed to hold a job before
- the job is released and offered to other threads (milliseconds)</entry>
- <entry>10 minutes</entry>
- </row>
- <row>
- <entry>lockMonitorInterval</entry>
- <entry>Period between checks for job lock times (milliseconds)</entry>
- <entry>1 minute</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
<section id="jbpmsbuiltinasynchronousmessaging">
<title>jBPM's built-in asynchronous messaging</title>
<para>When using jBPM's built-in asynchronous messaging, job messages will be sent by persisting
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml 2010-03-25 20:03:31 UTC (rev 6234)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml 2010-03-26 02:20:18 UTC (rev 6235)
@@ -314,7 +314,69 @@
<programlisting><boolean name="jbpm.hide.stale.object.exceptions" value="false" /></programlisting>.
</para>
</section>
-
+
+ <section id="configuringjobexecutor">
+ <title>Configuring the job executor</title>
+
+ <para>The job executor exposes a few properties you can tune. To change any of the
+ values described below, edit the <literal>jbpm.job.executor</literal> bean in
+ <literal>jbpm.cfg.xml</literal>. The role of the job executor is described with
+ great detail in <xref linkend="thejobexecutor"></xref>.
+ </para>
+
+ <table><title>Job executor properties</title>
+ <tgroup cols='3'>
+ <colspec colname='attr' colwidth="*" />
+ <colspec colname='desc' colwidth="4*" />
+ <colspec colname="def" colwidth="*"/>
+
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>nbrOfThreads</entry>
+ <entry>Size of the job executor thread pool</entry>
+ <entry>1</entry>
+ </row>
+ <row>
+ <entry>retries</entry>
+ <entry>Number of times the job executor retries a failed job</entry>
+ <entry>3</entry>
+ </row>
+ <row>
+ <entry>idleInterval</entry>
+ <entry>Period between checks for new jobs (milliseconds)</entry>
+ <entry>5 seconds</entry>
+ </row>
+ <row>
+ <entry>maxIdleInterval</entry>
+ <entry>When a job fails, the affected thread pauses for a period initially equal
+ to <literal>idleInterval</literal>, which is increased twofold until it reaches
+ <literal>maxIdleInterval</literal> (milliseconds)</entry>
+ <entry>1 hour</entry>
+ </row>
+ <row>
+ <entry>maxLockTime</entry>
+ <entry>Amount of time a job executor thread is allowed to hold a job before
+ the job is released and offered to other threads (milliseconds)</entry>
+ <entry>10 minutes</entry>
+ </row>
+ <row>
+ <entry>lockMonitorInterval</entry>
+ <entry>Period between checks for job lock times (milliseconds)</entry>
+ <entry>1 minute</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
<section id="objectfactory">
<title>Object factory</title>
<para>The object factory can create objects according to a beans-like xml configuration file.
14 years, 1 month
JBoss JBPM SVN: r6234 - jbpm3/branches/jbpm-3.2-soa/modules/core and 13 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-25 16:03:31 -0400 (Thu, 25 Mar 2010)
New Revision: 6234
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/db/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/distribution/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/enterprise/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/examples/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/identity/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/simulation/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/pom.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/master.xml
jbpm3/branches/jbpm-3.2-soa/pom.xml
projects/jsf-console/branches/jsf-console-3.2-soa/console/pom.xml
projects/jsf-console/branches/jsf-console-3.2-soa/gpd-deployer/pom.xml
projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/pom.xml
projects/jsf-console/branches/jsf-console-3.2-soa/pom.xml
projects/jsf-console/branches/jsf-console-3.2-soa/soa/pom.xml
Log:
set version to 3.2.9 in preparation for release
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/db/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/db/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/db/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/distribution/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/enterprise/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/enterprise/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/enterprise/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/examples/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/examples/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/examples/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/identity/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/identity/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/identity/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/simulation/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/simulation/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/simulation/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/master.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/master.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/master.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<!ENTITY security SYSTEM "modules/security.xml">
<!ENTITY tdd SYSTEM "modules/tdd.xml">
<!ENTITY pluggable SYSTEM "modules/pluggable.xml">
-<!ENTITY version "3.2.9-SNAPSHOT">
+<!ENTITY version "3.2.9">
]>
<book lang="en">
<bookinfo>
Modified: jbpm3/branches/jbpm-3.2-soa/pom.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ jbpm3/branches/jbpm-3.2-soa/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -16,7 +16,7 @@
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
<packaging>pom</packaging>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<!-- Parent -->
<parent>
@@ -60,7 +60,7 @@
<jboss.gravel.version>1.0.0.GA</jboss.gravel.version>
<jboss.j2ee.version>4.0.2</jboss.j2ee.version>
<jbpm.designer.version>3.1.7</jbpm.designer.version>
- <jbpm.jsf-console.version>3.2.9-SNAPSHOT</jbpm.jsf-console.version>
+ <jbpm.jsf-console.version>3.2.9</jbpm.jsf-console.version>
<junit.version>3.8.1</junit.version>
<log4j.version>1.2.14</log4j.version>
<mvel.version>1.3.1-java1.4</mvel.version>
Modified: projects/jsf-console/branches/jsf-console-3.2-soa/console/pom.xml
===================================================================
--- projects/jsf-console/branches/jsf-console-3.2-soa/console/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ projects/jsf-console/branches/jsf-console-3.2-soa/console/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jsf-console-parent</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: projects/jsf-console/branches/jsf-console-3.2-soa/gpd-deployer/pom.xml
===================================================================
--- projects/jsf-console/branches/jsf-console-3.2-soa/gpd-deployer/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ projects/jsf-console/branches/jsf-console-3.2-soa/gpd-deployer/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jsf-console-parent</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/pom.xml
===================================================================
--- projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ projects/jsf-console/branches/jsf-console-3.2-soa/jbpm4jsf/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jsf-console-parent</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: projects/jsf-console/branches/jsf-console-3.2-soa/pom.xml
===================================================================
--- projects/jsf-console/branches/jsf-console-3.2-soa/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ projects/jsf-console/branches/jsf-console-3.2-soa/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -16,7 +16,7 @@
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jsf-console-parent</artifactId>
<packaging>pom</packaging>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<!-- Parent -->
<parent>
Modified: projects/jsf-console/branches/jsf-console-3.2-soa/soa/pom.xml
===================================================================
--- projects/jsf-console/branches/jsf-console-3.2-soa/soa/pom.xml 2010-03-24 22:28:43 UTC (rev 6233)
+++ projects/jsf-console/branches/jsf-console-3.2-soa/soa/pom.xml 2010-03-25 20:03:31 UTC (rev 6234)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jsf-console-parent</artifactId>
- <version>3.2.9-SNAPSHOT</version>
+ <version>3.2.9</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
14 years, 1 month
JBoss JBPM SVN: r6233 - in jbpm3/branches/jbpm-3.2-soa/modules: core/src/main/resources/org/jbpm and 2 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-24 18:28:43 -0400 (Wed, 24 Mar 2010)
New Revision: 6233
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/JobExecutorThread.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/LockMonitorThread.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml
jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml
Log:
SOA-1998: interpret JobExecutor.retries property as number of attempts to execute a failed job;
document all job executor properties in "Asynchronous continuations" chapter
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-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2010-03-24 22:28:43 UTC (rev 6233)
@@ -28,25 +28,25 @@
private int retries = 1;
protected int idleInterval;
protected int maxIdleInterval;
- /** @deprecated this field was never used */
+ /** @deprecated property has no effect */
protected int historyMaxSize;
protected int maxLockTime;
protected int lockMonitorInterval;
+ /** @deprecated property has no effect */
protected int lockBufferTime;
private ThreadGroup threadGroup;
/** @deprecated call {@link #getThreads()} instead */
protected Map threads;
+ /** @deprecated call {@link #getThreads()} instead */
protected LockMonitorThread lockMonitorThread;
protected Map monitoredJobIds = new Hashtable();
+ protected boolean isStarted;
- protected boolean isStarted = false;
-
- /** @deprecated this field should never have been exposed */
+ /** @deprecated this field was just an aid for generating thread names */
protected static String hostName;
- private static String hostAddress;
public synchronized void start() {
if (!isStarted) {
@@ -190,7 +190,7 @@
void startLockMonitorThread() {
String threadName = getLockMonitorThreadName();
- lockMonitorThread = new LockMonitorThread(threadName, this);
+ Thread lockMonitorThread = new LockMonitorThread(threadName, this);
log.debug("starting " + threadName);
lockMonitorThread.start();
@@ -201,15 +201,12 @@
}
private static String getHostAddress() {
- if (hostAddress == null) {
- try {
- hostAddress = InetAddress.getLocalHost().getHostAddress();
- }
- catch (UnknownHostException e) {
- hostAddress = "127.0.0.1";
- }
+ try {
+ return InetAddress.getLocalHost().getHostAddress();
}
- return hostAddress;
+ catch (UnknownHostException e) {
+ return "127.0.0.1";
+ }
}
public Set getMonitoredJobIds() {
@@ -225,19 +222,21 @@
}
/**
- * @throws UnsupportedOperationException to prevent invocation
- * @deprecated <code>monitoredJobIds</code> is an internal control field
+ * Method has no effect.
+ *
+ * @deprecated call {@link #addMonitoredJobId(String, long)} or
+ * {@link #removeMonitoredJobId(String)} to manipulate the set of monitored
+ * jobs
*/
public void setMonitoredJobIds(Map monitoredJobIds) {
- throw new UnsupportedOperationException();
}
- /** @deprecated this property was never used */
+ /** @deprecated property has no effect */
public int getHistoryMaxSize() {
return historyMaxSize;
}
- /** @deprecated this property was never used */
+ /** @deprecated property has no effect */
public void setHistoryMaxSize(int historyMaxSize) {
this.historyMaxSize = historyMaxSize;
}
@@ -258,11 +257,12 @@
}
/**
- * @throws UnsupportedOperationException to prevent invocation
- * @deprecated <code>isStarted</code> is an internal control field
+ * This method has no effect.
+ *
+ * @deprecated call {@link #start()} or {@link #stop()} to control this job
+ * executor.
*/
public void setStarted(boolean isStarted) {
- throw new UnsupportedOperationException();
}
public JbpmConfiguration getJbpmConfiguration() {
@@ -331,10 +331,12 @@
this.maxLockTime = maxLockTime;
}
+ /** @deprecated property has no effect */
public int getLockBufferTime() {
return lockBufferTime;
}
+ /** @deprecated property has no effect */
public void setLockBufferTime(int lockBufferTime) {
this.lockBufferTime = lockBufferTime;
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2010-03-24 22:28:43 UTC (rev 6233)
@@ -21,23 +21,13 @@
public class JobExecutorThread extends Thread {
- final JobExecutor jobExecutor;
- final JbpmConfiguration jbpmConfiguration;
- final int idleInterval;
- final int maxIdleInterval;
- final long maxLockTime;
-
- volatile boolean isActive = true;
+ private final JobExecutor jobExecutor;
+ private volatile boolean isActive = true;
private final Random random = new Random();
public JobExecutorThread(String name, JobExecutor jobExecutor) {
super(jobExecutor.getThreadGroup(), name);
this.jobExecutor = jobExecutor;
-
- jbpmConfiguration = jobExecutor.getJbpmConfiguration();
- idleInterval = jobExecutor.getIdleInterval();
- maxIdleInterval = jobExecutor.getMaxIdleInterval();
- maxLockTime = jobExecutor.getMaxLockTime();
}
/**
@@ -48,71 +38,61 @@
long maxLockTime, int maxHistory) {
super(jobExecutor.getThreadGroup(), name);
this.jobExecutor = jobExecutor;
-
- this.jbpmConfiguration = jbpmConfiguration;
- this.idleInterval = idleInterval;
- this.maxIdleInterval = maxIdleInterval;
- this.maxLockTime = maxLockTime;
}
public void run() {
- int currentIdleInterval = idleInterval;
+ int currentIdleInterval = jobExecutor.getIdleInterval();
while (isActive) {
- try {
- Collection acquiredJobs = acquireJobs();
- for (Iterator i = acquiredJobs.iterator(); i.hasNext() && isActive;) {
- Job job = (Job) i.next();
- try {
- executeJob(job);
- }
- catch (Exception e) {
- saveJobException(job, e);
- throw e;
- }
+ // acquire jobs; on exception, call returns empty collection
+ Collection acquiredJobs = acquireJobs();
+ // execute jobs
+ boolean success = true;
+ for (Iterator i = acquiredJobs.iterator(); i.hasNext() && isActive;) {
+ Job job = (Job) i.next();
+ try {
+ executeJob(job);
}
- if (isActive) {
- long waitPeriod = getWaitPeriod(currentIdleInterval);
- if (waitPeriod > 0) {
- synchronized (jobExecutor) {
- jobExecutor.wait(waitPeriod);
- }
- }
+ catch (Exception e) {
+ // on exception, call returns normally
+ saveJobException(job, e);
+ success = false;
+ break;
}
- // no exception, reset current idle interval
- currentIdleInterval = idleInterval;
}
- catch (InterruptedException e) {
- if (log.isDebugEnabled()) log.debug(getName() + " got interrupted");
- }
- catch (Exception e) {
- // if this is a locking exception, keep it quiet
- if (DbPersistenceService.isLockingException(e)) {
- StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
- .error("job execution failure", e);
- }
- else {
- log.error("job execution failure", e);
- }
- // wait after error
- if (isActive) {
- // wait a random period, at least half the current idle interval
- int waitPeriod = currentIdleInterval / 2;
- waitPeriod = random.nextInt(waitPeriod) + waitPeriod;
- try {
- // sleep instead of waiting on jobExecutor to prevent
- // DbMessageService from waking up this thread
- sleep(waitPeriod);
- // after an exception, double the current idle interval to avoid
- // throwing exceptions continuously during anomalous conditions
+
+ // if still active wait for next batch
+ if (isActive) {
+ try {
+ if (success) {
+ // reset current idle interval
+ currentIdleInterval = jobExecutor.getIdleInterval();
+ // wait for next due job
+ long waitPeriod = getWaitPeriod(currentIdleInterval);
+ if (waitPeriod > 0) {
+ synchronized (jobExecutor) {
+ jobExecutor.wait(waitPeriod);
+ }
+ }
+ }
+ else {
+ // wait a random period, at least half the current idle interval
+ int waitPeriod = currentIdleInterval / 2;
+ // sleep instead of waiting on jobExecutor
+ // to prevent DbMessageService from waking up this thread
+ sleep(waitPeriod + random.nextInt(waitPeriod));
+ // after an exception, double the current idle interval
+ // to avoid continuous failures during anomalous conditions
currentIdleInterval *= 2;
+ // enforce maximum idle interval
+ int maxIdleInterval = jobExecutor.getMaxIdleInterval();
if (currentIdleInterval > maxIdleInterval || currentIdleInterval < 0) {
currentIdleInterval = maxIdleInterval;
}
}
- catch (InterruptedException ie) {
- if (log.isDebugEnabled()) log.debug(getName() + " got interrupted");
- }
}
+ catch (InterruptedException e) {
+ if (log.isDebugEnabled()) log.debug(getName() + " got interrupted");
+ }
}
}
log.info(getName() + " leaves cyberspace");
@@ -123,7 +103,7 @@
Collection jobs;
// acquire monitor before creating context and allocating resources
synchronized (jobExecutor) {
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
String lockOwner = getName();
JobSession jobSession = jbpmContext.getJobSession();
@@ -140,13 +120,21 @@
}
Date lockTime = new Date();
- int retries = jobExecutor.getRetries();
for (Iterator i = jobs.iterator(); i.hasNext();) {
Job job = (Job) i.next();
job.setLockOwner(lockOwner);
job.setLockTime(lockTime);
- // if job has not failed already, give it the configured retries
- if (job.getException() == null) job.setRetries(retries);
+ // has job failed previously?
+ if (job.getException() == null) {
+ // initialize retry count to configured value
+ job.setRetries(jobExecutor.getRetries());
+ }
+ else {
+ // decrease retry count
+ int retries = job.getRetries() - 1;
+ job.setRetries(retries);
+ if (debug) log.debug(job + " has " + retries + " retries remaining");
+ }
}
if (debug) log.debug("acquired " + jobs);
}
@@ -178,7 +166,7 @@
}
protected void executeJob(Job job) throws Exception {
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
JobSession jobSession = jbpmContext.getJobSession();
jobSession.reattachJob(job);
@@ -188,38 +176,35 @@
jbpmContext.addAutoSaveProcessInstance(job.getProcessInstance());
if (log.isDebugEnabled()) log.debug("executing " + job);
- try {
- if (job.execute(jbpmContext)) {
- jobSession.deleteJob(job);
- }
- }
- catch (Exception e) {
- // prevent unsafe use of the session after an exception occurs
- jbpmContext.setRollbackOnly();
- throw e;
- }
- catch (Error e) {
- jbpmContext.setRollbackOnly();
- throw e;
- }
-
- // if this job is locked too long
- long totalLockTimeInMillis = System.currentTimeMillis() - job.getLockTime().getTime();
- if (totalLockTimeInMillis > maxLockTime) {
- jbpmContext.setRollbackOnly();
- }
+ if (job.execute(jbpmContext)) jobSession.deleteJob(job);
}
+ catch (Exception e) {
+ jbpmContext.setRollbackOnly();
+ throw e;
+ }
+ catch (Error e) {
+ jbpmContext.setRollbackOnly();
+ throw e;
+ }
finally {
jbpmContext.close();
}
}
private void saveJobException(Job job, Exception exception) {
+ // if this is a locking exception, keep it quiet
+ if (DbPersistenceService.isLockingException(exception)) {
+ StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
+ .error("failed to execute " + job, exception);
+ }
+ else {
+ log.error("failed to execute " + job, exception);
+ }
+
boolean debug = log.isDebugEnabled();
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
- if (debug) log.debug("saving exception thrown by " + job);
- // do not reattach existing job, it may contain undesired updates
+ // do not reattach existing job as it contains undesired updates
JobSession jobSession = jbpmContext.getJobSession();
job = jobSession.loadJob(job.getId());
@@ -227,11 +212,6 @@
StringWriter out = new StringWriter();
exception.printStackTrace(new PrintWriter(out));
job.setException(out.toString());
-
- // decrease retry count
- int retries = job.getRetries() - 1;
- job.setRetries(retries);
- if (debug) log.debug(job + " has " + retries + " retries remaining");
}
catch (RuntimeException e) {
jbpmContext.setRollbackOnly();
@@ -261,21 +241,25 @@
}
protected Date getNextDueDate() {
- Date nextDueDate = null;
- String lockOwner = getName();
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ Date nextDueDate;
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
- JobSession jobSession = jbpmContext.getJobSession();
- Collection jobIdsToIgnore = jobExecutor.getMonitoredJobIds();
- Job job = jobSession.getFirstDueJob(lockOwner, jobIdsToIgnore);
+ String lockOwner = getName();
+ Job job = jbpmContext.getJobSession()
+ .getFirstDueJob(lockOwner, jobExecutor.getMonitoredJobIds());
if (job != null) {
- nextDueDate = job.getDueDate();
jobExecutor.addMonitoredJobId(lockOwner, job.getId());
+ nextDueDate = job.getDueDate();
}
+ else {
+ nextDueDate = null;
+ if (log.isDebugEnabled()) log.debug("no due job found");
+ }
}
catch (RuntimeException e) {
jbpmContext.setRollbackOnly();
- throw e;
+ nextDueDate = null;
+ if (log.isDebugEnabled()) log.debug("failed to determine next due date", e);
}
catch (Error e) {
jbpmContext.setRollbackOnly();
@@ -286,11 +270,8 @@
jbpmContext.close();
}
catch (RuntimeException e) {
- if (!DbPersistenceService.isLockingException(e)) throw e;
- // keep locking exception quiet
- StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
- .error("failed to determine next due date", e);
nextDueDate = null;
+ if (log.isDebugEnabled()) log.debug("failed to determine next due date", e);
}
}
return nextDueDate;
@@ -304,7 +285,8 @@
}
/**
- * Indicates that this thread should stop running. Execution will cease shortly afterwards.
+ * Indicates that this thread should stop running. Execution will cease
+ * shortly afterwards.
*/
public void deactivate() {
if (isActive) {
@@ -313,5 +295,5 @@
}
}
- private static Log log = LogFactory.getLog(JobExecutorThread.class);
+ private static final Log log = LogFactory.getLog(JobExecutorThread.class);
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/LockMonitorThread.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/LockMonitorThread.java 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/job/executor/LockMonitorThread.java 2010-03-24 22:28:43 UTC (rev 6233)
@@ -17,32 +17,25 @@
public static final String DEFAULT_NAME = "Monitor";
- final JbpmConfiguration jbpmConfiguration;
- final int lockMonitorInterval;
- final int maxLockTime;
- final int lockBufferTime;
+ private final JobExecutor jobExecutor;
+ private volatile boolean isActive = true;
- volatile boolean isActive = true;
-
public LockMonitorThread(JobExecutor jobExecutor) {
this(DEFAULT_NAME, jobExecutor);
}
public LockMonitorThread(String name, JobExecutor jobExecutor) {
super(jobExecutor.getThreadGroup(), name);
- jbpmConfiguration = jobExecutor.getJbpmConfiguration();
- lockMonitorInterval = jobExecutor.getLockMonitorInterval();
- maxLockTime = jobExecutor.getMaxLockTime();
- lockBufferTime = jobExecutor.getLockBufferTime();
+ this.jobExecutor = jobExecutor;
}
- /** @deprecated As of jBPM 3.2.6, replaced by {@link #LockMonitorThread(JobExecutor)} */
+ /**
+ * @deprecated As of jBPM 3.2.6, replaced by
+ * {@link #LockMonitorThread(JobExecutor)}
+ */
public LockMonitorThread(JbpmConfiguration jbpmConfiguration, int lockMonitorInterval,
- int maxLockTime, int lockBufferTime) {
- this.jbpmConfiguration = jbpmConfiguration;
- this.lockMonitorInterval = lockMonitorInterval;
- this.maxLockTime = maxLockTime;
- this.lockBufferTime = lockBufferTime;
+ int maxLockTime, int lockBufferTime) {
+ jobExecutor = jbpmConfiguration.getJobExecutor();
}
public void run() {
@@ -55,7 +48,7 @@
}
if (isActive) {
try {
- sleep(lockMonitorInterval);
+ sleep(jobExecutor.getLockMonitorInterval());
}
catch (InterruptedException e) {
log.info(getName() + " got interrupted");
@@ -66,15 +59,13 @@
}
protected void unlockOverdueJobs() {
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = jobExecutor.getJbpmConfiguration().createJbpmContext();
try {
- Date threshold = new Date(System.currentTimeMillis() - maxLockTime - lockBufferTime);
+ Date threshold = new Date(System.currentTimeMillis() - jobExecutor.getMaxLockTime());
List overdueJobs = jbpmContext.getJobSession().findJobsWithOverdueLockTime(threshold);
for (Iterator i = overdueJobs.iterator(); i.hasNext();) {
Job job = (Job) i.next();
- if (log.isDebugEnabled()) {
- log.debug("unlocking " + job + " owned by " + job.getLockOwner());
- }
+ if (log.isDebugEnabled()) log.debug("unlocking " + job);
job.setLockOwner(null);
job.setLockTime(null);
}
@@ -84,7 +75,7 @@
if (!DbPersistenceService.isLockingException(e)) throw e;
// keep locking exception quiet
StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
- .error("could not unlock overdue jobs", e);
+ .error("could not unlock overdue jobs", e);
}
catch (Error e) {
jbpmContext.setRollbackOnly();
@@ -98,7 +89,7 @@
if (!DbPersistenceService.isLockingException(e)) throw e;
// keep locking exception quiet
StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
- .error("could not unlock overdue jobs", e);
+ .error("could not unlock overdue jobs", e);
}
}
}
@@ -111,7 +102,8 @@
}
/**
- * Indicates that this thread should stop running. Execution will cease shortly afterwards.
+ * Indicates that this thread should stop running. Execution will cease
+ * shortly afterwards.
*/
public void deactivate() {
if (isActive) {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml 2010-03-24 22:28:43 UTC (rev 6233)
@@ -10,7 +10,7 @@
<query name="GraphSession.AllProcessNames">
<![CDATA[
- select distinct (pd.name)
+ select distinct pd.name
from org.jbpm.graph.def.ProcessDefinition pd
]]>
</query>
@@ -33,7 +33,7 @@
<query name="GraphSession.findLatestProcessDefinitionQuery">
<![CDATA[
select pd
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
where pd.name = :name
order by pd.version desc
]]>
@@ -42,7 +42,7 @@
<query name="GraphSession.findProcessDefinitionByNameAndVersion">
<![CDATA[
select pd
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
where pd.name = :name
and pd.version = :version
]]>
@@ -51,7 +51,7 @@
<query name="GraphSession.findAllProcessDefinitions">
<![CDATA[
select pd
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
order by pd.name, pd.version desc
]]>
</query>
@@ -59,7 +59,7 @@
<query name="GraphSession.findAllProcessDefinitionVersions">
<![CDATA[
select pd
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
where pd.name = :name
order by pd.version desc
]]>
@@ -68,16 +68,15 @@
<query name="GraphSession.findLatestProcessDefinitions">
<![CDATA[
select pd.name, max(pd.version)
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
group by pd.name
]]>
- <!-- better alternative, if your database supports ansi sql tuple syntax -->
- <!--
+ <!-- better alternative, if all databases supported ansi sql tuple syntax
select pd
- from org.jbpm.graph.def.ProcessDefinition as pd
- where ( pd.name, pd.version ) in (
+ from org.jbpm.graph.def.ProcessDefinition pd
+ where (pd.name, pd.version) in (
select pd.name, max(pd.version)
- from org.jbpm.graph.def.ProcessDefinition as pd
+ from org.jbpm.graph.def.ProcessDefinition pd
group by pd.name
)
-->
@@ -86,7 +85,7 @@
<query name="GraphSession.findAllProcessInstancesForDefinition">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.processDefinition.id = :processDefinitionId
order by pi.start desc
]]>
@@ -95,7 +94,7 @@
<query name="GraphSession.findAllProcessInstanceIdsForDefinition">
<![CDATA[
select pi.id
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.processDefinition.id = :processDefinitionId
]]>
</query>
@@ -103,7 +102,7 @@
<query name="GraphSession.findReferencingProcessStates">
<![CDATA[
select ps
- from org.jbpm.graph.node.ProcessState as ps
+ from org.jbpm.graph.node.ProcessState ps
where ps.subProcessDefinition = :subProcessDefinition
]]>
</query>
@@ -114,7 +113,7 @@
<query name="GraphSession.findAllRunningProcessInstancesWithProcessName">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.processDefinition.name = :processDefinitionName
and pi.end is null
order by pi.start desc
@@ -124,7 +123,7 @@
<query name="GraphSession.findAllProcessInstancesWithProcessName">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.processDefinition.name = :processDefinitionName
order by pi.start desc
]]>
@@ -133,7 +132,7 @@
<query name="GraphSession.findAllRunningProcessInstances">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.end is null
order by pi.start desc
]]>
@@ -142,7 +141,7 @@
<query name="GraphSession.findAllProcessInstances">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
order by pi.start desc
]]>
</query>
@@ -150,7 +149,7 @@
<query name="GraphSession.findSubProcessInstances">
<![CDATA[
select pi
- from org.jbpm.graph.exe.ProcessInstance as pi
+ from org.jbpm.graph.exe.ProcessInstance pi
where pi.superProcessToken is not null
and pi.superProcessToken.processInstance = :processInstance
order by pi.start desc
@@ -188,7 +187,7 @@
<query name="GraphSession.findLogsForProcessInstance">
<![CDATA[
select pl
- from org.jbpm.logging.log.ProcessLog as pl
+ from org.jbpm.logging.log.ProcessLog pl
where pl.token.processInstance = :processInstance
]]>
</query>
@@ -228,11 +227,9 @@
<query name="GraphSession.findActiveNodesByProcessInstance">
<![CDATA[
select node
- from org.jbpm.graph.def.Node node,
- org.jbpm.graph.exe.Token token,
- org.jbpm.graph.exe.ProcessInstance processInstance
+ from org.jbpm.graph.exe.Token token
+ join token.node node
where token.processInstance = :processInstance
- and token.node = node
and token.isSuspended = false
and token.parent is not null
and token.end is null
@@ -242,7 +239,7 @@
<query name="GraphSession.findAllSwimlaneNames">
<![CDATA[
select distinct swimlane.name
- from org.jbpm.taskmgmt.def.Swimlane as swimlane
+ from org.jbpm.taskmgmt.def.Swimlane swimlane
]]>
</query>
@@ -252,7 +249,7 @@
<query name="LoggingSession.findLogsByToken">
<![CDATA[
select pl
- from org.jbpm.logging.log.ProcessLog as pl
+ from org.jbpm.logging.log.ProcessLog pl
where pl.token = :token
order by pl.index
]]>
@@ -264,7 +261,7 @@
<query name="JobSession.getFirstAcquirableJob">
<![CDATA[
select job
- from org.jbpm.job.Job as job
+ from org.jbpm.job.Job job
where (job.lockOwner is null or job.lockOwner = :lockOwner)
and job.retries > 0
and job.dueDate <= :now
@@ -276,7 +273,7 @@
<query name="JobSession.findExclusiveJobs">
<![CDATA[
select job
- from org.jbpm.job.Job as job
+ from org.jbpm.job.Job job
where (job.lockOwner is null or job.lockOwner = :lockOwner)
and job.retries > 0
and job.dueDate <= :now
@@ -290,7 +287,7 @@
<query name="JobSession.getFirstDueJob">
<![CDATA[
select job
- from org.jbpm.job.Job as job
+ from org.jbpm.job.Job job
where (job.lockOwner is null or job.lockOwner = :lockOwner)
and job.retries > 0
and job.isSuspended = false
@@ -301,7 +298,7 @@
<query name="JobSession.getFirstDueJobExcludingMonitoredJobs">
<![CDATA[
select job
- from org.jbpm.job.Job as job
+ from org.jbpm.job.Job job
where (job.lockOwner is null or job.lockOwner = :lockOwner)
and job.id not in (:monitoredJobIds)
and job.retries > 0
@@ -384,7 +381,7 @@
<query name="JobSession.findJobsWithOverdueLockTime">
<![CDATA[
select job
- from org.jbpm.job.Job as job
+ from org.jbpm.job.Job job
where job.lockTime < :threshold
]]>
</query>
@@ -395,7 +392,7 @@
<query name="TaskMgmtSession.findTaskInstancesByActorId">
<![CDATA[
select ti
- from org.jbpm.taskmgmt.exe.TaskInstance as ti
+ from org.jbpm.taskmgmt.exe.TaskInstance ti
where ti.actorId = :actorId
and ti.isSuspended = false
and ti.isOpen = true
@@ -405,7 +402,7 @@
<query name="TaskMgmtSession.findTaskInstancesByActorIds">
<![CDATA[
select ti
- from org.jbpm.taskmgmt.exe.TaskInstance as ti
+ from org.jbpm.taskmgmt.exe.TaskInstance ti
where ti.actorId in (:actorIds)
and ti.isSuspended = false
and ti.isOpen = true
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/default.jbpm.cfg.xml 2010-03-24 22:28:43 UTC (rev 6233)
@@ -66,12 +66,11 @@
<property name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></property>
<property name="name"><string value="JbpmJobExecutor" /></property>
<property name="nbrOfThreads"><int value="1" /></property>
- <property name="retries"><int value="3" /></property>
- <property name="idleInterval"><int value="5000" /></property>
- <property name="maxIdleInterval"><int value="3600000" /><!-- 1 hour --></property>
- <property name="maxLockTime"><int value="600000" /><!-- 10 minutes --></property>
- <property name="lockMonitorInterval"><int value="60000" /><!-- 1 minute --></property>
- <property name="lockBufferTime"><int value="5000" /><!-- 5 seconds --></property>
+ <property name="retries"><int value="2" /></property>
+ <property name="idleInterval"><!-- 5 seconds --><int value="5000" /></property>
+ <property name="maxIdleInterval"><!-- 1 hour --><int value="3600000" /></property>
+ <property name="maxLockTime"><!-- 10 minutes --><int value="600000" /></property>
+ <property name="lockMonitorInterval"><!-- 1 minute --><int value="60000" /></property>
</bean>
</jbpm-configuration>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/async.xml 2010-03-24 22:28:43 UTC (rev 6233)
@@ -7,14 +7,13 @@
<para>jBPM is based on Graph Oriented Programming (GOP). Basically, GOP specifies a
simple state machine that can handle concurrent paths of execution. But in the execution
algorithm specified in GOP, all state transitions are done in a single operation in the
- thread of the client. If you're not familiar with the execution algorithm defined in
- <xref linkend="graphorientedprogramming" />, please read that first. By default, this
+ thread of the client. By default, this
performing state transitions in the thread of the client is a good approach cause it fits
naturally with server side transactions. The process execution moves from one wait state
to another wait state in one transaction.
</para>
- <para>But in some situations, a developer might want to fine-tune the transaction
+ <para>In some situations, a developer might want to fine-tune the transaction
demarcation in the process definition. In jPDL, it is possible to specify that the process
execution should continue asynchronously with the attribute <literal>async="true"</literal>.
<literal>async="true"</literal> can be specified on all node types and all action types.
@@ -88,17 +87,18 @@
<para>In jBPM, asynchronous continuations are realized by using an asynchronous messaging
system. When the process execution arrives at a point that should be executed
- asynchronously, jBPM will suspend the execution, produces a command message and send it
+ asynchronously, jBPM will suspend the execution, produces a job message and send it
to the command executor. The command executor is a separate component that, upon receipt
of a message, will resume the execution of the process where it got suspended.
</para>
<para>jBPM can be configured to use a JMS provider or its built-in asynchronous messaging
- system. The built-in messaging system is quite limited in functionality, but allowes
+ system. The built-in messaging system is quite limited in functionality, but allows
this feature to be supported on environments where JMS is unavailable.
</para>
</section>
+
<section id="thejobexecutor">
<title>The job executor</title>
@@ -110,7 +110,7 @@
<para>These job messages are produced by the process execution. During process execution,
for each node or action that has to be executed asynchronously, a <literal>Job</literal>
- (POJO) will be dispatched to the <literal>MessageService</literal>. The message service
+ object will be dispatched to the <literal>MessageService</literal>. The message service
is associated with the <literal>JbpmContext</literal> and it just collects all the
messages that have to be sent.
</para>
@@ -143,7 +143,7 @@
acquires a job by putting its name into the owner field of the job. Each thread has a unique
name based on ip-address and sequence number. Hibernate's optimistic locking is enabled on
<literal>Job</literal>-objects. So if 2 threads try to acquire a job concurrently, one of
- them will get a StaleObjectException and rollback. Only the first one will succeed. The
+ them will get a <literal>StaleStateException</literal> and rollback. Only the first one will succeed. The
thread that succeeds in acquiring a job is now responsible for executing it in a separate
transaction.
</para>
@@ -178,34 +178,104 @@
</para>
</section>
+ <section id="configuringjobexecutor">
+ <title>Configuring the job executor</title>
+
+ <para>The job executor exposes a few properties you can tune. To change any of the
+ values described below, edit the <literal>jbpm.job.executor</literal> bean in
+ <literal>jbpm.cfg.xml</literal>.</para>
+
+ <table><title>Job executor properties</title>
+ <tgroup cols='3'>
+ <colspec colname='attr' colwidth="*" />
+ <colspec colname='desc' colwidth="4*" />
+ <colspec colname="def" colwidth="*"/>
+
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+
+ <![CDATA[
+ <property name="nbrOfThreads"><int value="1" /></property>
+ <property name="retries"><int value="3" /></property>
+ <property name="idleInterval"><int value="5000" /></property>
+ <property name="maxIdleInterval"><int value="3600000" /><!-- 1 hour --></property>
+ <property name="maxLockTime"><int value="600000" /><!-- 10 minutes --></property>
+ <property name="lockMonitorInterval"><int value="60000" /><!-- 1 minute --></property>
+ <property name="lockBufferTime"><int value="5000" /><!-- 5 seconds --></property>]]>
+
+ <tbody>
+ <row>
+ <entry>nbrOfThreads</entry>
+ <entry>Size of the job executor thread pool</entry>
+ <entry>1</entry>
+ </row>
+ <row>
+ <entry>retries</entry>
+ <entry>Number of times the job executor retries a failed job</entry>
+ <entry>2</entry>
+ </row>
+ <row>
+ <entry>idleInterval</entry>
+ <entry>Period between checks for new jobs (milliseconds)</entry>
+ <entry>5 seconds</entry>
+ </row>
+ <row>
+ <entry>maxIdleInterval</entry>
+ <entry>When a job fails, the affected thread pauses for a period initially equal
+ to <literal>idleInterval</literal>, which is increased twofold until it reaches
+ <literal>maxIdleInterval</literal> (milliseconds)</entry>
+ <entry>1 hour</entry>
+ </row>
+ <row>
+ <entry>maxLockTime</entry>
+ <entry>Amount of time a job executor thread is allowed to hold a job before
+ the job is released and offered to other threads (milliseconds)</entry>
+ <entry>10 minutes</entry>
+ </row>
+ <row>
+ <entry>lockMonitorInterval</entry>
+ <entry>Period between checks for job lock times (milliseconds)</entry>
+ <entry>1 minute</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ </section>
+
<section id="jbpmsbuiltinasynchronousmessaging">
<title>jBPM's built-in asynchronous messaging</title>
<para>When using jBPM's built-in asynchronous messaging, job messages will be sent by persisting
- them to the database. This message persisting can be done in the same transaction/JDBC
+ them to the database. This message persisting is done in the same transaction/JDBC
connection as the jBPM process updates.
</para>
<para>The job messages will be stored in the <literal>JBPM_JOB</literal> table.
</para>
- <para>The POJO command executor (<literal>org.jbpm.msg.command.CommandExecutor</literal>)
+ <para>The job executor (<literal>org.jbpm.job.executor.JobExecutor</literal>)
will read the messages from the database table and execute them. So the typical
- transaction of the POJO command executor looks like this: 1) read next command message
- 2) execute command message 3) delete command message.
+ transaction of the job executor looks like this: 1) read next job message
+ 2) execute job 3) delete job message.
</para>
- <para>If execution of a command message fails, the transaction will be rolled back.
- After that, a new transaction will be started that adds the error message to the
- message in the database. The command executor filters out all messages that contain
+ <para>If execution of a job fails, the transaction will be rolled back.
+ After that, a new transaction will be started that adds the exception stack trace to the
+ job message in the database. The job executor filters out all messages that contain
an exception.
</para>
- <figure id="pojo.command.executor.image">
- <title>POJO command executor transactions</title>
+ <figure id="job.executor.image">
+ <title>Job executor transactions</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/pojo.command.executor.gif"/></imageobject></mediaobject>
</figure>
<para>If for some reason or another, the transaction that adds the exception to the
- command message would fail, it is rolled back as well. In that case, the
- message remains in the queue without an exception so it will be retried later.
+ job message would fail, it is rolled back as well. In that case, the
+ message remains in the database without an exception so it will be retried later.
</para>
<para>Limitation: beware that jBPM's built-in asynchronous messaging system does
- not support multinode locking. So you cannot just deploy the POJO command
+ not support multinode locking. So you cannot just deploy the job
executor multiple times and have them configured to use the same database.
</para>
</section>
Modified: jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml 2010-03-19 11:20:08 UTC (rev 6232)
+++ jbpm3/branches/jbpm-3.2-soa/modules/userguide/src/main/docbook/en/modules/configuration.xml 2010-03-24 22:28:43 UTC (rev 6233)
@@ -44,50 +44,70 @@
<para>Here's the default configuration for the JbpmContext:
</para>
-<programlisting><jbpm-configuration>
+<programlisting><![CDATA[<jbpm-configuration>
+
+ <jbpm-context>
+ <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
+ <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
+ <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
+ <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
+ <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
+ <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
+ </jbpm-context>
- <jbpm-context>
- <service name='persistence' factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />
- <service name='message' factory='org.jbpm.msg.db.DbMessageServiceFactory' />
- <service name='scheduler' factory='org.jbpm.scheduler.db.DbSchedulerServiceFactory' />
- <service name='logging' factory='org.jbpm.logging.db.DbLoggingServiceFactory' />
- <service name='authentication' factory='org.jbpm.security.authentication.DefaultAuthenticationServiceFactory' />
- </jbpm-context>
+ <!-- database persistence configuration -->
+ <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
+ <!-- additional database persistence properties
+ <string name="resource.hibernate.properties" value="hibernate.properties" />
+ -->
- <!-- configuration resource files pointing to default configuration files in jbpm-{version}.jar -->
- <string name='resource.hibernate.cfg.xml' value='hibernate.cfg.xml' />
+ <!-- entries pointing to default configuration resources in jbpm-jpdl.jar -->
+ <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
+ <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
+ <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
+ <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
+ <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
+ <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
+ <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
+ <string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
- <!-- <string name='resource.hibernate.properties' value='hibernate.properties' /> -->
- <string name='resource.business.calendar' value='org/jbpm/calendar/jbpm.business.calendar.properties' />
- <string name='resource.default.modules' value='org/jbpm/graph/def/jbpm.default.modules.properties' />
- <string name='resource.converter' value='org/jbpm/db/hibernate/jbpm.converter.properties' />
- <string name='resource.action.types' value='org/jbpm/graph/action/action.types.xml' />
- <string name='resource.node.types' value='org/jbpm/graph/node/node.types.xml' />
- <string name='resource.parsers' value='org/jbpm/jpdl/par/jbpm.parsers.xml' />
- <string name='resource.varmapping' value='org/jbpm/context/exe/jbpm.varmapping.xml' />
- <string name='resource.mail.templates' value='jbpm.mail.templates.xml' />
+ <!-- alternate delegation class loader
+ <string name="jbpm.class.loader" value="context" />
+ -->
+ <bean name="process.class.loader.factory" class="org.jbpm.instantiation.SharedProcessClassLoaderFactory" singleton="true" />
+ <bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
- <int name='jbpm.byte.block.size' value="1024" singleton="true" />
- <bean name='jbpm.task.instance.factory' class='org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl' singleton='true' />
- <bean name='jbpm.variable.resolver' class='org.jbpm.jpdl.el.impl.JbpmVariableResolver' singleton='true' />
- <string name='jbpm.mail.smtp.host' value='localhost' />
- <bean name='jbpm.mail.address.resolver' class='org.jbpm.identity.mail.IdentityAddressResolver' singleton='true' />
- <string name='jbpm.mail.from.address' value='jbpm@noreply' />
+ <!-- make sure the block size matches the length in ByteArray.hbm.xml -->
+ <int name="jbpm.byte.block.size" value="1024" singleton="true" />
- <bean name='jbpm.job.executor' class='org.jbpm.job.executor.JobExecutor'>
- <field name='jbpmConfiguration'><ref bean='jbpmConfiguration' /></field>
- <field name='name'><string value='JbpmJobExecutor' /></field>
- <field name='nbrOfThreads'><int value='1' /></field>
- <field name='idleInterval'><int value='5000' /></field>
- <field name='maxIdleInterval'><int value='3600000' /></field> <!-- 1 hour -->
- <field name='historyMaxSize'><int value='20' /></field>
- <field name='maxLockTime'><int value='600000' /></field> <!-- 10 minutes -->
- <field name='lockMonitorInterval'><int value='60000' /></field> <!-- 1 minute -->
- <field name='lockBufferTime'><int value='5000' /></field> <!-- 5 seconds -->
- </bean>
+ <bean name="jbpm.expression.evaluator" class="org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl" singleton="true" />
+ <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
+ <!-- custom function mapper
+ <bean name="jbpm.function.mapper" class="org.example.FunctionMapperImpl" />
+ -->
+ <!-- user code interceptor
+ <bean name="jbpm.user.code.interceptor" class="org.example.UserCodeInterceptorImpl" />
+ -->
-</jbpm-configuration></programlisting>
+ <!-- mail settings -->
+ <string name="jbpm.mail.smtp.host" value="localhost" />
+ <string name="jbpm.mail.from.address" value="jbpm@noreply" />
+ <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
+
+ <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
+ <property name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></property>
+ <property name="name"><string value="JbpmJobExecutor" /></property>
+ <property name="nbrOfThreads"><int value="1" /></property>
+ <property name="retries"><int value="3" /></property>
+ <property name="idleInterval"><int value="5000" /></property>
+ <property name="maxIdleInterval"><int value="3600000" /><!-- 1 hour --></property>
+ <property name="maxLockTime"><int value="600000" /><!-- 10 minutes --></property>
+ <property name="lockMonitorInterval"><int value="60000" /><!-- 1 minute --></property>
+ <property name="lockBufferTime"><int value="5000" /><!-- 5 seconds --></property>
+ </bean>
+</jbpm-configuration>]]></programlisting>
+
<para>In this configuration file you can see 3 parts:
</para>
@@ -103,13 +123,13 @@
Then you update the reference in this file and jbpm will use your customized version
of that configuration file.
</para></listitem>
- <listitem><para>The third part are some miscallanious configurations used in jbpm.
+ <listitem><para>The third part are some miscellaneous configurations used in jbpm.
These configuration options are described in the chapters that cover the
specific topic.
</para></listitem>
</itemizedlist>
- <para>The default configured set of services is targetted at a simple webapp environment
+ <para>The default configured set of services is targeted at a simple webapp environment
and minimal dependencies. The persistence service will obtain a jdbc connection and all
the other services will use the same connection to perform their services. So all of your
workflow operations are centralized into 1 transaction on a JDBC connection without the
@@ -138,7 +158,7 @@
<para>Note that the <literal>XxxForUpdate</literal> methods will register the loaded
object for auto-save so that you don't have to call one of the save methods
- explicitely.
+ explicitly.
</para>
<para>It's possible to specify multiple <literal>jbpm-context</literal>s, but then you have
14 years, 1 month
JBoss JBPM SVN: r6232 - in jbpm3/branches/jbpm-3.2-soa/modules: enterprise/src/test/resources/deployment/fork-join-example and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-19 07:20:08 -0400 (Fri, 19 Mar 2010)
New Revision: 6232
Removed:
jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/test/resources/deployment/fork-join-example/processimage.jpg
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-jbm-service.xml
jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-mq-service.xml
Log:
JBPM-1952 a small redelivery delay in job queue goes a long way towards mitigating stale state exceptions and deadlocks under heavy concurrency conditions
Modified: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-jbm-service.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-jbm-service.xml 2010-03-18 21:41:23 UTC (rev 6231)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-jbm-service.xml 2010-03-19 11:20:08 UTC (rev 6232)
@@ -17,6 +17,9 @@
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
+ <!-- JBPM-1952 a small redelivery delay goes a long way towards mitigating
+ stale state exceptions and deadlocks under heavy concurrency conditions -->
+ <attribute name="RedeliveryDelay">1000</attribute>
</mbean>
<mbean code="org.jboss.jms.server.destination.QueueService"
@@ -24,6 +27,7 @@
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="RedeliveryDelay">1000</attribute>
</mbean>
</server>
\ No newline at end of file
Modified: jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-mq-service.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-mq-service.xml 2010-03-18 21:41:23 UTC (rev 6231)
+++ jbpm3/branches/jbpm-3.2-soa/modules/distribution/src/main/resources/destination/jbpm-mq-service.xml 2010-03-19 11:20:08 UTC (rev 6232)
@@ -11,20 +11,19 @@
-->
<server>
- <!--
- Destinations without a configured SecurityManager or without a
- SecurityConf will default to role guest with read=true, write=true,
- create=false.
- -->
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=JbpmJobQueue">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+ <!-- JBPM-1952 a small redelivery delay goes a long way towards mitigating
+ stale state exceptions and deadlocks under heavy concurrency conditions -->
+ <attribute name="RedeliveryDelay">1000</attribute>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=JbpmCommandQueue">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+ <attribute name="RedeliveryDelay">1000</attribute>
</mbean>
</server>
Deleted: jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/test/resources/deployment/fork-join-example/processimage.jpg
===================================================================
(Binary files differ)
14 years, 1 month
JBoss JBPM SVN: r6231 - jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/jpdl.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-03-18 17:41:23 -0400 (Thu, 18 Mar 2010)
New Revision: 6231
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/jpdl/SimAction.java
Log:
fix sim action not properly setting up a process class loader
Modified: jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/jpdl/SimAction.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/jpdl/SimAction.java 2010-03-18 20:29:41 UTC (rev 6230)
+++ jbpm3/branches/jbpm-3.2-soa/modules/simulation/src/main/java/org/jbpm/sim/jpdl/SimAction.java 2010-03-18 21:41:23 UTC (rev 6231)
@@ -1,48 +1,50 @@
package org.jbpm.sim.jpdl;
import org.dom4j.Element;
+
+import org.jbpm.JbpmConfiguration;
import org.jbpm.graph.def.Action;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.jpdl.xml.JpdlXmlReader;
/**
- * The SimAction class adds behavior to check, if the action should be executed in a simulation run.
+ * The SimAction class adds behavior to check, if the action should be executed
+ * in a simulation run.
*
* Default behavior is: not execute.
*
* To execute an action during a simulation run, you have to configure either
- * the attribute <b>simulation</b> with the value 'execute' or to add a
- * <simulation-class> element, which defines a special handler for the simulation.
+ * the attribute <b>simulation</b> with the value 'execute' or to add a
+ * <simulation-class> element, which defines a special handler for the
+ * simulation.
*
- * Another way is to define not a <action>, but a <simulation-action>, which is only
- * executed in simulation runs
+ * Another way is to define not a <action>, but a <simulation-action>, which is
+ * only executed in simulation runs
*
* @author bernd.ruecker(a)camunda.com
*/
public class SimAction extends Action {
private static final long serialVersionUID = 1L;
-
- private boolean simulate = false;
-
- private boolean simulationHandlerChecked = false;
+ private boolean simulate;
+ private boolean simulationHandlerChecked;
+
public void read(Element actionElement, JpdlXmlReader jpdlReader) {
super.read(actionElement, jpdlReader);
String simulation = actionElement.attributeValue("simulation");
- if ( "execute".equals(simulation)
- || "simulation-action".equals(actionElement.getQName().getName())
- ) {
+ if ("execute".equals(simulation)
+ || "simulation-action".equals(actionElement.getQName().getName())) {
simulate = true;
}
-
+
String simulationClass = actionElement.attributeValue("simulation-class");
- if (simulationClass!=null) {
+ if (simulationClass != null) {
simulate = true;
actionDelegation.setClassName(simulationClass);
// don't use same configuration in this case
- // if the user wants the same configurations, he has to use a own
+ // if the user wants the same configurations, he has to use a own
// SimulationAction
// TODO: Maybe make some configuration property for this?
actionDelegation.setConfiguration(null);
@@ -52,35 +54,51 @@
public void execute(ExecutionContext executionContext) throws Exception {
// check if the delegation class implements one of the simulation interfaces
if (!simulationHandlerChecked) {
- Object delegation = actionDelegation.getInstance();
+ Thread currentThread = Thread.currentThread();
+ ClassLoader contextClassLoader = currentThread.getContextClassLoader();
+ try {
+ // set context class loader correctly for delegation class
+ // (https://jira.jboss.org/jira/browse/JBPM-1448)
+ ClassLoader processClassLoader =
+ JbpmConfiguration.getProcessClassLoader(executionContext.getProcessDefinition());
+ currentThread.setContextClassLoader(processClassLoader);
- // if the SimulationHandler is implemented, change the action to call the simExecute instead
- if (SimulationHandler.class.isAssignableFrom( delegation.getClass() )) {
- simulate = true;
- referencedAction = new ActionHandlerDelegation( (SimulationHandler)delegation );
+ Object delegation = actionDelegation.getInstance();
+
+ // if the SimulationHandler is implemented, change the action to call
+ // the simExecute instead
+ if (delegation instanceof SimulationHandler) {
+ simulate = true;
+ referencedAction = new ActionHandlerDelegation((SimulationHandler) delegation);
+ }
+ // if the SimulationNoop is implemented skip execution completely
+ else if (delegation instanceof SimulationNoop) {
+ simulate = false;
+ }
+ simulationHandlerChecked = true;
}
- // if the SimulationNoop is implemented skip execution completely
- else if (SimulationNoop.class.isAssignableFrom( delegation.getClass() ))
- simulate = false;
- simulationHandlerChecked = true;
+ finally {
+ currentThread.setContextClassLoader(contextClassLoader);
+ }
}
if (simulate) {
super.execute(executionContext);
}
}
-
+
private class ActionHandlerDelegation extends Action {
-
+
private SimulationHandler delegate;
private static final long serialVersionUID = 1L;
-
+
public ActionHandlerDelegation(SimulationHandler delegate) {
this.delegate = delegate;
}
+
public void execute(ExecutionContext executionContext) throws Exception {
delegate.simExecute(executionContext);
- }
+ }
}
}
14 years, 1 month
JBoss JBPM SVN: r6230 - jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/command and 83 other directories.
by do-not-reply@jboss.org
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/Semaphore.html">
- * <code>java.util.concurrent.Semaphore</code></a>
+ * @see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Semaphore.html"
+ * >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-1072</a>
* @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-1106</a>
* @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-1135</a>
* @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-1452</a>
* @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-1755</a>
* @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-1921</a>
* @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-2017</a>
* @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-2263</a>
* @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-2375</a>
* @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-2489</a>
* @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-2787</a>
*/
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-2828</a>
* @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-2043</a>
* @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);
}
14 years, 1 month