[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