[jbpm-commits] JBoss JBPM SVN: r6116 - in jbpm4/trunk/modules/jpdl/src: main/java/org/jbpm/jpdl/internal/xml and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Jan 21 16:40:24 EST 2010
Author: alex.guizar at jboss.com
Date: 2010-01-21 16:40:24 -0500 (Thu, 21 Jan 2010)
New Revision: 6116
Added:
jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TaskParsingTest.java
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ActivityParsingTest.java
jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlParseTestCase.java
Log:
JBPM-2560: incorporate patch and test case
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java 2010-01-21 14:27:19 UTC (rev 6115)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java 2010-01-21 21:40:24 UTC (rev 6116)
@@ -28,7 +28,7 @@
import org.jbpm.api.JbpmException;
import org.jbpm.api.activity.ActivityExecution;
import org.jbpm.api.model.Transition;
-import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.cal.BusinessCalendar;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.history.HistoryEvent;
import org.jbpm.pvm.internal.history.events.TaskActivityStart;
@@ -50,8 +50,6 @@
private static final long serialVersionUID = 1L;
- private static final Log log = Log.getLog(TaskActivity.class.getName());
-
protected TaskDefinitionImpl taskDefinition;
public void execute(ActivityExecution execution) {
@@ -76,7 +74,13 @@
task.setDescription(taskDefinition.getDescription());
task.setPriority(taskDefinition.getPriority());
task.setFormResourceName(taskDefinition.getFormResourceName());
-
+
+ // calculate the due date of the task based on the due date duration
+ if (taskDefinition.getDueDateDuration() != null) {
+ BusinessCalendar businessCalendar = EnvironmentImpl.getFromCurrent(BusinessCalendar.class);
+ task.setDuedate(businessCalendar.add(task.getCreateTime(), taskDefinition.getDueDateDuration()));
+ }
+
// save task so that TaskDbSession.findTaskByExecution works for assign event listeners
dbSession.save(task);
@@ -159,28 +163,14 @@
// Likely a programmatic error.
throw new JbpmException("No transition named '" + signalName + "' was found.");
}
-
}
if (transition!=null) {
execution.take(transition);
}
-
}
}
- /**
- * Checks if the given collection of transitions are all named or not.
- */
- private boolean allTransitionsNamed(Collection<Transition> transitions) {
- for (Transition transition : transitions) {
- if (transition.getName() == null) {
- return false;
- }
- }
- return true;
- }
-
public TaskDefinitionImpl getTaskDefinition() {
return taskDefinition;
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2010-01-21 14:27:19 UTC (rev 6115)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2010-01-21 21:40:24 UTC (rev 6116)
@@ -526,7 +526,15 @@
String form = XmlUtil.attribute(element, "form");
taskDefinition.setFormResourceName(form);
-
+
+ String duedate = XmlUtil.attribute(element, "duedate");
+ taskDefinition.setDueDateDuration(duedate);
+
+ Integer priority = XmlUtil.attributeInteger(element, "priority", false, parse);
+ if (priority != null) {
+ taskDefinition.setPriority(priority);
+ }
+
ProcessDefinitionImpl processDefinition = parse.contextStackFind(ProcessDefinitionImpl.class);
if (processDefinition.getTaskDefinition(taskName)!=null) {
parse.addProblem("duplicate task name "+taskName, element);
Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ActivityParsingTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ActivityParsingTest.java 2010-01-21 14:27:19 UTC (rev 6115)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ActivityParsingTest.java 2010-01-21 21:40:24 UTC (rev 6116)
@@ -31,7 +31,7 @@
*/
public class ActivityParsingTest extends JpdlParseTestCase {
- public void testInvalidActivityeName() {
+ public void testInvalidActivityName() {
List<Problem> problems = parseProblems(
"<process name='p'>" +
" <state name='invalid / activityname' />" +
Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlParseTestCase.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlParseTestCase.java 2010-01-21 14:27:19 UTC (rev 6115)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlParseTestCase.java 2010-01-21 21:40:24 UTC (rev 6116)
@@ -25,11 +25,9 @@
import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.client.ClientProcessDefinition;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.xml.Problem;
import org.jbpm.test.BaseJbpmTestCase;
-
/**
* @author Tom Baeyens
*/
@@ -52,17 +50,17 @@
public ClientProcessDefinition parse(String xmlString) {
JpdlParser jpdlParser = new JpdlParser();
- List<ProcessDefinitionImpl> processDefinitions = (List<ProcessDefinitionImpl>) jpdlParser.createParse()
+ Object documentObject = jpdlParser.createParse()
.setString(xmlString)
.execute()
.checkErrors("process definition xml string")
.getDocumentObject();
- if ( (processDefinitions==null)
- || (processDefinitions.isEmpty())
- ) {
- return null;
+ if (documentObject instanceof List<?>) {
+ List<?> processDefinitions = (List<?>) documentObject;
+ if (!processDefinitions.isEmpty())
+ return (ClientProcessDefinition) processDefinitions.get(0);
}
- return processDefinitions.get(0);
+ return null;
}
}
Added: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TaskParsingTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TaskParsingTest.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TaskParsingTest.java 2010-01-21 21:40:24 UTC (rev 6116)
@@ -0,0 +1,43 @@
+package org.jbpm.jpdl.parsing;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.model.Activity;
+import org.jbpm.jpdl.internal.activity.TaskActivity;
+import org.jbpm.pvm.internal.client.ClientProcessDefinition;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
+
+public class TaskParsingTest extends JpdlParseTestCase {
+
+ public static final String PROCESS = "<process name='Test Task Parsing'>"
+ + " <start>"
+ + " <transition to='t1' />"
+ + " </start>"
+ + " <task name='t1' duedate='1 day' priority='3' form='aForm'>"
+ + " <description>first task</description>"
+ + " <transition to='end' />"
+ + " </task>"
+ + " <end name='end' />"
+ + "</process>";
+
+ public void testTaskParse() {
+ ClientProcessDefinition definition = parse(PROCESS);
+
+ Activity activity = definition.findActivity("t1");
+ assert activity instanceof ActivityImpl : activity.getClass();
+ ActivityImpl activityImpl = (ActivityImpl) activity;
+
+ ActivityBehaviour behaviour = activityImpl.getActivityBehaviour();
+ assert behaviour instanceof TaskActivity : behaviour.getClass();
+
+ TaskActivity taskActivity = (TaskActivity) behaviour;
+ TaskDefinitionImpl taskDefinition = taskActivity.getTaskDefinition();
+
+ // check for properties not previously parsed
+ assertEquals("first task", taskDefinition.getDescription());
+ assertEquals(3, taskDefinition.getPriority());
+ assertEquals("aForm", taskDefinition.getFormResourceName());
+ assertEquals("1 day", taskDefinition.getDueDateDuration());
+ }
+
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TaskParsingTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
More information about the jbpm-commits
mailing list