[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