[jbpm-commits] JBoss JBPM SVN: r5139 - in jbpm4/trunk/modules: jpdl/src/main/java/org/jbpm/jpdl/internal/xml and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sat Jun 27 09:52:38 EDT 2009
Author: tom.baeyens at jboss.com
Date: 2009-06-27 09:52:38 -0400 (Sat, 27 Jun 2009)
New Revision: 5139
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java
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/DecisionHandlerActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/AssignableDefinitionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml
Log:
JBPM-2323 instantiate user code objects referenced by class during parsing time
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -26,10 +26,6 @@
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.api.activity.ActivityExecution;
import org.jbpm.api.activity.ExternalActivityBehaviour;
-import org.jbpm.api.listener.EventListener;
-import org.jbpm.api.listener.EventListenerExecution;
-import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.WireContext;
/**
@@ -39,23 +35,21 @@
private static final long serialVersionUID = 1L;
- protected Descriptor descriptor;
+ protected ActivityBehaviour customBehaviour;
public void signal(ActivityExecution execution, String signalName, Map<String, ? > parameters) throws Exception {
- ExternalActivityBehaviour activityBehaviour = (ExternalActivityBehaviour) WireContext.create(descriptor);
- activityBehaviour.signal(execution, signalName, parameters);
+ ExternalActivityBehaviour externalActivityBehaviour = (ExternalActivityBehaviour)customBehaviour;
+ externalActivityBehaviour.signal(execution, signalName, parameters);
}
public void execute(ActivityExecution execution) throws Exception {
- ActivityBehaviour activityBehaviour = (ActivityBehaviour) WireContext.create(descriptor);
- activityBehaviour.execute(execution);
+ customBehaviour.execute(execution);
}
-
- public Descriptor getDescriptor() {
- return descriptor;
+ public ActivityBehaviour getCustomBehaviour() {
+ return customBehaviour;
}
- public void setDescriptor(Descriptor descriptor) {
- this.descriptor = descriptor;
+ public void setCustomBehaviour(ActivityBehaviour customBehaviour) {
+ this.customBehaviour = customBehaviour;
}
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -21,6 +21,8 @@
*/
package org.jbpm.jpdl.internal.activity;
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
@@ -43,7 +45,8 @@
CustomActivity customActivity = new CustomActivity();
ObjectDescriptor descriptor = (ObjectDescriptor)
objectBinding.parse(element, parse, wireParser);
- customActivity.setDescriptor(descriptor);
+ ActivityBehaviour customActivityBehaviour = (ActivityBehaviour) WireContext.create(descriptor);
+ customActivity.setCustomBehaviour(customActivityBehaviour);
return customActivity;
}
}
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 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -23,9 +23,11 @@
import java.util.List;
+import org.jbpm.api.jpdl.DecisionHandler;
import org.jbpm.pvm.internal.model.ActivityImpl;
import org.jbpm.pvm.internal.model.TransitionImpl;
import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ExpressionEvaluatorDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
@@ -68,7 +70,8 @@
DecisionHandlerActivity decisionHandlerActivity = new DecisionHandlerActivity();
ObjectDescriptor decisionHandlerDescriptor = (ObjectDescriptor)
objectBinding.parse(handlerElement, parse, wireParser);
- decisionHandlerActivity.setDecisionHandlerDescriptor(decisionHandlerDescriptor);
+ DecisionHandler decisionHandler = (DecisionHandler) WireContext.create(decisionHandlerDescriptor);
+ decisionHandlerActivity.setDecisionHandler(decisionHandler);
return decisionHandlerActivity;
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
protected String decisionHandlerName;
- protected Descriptor decisionHandlerDescriptor;
+ protected DecisionHandler decisionHandler;
public void execute(ActivityExecution execution) {
execute((ExecutionImpl) execution);
@@ -47,24 +47,28 @@
public void execute(ExecutionImpl execution) {
Activity activity = execution.getActivity();
+
String transitionName = null;
- Object object = null;
- if (decisionHandlerDescriptor!=null) {
- object = WireContext.create(decisionHandlerDescriptor);
+ DecisionHandler usedDecisionHandler = null;
+ if (decisionHandler!=null) {
+ usedDecisionHandler = decisionHandler;
+
} else if (decisionHandlerName!=null) {
Environment environment = Environment.getCurrent();
- object = environment.get(decisionHandlerName);
+ Object object = environment.get(decisionHandlerName);
+ if (object==null) {
+ throw new JbpmException("decision handler for "+activity+" is null");
+ }
+ if (! (object instanceof DecisionHandler)) {
+ throw new JbpmException("handler for decision is not a "+DecisionHandler.class.getName()+": "+object.getClass().getName());
+ }
+ usedDecisionHandler = (DecisionHandler) object;
+ } else {
+ throw new JbpmException("no decision handler specified");
}
- if (object==null) {
- throw new JbpmException("decision handler for "+activity+" is null");
- }
- if (! (object instanceof DecisionHandler)) {
- throw new JbpmException("handler for decision is not a "+DecisionHandler.class.getName()+": "+object.getClass().getName());
- }
- DecisionHandler decisionHandler = (DecisionHandler) object;
- transitionName = decisionHandler.decide(execution);
+ transitionName = usedDecisionHandler.decide(execution);
Transition transition = activity.getOutgoingTransition(transitionName);
if (transition==null) {
@@ -79,7 +83,7 @@
public void setDecisionHandlerName(String decisionHandlerName) {
this.decisionHandlerName = decisionHandlerName;
}
- public void setDecisionHandlerDescriptor(Descriptor decisionHandlerDescriptor) {
- this.decisionHandlerDescriptor = decisionHandlerDescriptor;
+ public void setDecisionHandler(DecisionHandler decisionHandler) {
+ this.decisionHandler = decisionHandler;
}
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -48,7 +48,7 @@
protected String targetExpression;
protected String targetLanguage;
- protected Descriptor targetDescriptor;
+ protected Object target;
protected String methodName;
protected String variableName;
@@ -56,16 +56,16 @@
public void perform(OpenExecution execution) throws Exception {
- Object target = null;
+ Object invocationTarget = null;
WireContext wireContext = new WireContext();
- if (targetDescriptor!=null) {
- target = wireContext.create(targetDescriptor, false);
+ if (target!=null) {
+ invocationTarget = target;
} else if (targetExpression!=null) {
ScriptManager scriptManager = EnvironmentDefaults.getScriptManager();
- target = scriptManager.evaluateExpression(targetExpression, targetLanguage);
+ invocationTarget = scriptManager.evaluateExpression(targetExpression, targetLanguage);
} else {
throw new JbpmException("no target specified");
@@ -79,13 +79,13 @@
args = ObjectDescriptor.getArgs(wireContext, argDescriptors);
}
- Class<?> clazz = target.getClass();
+ Class<?> clazz = invocationTarget.getClass();
Method method = ReflectUtil.findMethod(clazz, methodName, argDescriptors, args);
if (method==null) {
throw new WireException("method "+ReflectUtil.getSignature(methodName, argDescriptors, args)+" unavailable");
}
- Object returnValue = ReflectUtil.invoke(method, target, args);
+ Object returnValue = ReflectUtil.invoke(method, invocationTarget, args);
if (variableName!=null) {
execution.setVariable(variableName, returnValue);
@@ -98,8 +98,8 @@
}
}
- public void setTargetDescriptor(Descriptor descriptor) {
- this.targetDescriptor = descriptor;
+ public void setTarget(Object target) {
+ this.target = target;
}
public void setMethodName(String methodName) {
this.methodName = methodName;
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -25,6 +25,7 @@
import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.wire.operation.InvokeOperation;
@@ -63,7 +64,8 @@
if (element.hasAttribute("class")) {
ObjectDescriptor objectDescriptor = JpdlParser.parseObjectDescriptor(element, parse);
- javaActivity.setTargetDescriptor(objectDescriptor);
+ Object target = WireContext.create(objectDescriptor);
+ javaActivity.setTarget(target);
} else if (element.hasAttribute("expr")) {
String expression = element.getAttribute("expr");
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 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -31,11 +31,10 @@
import java.util.Set;
import java.util.StringTokenizer;
-import org.w3c.dom.Element;
-
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.api.listener.EventListener;
import org.jbpm.api.model.Event;
+import org.jbpm.api.task.AssignmentHandler;
import org.jbpm.internal.log.Log;
import org.jbpm.jpdl.internal.activity.JpdlBinding;
import org.jbpm.jpdl.internal.activity.MailListener;
@@ -62,11 +61,11 @@
import org.jbpm.pvm.internal.task.AssignableDefinitionImpl;
import org.jbpm.pvm.internal.task.SwimlaneDefinitionImpl;
import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
+import org.jbpm.pvm.internal.task.TaskHandler;
import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
import org.jbpm.pvm.internal.wire.WireContext;
-import org.jbpm.pvm.internal.wire.WireDefinition;
import org.jbpm.pvm.internal.wire.binding.MailTemplateBinding;
import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
@@ -76,6 +75,7 @@
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.jbpm.pvm.internal.xml.ProblemImpl;
+import org.w3c.dom.Element;
/**
* @author Tom Baeyens
@@ -428,7 +428,8 @@
Element assignmentHandlerElement = XmlUtil.element(element, "assignment-handler");
if (assignmentHandlerElement!=null) {
ObjectDescriptor objectDescriptor = parseObjectDescriptor(assignmentHandlerElement, parse);
- assignableDefinition.setAssignmentHandlerDescriptor(objectDescriptor);
+ AssignmentHandler assignmentHandler = (AssignmentHandler) WireContext.create(objectDescriptor);
+ assignableDefinition.setAssignmentHandler(assignmentHandler);
}
String assigneeExpression = XmlUtil.attribute(element, "assignee");
@@ -480,7 +481,8 @@
Element taskHandlerElement = XmlUtil.element(element, "task-handler");
if (taskHandlerElement!=null) {
ObjectDescriptor objectDescriptor = parseObjectDescriptor(taskHandlerElement, parse);
- taskDefinition.setTaskHandlerDescriptor(objectDescriptor);
+ TaskHandler taskHandler = (TaskHandler) WireContext.create(objectDescriptor);
+ taskDefinition.setTaskHandler(taskHandler);
}
JpdlParser.parseAssignmentAttributes(element, taskDefinition, parse);
@@ -613,14 +615,12 @@
eventListener.setMailProducer(mailProducer);
}
- public static MailProducer parseMailProducer(Element element, Parse parse,
- String defaultTemplateName) {
+ public static MailProducer parseMailProducer(Element element, Parse parse, String defaultTemplateName) {
// check whether the element is a generic object descriptor
if (ObjectBinding.isObjectDescriptor(element)) {
// TODO test custom mail producer
ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
- WireDefinition wireDefinition = parse.findObject(WireDefinition.class);
- return (MailProducer) objectDescriptor.construct(new WireContext(wireDefinition));
+ return (MailProducer) WireContext.create(objectDescriptor);
}
// parse the default producer
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -784,13 +784,12 @@
}
}
- Descriptor assignmentHandlerDescriptor = assignableDefinition.getAssignmentHandlerDescriptor();
- if (assignmentHandlerDescriptor!=null) {
- AssignmentHandler assignmentHandler = (AssignmentHandler) WireContext.create(assignmentHandlerDescriptor);
+ AssignmentHandler assignmentHandler = assignableDefinition.getAssignmentHandler();
+ if (assignmentHandler!=null) {
try {
assignmentHandler.assign(assignable, this);
} catch (Exception e) {
- throw new JbpmException("assignment handler threw exception: "+e, e);
+ throw new JbpmException("assignment handler threw exception: " + e, e);
}
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/AssignableDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/AssignableDefinitionImpl.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/AssignableDefinitionImpl.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -21,9 +21,9 @@
*/
package org.jbpm.pvm.internal.task;
+import org.jbpm.api.task.AssignmentHandler;
import org.jbpm.pvm.internal.model.ProcessElementImpl;
import org.jbpm.pvm.internal.util.EqualsUtil;
-import org.jbpm.pvm.internal.wire.Descriptor;
/**
* @author Tom Baeyens
@@ -41,7 +41,7 @@
protected String candidateUsersExpressionLanguage;
protected String candidateGroupsExpression;
protected String candidateGroupsExpressionLanguage;
- protected Descriptor assignmentHandlerDescriptor;
+ protected AssignmentHandler assignmentHandler;
// equals ///////////////////////////////////////////////////////////////////
// hack to support comparing hibernate proxies against the real objects
@@ -70,11 +70,11 @@
public void setAssigneeExpression(String assigneeExpression) {
this.assigneeExpression = assigneeExpression;
}
- public Descriptor getAssignmentHandlerDescriptor() {
- return assignmentHandlerDescriptor;
+ public AssignmentHandler getAssignmentHandler() {
+ return assignmentHandler;
}
- public void setAssignmentHandlerDescriptor(Descriptor assignmentHandlerDescriptor) {
- this.assignmentHandlerDescriptor = assignmentHandlerDescriptor;
+ public void setAssignmentHandler(AssignmentHandler assignmentHandler) {
+ this.assignmentHandler = assignmentHandler;
}
public String getAssigneeExpressionLanguage() {
return assigneeExpressionLanguage;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -26,7 +26,6 @@
import java.util.List;
import org.jbpm.pvm.internal.util.Priority;
-import org.jbpm.pvm.internal.wire.Descriptor;
/**
* defines a task and how the actor(s) must be calculated at runtime.
@@ -40,7 +39,7 @@
protected List<TaskDefinitionImpl> subTaskDefinitions = new ArrayList<TaskDefinitionImpl>();
protected int priority = Priority.NORMAL;
protected SwimlaneDefinitionImpl swimlaneDefinition;
- protected Descriptor taskHandlerDescriptor;
+ protected TaskHandler taskHandler;
public int getPriority() {
return priority;
@@ -72,10 +71,10 @@
public void setFormResourceName(String form) {
this.formResourceName = form;
}
- public Descriptor getTaskHandlerDescriptor() {
- return taskHandlerDescriptor;
+ public TaskHandler getTaskHandler() {
+ return taskHandler;
}
- public void setTaskHandlerDescriptor(Descriptor taskHandlerDescriptor) {
- this.taskHandlerDescriptor = taskHandlerDescriptor;
+ public void setTaskHandler(TaskHandler taskHandler) {
+ this.taskHandler = taskHandler;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java 2009-06-27 13:52:38 UTC (rev 5139)
@@ -347,11 +347,11 @@
}
public TaskHandler getTaskHandler() {
- if ((getTaskDefinition() == null) || (taskDefinition.getTaskHandlerDescriptor() == null)) {
+ if ((getTaskDefinition() == null) || (taskDefinition.getTaskHandler() == null)) {
return DEFAULT_TASK_HANDLER;
}
- TaskHandler taskHandler = (TaskHandler) WireContext.create(taskDefinition.getTaskHandlerDescriptor());
+ TaskHandler taskHandler = taskDefinition.getTaskHandler();
return taskHandler;
}
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml 2009-06-27 13:10:22 UTC (rev 5138)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml 2009-06-27 13:52:38 UTC (rev 5139)
@@ -3028,10 +3028,22 @@
<section id="usercode">
<title>User code</title>
<para>Various elements in the jPDL process language refer to a an
- object on which an interface method will be invoked. See for example
- <xref linkend="taskassignmenthandler" />. This section describes the
- attributes and sub elements of those type of user code objects.
+ object on which an interface method will be invoked.
+ </para>
+ <itemizedlist>
+ <listitem><literal>event-listener</literal></listitem>
+ <listitem><literal>custom</literal></listitem>
+ <listitem><literal>java</literal></listitem>
+ <listitem><literal>assignment-handler</literal> in task</listitem>
+ <listitem><literal>handler</literal> in decision</listitem>
+ </itemizedlist>
+ <para>For all objects that are referenced by a class name, will be
+ instantiated during parsing time. Which implies that the objects have to be
+ threadsafe. This is typically OK since those objects are typically immutable.
</para>
+ <para>Objects that are referenced by an expression are calculated
+ dynamically.
+ </para>
<table><title>attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
<thead>
@@ -3056,7 +3068,7 @@
<entry>expression</entry>
<entry></entry>
<entry>one of {class|expr} is required</entry>
- <entry>The fully qualified classname.</entry>
+ <entry>Expression for which the resulting value will be taken as the target object.</entry>
</row>
</tbody>
</tgroup>
More information about the jbpm-commits
mailing list