[jbpm-commits] JBoss JBPM SVN: r6345 - in jbpm4/trunk/modules/jpdl/src: test/java/org/jbpm/jpdl/parsing and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat May 15 07:35:47 EDT 2010


Author: rebody
Date: 2010-05-15 07:35:46 -0400 (Sat, 15 May 2010)
New Revision: 6345

Added:
   jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/DecisionParsingTest.java
Modified:
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
Log:
JBPM-2862 fix decisionBinding parse conditition handler wrong

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java	2010-05-15 09:28:37 UTC (rev 6344)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java	2010-05-15 11:35:46 UTC (rev 6345)
@@ -83,7 +83,7 @@
           
         } else {
           Element conditionHandlerElement = XmlUtil.element(conditionElement, "handler");
-          if (handlerElement!=null) {
+          if (conditionHandlerElement != null) {
             UserCodeCondition userCodeCondition = new UserCodeCondition();
             
             UserCodeReference conditionReference = parser.parseUserCodeReference(conditionHandlerElement, parse);

Added: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/DecisionParsingTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/DecisionParsingTest.java	                        (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/DecisionParsingTest.java	2010-05-15 11:35:46 UTC (rev 6345)
@@ -0,0 +1,57 @@
+package org.jbpm.jpdl.parsing;
+
+import java.util.List;
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.OpenExecution;
+import org.jbpm.jpdl.internal.activity.DecisionConditionActivity;
+import org.jbpm.pvm.internal.client.ClientProcessDefinition;
+import org.jbpm.pvm.internal.el.Expression;
+import org.jbpm.pvm.internal.el.StaticTextExpression;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.Condition;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.model.TransitionImpl;
+import org.jbpm.pvm.internal.wire.usercode.UserCodeCondition;
+
+public class DecisionParsingTest extends JpdlParseTestCase {
+
+  public void testDecitionConditionParse() {
+    ClientProcessDefinition definition = parse(
+        "<process name='decision parse'>" +
+        "  <start>" +
+        "    <transition to='d1' />" +
+        "  </start>" +
+        "  <decision name='d1'>" +
+        "    <transition to='end1'>" +
+        "      <condition>" +
+        "        <handler class='org.jbpm.jpdl.parsing.DecisionParingTest$CustomCondition'/>" +
+        "      </condition>" +
+        "    </transition>" +
+        "  </decision>" +
+        "  <end name='end1'/>" +
+        "</process>");
+
+    Activity activity = definition.findActivity("d1");
+    assert activity instanceof ActivityImpl : activity.getClass();
+    ActivityImpl activityImpl = (ActivityImpl) activity;
+
+    ActivityBehaviour behaviour = activityImpl.getActivityBehaviour();
+    assert behaviour instanceof DecisionConditionActivity : behaviour.getClass();
+
+    List<TransitionImpl> outgoingTransitions = (List) activity.getOutgoingTransitions();
+    assert outgoingTransitions.size() == 1 : outgoingTransitions.size();
+
+    TransitionImpl transition = outgoingTransitions.get(0);
+    Condition condition = transition.getCondition();
+
+    assert condition instanceof UserCodeCondition : condition.getClass();
+  }
+
+  static class CustomCondition implements Condition {
+    public boolean evaluate(OpenExecution execution) {
+      return true;
+    }
+  }
+}



More information about the jbpm-commits mailing list