[jbpm-commits] JBoss JBPM SVN: r5484 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src: test/java/org/jbpm/taskmgmt/exe and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 17 22:20:19 EDT 2009
Author: alex.guizar at jboss.com
Date: 2009-08-17 22:20:19 -0400 (Mon, 17 Aug 2009)
New Revision: 5484
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/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java
Log:
test task variable query
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 2009-08-18 02:06:38 UTC (rev 5483)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java 2009-08-18 02:20:19 UTC (rev 5484)
@@ -335,8 +335,8 @@
}
/**
- * cancels this task. This task intance will be marked as cancelled and as ended. But cancellation
- * doesn't influence singalling and continuation of process execution.
+ * cancels this task. This task instance will be marked as cancelled and as ended. But cancellation
+ * doesn't influence signalling and continuation of process execution.
*/
public void cancel() {
markAsCancelled();
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 2009-08-18 02:06:38 UTC (rev 5483)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java 2009-08-18 02:20:19 UTC (rev 5484)
@@ -24,10 +24,17 @@
import java.util.HashMap;
import java.util.Map;
+import org.hibernate.Hibernate;
+import org.hibernate.criterion.Restrictions;
+
import org.jbpm.context.exe.ContextInstance;
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;
+import org.jbpm.graph.node.TaskNode;
+import org.jbpm.taskmgmt.def.Task;
public class TaskVariablesDbTest extends AbstractDbTestCase {
@@ -39,8 +46,8 @@
newTransaction();
try {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
- TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createTaskInstance(
- processInstance.getRootToken());
+ TaskInstance taskInstance = processInstance.getTaskMgmtInstance()
+ .createTaskInstance(processInstance.getRootToken());
taskInstance.setVariable("key", "value");
taskInstance = saveAndReload(taskInstance);
@@ -336,4 +343,66 @@
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
+
+ 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);
+
+ newTransaction();
+ try {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+
+ 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());
+ }
+ }
+
+ 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();
+ }
+
+ public static final class CreateTasksAction implements ActionHandler {
+
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ExecutionContext executionContext) throws Exception {
+ TaskNode taskNode = (TaskNode) executionContext.getNode();
+ Task task = taskNode.getTask("vartask");
+ TaskMgmtInstance taskMgmtInstance = executionContext.getTaskMgmtInstance();
+
+ for (int index = 0; index < 5; index++) {
+ TaskInstance ti = taskMgmtInstance.createTaskInstance(task, executionContext);
+ ti.setVariableLocally("index", new Long(index));
+ }
+ }
+
+ }
}
More information about the jbpm-commits
mailing list