[jbpm-commits] JBoss JBPM SVN: r6203 - jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Feb 27 13:48:14 EST 2010


Author: kukeltje
Date: 2010-02-27 13:48:14 -0500 (Sat, 27 Feb 2010)
New Revision: 6203

Modified:
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
Log:
Added name and continuation check for JBPM-2771

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java	2010-02-27 18:03:29 UTC (rev 6202)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java	2010-02-27 18:48:14 UTC (rev 6203)
@@ -24,11 +24,11 @@
 import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
 import org.jbpm.jpdl.internal.xml.JpdlParser;
 import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.Continuation;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
 import org.w3c.dom.Element;
 
-
 /**
  * @author Tom Baeyens
  */
@@ -41,22 +41,28 @@
   public Object parseJpdl(Element element, Parse parse, JpdlParser parser) {
     ActivityImpl startActivity = parse.contextStackFind(ActivityImpl.class);
     JpdlProcessDefinition processDefinition = parse.contextStackFind(JpdlProcessDefinition.class);
-    
-    if (processDefinition.getInitial()==null) {
+
+    if (processDefinition.getInitial() == null) {
       processDefinition.setInitial(startActivity);
-      
-    } else if (startActivity.getParentActivity()==null) {
+
+    } else if (startActivity.getParentActivity() == null) {
       parse.addProblem("multiple start events not yet supported", element);
     }
-    
+
     StartActivity startActivityBehaviour = new StartActivity();
-    
+
+    if (startActivity.getContinuation() == Continuation.ASYNCHRONOUS && startActivity.getName() == null) {
+      parse.addProblem("Using continuation=\"async\" on a start node requires a name to be present", element);
+    }
+
     startActivityBehaviour.setFormResourceName(XmlUtil.attribute(element, "form"));
-    
+
     return startActivityBehaviour;
   }
 
   public boolean isNameRequired() {
+    // This factually is dependent on having an async continuation on the
+    // startnode or not. Cannot be decided here, so added it to the parse part
     return false;
   }
 }



More information about the jbpm-commits mailing list