[jbpm-commits] JBoss JBPM SVN: r6463 - in jbpm4/trunk/modules: devguide/src/main/docbook/en/modules and 55 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Jul 6 02:29:17 EDT 2010
Author: rebody
Date: 2010-07-06 02:29:15 -0400 (Tue, 06 Jul 2010)
New Revision: 6463
Modified:
jbpm4/trunk/modules/api/src/main/resources/jpdl-4.4.xsd
jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/fork/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/foreach/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/graphbased/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/custom/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/conditions/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/expression/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/handler/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/multiple/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/processinstance/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/state/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/eventlistener/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/hql/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/java/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/inline/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/expression/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/text/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/serializablevariable/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/services/Order.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/sql/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/choice/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/sequence/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessDocument.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessReview.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessDocument.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessReview.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessDocument.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessReview.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessDocument.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessReview.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignee/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignmenthandler/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/candidates/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/comments/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/reminder/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/swimlane/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/variables/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/taskform/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/businesstime/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/event/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/repeat/process.jpdl.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/transition/process.jpdl.xml
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/ArgParsingTest.java
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.bar
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.jpdl.xml
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.zip
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/extended.jpdl.xml
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/invalid.jpdl.xml
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/process.jpdl.xml
jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/valid.jpdl.xml
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/async/eventlistener/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/concurrency/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/multipleentries/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/simple/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/timer/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rules/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rulesdecision/process.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/process.zip
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/variables/DeserializeTaskTest.jpdl.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml
Log:
upgrade namespace to 4.4
Modified: jbpm4/trunk/modules/api/src/main/resources/jpdl-4.4.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/jpdl-4.4.xsd 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/api/src/main/resources/jpdl-4.4.xsd 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://jbpm.org/jpdl/4.4"
- xmlns:tns="http://jbpm.org/jpdl/4.4"
+ targetNamespace="http://jbpm.org/4.4/jpdl"
+ xmlns:tns="http://jbpm.org/4.4/jpdl"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
-
+
<annotation>
- <documentation>Schema for jPDL 4 process descriptions;
+ <documentation>Schema for jPDL 4 process descriptions;
the top level element is process.
</documentation>
</annotation>
@@ -57,9 +57,9 @@
</anyAttribute>
</complexType>
</element>
-
+
<!-- ### ACTIVITIES ##################################################### -->
-
+
<group name="activityGroup">
<choice>
<!-- ~~~ START ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
@@ -74,7 +74,7 @@
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attribute name="form" type="string">
- <annotation><documentation>the resource name of the form in the
+ <annotation><documentation>the resource name of the form in the
deployment.</documentation></annotation>
</attribute>
</complexType>
@@ -143,11 +143,11 @@
</attribute>
</complexType>
</element>
-
+
<!-- ~~~ STATE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="state">
- <annotation><documentation>A wait state. When an execution arrives in this
- activity, the execution will wait until an external trigger is received
+ <annotation><documentation>A wait state. When an execution arrives in this
+ activity, the execution will wait until an external trigger is received
with execution.signal() or execution.getActivityInstance().signal()
</documentation></annotation>
<complexType>
@@ -172,7 +172,7 @@
<!-- ~~~ DECISION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="decision">
- <annotation><documentation>Decision gateway: selects one path out of many alternatives.
+ <annotation><documentation>Decision gateway: selects one path out of many alternatives.
When an execution comes in, exactly one outgoing transition is taken.
</documentation></annotation>
<complexType>
@@ -191,11 +191,11 @@
<element name="handler" minOccurs="0" type="tns:wireObjectType" />
</sequence>
<attribute name="expr" type="string">
- <annotation><documentation>The script text that will be evaluated.
+ <annotation><documentation>The script text that will be evaluated.
</documentation></annotation>
</attribute>
<attribute name="lang" type="string">
- <annotation><documentation>Identification of the scripting language
+ <annotation><documentation>Identification of the scripting language
to use.</documentation></annotation>
</attribute>
</complexType>
@@ -208,12 +208,12 @@
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attribute name="expr" type="string">
- <annotation><documentation>The script that will be evaluated and resolve to
+ <annotation><documentation>The script that will be evaluated and resolve to
the name of the outgoing transition.
</documentation></annotation>
</attribute>
<attribute name="lang" type="string">
- <annotation><documentation>Identification of the scripting language
+ <annotation><documentation>Identification of the scripting language
to use for the expr attribute.</documentation></annotation>
</attribute>
</complexType>
@@ -238,7 +238,7 @@
<!-- ~~~ FORK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="fork">
- <annotation><documentation>Spawns multiple concurrent paths of
+ <annotation><documentation>Spawns multiple concurrent paths of
execution.
</documentation></annotation>
<complexType>
@@ -250,10 +250,10 @@
<attributeGroup ref="tns:activityAttributes" />
</complexType>
</element>
-
+
<!-- ~~~ JOIN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="join">
- <annotation><documentation>Spawns multiple concurrent paths of
+ <annotation><documentation>Spawns multiple concurrent paths of
execution.
</documentation></annotation>
<complexType>
@@ -365,9 +365,9 @@
<!-- ~~~ JAVA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="java">
- <annotation><documentation>Invokes a method on a java object.
- Either the java class is instantiated with reflection, or the
- java object is fetched from the environment. Then values from the
+ <annotation><documentation>Invokes a method on a java object.
+ Either the java class is instantiated with reflection, or the
+ java object is fetched from the environment. Then values from the
environment are injected into the fields and a method is executed.
</documentation></annotation>
<complexType>
@@ -402,7 +402,7 @@
<!-- ~~~ CUSTOM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="custom">
- <annotation><documentation>Uses a user defined, custom implementation of
+ <annotation><documentation>Uses a user defined, custom implementation of
ActivityBehaviour
</documentation></annotation>
<complexType>
@@ -430,7 +430,7 @@
<!-- ~~~ TASK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="task">
- <annotation><documentation>Creates a task in the task component.
+ <annotation><documentation>Creates a task in the task component.
</documentation></annotation>
<complexType>
<sequence>
@@ -468,10 +468,10 @@
<attributeGroup ref="tns:assignmentAttributes"/>
<attribute name="swimlane" type="string" />
<attribute name="form" type="string">
- <annotation><documentation>the resource name of the form in the
+ <annotation><documentation>the resource name of the form in the
deployment.</documentation></annotation>
</attribute>
- <attribute name="duedate" type="string" />
+ <attribute name="duedate" type="string" />
<attribute name="on-transition" default="cancel">
<simpleType>
<restriction base="string">
@@ -483,10 +483,10 @@
<attribute name="completion" type="string" default="complete" />
</complexType>
</element>
-
+
<!-- ~~~ SUB-PROCESS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="sub-process">
- <annotation><documentation>Waits while a sub process instance is
+ <annotation><documentation>Waits while a sub process instance is
being executed and continues when the sub process instance ends.
</documentation></annotation>
<complexType>
@@ -521,19 +521,19 @@
</element>
</sequence>
<attribute name="sub-process-id" type="string">
- <annotation><documentation>Identifies the sub process by the id. This means that a specific
+ <annotation><documentation>Identifies the sub process by the id. This means that a specific
version of a process definition is referenced
</documentation></annotation>
</attribute>
<attribute name="sub-process-key" type="string">
- <annotation><documentation>Identifies the sub process by the key. This means that the latest
- version of the process definition with the given key is referenced. The latest version
- of the process is looked up each time the activity executes.
+ <annotation><documentation>Identifies the sub process by the key. This means that the latest
+ version of the process definition with the given key is referenced. The latest version
+ of the process is looked up each time the activity executes.
</documentation></annotation>
</attribute>
<attribute name="outcome" type="string">
- <annotation><documentation>Expression that is evaluated when the sub process
- instance ends. The value is then used for outcome transition mapping.
+ <annotation><documentation>Expression that is evaluated when the sub process
+ instance ends. The value is then used for outcome transition mapping.
</documentation></annotation>
</attribute>
<attributeGroup ref="tns:activityAttributes" />
@@ -557,7 +557,7 @@
<attributeGroup ref="tns:activityAttributes" />
</complexType>
</element>
-
+
<!-- ~~~ RULES DECISION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="rules-decision">
<annotation><documentation>Selects one outgoing transition based on evaluation of rules.
@@ -598,11 +598,11 @@
<element name="handler" minOccurs="0" type="tns:wireObjectType" />
</sequence>
<attribute name="expr" type="string">
- <annotation><documentation>The script text that will be evaluated.
+ <annotation><documentation>The script text that will be evaluated.
</documentation></annotation>
</attribute>
<attribute name="lang" type="string">
- <annotation><documentation>Identification of the scripting language
+ <annotation><documentation>Identification of the scripting language
to use.</documentation></annotation>
</attribute>
</complexType>
@@ -622,13 +622,13 @@
</choice>
</group>
-
+
<group name="wireObjectGroup">
<choice>
<!-- SPECIAL OBJECTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="null">
- <annotation><documentation>the null value
+ <annotation><documentation>the null value
</documentation></annotation>
</element>
<element name="ref">
@@ -640,7 +640,7 @@
</complexType>
</element>
<element name="env-ref">
- <annotation><documentation>The current environment.
+ <annotation><documentation>The current environment.
</documentation></annotation>
</element>
<element name="jndi">
@@ -650,7 +650,7 @@
<attribute name="jndi-name" type="string" use="required" />
</complexType>
</element>
-
+
<!-- COLLECTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="list">
<annotation><documentation>A java.util.List</documentation></annotation>
@@ -668,19 +668,19 @@
</attribute>
</complexType>
</element>
-
+
<element name="map" type="tns:mapType"/>
<element name="set">
- <annotation><documentation>A java.util.Set
+ <annotation><documentation>A java.util.Set
</documentation></annotation>
<complexType>
<choice minOccurs="0" maxOccurs="unbounded">
<group ref="tns:wireObjectGroup" />
</choice>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="class" type="string" default="java.util.HashList">
@@ -693,7 +693,7 @@
</attribute>
</complexType>
</element>
-
+
<element name="properties">
<annotation><documentation>A java.util.Properties</documentation></annotation>
<complexType>
@@ -716,16 +716,16 @@
</attribute>
<attribute name="is-xml" type="tns:booleanValueType">
<annotation><documentation>optionally indicates if the content of referenced file in attributes
- 'file', 'resource' or 'url' is XML. The default is the
- plain properties format with a space or the equals character (=) separating key and value on
+ 'file', 'resource' or 'url' is XML. The default is the
+ plain properties format with a space or the equals character (=) separating key and value on
each line.</documentation></annotation>
</attribute>
</complexType>
</element>
-
+
<!-- OBJECT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="object" type="tns:wireObjectType" />
-
+
<!-- BASIC TYPES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<element name="string">
<complexType>
@@ -742,8 +742,8 @@
<annotation><documentation>A java.lang.Byte</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="byte" use="required" />
@@ -753,8 +753,8 @@
<annotation><documentation>A java.lang.Character</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" use="required">
@@ -770,20 +770,20 @@
<annotation><documentation>A java.lang.Double</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="double" use="required" />
</complexType>
</element>
<element name="false">
- <annotation><documentation>java.lang.Boolean.FALSE
+ <annotation><documentation>java.lang.Boolean.FALSE
</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
</complexType>
@@ -793,8 +793,8 @@
</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="float" use="required" />
@@ -805,8 +805,8 @@
</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="int" use="required"/>
@@ -816,8 +816,8 @@
<annotation><documentation>A java.lang.Long</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="long" use="required"/>
@@ -828,62 +828,62 @@
</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
<attribute name="value" type="short" use="required"/>
</complexType>
</element>
<element name="true">
- <annotation><documentation>java.lang.Boolean.TRUE
+ <annotation><documentation>java.lang.Boolean.TRUE
</documentation></annotation>
<complexType>
<attribute name="name" type="string">
- <annotation><documentation>The name of the object. It's optional and serves
- as an id to refer to this object from other object declarations. This name can
+ <annotation><documentation>The name of the object. It's optional and serves
+ as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.</documentation></annotation>
</attribute>
</complexType>
</element>
-
+
</choice>
</group>
-
+
<complexType name="wireObjectType">
<annotation><documentation>Any java object that will be created by reflection. .
- <p>There are three main ways to create an object: by constructor or by a factory
+ <p>There are three main ways to create an object: by constructor or by a factory
object or a static factory method.</p>
- <p><b>Using the constructor</b>: Then the <code>class</code> attribute must provide the
- fully qualified class name. In case another constructor then the default is
+ <p><b>Using the constructor</b>: Then the <code>class</code> attribute must provide the
+ fully qualified class name. In case another constructor then the default is
targetted, a <code>constructor</code> child element can be provided.
- The <code>factory</code> attribute should not be provided for using a constructor.
+ The <code>factory</code> attribute should not be provided for using a constructor.
</p>
- <p><b>Using a factory</b>: Then the <code>factory</code> attribute or one
- <code>factory</code> element must be provided along with the attribute
- <code>method</code>.
+ <p><b>Using a factory</b>: Then the <code>factory</code> attribute or one
+ <code>factory</code> element must be provided along with the attribute
+ <code>method</code>.
</p>
- <p><b>Using a static factory method</b>: Then the <code>class</code> and
- <code>method</code> attributes should be specified. There should be no
- reference to a <code>factory</code> attribute of element.
+ <p><b>Using a static factory method</b>: Then the <code>class</code> and
+ <code>method</code> attributes should be specified. There should be no
+ reference to a <code>factory</code> attribute of element.
</p>
<p><b>Construction and initialization</b>: all objects (constructor and factory)
are build in two phases: construction and initialisation phase. During construction
- all is done until a pointer is obtained to the object. In initialisation, operations
- are applied to the object until it is ready to be used. The separation between
- construction and initialisation is made to allow for bidirectional references. In
- that case, at least one of both ends can not be fully initialised before it is injected
+ all is done until a pointer is obtained to the object. In initialisation, operations
+ are applied to the object until it is ready to be used. The separation between
+ construction and initialisation is made to allow for bidirectional references. In
+ that case, at least one of both ends can not be fully initialised before it is injected
into the other end.
</p>
- <p><b>Operations</b>: after construction, various operations can be applied to objects
- like e.g. direct field injection, injection through setters, method invocation,
- enlist with the standard transaction, subscribe the object as a listener to an observable
+ <p><b>Operations</b>: after construction, various operations can be applied to objects
+ like e.g. direct field injection, injection through setters, method invocation,
+ enlist with the standard transaction, subscribe the object as a listener to an observable
</p>
- <p><b>Arguments</b>: There are two different places for arguments. The <code>arg</code>
- elements for the factory method invocation should be placed as child elements under the
- <code>object</code> element. The <code>arg</code> elements for the constructor should be
- placed as child elements under the <code>constructor</code> element.
+ <p><b>Arguments</b>: There are two different places for arguments. The <code>arg</code>
+ elements for the factory method invocation should be placed as child elements under the
+ <code>object</code> element. The <code>arg</code> elements for the constructor should be
+ placed as child elements under the <code>constructor</code> element.
</p>
</documentation></annotation>
<choice minOccurs="0" maxOccurs="unbounded">
@@ -957,8 +957,8 @@
<annotation><documentation>The factory method name</documentation></annotation>
</attribute>
<attribute name="auto-wire" type="string">
- <annotation><documentation>Indicates if the member fields and setter properties
- should be automatically wired based on matching the property names and types with the
+ <annotation><documentation>Indicates if the member fields and setter properties
+ should be automatically wired based on matching the property names and types with the
object names and types</documentation></annotation>
</attribute>
<attribute name="cache" type="tns:booleanValueType">
@@ -969,18 +969,18 @@
<complexType name="argType">
<annotation><documentation>The method arguments.
- Each 'arg' element should have exactly one child element
+ Each 'arg' element should have exactly one child element
that represents the value of the argument.
</documentation></annotation>
- <group ref="tns:wireObjectGroup" />
+ <group ref="tns:wireObjectGroup"/>
<attribute name="type" type="string">
- <annotation><documentation>The java class name representing
- the type of the method. This is optional and can be used to
- indicate the appropriate method in case of method overloading.
+ <annotation><documentation>The java class name representing
+ the type of the method. This is optional and can be used to
+ indicate the appropriate method in case of method overloading.
</documentation></annotation>
</attribute>
</complexType>
-
+
<complexType name="mapType">
<annotation><documentation>A java.util.Map</documentation></annotation>
<choice minOccurs="0" maxOccurs="unbounded">
@@ -1015,7 +1015,7 @@
<sequence>
<element name="description" minOccurs="0" maxOccurs="unbounded" type="string" />
<element name="field" minOccurs="0" maxOccurs="unbounded">
- <annotation><documentation>Field injections from the environment
+ <annotation><documentation>Field injections from the environment
invocation.</documentation></annotation>
</element>
<element name="arg" minOccurs="0" maxOccurs="unbounded">
@@ -1040,7 +1040,7 @@
</documentation></annotation>
</attribute>
<attribute name="lang" type="string">
- <annotation><documentation>The language in which attribute 'expr' is to be
+ <annotation><documentation>The language in which attribute 'expr' is to be
resolved.
</documentation></annotation>
</attribute>
@@ -1054,22 +1054,22 @@
<sequence>
<element name="description" minOccurs="0" maxOccurs="unbounded" type="string" />
<element name="text" type="string" minOccurs="0">
- <annotation><documentation>The content of this expression element
- is the script text that will be evaluated. This is mutually
+ <annotation><documentation>The content of this expression element
+ is the script text that will be evaluated. This is mutually
exclusive with the expression attribute.</documentation></annotation>
</element>
</sequence>
<attribute name="expr" type="string">
- <annotation><documentation>The script text that will be evaluated. This
+ <annotation><documentation>The script text that will be evaluated. This
is mutually exclusive with the expression element.
</documentation></annotation>
</attribute>
<attribute name="lang" type="string">
- <annotation><documentation>Identification of the scripting language
+ <annotation><documentation>Identification of the scripting language
to use.</documentation></annotation>
</attribute>
<attribute name="var" type="string">
- <annotation><documentation>Name of the variable in which the result
+ <annotation><documentation>Name of the variable in which the result
of the script evaluation will be stored</documentation></annotation>
</attribute>
</complexType>
@@ -1112,7 +1112,7 @@
</annotation>
</attribute>
</complexType>
-
+
<complexType name="qlType">
<sequence>
<element name="description" minOccurs="0" maxOccurs="unbounded" type="string" />
@@ -1129,7 +1129,7 @@
</element>
</sequence>
<attribute name="var" type="string">
- <annotation><documentation>Name of the variable in which the result
+ <annotation><documentation>Name of the variable in which the result
of the script evaluation will be stored</documentation></annotation>
</attribute>
<attribute name="unique" type="string">
@@ -1137,7 +1137,7 @@
</documentation></annotation>
</attribute>
</complexType>
-
+
<attributeGroup name="activityAttributes">
<attribute name="name" type="string">
<annotation><documentation>The id of this activity. The name should be unique
@@ -1153,7 +1153,7 @@
</documentation></annotation>
</attribute>
</attributeGroup>
-
+
<simpleType name="continueType">
<restriction base="string">
<enumeration value="async" />
@@ -1161,14 +1161,14 @@
<enumeration value="exclusive" />
</restriction>
</simpleType>
-
-
+
+
<attributeGroup name="assignmentAttributes">
- <annotation><documentation>the assignment attributes will be used in
+ <annotation><documentation>the assignment attributes will be used in
tasks and swimlanes to specify to whom these respectively are assigned.
</documentation></annotation>
<attribute name="assignee" type="string">
- <annotation><documentation>Expression that resolves to a userId referencing
+ <annotation><documentation>Expression that resolves to a userId referencing
the person to which the task or swimlane will be assigned.
</documentation></annotation>
</attribute>
@@ -1177,25 +1177,25 @@
</documentation></annotation>
</attribute>
<attribute name="candidate-users" type="string">
- <annotation><documentation>Expression that resolves to a comma separated
- list of userId's. All the referred people will be candidates for
+ <annotation><documentation>Expression that resolves to a comma separated
+ list of userId's. All the referred people will be candidates for
take the task or swimlane.</documentation></annotation>
</attribute>
<attribute name="candidate-users-lang" type="string">
- <annotation><documentation>Expression language for the
+ <annotation><documentation>Expression language for the
candidate-users attribute.</documentation></annotation>
</attribute>
<attribute name="candidate-groups" type="string">
- <annotation><documentation>Resolves to a comma separated list of groupId's.
- All the referred people will be candidates to
+ <annotation><documentation>Resolves to a comma separated list of groupId's.
+ All the referred people will be candidates to
take the task or swimlane.</documentation></annotation>
</attribute>
<attribute name="candidate-groups-lang" type="string">
- <annotation><documentation>Expression language for the
+ <annotation><documentation>Expression language for the
candidate-groups attribute.</documentation></annotation>
</attribute>
</attributeGroup>
-
+
<element name="swimlane">
<annotation><documentation>A process role.</documentation></annotation>
<complexType>
@@ -1206,9 +1206,9 @@
<attributeGroup ref="tns:assignmentAttributes" />
</complexType>
</element>
-
+
<complexType name="transitionType">
- <annotation><documentation>The outgoing transitions. The first in the list
+ <annotation><documentation>The outgoing transitions. The first in the list
will be the default outgoing transition.
</documentation></annotation>
<sequence>
@@ -1219,7 +1219,7 @@
<annotation><documentation>Name of this outgoing transition</documentation></annotation>
</attribute>
<attribute name="to" type="string">
- <annotation><documentation>Name of the destination activity of this transition.
+ <annotation><documentation>Name of the destination activity of this transition.
</documentation></annotation>
</attribute>
<attribute name="g" type="string">
@@ -1227,22 +1227,22 @@
</documentation></annotation>
</attribute>
</complexType>
-
+
<element name="transition" type="tns:transitionType">
<annotation><documentation>A transition from one activity to another.</documentation></annotation>
</element>
-
+
<element name="on">
<complexType>
<sequence>
<element ref="tns:timer" minOccurs="0" />
<group ref="tns:eventListenerGroup" minOccurs="0" maxOccurs="unbounded">
- <annotation><documentation>A list of event listeners that will
+ <annotation><documentation>A list of event listeners that will
be notified when the event is fired</documentation></annotation>
</group>
</sequence>
<attribute name="event" type="string">
- <annotation><documentation>The event identification. start, end, take or
+ <annotation><documentation>The event identification. start, end, take or
any other custom event.
</documentation></annotation>
</attribute>
@@ -1256,7 +1256,7 @@
</documentation></annotation>
</attribute>
<attribute name="expr" type="string">
- <annotation><documentation>An expression for which the resulting
+ <annotation><documentation>An expression for which the resulting
value will be used as value.
</documentation></annotation>
</attribute>
@@ -1275,31 +1275,31 @@
<element name="timer">
<complexType>
<sequence>
- <annotation><documentation>A list of event listeners that will
+ <annotation><documentation>A list of event listeners that will
be notified when the timer fires</documentation></annotation>
<element name="description" minOccurs="0" type="string" />
<group ref="tns:eventListenerGroup" minOccurs="0" maxOccurs="unbounded">
</group>
</sequence>
<attribute name="duedate" type="string">
- <annotation><documentation>Timer duedate expression that defines the duedate of this
+ <annotation><documentation>Timer duedate expression that defines the duedate of this
timer relative to the creation time of the timer. E.g. '2 hours' or '4 business days'
</documentation></annotation>
</attribute>
<attribute name="repeat" type="string">
- <annotation><documentation>Timer duedate expression that defines repeated scheduling
+ <annotation><documentation>Timer duedate expression that defines repeated scheduling
relative to the last timer fire event. E.g. '2 hours' or '4 business days'
</documentation></annotation>
</attribute>
<attribute name="duedatetime" type="string">
- <annotation><documentation>Absolute time in format <code>HH:mm dd/MM/yyyy</code>
- (see SimpleDateFormat). The format for the absolute time can be customized in the
- jbpm configuration.
+ <annotation><documentation>Absolute time in format <code>HH:mm dd/MM/yyyy</code>
+ (see SimpleDateFormat). The format for the absolute time can be customized in the
+ jbpm configuration.
</documentation></annotation>
</attribute>
</complexType>
</element>
-
+
<group name="eventListenerGroup">
<choice>
<element name="event-listener">
@@ -1367,7 +1367,7 @@
</element>
</choice>
</group>
-
+
<complexType name="mailType">
<complexContent>
<extension base="tns:wireObjectType">
@@ -1403,7 +1403,7 @@
</extension>
</complexContent>
</complexType>
-
+
<complexType name="jmsType">
<choice minOccurs="1" maxOccurs="1">
<element name="object" type="tns:wireObjectType"/>
@@ -1423,21 +1423,21 @@
<annotation><documentation>indicates the acknowledgment mode</documentation></annotation>
</attribute>
</complexType>
-
+
<complexType name="mailRecipientType">
<attribute name="addresses" type="string">
<annotation><documentation>list of email address separated by ',' (comma) ';' (semicolon) '|' or whitespace</documentation></annotation>
</attribute>
<attribute name="users" type="string">
- <annotation><documentation>list of user ids that are resolved to the email address against configured identity component.
+ <annotation><documentation>list of user ids that are resolved to the email address against configured identity component.
user ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace</documentation></annotation>
</attribute>
<attribute name="groups" type="string">
- <annotation><documentation>list of group ids that are resolved to the email address against configured identity component.
+ <annotation><documentation>list of group ids that are resolved to the email address against configured identity component.
group ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace</documentation></annotation>
</attribute>
</complexType>
-
+
<simpleType name="booleanValueType">
<restriction base="string">
<enumeration value="true" />
@@ -1462,7 +1462,7 @@
<annotation><documentation>Reference to the email template</documentation></annotation>
<restriction base="string"></restriction>
</simpleType>
-
+
<element name="migrate-instances">
<annotation><documentation>Information to migrate instances of previously deployed process definitions
to the new one</documentation></annotation>
@@ -1471,7 +1471,7 @@
<element name="migration-handler" minOccurs="0" maxOccurs="unbounded">
<annotation><documentation>The migration handler specifies the name of a class to be executed while migrating the process instance.</documentation></annotation>
<complexType>
- <attribute name="class"/>
+ <attribute name="class"/>
</complexType>
</element>
<element name="activity-mapping" minOccurs="0" maxOccurs="unbounded">
@@ -1490,12 +1490,12 @@
</attribute>
</complexType>
</element>
-
+
<simpleType name="migrationActionType">
<restriction base="string">
<enumeration value="end" />
<enumeration value="migrate" />
</restriction>
</simpleType>
-
+
</schema>
Modified: jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml
===================================================================
--- jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -193,7 +193,7 @@
<title>The timer transition example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.timer.transition.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="TimerTransition" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TimerTransition" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="guardedWait" />
@@ -251,7 +251,7 @@
<title>The timer event example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.timer.event.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="TimerEvent" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TimerEvent" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="guardedWait" />
@@ -286,7 +286,7 @@
<title>The timer businesstime example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.timer.transition.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="TimerBusinessTime" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TimerBusinessTime" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="guardedWait" />
@@ -323,7 +323,7 @@
<title>The timer repeat example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.timer.event.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="TimerRepeat" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TimerRepeat" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="guardedWait" />
@@ -396,7 +396,7 @@
<title>The simple group example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.group.simple.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="GroupSimple" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="GroupSimple" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="evaluate document" />
@@ -457,7 +457,7 @@
<title>The group timer example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.group.timer.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="GroupTimer" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="GroupTimer" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="evaluate document" />
@@ -518,7 +518,7 @@
<title>The group multiple entries example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.group.multipleentries.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="GroupMultipleEntries" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="GroupMultipleEntries" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="choose strategy" />
@@ -577,7 +577,7 @@
</figure>
<programlisting>
-<process name="GroupConcurrency" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="GroupConcurrency" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="evaluate project" />
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,27 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="AsyncActivity" xmlns="http://jbpm.org/4.4/jpdl">
-<process name="AsyncActivity" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="14,28,80,40">
- <transition to="generate pdf"/>
- </start>
-
- <java name="generate pdf"
- continue="async"
- class="org.jbpm.examples.async.activity.Application"
- method="generatePdf"
- g="86,26,87,50">
- <transition to="calculate primes"/>
- </java>
-
- <java name="calculate primes"
- continue="async"
- class="org.jbpm.examples.async.activity.Application"
- method="calculatePrimes"
- g="203,26,98,50">
- <transition to="end"/>
- </java>
-
- <end name="end" g="330,28,80,40"/>
-
+ <start g="14,28,80,40">
+ <transition to="generate pdf"/>
+ </start>
+
+ <java name="generate pdf"
+ continue="async"
+ class="org.jbpm.examples.async.activity.Application"
+ method="generatePdf"
+ g="86,26,87,50">
+ <transition to="calculate primes"/>
+ </java>
+
+ <java name="calculate primes"
+ continue="async"
+ class="org.jbpm.examples.async.activity.Application"
+ method="calculatePrimes"
+ g="203,26,98,50">
+ <transition to="end"/>
+ </java>
+
+ <end name="end" g="330,28,80,40"/>
+
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/fork/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/fork/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/fork/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,29 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="AsyncFork" xmlns="http://jbpm.org/4.4/jpdl">
-<process name="AsyncFork" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="22,69,80,40">
- <transition to="fork"/>
- </start>
-
- <fork g="99,68,80,40" name="fork">
- <on event="end" continue="exclusive" />
- <transition g="122,41:" to="ship goods"/>
- <transition g="123,142:" to="send bill"/>
- </fork>
-
- <java class="org.jbpm.examples.async.fork.Application" g="159,17,98,50" method="shipGoods" name="ship goods">
- <transition g="297,42:" to="join"/>
- </java>
-
- <java class="org.jbpm.examples.async.fork.Application" g="159,117,98,50" method="sendBill" name="send bill">
- <transition g="297,141:" to="join"/>
- </java>
-
- <join g="274,66,80,40" name="join">
- <transition to="end"/>
- </join>
-
- <end g="353,67,48,48" name="end"/>
-
-</process>
+ <start g="22,69,80,40">
+ <transition to="fork"/>
+ </start>
+
+ <fork g="99,68,80,40" name="fork">
+ <on event="end" continue="exclusive" />
+ <transition g="122,41:" to="ship goods"/>
+ <transition g="123,142:" to="send bill"/>
+ </fork>
+
+ <java class="org.jbpm.examples.async.fork.Application" g="159,17,98,50" method="shipGoods" name="ship goods">
+ <transition g="297,42:" to="join"/>
+ </java>
+
+ <java class="org.jbpm.examples.async.fork.Application" g="159,117,98,50" method="sendBill" name="send bill">
+ <transition g="297,141:" to="join"/>
+ </java>
+
+ <join g="274,66,80,40" name="join">
+ <transition to="end"/>
+ </join>
+
+ <end g="353,67,48,48" name="end"/>
+
+</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/foreach/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/foreach/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/foreach/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<process name="ForEach" xmlns="http://jbpm.org/4.4/jpdl">
- <start g="28,61,48,48" name="start1">
- <transition to="foreach1"/>
- </start>
- <foreach var="department" in="#{departments}" g="111,60,48,48" name="foreach1">
- <transition to="Collect data"/>
- </foreach>
- <task candidate-groups="#{department}" g="201,58,92,52" name="Collect data">
- <transition to="join1"/>
- </task>
- <join g="343,59,48,48" multiplicity="#{quorum}" name="join1">
- <transition to="end1"/>
- </join>
- <end g="433,60,48,48" name="end1"/>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="ForEach" xmlns="http://jbpm.org/4.4/jpdl">
+ <start g="28,61,48,48" name="start1">
+ <transition to="foreach1"/>
+ </start>
+ <foreach var="department" in="#{departments}" g="111,60,48,48" name="foreach1">
+ <transition to="Collect data"/>
+ </foreach>
+ <task candidate-groups="#{department}" g="201,58,92,52" name="Collect data">
+ <transition to="join1"/>
+ </task>
+ <join g="343,59,48,48" multiplicity="#{quorum}" name="join1">
+ <transition to="end1"/>
+ </join>
+ <end g="433,60,48,48" name="end1"/>
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/graphbased/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/graphbased/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/concurrency/graphbased/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,41 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,102,48,48">
<transition to="fork"/>
</start>
-
+
<fork name="fork" g="96,102,48,48">
<transition to="send invoice" g="120,41:"/>
<transition to="load truck"/>
<transition to="print shipping documents" g="120,213:"/>
</fork>
-
+
<state name="send invoice" g="176,16,149,52">
<transition to="final join" g="606,41:"/>
</state>
-
+
<state name="load truck" g="176,100,149,52">
<transition to="shipping join" g="377,126:"/>
</state>
-
+
<state name="print shipping documents" g="176,184,149,58">
<transition to="shipping join" g="378,213:"/>
</state>
-
+
<join name="shipping join" g="353,145,48,48">
<transition to="drive truck to destination"/>
</join>
-
+
<state name="drive truck to destination" g="431,140,148,52">
<transition to="final join" g="607,165:"/>
</state>
-
+
<join name="final join" g="583,73,48,48">
<transition to="end"/>
</join>
-
+
<end name="end" g="666,74,48,48"/>
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/custom/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/custom/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/custom/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Custom" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="20,20,48,48">
+<process name="Custom" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="20,20,48,48">
<transition to="print dots" />
- </start>
-
- <custom name="print dots"
+ </start>
+
+ <custom name="print dots"
class="org.jbpm.examples.custom.PrintDots"
g="96,16,100,52">
-
+
<transition to="end" />
</custom>
-
- <end name="end" g="231,19,80,40"/>
-
+
+ <end name="end" g="231,19,80,40"/>
+
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/conditions/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/conditions/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/conditions/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="DecisionConditions" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="DecisionConditions" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,102,48,48">
<transition to="evaluate document" />
</start>
-
+
<decision name="evaluate document" g="96,102,48,48">
<transition to="submit document" g="120,60:">
<condition expr="#{content=="good"}" />
@@ -19,5 +19,5 @@
<state name="submit document" g="175,35,122,52"/>
<state name="try again" g="176,100,122,52"/>
<state name="give up" g="177,164,122,52"/>
-
+
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/expression/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/expression/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/expression/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="DecisionExpression" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="DecisionExpression" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,102,48,48">
<transition to="evaluate document"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/handler/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/handler/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/decision/handler/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="DecisionHandler" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="DecisionHandler" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,102,48,48">
<transition to="evaluate document" name=""/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/multiple/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/multiple/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/multiple/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="EndMultiple" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="EndMultiple" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,96,48,48">
<transition to="get return code" name=""/>
</start>
-
+
<state g="96,94,111,52" name="get return code">
<transition g="151,60:-36,11" name="200" to="ok"/>
<transition g=":-16,-27" name="400" to="bad request"/>
<transition g="151,183:-33,-32" name="500" to="internal server error"/>
</state>
-
+
<end g="238,37,48,48" name="ok"/>
<end g="238,98,48,48" name="bad request"/>
<end g="240,160,48,48" name="internal server error"/>
-
+
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/processinstance/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/processinstance/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/processinstance/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="EndProcessInstance" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="EndProcessInstance" xmlns="http://jbpm.org/4.4/jpdl">
<start g="85,73,80,40">
<transition to="end" />
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/state/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/state/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/end/state/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="EndState" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="EndState" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,96,48,48">
<transition to="get return code"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/eventlistener/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/eventlistener/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/eventlistener/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,35 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="EventListener" xmlns="http://jbpm.org/4.4/jpdl">
-<process name="EventListener" xmlns="http://jbpm.org/4.3/jpdl">
-
- <on event="start">
+ <on event="start">
<event-listener class="org.jbpm.examples.eventlistener.LogListener">
<field name="msg"><string value="start on process definition"/></field>
- </event-listener>
- </on>
-
- <start g="17,19,48,48">
- <transition to="wait"/>
- </start>
-
- <state name="wait" g="96,16,104,52">
- <on event="start">
- <event-listener class="org.jbpm.examples.eventlistener.LogListener">
- <field name="msg"><string value="start on activity wait"/></field>
- </event-listener>
- </on>
- <on event="end">
+ </event-listener>
+ </on>
+
+ <start g="17,19,48,48">
+ <transition to="wait"/>
+ </start>
+
+ <state name="wait" g="96,16,104,52">
+ <on event="start">
+ <event-listener class="org.jbpm.examples.eventlistener.LogListener">
+ <field name="msg"><string value="start on activity wait"/></field>
+ </event-listener>
+ </on>
+ <on event="end">
<event-listener class="org.jbpm.examples.eventlistener.LogListener">
<field name="msg"><string value="end on activity wait"/></field>
- </event-listener>
- </on>
+ </event-listener>
+ </on>
<transition to="park">
<event-listener class="org.jbpm.examples.eventlistener.LogListener">
<field name="msg"><string value="take transition"/></field>
</event-listener>
</transition>
- </state>
-
- <state name="park" g="231,19,80,52"/>
-
-</process>
+ </state>
+
+ <state name="park" g="231,19,80,52"/>
+
+</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/hql/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/hql/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/hql/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<process name="Hql" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="17,20,48,48">
- <transition to="get task names" />
- </start>
-
- <hql name="get task names"
- var="tasknames with i"
- g="96,16,115,52">
- <query>
- select task.name
- from org.jbpm.pvm.internal.task.TaskImpl as task
- where task.name like :taskName
- </query>
- <parameters>
- <string name="taskName" value="%i%" />
- </parameters>
- <transition to="count tasks" />
- </hql>
-
- <hql name="count tasks"
- var="tasks"
- unique="true"
- g="243,16,95,52">
- <query>
- select count(*)
- from org.jbpm.pvm.internal.task.TaskImpl
- </query>
- <transition to="wait" />
- </hql>
-
- <state name="wait" g="370,18,96,48"/>
-
-</process>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="Hql" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="17,20,48,48">
+ <transition to="get task names" />
+ </start>
+
+ <hql name="get task names"
+ var="tasknames with i"
+ g="96,16,115,52">
+ <query>
+ select task.name
+ from org.jbpm.pvm.internal.task.TaskImpl as task
+ where task.name like :taskName
+ </query>
+ <parameters>
+ <string name="taskName" value="%i%" />
+ </parameters>
+ <transition to="count tasks" />
+ </hql>
+
+ <hql name="count tasks"
+ var="tasks"
+ unique="true"
+ g="243,16,95,52">
+ <query>
+ select count(*)
+ from org.jbpm.pvm.internal.task.TaskImpl
+ </query>
+ <transition to="wait" />
+ </hql>
+
+ <state name="wait" g="370,18,96,48"/>
+
+</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/java/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/java/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/java/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Java" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Java" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="greet" />
</start>
- <java name="greet"
+ <java name="greet"
class="org.jbpm.examples.java.JohnDoe"
method="hello"
var="answer"
g="96,16,83,52">
-
+
<field name="state"><string value="fine"/></field>
<arg><string value="Hi, how are you?"/></arg>
-
+
<transition to="shake hand" />
</java>
-
- <java name="shake hand"
+
+ <java name="shake hand"
expr="#{hand}"
method="shake"
var="hand"
g="215,17,99,52">
-
+
<arg><object expr="#{joesmoe.handshakes.force}"/></arg>
<arg><object expr="#{joesmoe.handshakes.duration}"/></arg>
-
+
<transition to="wait" />
</java>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/inline/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/inline/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/inline/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="InlineMail" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="InlineMail" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,25,80,40">
<transition to="send rectify note"/>
@@ -15,7 +15,7 @@
refs unpersons rewrite fullwise upsub antefiling</text>
<!--
<html><table><tr><td>${newspaper}</td><td>${date}</td>
- <td>reporting bb dayorder doubleplusungood
+ <td>reporting bb dayorder doubleplusungood
refs unpersons rewrite fullwise upsub antefiling</td>
</tr></table></html>
<attachments>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TemplateMail" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TemplateMail" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,25,80,40">
<transition to="send rectify note"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/expression/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/expression/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/expression/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="ScriptExpression" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="ScriptExpression" xmlns="http://jbpm.org/4.4/jpdl">
<start g="17,19,48,48">
<transition to="invoke script" />
</start>
- <script name="invoke script"
+ <script name="invoke script"
expr="Send packet to #{order.address}"
var="text"
g="96,16,104,52">
<transition to="wait" />
</script>
-
+
<state name="wait" g="232,16,80,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/text/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/text/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/script/text/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="ScriptText" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="ScriptText" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,22,80,40">
<transition to="invoke script" />
</start>
- <script name="invoke script"
+ <script name="invoke script"
var="text"
g="113,18,104,52">
<text>
@@ -15,7 +15,7 @@
<transition to="wait" />
</script>
-
+
<state name="wait" g="266,18,80,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/serializablevariable/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/serializablevariable/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/serializablevariable/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SerializableVariable" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="20,20,48,48">
+<process name="SerializableVariable" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="20,20,48,48">
<transition to="wait before update" />
</start>
-
+
<state name="wait before update">
<transition to="update serialized variables" />
</state>
-
- <custom name="update serialized variables"
+
+ <custom name="update serialized variables"
class="org.jbpm.examples.serializablevariable.UpdateSerializedVariables"
g="96,16,100,52">
-
+
<transition to="wait after update" />
</custom>
-
- <state name="wait after update" g="231,19,80,40"/>
-
+
+ <state name="wait after update" g="231,19,80,40"/>
+
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/services/Order.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/services/Order.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/services/Order.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Order" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Order" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,19,48,48">
<transition to="receive confirmation" />
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/sql/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/sql/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/sql/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<process name="Sql" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="16,20,48,48">
- <transition to="get task names" />
- </start>
-
- <sql name="get task names"
- var="tasknames with i"
- g="96,16,126,52">
- <query>
- select NAME_
- from JBPM4_TASK
- where NAME_ like :name
- </query>
- <parameters>
- <string name="name" value="%i%" />
- </parameters>
- <transition to="count tasks" />
- </sql>
-
- <sql name="count tasks"
- var="tasks"
- unique="true"
- g="254,16,92,52">
- <query>
- select count(*)
- from JBPM4_TASK
- </query>
- <transition to="wait" />
- </sql>
-
- <state name="wait" g="378,18,94,48"/>
-
-</process>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="Sql" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="16,20,48,48">
+ <transition to="get task names" />
+ </start>
+
+ <sql name="get task names"
+ var="tasknames with i"
+ g="96,16,126,52">
+ <query>
+ select NAME_
+ from JBPM4_TASK
+ where NAME_ like :name
+ </query>
+ <parameters>
+ <string name="name" value="%i%" />
+ </parameters>
+ <transition to="count tasks" />
+ </sql>
+
+ <sql name="count tasks"
+ var="tasks"
+ unique="true"
+ g="254,16,92,52">
+ <query>
+ select count(*)
+ from JBPM4_TASK
+ </query>
+ <transition to="wait" />
+ </sql>
+
+ <state name="wait" g="378,18,94,48"/>
+
+</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/choice/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/choice/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/choice/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,17 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="StateChoice" xmlns="http://jbpm.org/4.4/jpdl">
-<process name="StateChoice" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="16,60,48,48">
- <transition to="wait for response"/>
- </start>
-
- <state name="wait for response" g="96,58,109,52" >
- <transition name="accept" to="submit document" g="148,34:3,-15" />
- <transition name="reject" to="try again" g="151,133:3,2" />
- </state>
-
- <state name="submit document" g="238,8,114,52" />
- <state name="try again" g="238,108,114,52" />
-
+ <start g="16,60,48,48">
+ <transition to="wait for response"/>
+ </start>
+
+ <state name="wait for response" g="96,58,109,52" >
+ <transition name="accept" to="submit document" g="148,34:3,-15" />
+ <transition name="reject" to="try again" g="151,133:3,2" />
+ </state>
+
+ <state name="submit document" g="238,8,114,52" />
+ <state name="try again" g="238,108,114,52" />
+
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/sequence/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/sequence/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/state/sequence/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="StateSequence" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="StateSequence" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,18,48,48">
<transition to="a" />
</start>
-
+
<state name="a" g="96,16,75,52">
<transition to="b" />
</state>
-
+
<state name="b" g="203,16,73,52">
<transition to="c" />
</state>
-
+
<state name="c" g="308,16,76,52" />
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessDocument.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessDocument.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessDocument.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessDocument" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessDocument" xmlns="http://jbpm.org/4.4/jpdl">
<start g="43,109,48,48">
<transition to="review" />
@@ -9,12 +9,12 @@
<sub-process name="review"
sub-process-key="SubProcessReview"
g="118,106,99,52">
-
+
<transition name="ok" to="next step" g="167,67:6,-19"/>
<transition name="nok" to="update" g="-22,-18"/>
<transition name="reject" to="close" g="167,200:7,3"/>
</sub-process>
-
+
<state name="next step" g="255,41,88,52"/>
<state name="update" g="256,106,88,52"/>
<state name="close" g="258,175,88,52"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessReview.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessReview.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeactivity/SubProcessReview.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start g="25,101,48,48">
<transition to="get approval"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessDocument.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessDocument.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessDocument.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<process name="SubProcessDocument" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="36,109,48,48">
- <transition to="review" />
- </start>
-
- <sub-process name="review"
- sub-process-key="SubProcessReview"
- outcome="#{result}"
- g="118,106,99,52">
-
- <transition name="ok" to="next step" g="167,67:6,-19">
- <outcome-value>
- <int value="100"/>
- </outcome-value>
- </transition>
- <transition name="nok" to="update" g="-22,-18">
- <outcome-value>
- <int value="200"/>
- </outcome-value>
- </transition>
- <transition name="reject" to="close" g="167,200:7,3">
- <outcome-value>
- <int value="300"/>
- </outcome-value>
- </transition>
- </sub-process>
-
- <state name="next step" g="255,41,88,52"/>
- <state name="update" g="256,106,88,52"/>
- <state name="close" g="258,175,88,52"/>
-
-</process>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="SubProcessDocument" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="36,109,48,48">
+ <transition to="review" />
+ </start>
+
+ <sub-process name="review"
+ sub-process-key="SubProcessReview"
+ outcome="#{result}"
+ g="118,106,99,52">
+
+ <transition name="ok" to="next step" g="167,67:6,-19">
+ <outcome-value>
+ <int value="100"/>
+ </outcome-value>
+ </transition>
+ <transition name="nok" to="update" g="-22,-18">
+ <outcome-value>
+ <int value="200"/>
+ </outcome-value>
+ </transition>
+ <transition name="reject" to="close" g="167,200:7,3">
+ <outcome-value>
+ <int value="300"/>
+ </outcome-value>
+ </transition>
+ </sub-process>
+
+ <state name="next step" g="255,41,88,52"/>
+ <state name="update" g="256,106,88,52"/>
+ <state name="close" g="258,175,88,52"/>
+
+</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessReview.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessReview.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomeobject/SubProcessReview.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="20,20,48,48">
- <transition to="get approval"/>
- </start>
-
- <task name="get approval"
- assignee="johndoe"
- g="96,16,127,52">
-
- <transition to="end"/>
- </task>
-
- <end name="end" g="254,19,88,52" />
-
-</process>
+<?xml version="1.0" encoding="UTF-8"?>
+<process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
+
+ <start g="20,20,48,48">
+ <transition to="get approval"/>
+ </start>
+
+ <task name="get approval"
+ assignee="johndoe"
+ g="96,16,127,52">
+
+ <transition to="end"/>
+ </task>
+
+ <end name="end" g="254,19,88,52" />
+
+</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessDocument.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessDocument.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessDocument.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessDocument" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessDocument" xmlns="http://jbpm.org/4.4/jpdl">
<start g="36,109,48,48">
<transition to="review" />
@@ -8,14 +8,14 @@
<sub-process name="review"
sub-process-key="SubProcessReview"
- outcome="#{result}"
+ outcome="#{result}"
g="118,106,99,52">
-
+
<transition name="ok" to="next step" g="167,67:6,-19"/>
<transition name="nok" to="update" g="-22,-18"/>
<transition name="reject" to="close" g="167,200:7,3"/>
</sub-process>
-
+
<state name="next step" g="255,41,88,52"/>
<state name="update" g="256,106,88,52"/>
<state name="close" g="258,175,88,52"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessReview.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessReview.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/outcomevalue/SubProcessReview.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="get approval"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessDocument.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessDocument.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessDocument.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessDocument" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessDocument" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
<sub-process name="review"
- sub-process-key="SubProcessReview"
+ sub-process-key="SubProcessReview"
g="96,16,127,52">
-
+
<parameter-in var="document" subvar="document" />
<parameter-out var="reviewResult" subvar="result" />
-
+
<transition to="wait" />
</sub-process>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessReview.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessReview.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/subprocess/variables/SubProcessReview.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="get approval"/>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignee/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignee/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignee/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskAssignee" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskAssignee" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
- <task name="review"
+ <task name="review"
assignee="#{order.owner}"
g="96,16,127,52">
-
+
<transition to="wait" />
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignmenthandler/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignmenthandler/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/assignmenthandler/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskAssignmentHandler" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskAssignmentHandler" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
-
+
<task name="review" g="96,16,127,52">
<assignment-handler class="org.jbpm.examples.task.assignmenthandler.AssignTask">
<field name="assignee">
@@ -16,5 +16,5 @@
</task>
<state name="wait" g="255,16,88,52" />
-
+
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/candidates/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/candidates/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/candidates/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskCandidates" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskCandidates" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
- <task name="review"
+ <task name="review"
candidate-groups="sales-dept"
g="96,16,127,52">
-
+
<transition to="wait" />
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/comments/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/comments/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/comments/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskComments" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskComments" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
- <task name="review"
+ <task name="review"
assignee="johndoe"
g="96,16,127,52">
-
+
<transition to="wait" />
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskNotification" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskNotification" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review"/>
</start>
- <task name="review"
+ <task name="review"
assignee="#{order.owner}"
g="96,16,127,52">
<notification/>
<transition to="wait"/>
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/reminder/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/reminder/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/reminder/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskReminder" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskReminder" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review"/>
</start>
- <task name="review"
+ <task name="review"
assignee="#{order.owner}"
g="96,16,127,52">
- <reminder duedate="2 days" repeat="1 day"/>
+ <reminder duedate="2 days" repeat="1 day"/>
<transition to="wait"/>
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/swimlane/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/swimlane/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/swimlane/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskSwimlane" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskSwimlane" xmlns="http://jbpm.org/4.4/jpdl">
<swimlane name="sales representative"
candidate-groups="sales-dept" />
@@ -8,16 +8,16 @@
<start g="20,20,48,48">
<transition to="enter order data" />
</start>
-
+
<task name="enter order data"
- swimlane="sales representative"
+ swimlane="sales representative"
g="96,16,127,52">
<transition to="calculate quote"/>
</task>
- <task
- name="calculate quote"
+ <task
+ name="calculate quote"
swimlane="sales representative"
g="255,16,111,52">
</task>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/variables/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/variables/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/variables/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TaskVariables" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TaskVariables" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
<task name="review"
- assignee="johndoe"
+ assignee="johndoe"
g="96,16,127,52">
-
+
<transition to="wait" />
</task>
-
+
<state name="wait" g="255,16,88,52"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/taskform/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/taskform/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/taskform/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="VacationRequest" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="VacationRequest" xmlns="http://jbpm.org/4.4/jpdl">
<start form="org/jbpm/examples/taskform/request_vacation.ftl" g="16,56,48,48" name="start">
<transition to="verify_request"/>
</start>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/businesstime/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/businesstime/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/businesstime/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TimerBusinessTime" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TimerBusinessTime" xmlns="http://jbpm.org/4.4/jpdl">
<start g="19,50,48,48">
<transition to="guardedWait" />
@@ -9,10 +9,10 @@
<state name="guardedWait" g="98,46,127,52">
<transition name="go on" to="next step" g="-16,-17" />
<transition name="timeout" to="escalation" g="-43,-16">
- <timer duedate="9 business hours" />
+ <timer duedate="9 business hours" />
</transition>
</state>
-
+
<state name="next step" g="283,46,83,53" />
<state name="escalation" g="118,140,88,52" />
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/event/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/event/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/event/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TimerEvent" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TimerEvent" xmlns="http://jbpm.org/4.4/jpdl">
<start g="19,50,48,48">
<transition to="guardedWait" />
@@ -13,7 +13,7 @@
</on>
<transition name="go on" to="next step" g="-16,-17" />
</state>
-
+
<state name="next step" g="283,46,83,53" />
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/repeat/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/repeat/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/repeat/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="TimerRepeat" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="TimerRepeat" xmlns="http://jbpm.org/4.4/jpdl">
<start g="19,50,48,48">
<transition to="guardedWait" />
@@ -13,7 +13,7 @@
</on>
<transition name="go on" to="next step" g="-16,-17"/>
</state>
-
+
<state name="next step" g="283,46,83,53"/>
</process>
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/transition/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/transition/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/timer/transition/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,19 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="TimerTransition" xmlns="http://jbpm.org/4.4/jpdl">
-<process name="TimerTransition" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="19,50,48,48">
- <transition to="guardedWait" />
- </start>
-
- <state name="guardedWait" g="98,46,127,52">
- <transition name="go on" to="next step" g="-16,-17"/>
- <transition name="timeout" to="escalation" g="-43,-16">
- <timer duedate="5 seconds" />
+ <start g="19,50,48,48">
+ <transition to="guardedWait" />
+ </start>
+
+ <state name="guardedWait" g="98,46,127,52">
+ <transition name="go on" to="next step" g="-16,-17"/>
+ <transition name="timeout" to="escalation" g="-43,-16">
+ <timer duedate="5 seconds" />
</transition>
- </state>
-
- <state name="next step" g="283,46,83,53"/>
- <state name="escalation" g="118,140,88,52" />
-
+ </state>
+
+ <state name="next step" g="283,46,83,53"/>
+ <state name="escalation" g="118,140,88,52" />
+
</process>
\ No newline at end of file
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-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2010-07-06 06:29:15 UTC (rev 6463)
@@ -79,18 +79,18 @@
* @author Tom Baeyens
*/
public class JpdlParser extends Parser {
-
+
private static final Log log = Log.getLog(JpdlParser.class.getName());
public static final String NAMESPACE_JPDL_40 = "http://jbpm.org/4.0/jpdl";
public static final String NAMESPACE_JPDL_42 = "http://jbpm.org/4.2/jpdl";
public static final String NAMESPACE_JPDL_43 = "http://jbpm.org/4.3/jpdl";
- public static final String NAMESPACE_JPDL_44 = "http://jbpm.org/jpdl/4.4";
+ public static final String NAMESPACE_JPDL_44 = "http://jbpm.org/4.4/jpdl";
public static final String CURRENT_VERSION_JBPM = "4.4";
- public static final String CURRENT_VERSION_NAMESPACE = "http://jbpm.org/jpdl/"+CURRENT_VERSION_JBPM;
- public static final String CURRENT_VERSION_PROCESS_LANGUAGE_ID = "jpdl-"+CURRENT_VERSION_JBPM;
-
+ public static final String CURRENT_VERSION_NAMESPACE = "http://jbpm.org/" + CURRENT_VERSION_JBPM + "/jpdl";
+ public static final String CURRENT_VERSION_PROCESS_LANGUAGE_ID = "jpdl-" + CURRENT_VERSION_JBPM;
+
private static final List<String> SCHEMA_RESOURCES = Arrays.asList("jpdl-4.0.xsd",
"jpdl-4.2.xsd", "jpdl-4.3.xsd", "jpdl-4.4.xsd");
@@ -99,7 +99,7 @@
private static final String[] DEFAULT_BINDING_RESOURCES = {
"jbpm.jpdl.bindings.xml",
"jbpm.user.bindings.xml"
- };
+ };
private static JpdlBindingsParser jpdlBindingsParser = new JpdlBindingsParser();
@@ -107,7 +107,7 @@
public static final String CATEGORY_EVENT_LISTENER = "eventlistener";
public JpdlParser() {
- initialize();
+ initialize();
parseBindings();
setSchemaResources(SCHEMA_RESOURCES);
}
@@ -150,11 +150,11 @@
public Object parseDocumentElement(Element documentElement, Parse parse) {
List<ProcessDefinitionImpl> processDefinitions = new ArrayList<ProcessDefinitionImpl>();
-
+
JpdlProcessDefinition processDefinition = instantiateNewJpdlProcessDefinition();
-
+
processDefinitions.add(processDefinition);
-
+
parse.contextStackPush(processDefinition);
try {
// process attribues
@@ -163,33 +163,33 @@
// make the process language version available for bindings
// to allow for specific parsing behaviour per version
-
+
// first check if the langid is available as a deployment property
DeploymentImpl deployment = (DeploymentImpl) parse.contextMapGet(Parse.CONTEXT_KEY_DEPLOYMENT);
if (deployment!=null) {
String processLanguageId = deployment.getProcessLanguageId(name);
if (processLanguageId==null) {
- // if it is not available as a deployment property, check if the
+ // if it is not available as a deployment property, check if the
// jpdlparser attribute specifies a specific jpdl version.
// this is the case for certain compatibility tests in our test suite
String jpdlParser = XmlUtil.attribute(documentElement, "jpdlparser");
if (jpdlParser!=null) {
- processLanguageId = "jpdl-"+jpdlParser;
+ processLanguageId = "jpdl-" + jpdlParser;
} else {
// if none of the above, check if this is a parser test run for a specific verion
- // specify the jpdltestversion with "mvn -Djpdlparser=jpdl-4.3 clean install"
+ // specify the jpdltestversion with "mvn -Djpdlparser=jpdl-4.4 clean install"
// that way, the whole test suite will be use the specified parser
jpdlParser = System.getProperty("jpdlparser");
if (jpdlParser!=null) {
- processLanguageId = "jpdl-"+jpdlParser;
+ processLanguageId = "jpdl-" + jpdlParser;
} else {
- // if this process has a namespace, then use the namespace
+ // if this process has a namespace, then use the namespace
// to see what jpdl parser version should be used
String namespaceUri = documentElement.getNamespaceURI();
if (namespaceUri!=null) {
- processLanguageId = "jpdl-"+namespaceUri.substring(16, 19);
+ processLanguageId = "jpdl-" + namespaceUri.substring(16, 19);
} else {
// if none of the above, just deploy it as the current library version
@@ -197,7 +197,7 @@
}
}
}
- // saving the process language will make sure that
+ // saving the process language will make sure that
// the right parser version is used after an upgrade of jbpm
// as the old format xml will still be in the db
deployment.setProcessLanguageId(name, processLanguageId);
@@ -223,16 +223,16 @@
String description = XmlUtil.getContentText(descriptionElement);
processDefinition.setDescription(description);
}
-
+
UnresolvedTransitions unresolvedTransitions = new UnresolvedTransitions();
parse.contextStackPush(unresolvedTransitions);
-
+
// swimlanes
List<Element> swimlaneElements = XmlUtil.elements(documentElement, "swimlane");
for (Element swimlaneElement: swimlaneElements) {
String swimlaneName = XmlUtil.attribute(swimlaneElement, "name", parse);
if (swimlaneName!=null) {
- SwimlaneDefinitionImpl swimlaneDefinition =
+ SwimlaneDefinitionImpl swimlaneDefinition =
processDefinition.createSwimlaneDefinition(swimlaneName);
parseAssignmentAttributes(swimlaneElement, swimlaneDefinition, parse);
}
@@ -243,7 +243,7 @@
// on events
parseOnEvents(documentElement, parse, processDefinition);
-
+
// activities
parseActivities(documentElement, parse, processDefinition);
@@ -263,7 +263,7 @@
if (processDefinition.getInitial()==null) {
parse.addProblem("no start activity in process", documentElement);
}
-
+
return processDefinitions;
}
@@ -281,9 +281,9 @@
List<Element> elements = XmlUtil.elements(documentElement);
for (Element nestedElement : elements) {
String tagName = nestedElement.getLocalName();
- if ("on".equals(tagName)
+ if ("on".equals(tagName)
|| "timer".equals(tagName)
- || "swimlane".equals(tagName)
+ || "swimlane".equals(tagName)
|| "migrate-instances".equals(tagName)
|| "description".equals(tagName)) continue;
@@ -353,7 +353,7 @@
}
}
}
-
+
public TimerDefinitionImpl parseTimerDefinition(Element timerElement, Parse parse, ScopeElementImpl scopeElement) {
TimerDefinitionImpl timerDefinition = scopeElement.createTimerDefinition();
@@ -362,7 +362,7 @@
if (duedate!=null) {
timerDefinition.setDueDateDescription(duedate);
-
+
} else if (duedatetime!=null) {
String dueDateTimeFormatText = (String) EnvironmentImpl.getFromCurrent("jbpm.duedatetime.format", false);
if (dueDateTimeFormatText==null) {
@@ -378,10 +378,10 @@
} else {
parse.addProblem("either duedate or duedatetime is required in timer", timerElement);
}
-
+
String repeat = XmlUtil.attribute(timerElement, "repeat");
timerDefinition.setRepeat(repeat);
-
+
return timerDefinition;
}
@@ -406,7 +406,7 @@
if (event==null) {
event = observableElement.createEvent(eventName);
}
-
+
String continuationText = XmlUtil.attribute(element, "continue");
if (continuationText!=null) {
if ("async".equals(continuationText)) {
@@ -428,12 +428,12 @@
Descriptor eventListenerDescriptor = (Descriptor) parseResult;
eventListenerReference = event.createEventListenerReference(eventListenerDescriptor);
}
-
+
Boolean propagationEnabled = XmlUtil.attributeBoolean(eventListenerElement, "propagation", parse);
if (propagationEnabled!=null) {
eventListenerReference.setPropagationEnabled(propagationEnabled);
}
-
+
continuationText = XmlUtil.attribute(eventListenerElement, "continue");
if (continuationText!=null) {
if (observableElement instanceof ActivityImpl) {
@@ -479,12 +479,12 @@
TimerDefinitionImpl timerDefinitionImpl = parseTimerDefinition(timerElement, parse, activity);
timerDefinitionImpl.setSignalName(transitionName);
}
-
+
TransitionImpl transition = activity.createOutgoingTransition();
transition.setName(transitionName);
-
+
unresolvedTransitions.add(transition, transitionElement);
-
+
parseOnEvent(transitionElement, parse, transition, Event.TAKE);
}
}
@@ -496,20 +496,20 @@
Expression descriptionExpression = Expression.create(descriptionText, Expression.LANGUAGE_UEL_VALUE);
assignableDefinition.setDescription(descriptionExpression);
}
-
+
Element assignmentHandlerElement = XmlUtil.element(element, "assignment-handler");
if (assignmentHandlerElement!=null) {
UserCodeReference assignmentHandlerReference = parseUserCodeReference(assignmentHandlerElement, parse);
assignableDefinition.setAssignmentHandlerReference(assignmentHandlerReference);
}
-
+
String assigneeExpressionText = XmlUtil.attribute(element, "assignee");
if (assigneeExpressionText!=null) {
String assigneeExpressionLanguage = XmlUtil.attribute(element, "assignee-lang");
Expression assigneeExpression = Expression.create(assigneeExpressionText, assigneeExpressionLanguage);
assignableDefinition.setAssigneeExpression(assigneeExpression);
}
-
+
String candidateUsersExpressionText = XmlUtil.attribute(element, "candidate-users");
if (candidateUsersExpressionText!=null) {
String candidateUsersExpressionLanguage = XmlUtil.attribute(element, "candidate-users-lang");
@@ -527,7 +527,7 @@
public TaskDefinitionImpl parseTaskDefinition(Element element, Parse parse, ScopeElementImpl scopeElement) {
TaskDefinitionImpl taskDefinition = new TaskDefinitionImpl();
-
+
String taskName = XmlUtil.attribute(element, "name");
taskDefinition.setName(taskName);
@@ -559,9 +559,9 @@
parse.addProblem("swimlane "+swimlaneName+" not declared", element);
}
}
-
+
parseAssignmentAttributes(element, taskDefinition, parse);
-
+
// parse notification mail producer
Element notificationElement = XmlUtil.element(element, "notification");
if (notificationElement != null) {
@@ -581,23 +581,23 @@
public void parseVariableDefinitions(Element element, Parse parse, ScopeElementImpl scopeElement) {
List<VariableDefinitionImpl> variableDefinitions = new ArrayList<VariableDefinitionImpl>();
-
+
for (Element variableElement: XmlUtil.elements(element, "variable")) {
VariableDefinitionImpl variableDefinition = scopeElement.createVariableDefinition();
String name = XmlUtil.attribute(variableElement, "name", parse);
variableDefinition.setName(name);
-
+
String type = XmlUtil.attribute(variableElement, "type", parse);
variableDefinition.setTypeName(type);
-
+
Boolean isHistoryEnabled = XmlUtil.attributeBoolean(variableElement, "history", parse);
if (isHistoryEnabled != null) {
variableDefinition.setHistoryEnabled(isHistoryEnabled);
}
-
+
int sources = 0;
-
+
String initExpr = XmlUtil.attribute(variableElement, "init-expr");
String initExprType = XmlUtil.attribute(variableElement, "init-expr-type");
if (initExpr!=null) {
@@ -605,7 +605,7 @@
variableDefinition.setInitExpression(initExpression);
sources++;
}
-
+
Element initDescriptorElement = XmlUtil.element(variableElement);
if (initDescriptorElement!=null) {
Descriptor initValueDescriptor = (Descriptor) WireParser.getInstance().parseElement(initDescriptorElement, parse);
@@ -616,7 +616,7 @@
if (sources>1) {
parse.addProblem("init attribute and init element are mutually exclusive on element variable", variableElement);
}
-
+
variableDefinitions.add(variableDefinition);
}
}
@@ -643,11 +643,11 @@
//https://jira.jboss.org/jira/browse/JBPM-2466
String mailTemplateName = eventName;
if (Event.ASSIGN.equals(eventName)) {
- mailTemplateName = "task-notification";
+ mailTemplateName = "task-notification";
} else if (Event.REMIND.equals(eventName)) {
- mailTemplateName = "task-reminder";
+ mailTemplateName = "task-reminder";
}
-
+
// associate mail producer to event listener
UserCodeReference mailProducer = parseMailProducer(element, parse, mailTemplateName);
eventListener.setMailProducerReference(mailProducer);
@@ -703,7 +703,7 @@
ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
userCodeReference.setDescriptor(objectDescriptor);
-
+
if (objectDescriptor.getExpression()!=null) {
// expressions are not cached by default
userCodeReference.setCached(false);
Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ArgParsingTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ArgParsingTest.java 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/ArgParsingTest.java 2010-07-06 06:29:15 UTC (rev 6463)
@@ -11,18 +11,18 @@
public class ArgParsingTest extends JpdlParseTestCase {
public void testArgOneValue() {
- String xmlString = "<process name='MyProcess' version='1' xmlns='http://jbpm.org/jpdl/4.4'>\n"
- + " <start name='start'>\n"
- + " <transition name='myTransition' to='end'>\n"
- + " <event-listener class='com.comp.MyEventListener'>\n"
- + " <constructor>\n"
- + " <arg type='java.lang.String'><string value='hello world'/></arg>\n"
- + " </constructor>\n"
- + " </event-listener>\n"
- + " </transition>\n"
- + " </start>\n"
- + " <end name='end'/>\n"
- + "</process>\n";
+ String xmlString = "<process name='MyProcess' version='1' xmlns='http://jbpm.org/4.4/jpdl'>"
+ + " <start name='start'>"
+ + " <transition name='myTransition' to='end'>"
+ + " <event-listener class='com.comp.MyEventListener'>"
+ + " <constructor>"
+ + " <arg type='java.lang.String'><string value='hello world'/></arg>"
+ + " </constructor>"
+ + " </event-listener>"
+ + " </transition>"
+ + " </start>"
+ + " <end name='end'/>"
+ + "</process>";
List<Problem> problems = jpdlParser.createParse()
.setString(xmlString)
@@ -32,7 +32,7 @@
}
public void testArgTwoValues() {
- String xmlString = "<process name='MyProcess' version='1' xmlns='http://jbpm.org/jpdl/4.4'>\n"
+ String xmlString = "<process name='MyProcess' version='1' xmlns='http://jbpm.org/4.4/jpdl'>\n"
+ " <start name='start'>\n"
+ " <transition name='myTransition' to='end'>\n"
+ " <event-listener class='com.comp.MyEventListener'>\n"
@@ -46,12 +46,18 @@
+ " </transition>\n"
+ " </start>\n"
+ " <end name='end'/>\n"
- + "</process>\n";
+ + "</process>";
List<Problem> problems = jpdlParser.createParse()
.setString(xmlString)
.execute()
.getProblems();
assertEquals(1, problems.size());
+ assertEquals("xml validation error: cvc-complex-type.2.4.d: "
+ + "Invalid content was found starting with element 'string'. "
+ + "No child element is expected at this point. [line=8 column=44 ]: "
+ + "org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: "
+ + "Invalid content was found starting with element 'string'. "
+ + "No child element is expected at this point.", problems.get(0).toString());
}
}
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.bar
===================================================================
(Binary files differ)
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Purchase order" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl">
<start g="46,33,80,40">
<transition to="a" />
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/ant/valid.zip
===================================================================
(Binary files differ)
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/extended.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/extended.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/extended.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Purchase order" xmlns="http://jbpm.org/4.3/jpdl"
+<process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl"
xmlns:ext="http://jbpm.org/customextensions">
<start>
@@ -11,7 +11,7 @@
<customconfigelement a="yyy" />
<transition to="end"/>
</customactivity>
-
+
<end name="end" />
</process>
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/invalid.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/invalid.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/invalid.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Purchase order" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl">
<start />
<buzzz>
-
+
</buzzz>
</process>
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="StateSequence" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="StateSequence" xmlns="http://jbpm.org/4.4/jpdl">
<start g="16,18,48,48">
<transition to="a" />
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/valid.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/valid.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/org/jbpm/test/xml/valid.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="Purchase order" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl">
<start g="46,33,80,40">
<transition to="a" />
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java 2010-07-06 06:29:15 UTC (rev 6463)
@@ -43,18 +43,18 @@
/** base class for persistent jBPM tests.
*
- * This class exposes a lot of extra convenience methods for testing
+ * This class exposes a lot of extra convenience methods for testing
* process executions.
*
- * The ProcessEngine services will be initialized and available as
+ * The ProcessEngine services will be initialized and available as
* member fields.
*
- * This test assumes that each test will clean the DB itself and that
- * no data is in the DB tables when the test finishes.
+ * This test assumes that each test will clean the DB itself and that
+ * no data is in the DB tables when the test finishes.
*
- * During tearDown, a check will be done if all the DB tables are
- * empty. If not, that is logged with a F I X M E and the DB tables
- * are cleaned.
+ * During tearDown, a check will be done if all the DB tables are
+ * empty. If not, that is logged with a F I X M E and the DB tables
+ * are cleaned.
*
* @author Tom Baeyens
* @author Heiko Braun
@@ -70,7 +70,7 @@
protected static HistoryService historyService;
protected static IdentityService identityService;
- /** registered deployments. registered deployments will be deleted automatically
+ /** registered deployments. registered deployments will be deleted automatically
* in the tearDown. This is a convenience function as each test is expected to clean up the DB. */
protected List<String> registeredDeployments = new ArrayList<String>();
@@ -83,7 +83,7 @@
protected synchronized void initialize() {
if (processEngine==null) {
processEngine = Configuration.getProcessEngine();
-
+
repositoryService = processEngine.get(RepositoryService.class);
executionService = processEngine.getExecutionService();
historyService = processEngine.getHistoryService();
@@ -92,47 +92,47 @@
identityService = processEngine.getIdentityService();
}
}
-
+
@Override
protected void tearDown() throws Exception {
deleteRegisteredDeployments();
String errorMsg = verifyDbClean();
super.tearDown();
-
+
if (errorMsg!=null) {
throw new JbpmException(errorMsg);
}
}
-
+
public static void jmsCreateQueue(String connectionFactoryJndiName, String queueJndiName) {
JmsExtensions.createQueue(connectionFactoryJndiName, queueJndiName);
}
-
+
public static Object jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName) {
return jmsConsumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, 1000, true, Session.AUTO_ACKNOWLEDGE);
}
-
+
public static Object jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
return JmsExtensions.consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, timeout, transacted, acknowledgeMode);
}
-
+
public static Object jmsConsumeMessageFromQueueXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
return JmsExtensions.consumeMessageFromQueueXA(connectionFactoryJndiName, queueJndiName, timeout);
}
-
+
public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
JmsExtensions.jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, timeout, transacted, acknowledgeMode);
}
-
+
public static void jmsAssertQueueEmptyXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
JmsExtensions.jmsAssertQueueEmptyXA(connectionFactoryJndiName, queueJndiName, timeout);
}
-
+
public static void jmsRemoveQueue(String connectionFactoryJndiName, String queueJndiName) {
JmsExtensions.removeQueue(connectionFactoryJndiName, queueJndiName);
}
-
+
public static void jmsCreateTopic(String connectionFactoryJndiName, String topicJndiName) {
JmsExtensions.createTopic(connectionFactoryJndiName, topicJndiName);
}
@@ -168,7 +168,18 @@
// deployment helper methods ////////////////////////////////////////////////
- /** deploys the process, keeps a reference to the deployment and
+ public String deployFromClasspath(String resourceName) {
+ String deploymentDbid =
+ repositoryService.createDeployment()
+ .addResourceFromClasspath(resourceName)
+ .deploy();
+
+ registerDeployment(deploymentDbid);
+
+ return deploymentDbid;
+ }
+
+ /** deploys the process, keeps a reference to the deployment and
* automatically deletes the deployment in the tearDown */
public String deployJpdlXmlString(String jpdlXmlString) {
String deploymentDbid =
@@ -180,7 +191,7 @@
return deploymentDbid;
}
-
+
public String deployBpmn2XmlString(String bpmn2XmlString) {
String deploymentDbid =
repositoryService.createDeployment()
@@ -197,7 +208,7 @@
}
// task helper methods //////////////////////////////////////////////////////
-
+
public static void assertContainsTask(List<Task> taskList, String taskName) {
if (getTask(taskList, taskName)==null) {
fail("tasklist doesn't contain task '"+taskName+"': "+taskList);
@@ -218,7 +229,7 @@
}
return null;
}
-
+
public static Task getTask(List<Task> taskList, String taskName, String assignee) {
for (Task task : taskList) {
if (taskName.equals(task.getName())) {
@@ -235,87 +246,87 @@
}
return null;
}
-
+
public void assertNoOpenTasks(String processInstanceId) {
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
- assertTrue("There were still open tasks found for the process instance with id " +
- processInstanceId + ". Current tasks are: " +
+ assertTrue("There were still open tasks found for the process instance with id " +
+ processInstanceId + ". Current tasks are: " +
listAllOpenTasks(processInstanceId), tasks.isEmpty());
}
-
+
protected String listAllOpenTasks(String processInstanceId) {
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
StringBuilder result = new StringBuilder();
for (Task task : tasks) {
result.append("'" + task.getName() + "', ");
}
-
+
if (result.length() > 2) {
result.setLength(result.length() - 2); // remove the last ', '
}
-
+
return result.toString();
}
-
+
// execution helper methods //////////////////////////////////////////
-
+
public void assertExecutionEnded(String processInstanceId) {
assertNull("Error: an active process instance with id " + processInstanceId + " was found",
executionService.findProcessInstanceById(processInstanceId));
}
-
+
public void assertProcessInstanceEnded(String processInstanceId) {
assertExecutionEnded(processInstanceId);
}
-
+
public void assertProcessInstanceEnded(ProcessInstance processInstance) {
assertExecutionEnded(processInstance.getId());
}
-
+
public void assertProcessInstanceActive(ProcessInstance processInstance) {
- assertProcessInstanceActive(processInstance.getId());
+ assertProcessInstanceActive(processInstance.getId());
}
-
+
public void assertProcessInstanceActive(String processInstanceId) {
assertNotNull("Error: an active process instance with id " + processInstanceId + " was not found",
executionService.findProcessInstanceById(processInstanceId));
}
-
+
public void assertActivityActive(String executionId, String activityName) {
- assertTrue("The execution with id '" + executionId +
- "' is not active in the activity '" + activityName + "'." +
+ assertTrue("The execution with id '" + executionId +
+ "' is not active in the activity '" + activityName + "'." +
"Current activitites are: " + listAllActiveActivites(executionId),
executionService.findExecutionById(executionId).isActive(activityName));
}
-
+
public void assertNotActivityActive(String executionId, String activityName) {
Execution execution = executionService.findExecutionById(executionId);
assertFalse(execution.isActive(activityName));
}
-
+
public void assertActivitiesActive(String executionId, String ... activityNames) {
CollectionAssertions.assertContainsSameElements(
executionService.findExecutionById(executionId).findActiveActivityNames(), activityNames);
}
-
+
/** Checks if the given execution is active in one (or more) of the given activities */
public void assertExecutionInOneOrMoreActivitiesActive(String executionId, String ... activityNames) {
-
+
boolean inOneActivityActive = false;
Execution execution = executionService.findExecutionById(executionId);
-
+
for (String activityName : activityNames) {
if (execution.isActive(activityName)) {
inOneActivityActive = true;
}
}
-
- assertTrue("The execution with id '" + executionId +
+
+ assertTrue("The execution with id '" + executionId +
"' is not active in one of these activities: " + activityNames +
- "Current activitites are: " + listAllActiveActivites(executionId),
+ "Current activitites are: " + listAllActiveActivites(executionId),
inOneActivityActive);
}
-
+
protected String listAllActiveActivites(String executionId) {
Execution execution = executionService.findExecutionById(executionId);
Set<String> activeActivities = execution.findActiveActivityNames();
@@ -323,12 +334,12 @@
for (String activeActivity : activeActivities) {
result.append("'" + activeActivity + "', ");
}
-
+
if (result.length() > 2) {
result.setLength(result.length() - 2); // remove the last ', '
}
-
+
return result.toString();
}
-
+
}
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/async/eventlistener/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/async/eventlistener/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/async/eventlistener/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="AsyncEventListener">
-
- <start name="start" g="27,27,80,40">
+<process name="AsyncEventListener">
+
+ <start name="start" g="27,27,80,40">
<transition to="wait">
<mail continue="async">
<to addresses="you at yourcompany" />
<subject>hello</subject>
<text>hello</text>
</mail>
- </transition>
- </start>
+ </transition>
+ </start>
- <state name="wait" g="97,26,82,49"/>
+ <state name="wait" g="97,26,82,49"/>
</process>
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/concurrency/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/concurrency/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/concurrency/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -5,7 +5,7 @@
<start>
<transition to="evaluate project" />
</start>
-
+
<group name="evaluate project">
<start>
<transition to="distribute document" />
@@ -31,7 +31,7 @@
<transition to="public project announcement" />
</group>
-
+
<state name="public project announcement" />
</process>
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/multipleentries/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/multipleentries/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/multipleentries/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -5,12 +5,12 @@
<start>
<transition to="choose strategy" />
</start>
-
+
<decision name="choose strategy" expr="#{time}">
<transition name="plenty" to="play" />
<transition name="running out" to="plan" />
</decision>
-
+
<group name="evaluate project">
<start name="play">
<transition to="distribute document" />
@@ -22,5 +22,5 @@
</start>
<state name="make planning" />
</group>
-
+
</process>
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/simple/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/simple/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/simple/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -5,7 +5,7 @@
<start>
<transition to="evaluate document" />
</start>
-
+
<group name="evaluate document">
<start>
<transition to="distribute document" />
@@ -23,7 +23,7 @@
<end name="done" />
<transition to="publish document" />
</group>
-
+
<state name="publish document" />
</process>
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/timer/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/timer/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/group/timer/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -5,7 +5,7 @@
<start>
<transition to="evaluate document" />
</start>
-
+
<group name="evaluate document">
<start>
<transition to="approve" />
@@ -14,13 +14,13 @@
<transition to="done" />
</state>
<end name="done" />
-
+
<transition to="publish document" />
<transition name="timeout" to="escalate">
<timer duedate="2 business hours" />
</transition>
</group>
-
+
<state name="escalate" />
<state name="publish document" />
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rules/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rules/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rules/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,24 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="Rules">
-<process name="Rules" xmlns="http://jbpm.org/4.3/jpdl">
-
- <start g="49,93,80,40">
+ <start g="49,93,80,40">
<transition to="evaluateStatus"/>
- </start>
-
- <rules name="evaluateStatus">
+ </start>
+
+ <rules name="evaluateStatus">
<fact var="room" />
- <transition to="checkForFires" />
- </rules>
-
- <decision g="215,93,80,40" name="checkForFires">
+ <transition to="checkForFires" />
+ </rules>
+
+ <decision g="215,93,80,40" name="checkForFires">
<transition to="getFireExtinguisher" g="240,69:">
<condition expr="#{room.onFire}" />
- </transition>
- <transition to="goToPub" g="240,164:"/>
- </decision>
-
- <state g="294,43,120,52" name="getFireExtinguisher"/>
- <state g="292,139,124,49" name="goToPub"/>
-
+ </transition>
+ <transition to="goToPub" g="240,164:"/>
+ </decision>
+
+ <state g="294,43,120,52" name="getFireExtinguisher"/>
+ <state g="292,139,124,49" name="goToPub"/>
+
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rulesdecision/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rulesdecision/process.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/examples/rulesdecision/process.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,19 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="RulesDecision">
-<process name="RulesDecision">
-
- <start>
- <transition to="isImportant" />
- </start>
-
- <rules-decision name="isImportant">
+ <start>
+ <transition to="isImportant" />
+ </start>
+
+ <rules-decision name="isImportant">
<transition name="dunno" to="analyseManually" />
<transition name="important" to="processWithPriority" />
<transition name="irrelevant" to="processWhenResourcesAvailable" />
- </rules-decision>
-
+ </rules-decision>
+
<state name="analyseManually" />
- <state name="processWithPriority" />
+ <state name="processWithPriority" />
<state name="processWhenResourcesAvailable" />
-
-</process>
+</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
+<process name="ImageTest">
-<process name="ImageTest">
-
- <start g="20,20,48,48">
- <transition to="wait"/>
- </start>
-
- <state name="wait" g="115,17,88,52" />
-
-</process>
+ <start g="20,20,48,48">
+ <transition to="wait"/>
+ </start>
+
+ <state name="wait" g="115,17,88,52" />
+
+</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/process.zip
===================================================================
(Binary files differ)
Modified: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/variables/DeserializeTaskTest.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/variables/DeserializeTaskTest.jpdl.xml 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/variables/DeserializeTaskTest.jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="DeserializeTaskTest" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="DeserializeTaskTest">
- <start g="13,137,48,48" name="start1">
- <transition g="-23,-17" name="to java1" to="java1"/>
- </start>
- <task g="256,133,92,52" name="task1" assignee="alex">
+ <start g="13,137,48,48" name="start1">
+ <transition g="-23,-17" name="to java1" to="java1"/>
+ </start>
+ <task g="256,133,92,52" name="task1" assignee="alex">
<transition g="-27,-17" name="to end1" to="end1"/>
- </task>
- <end g="416,137,48,48" name="end1"/>
+ </task>
+ <end g="416,137,48,48" name="end1"/>
<java class="org.jbpm.test.variables.Bean" g="116,134,92,52" method="getResult" name="java1" var="bean">
<transition g="-23,-17" name="to task1" to="task1"/>
</java>
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 2010-07-06 02:15:49 UTC (rev 6462)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch06-Jpdl.xml 2010-07-06 06:29:15 UTC (rev 6463)
@@ -1,20 +1,20 @@
<chapter id="jpdl">
<title>jPDL</title>
-
- <para>This chapter will explain the jPDL file format for describing
+
+ <para>This chapter will explain the jPDL file format for describing
process definitions. jPDL is the prominent process language of jBPM. The goal
of jPDL is to be as concise and developer-friendly as possible, while offering
every feature you'd expect from a BPM process language.
</para>
- <para>The jPDL schema file contains more attributes and elements then this
+ <para>The jPDL schema file contains more attributes and elements then this
documentation. This part of the documentation explains the stable and supported part of jPDL.
- Experimental/not supported jPDL features can be found in the developers guide.
+ Experimental/not supported jPDL features can be found in the developers guide.
</para>
- <para>An example jPDL process file looks like this:
+ <para>An example jPDL process file looks like this:
</para>
<programlisting><?xml version="1.0" encoding="UTF-8"?>
-<process name="Purchase order" xmlns="http://jbpm.org/4.3/jpdl">
+<process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="Verify supplier" />
@@ -35,7 +35,7 @@
<end name="Error" />
</process></programlisting>
-
+
<section id="process">
<title><literal>process</literal></title>
<para>The top level element representing one process definition.
@@ -57,27 +57,27 @@
<entry>any text</entry>
<entry></entry>
<entry><emphasis role="bold">required</emphasis></entry>
- <entry>name or label of the process used to display to the process
+ <entry>name or label of the process used to display to the process
name in user interactions.
</entry>
</row>
<row>
<entry><literal>key</literal></entry>
<entry>alpha numeric characters and underscores</entry>
- <entry>if omitted, the key will be generated based on the name by replacing
+ <entry>if omitted, the key will be generated based on the name by replacing
all non-alpha-numeric characters with underscores</entry>
<entry>optional</entry>
<entry>identification to distinct different process definitions.
Multiple versions of a process with the same key can be deployed.
- The key:name combination must remain exactly the same for all
+ The key:name combination must remain exactly the same for all
deployed versions.
</entry>
</row>
<row>
<entry><literal>version</literal></entry>
<entry>integer</entry>
- <entry>one higher then highest version number starting with 1 if no other process
- is deployed with the same name/key.
+ <entry>one higher then highest version number starting with 1 if no other process
+ is deployed with the same name/key.
</entry>
<entry>optional</entry>
<entry>version number of this process</entry>
@@ -104,7 +104,7 @@
<row>
<entry><link linkend="activities">activities</link></entry>
<entry>1..*</entry>
- <entry>a list of any activity type can be placed here. At least
+ <entry>a list of any activity type can be placed here. At least
one <literal>start</literal> activity must be present.
</entry>
</row>
@@ -116,19 +116,19 @@
<!-- ##################################################################### -->
<!-- ### CONTROL FLOW ACTIVITIES ### -->
<!-- ##################################################################### -->
-
+
<section id="controlflowactivities">
<title>Control flow activities</title>
<section id="start">
<title><literal>start</literal></title>
- <para>Indicates where an execution for this process starts. Typically there is
- exactly one start activity in a process. A process has to have at least one start
- activity. A start activity must have exactly one outgoing transition and that transition
+ <para>Indicates where an execution for this process starts. Typically there is
+ exactly one start activity in a process. A process has to have at least one start
+ activity. A start activity must have exactly one outgoing transition and that transition
is taken when a process execution starts.
</para>
- <para>Known limitation: for now, a process can not have more then
- one <literal>start</literal>.
+ <para>Known limitation: for now, a process can not have more then
+ one <literal>start</literal>.
</para>
<table><title><literal>start</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -147,8 +147,8 @@
<entry>any text</entry>
<entry></entry>
<entry>optional</entry>
- <entry>name of the activity. Since a start activity
- cannot have incoming transitions, the name is optional.
+ <entry>name of the activity. Since a start activity
+ cannot have incoming transitions, the name is optional.
</entry>
</row>
</tbody>
@@ -176,20 +176,20 @@
<section id="state">
<title><literal>state</literal></title>
- <para>A wait state. Process execution will wait until an external trigger is
+ <para>A wait state. Process execution will wait until an external trigger is
provided through the API. Apart from the <link linkend="commonactivitycontents">
common activity content</link>, <literal>state</literal> doesn't have any extra
- attributes or elements.
+ attributes or elements.
</para>
<section id="statesequence">
<title><literal>state</literal> sequence</title>
- <para>Let's look at an example which shows states connected with transitions
+ <para>Let's look at an example which shows states connected with transitions
as a sequence</para>
<figure id="process.state.sequence">
<title>A sequence of states</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.state.sequence.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="StateSequence" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="StateSequence" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="a" />
@@ -207,10 +207,10 @@
</process></programlisting>
<para>After you start an execution like this:</para>
- <programlisting>ProcessInstance processInstance =
+ <programlisting>ProcessInstance processInstance =
executionService.startProcessInstanceByKey("StateSequence");</programlisting>
- <para>the created process instance will be positioned in
- state <literal>a</literal>. Providing an external trigger can
+ <para>the created process instance will be positioned in
+ state <literal>a</literal>. Providing an external trigger can
be done with the <literal>signalExecution</literal> methods.</para>
<programlisting>Execution executionInA = processInstance.findActiveExecutionIn("a");
assertNotNull(executionInA);
@@ -225,15 +225,15 @@
</section>
<section id="statechoice">
<title><literal>state</literal> choice</title>
- <para>In this second example with states, we'll show how you can use a
- <literal>state</literal> can be used to feed in an external choice of
+ <para>In this second example with states, we'll show how you can use a
+ <literal>state</literal> can be used to feed in an external choice of
the path to take.
</para>
<figure id="process.state.choice">
<title>A choice between state</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.state.choice.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="StateChoice" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="StateChoice" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="wait for response" />
@@ -252,10 +252,10 @@
<para>Let's start a new process instance for this process definition:</para>
<programlisting>ProcessInstance processInstance = executionService
.startProcessInstanceByKey("StateChoice");</programlisting>
- <para>Now, the execution has arrived in the <literal>wait for response</literal>.
- The execution will wait there until an external trigger is given. In case
- a <literal>state</literal> has multiple outgoing transitions, the signalName given
- in the external trigger will be matched against the name of the outgoing transition
+ <para>Now, the execution has arrived in the <literal>wait for response</literal>.
+ The execution will wait there until an external trigger is given. In case
+ a <literal>state</literal> has multiple outgoing transitions, the signalName given
+ in the external trigger will be matched against the name of the outgoing transition
to take. So when we provide signalName <literal>accept</literal> like this:
</para>
<programlisting>String executionId = processInstance
@@ -265,27 +265,27 @@
processInstance = executionService.signalExecutionById(executionId, "accept");
assertTrue(processInstance.isActive("submit document"));</programlisting>
- <para>Then the execution will continue over the outgoing transition named
- <literal>accept</literal>. Analogue, when signalName <literal>reject</literal>
- is given in the signalExecutionXxx methods, the execution will continue over
- the outgoing transition named reject.
+ <para>Then the execution will continue over the outgoing transition named
+ <literal>accept</literal>. Analogue, when signalName <literal>reject</literal>
+ is given in the signalExecutionXxx methods, the execution will continue over
+ the outgoing transition named reject.
</para>
</section>
</section>
-
+
<section id="decision">
<title><literal>decision</literal></title>
- <para>Takes one path of many alternatives. Also known as a decision. A decision
- activity has multiple outgoing transitions and when an execution arrives in a decision
+ <para>Takes one path of many alternatives. Also known as a decision. A decision
+ activity has multiple outgoing transitions and when an execution arrives in a decision
activity, an automatic evaluation will decide which outgoing transition is taken.
</para>
- <para>A decision activity should be configured in one of the three following ways:
+ <para>A decision activity should be configured in one of the three following ways:
</para>
-
+
<section id="decisionconditions">
<title>Decision conditions</title>
- <para>A decision with conditions on the transitions evaluates the condition in each transition.
- The first transition for which the nested condition expression resolves to true or which does
+ <para>A decision with conditions on the transitions evaluates the condition in each transition.
+ The first transition for which the nested condition expression resolves to true or which does
not have a condition is taken.
</para>
<table><title><literal>decision.transition.condition</literal> attributes:</title>
@@ -305,7 +305,7 @@
<entry>expression</entry>
<entry></entry>
<entry><emphasis role="bold">required</emphasis></entry>
- <entry>script that will be evaluated in the specified
+ <entry>script that will be evaluated in the specified
expression language.
</entry>
</row>
@@ -314,7 +314,7 @@
<entry>expression language</entry>
<entry>the <literal>default-expression-language</literal> taken from the <link linkend="scripting"><literal>script-manager</literal> configuration</link></entry>
<entry>optional</entry>
- <entry>the language in which <literal>expr</literal> is
+ <entry>the language in which <literal>expr</literal> is
to be evaluated.
</entry>
</row>
@@ -353,7 +353,7 @@
<para>After starting a process instance with <literal>good content</literal></para>
<programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("content", "good");
-ProcessInstance processInstance =
+ProcessInstance processInstance =
executionService.startProcessInstanceByKey("DecisionConditions", variables);</programlisting>
<para>The activity <literal>submit document</literal> will be active</para>
<programlisting>assertTrue(processInstance.isActive("submit document"));</programlisting>
@@ -362,7 +362,7 @@
<section id="decisionexpression">
<title>Decision expression</title>
- <para>A decision expression evaluates to a String representing the name of
+ <para>A decision expression evaluates to a String representing the name of
an outgoing transition.
</para>
<table><title><literal>decision</literal> attributes:</title>
@@ -382,7 +382,7 @@
<entry>expression</entry>
<entry></entry>
<entry><emphasis role="bold">required</emphasis></entry>
- <entry>script that will be evaluated in the specified
+ <entry>script that will be evaluated in the specified
expression language.
</entry>
</row>
@@ -391,7 +391,7 @@
<entry>expression language</entry>
<entry>the <literal>default-expression-language</literal> taken from the <link linkend="scripting"><literal>script-manager</literal> configuration</link></entry>
<entry>optional</entry>
- <entry>the language in which <literal>expr</literal> is
+ <entry>the language in which <literal>expr</literal> is
to be evaluated.
</entry>
</row>
@@ -404,7 +404,7 @@
<title>The decision expression example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.decision.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="DecisionExpression" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="DecisionExpression" xmlns="http://jbpm.org/4.4/jpdl">
<start >
<transition to="evaluate document"/>
@@ -425,7 +425,7 @@
</para>
<programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("content", "good");
-ProcessInstance processInstance =
+ProcessInstance processInstance =
executionService.startProcessInstanceByKey("DecisionExpression", variables);</programlisting>
<para>then the new execution will go to activity <literal>submit document</literal>.</para>
@@ -434,9 +434,9 @@
<section id="decisionhandler">
<title>Decision handler</title>
- <para>A decision handler is a java class that implements the
- <literal>DecisionHandler</literal> interface. The decision handler
- will be responsible for selecting the name of the outgoing transition.
+ <para>A decision handler is a java class that implements the
+ <literal>DecisionHandler</literal> interface. The decision handler
+ will be responsible for selecting the name of the outgoing transition.
</para>
<programlisting>public interface DecisionHandler {
String decide(OpenExecution execution);
@@ -485,17 +485,17 @@
}
}</programlisting>
<para>Now, when we start a process instance and supply value
- <literal>you're great</literal> for variable content, then the
- ContentEvaluation will return String <literal>good</literal> and
- the process instance will arrive in activity <literal>Submit document</literal>.
+ <literal>you're great</literal> for variable content, then the
+ ContentEvaluation will return String <literal>good</literal> and
+ the process instance will arrive in activity <literal>Submit document</literal>.
</para>
</section>
-
+
</section>
<section id="concurrency">
<title><literal>concurrency</literal></title>
- <para>With the <literal>fork</literal>, <literal>foreach</literal> and
+ <para>With the <literal>fork</literal>, <literal>foreach</literal> and
<literal>join</literal> activities, concurrent paths of executions can be modeled.
The next two tables describe the <literal>foreach</literal> and <literal>join</literal>
attributes; <literal>fork</literal> has no specific attributes.</para>
@@ -549,8 +549,8 @@
<entry>integer or expression</entry>
<entry>nbr of incoming transitions</entry>
<entry>optional</entry>
- <entry>The number of executions that should arrive in this join
- before the join activates and push an execution out the single
+ <entry>The number of executions that should arrive in this join
+ before the join activates and push an execution out the single
outgoing transition of the join.
</entry>
</row>
@@ -559,8 +559,8 @@
<entry>{none, read, upgrade, upgrade_nowait, write}</entry>
<entry>upgrade</entry>
<entry>optional</entry>
- <entry>the hibernate lock mode applied on the parent execution to
- prevent that 2 concurrent transactions see each other as not yet
+ <entry>the hibernate lock mode applied on the parent execution to
+ prevent that 2 concurrent transactions see each other as not yet
arrived at the join, causing a process deadlock.
</entry>
</row>
@@ -576,42 +576,42 @@
<title>Parallel split example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.concurrency.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="fork"/>
</start>
-
+
<emphasis role="bold"><fork name="fork">
<transition to="send invoice" />
<transition to="load truck"/>
<transition to="print shipping documents" />
</fork></emphasis>
-
+
<state name="send invoice" >
<transition to="final join" />
</state>
-
+
<state name="load truck" >
<transition to="shipping join" />
</state>
-
+
<state name="print shipping documents">
<transition to="shipping join" />
</state>
-
+
<emphasis role="bold"><join name="shipping join" >
<transition to="drive truck to destination" />
</join></emphasis>
-
+
<state name="drive truck to destination" >
<transition to="final join" />
</state>
-
+
<emphasis role="bold"><join name="final join" >
<transition to="end"/>
</join></emphasis>
-
+
<end name="end" />
</process></programlisting>
@@ -621,7 +621,7 @@
<title>Iterative split with <literal>foreach</literal></title>
<para>At a given point in a process, several paths of execution can be initiated
in a single branch of the same process instance. In the example, there is a need
- to collect time sheet reports (called data) from different departments. With
+ to collect time sheet reports (called data) from different departments. With
<literal>foreach</literal> this can be quite easily achieved. The same task
is to be performed by different groups. Process variable <literal>departments</literal>
provides the group names, whereas the variable <literal>quota</literal> indicates
@@ -662,23 +662,23 @@
</section>
<!-- ### END ########################################################### -->
-
+
<section id="end">
<title><literal>end</literal></title>
<para>Ends the execution.
</para>
<section id="endprocessinstance">
<title><literal>end</literal> process instance</title>
- <para>By default, an end activity will end the complete
- process instance. In case multiple concurrent executions
- are still active within the same process instance, all of
- them will be ended.
+ <para>By default, an end activity will end the complete
+ process instance. In case multiple concurrent executions
+ are still active within the same process instance, all of
+ them will be ended.
</para>
<figure id="process.end.processinstance">
<title>The end event</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.end.processinstance.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="EndProcessInstance" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="EndProcessInstance" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="end" />
@@ -691,9 +691,9 @@
</section>
<section id="endexecution">
<title><literal>end</literal> execution</title>
- <para>Only the execution that arrives in the
- end activity will be ended and other concurrent executions
- should be left active. To get this behaviour, set
+ <para>Only the execution that arrives in the
+ end activity will be ended and other concurrent executions
+ should be left active. To get this behaviour, set
attribute <literal>ends="execution"</literal>
</para>
<table><title><literal>end</literal> execution attributes:</title>
@@ -713,8 +713,8 @@
<entry>{processinstance|execution}</entry>
<entry>processinstance</entry>
<entry>optional</entry>
- <entry>specifies if the whole process instance should be ended or
- just the path of execution that arrives in the end activity.
+ <entry>specifies if the whole process instance should be ended or
+ just the path of execution that arrives in the end activity.
</entry>
</row>
</tbody>
@@ -723,7 +723,7 @@
</section>
<section id="endmultiple">
<title><literal>end</literal> multiple</title>
- <para>A process can have multiple end events. This can be handy to indicate
+ <para>A process can have multiple end events. This can be handy to indicate
different outcomes of a process instance. For example
</para>
<figure id="process.end.multiple">
@@ -735,20 +735,20 @@
<start>
<transition to="get return code" />
</start>
-
+
<state name="get return code">
<transition name="200" to="ok"/>
<transition name="400" to="bad request"/>
<transition name="500" to="internal server error"/>
</state>
-
+
<end name="ok"/>
<end name="bad request"/>
<end name="internal server error"/>
-
+
</process>
</programlisting>
- <para>Now if we would start an execution and signal it to move out of the <literal>get return code</literal> wait state with the
+ <para>Now if we would start an execution and signal it to move out of the <literal>get return code</literal> wait state with the
following code, the execution would end with the <literal>bad request</literal> end event.</para>
<programlisting>ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndMultiple");
String pid = processInstance.getId();
@@ -757,11 +757,11 @@
to end with the <literal>ok</literal> or with the <literal>internal server error</literal> end events
respectively.</para>
</section>
-
+
<section id="endstate">
<title><literal>end</literal> state</title>
- <para>An execution can also end with different states. It is another way to specify the outcome of a process.
- It is indicated by the <literal>state</literal> attribute of the end event or by the <literal>end-cancel</literal>
+ <para>An execution can also end with different states. It is another way to specify the outcome of a process.
+ It is indicated by the <literal>state</literal> attribute of the end event or by the <literal>end-cancel</literal>
and <literal>end-error</literal> shortcut notations.
</para>
@@ -782,7 +782,7 @@
<entry>String</entry>
<entry></entry>
<entry>optional</entry>
- <entry>the state assigned to the execution.
+ <entry>the state assigned to the execution.
</entry>
</row>
</tbody>
@@ -795,7 +795,7 @@
<title>Different end states</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.end.state.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="EndState" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="EndState" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="get return code"/>
@@ -813,7 +813,7 @@
</process>
</programlisting>
- <para>This time, if we would start an execution and signal it to move out of the <literal>get return code</literal> wait state with the
+ <para>This time, if we would start an execution and signal it to move out of the <literal>get return code</literal> wait state with the
following code, the execution would end with the <literal>cancel</literal> state.</para>
<para>Similarly, using the value <literal>200</literal> or <literal>500</literal> would cause the execution
to end with the <literal>completed</literal> or with the <literal>error</literal> states
@@ -827,7 +827,7 @@
<title><literal>task</literal></title>
<para>Creates a task for a person in the task component.</para>
-
+
<!-- ~~~ TASK ASSIGNEE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<section id="taskassignee">
@@ -851,47 +851,47 @@
<entry>expression</entry>
<entry></entry>
<entry>optional</entry>
- <entry>userId referring to the person that is responsible for
+ <entry>userId referring to the person that is responsible for
completing this task.</entry>
</row>
</tbody>
</tgroup>
</table>
- <figure id="process.task.assignee">
- <title>The task assignee example process</title>
- <mediaobject><imageobject><imagedata align="center" fileref="images/process.task.png"/></imageobject></mediaobject>
- </figure>
- <programlisting><process name="TaskAssignee">
+ <figure id="process.task.assignee">
+ <title>The task assignee example process</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/process.task.png"/></imageobject></mediaobject>
+ </figure>
+ <programlisting><process name="TaskAssignee">
<start>
<transition to="review" />
</start>
- <task name="review"
+ <task name="review"
<emphasis role="bold">assignee="#{order.owner}"</emphasis>>
-
+
<transition to="wait" />
</task>
-
+
<state name="wait" />
</process></programlisting>
<para>This process shows 2 aspects of task assignment. First, that the
- attribute <literal>assignee</literal> is used to indicate the user that is
- responsible for completing the task. The assignee is a String property
+ attribute <literal>assignee</literal> is used to indicate the user that is
+ responsible for completing the task. The assignee is a String property
of a task and refers to a user.
</para>
<para>Secondly, this attribute is by default evaluated as an expression.
In this case the task is assigned to <literal>#{order.owner}</literal>.
- Which means that first an object is searched for with name order. One of
- the places where this object is looked up is the process variables
- associated to the task. Then the <literal>getOwner()</literal> getter
- will be used to get the userId that references the user that is
- responsible for completing this task.
+ Which means that first an object is searched for with name order. One of
+ the places where this object is looked up is the process variables
+ associated to the task. Then the <literal>getOwner()</literal> getter
+ will be used to get the userId that references the user that is
+ responsible for completing this task.
</para>
<para>Here's the Order class used in our example:</para>
<programlisting>public class Order implements Serializable {
-
+
String owner;
public Order(String owner) {
@@ -906,25 +906,25 @@
this.owner = owner;
}
}</programlisting>
- <para>Next a new process instance is created with an order as a process
+ <para>Next a new process instance is created with an order as a process
variable.</para>
- <programlisting>Map<String, Object> variables = new HashMap<String, Object>();
+ <programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("order", new Order("johndoe"));
ProcessInstance processInstance = executionService
.startProcessInstanceByKey("TaskAssignee", variables);</programlisting>
<para>Then the task list for <literal>johndoe</literal> can be obtained like this.</para>
<programlisting>List<Task> taskList = taskService.findPersonalTasks("johndoe");</programlisting>
- <para>Note that it is also possible to put plain text like
+ <para>Note that it is also possible to put plain text like
<literal>assignee="johndoe"</literal>. In that case
- the task will be assigned to johndoe.
+ the task will be assigned to johndoe.
</para>
- </section>
+ </section>
<!-- ~~~ TASK CANDIDATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<section id="taskcandidates">
<title><literal>task</literal> candidates</title>
- <para>A task that will be offered to a group of users. One of the users should then
+ <para>A task that will be offered to a group of users. One of the users should then
take the task in order to complete it.
</para>
<table><title><literal>task</literal> attributes:</title>
@@ -945,7 +945,7 @@
<entry></entry>
<entry>optional</entry>
<entry>resolves to a comma separated list of groupIds.
- All the people in the groups will be candidates for this
+ All the people in the groups will be candidates for this
task.</entry>
</row>
<row>
@@ -970,12 +970,12 @@
<transition to="review" />
</start>
- <task name="review"
+ <task name="review"
<emphasis role="bold">candidate-groups="sales-dept"</emphasis>>
-
+
<transition to="wait" />
</task>
-
+
<state name="wait"/>
</process>
@@ -986,7 +986,7 @@
<programlisting>taskService.getPersonalTasks("johndoe");
taskService.getPersonalTasks("joesmoe");</programlisting>
<para>But the task will show up in the group task list of all members of the <literal>sales-dept</literal>
- group.
+ group.
</para>
<para>The in our example, the <literal>sales-dept</literal> has two members: johndoe and joesmoe</para>
<programlisting>identityService.createGroup("sales-dept");
@@ -996,23 +996,23 @@
identityService.createUser("joesmoe", "joesmoe", "Joe", "Smoe");
identityService.createMembership("joesmoe", "sales-dept"); </programlisting>
- <para>So after the process is created, the task will appear in both the
+ <para>So after the process is created, the task will appear in both the
group tasks for users johndoe and joesmoe</para>
<programlisting>taskService.findGroupTasks("johndoe");
taskService.findGroupTasks("joesmoe");</programlisting>
- <para>Candidates must take a task before they can work on it. This will prevent
- that two candides start working on the same task. The user interface must only
- offer the action 'Take' for the tasks in the group task list.
+ <para>Candidates must take a task before they can work on it. This will prevent
+ that two candides start working on the same task. The user interface must only
+ offer the action 'Take' for the tasks in the group task list.
</para>
<programlisting>taskService.takeTask(task.getDbid(), "johndoe");</programlisting>
- <para>When a user takes a task, the assignee of that task will be set to the given
- user. The task will disappear from all the candidate's group task list and
+ <para>When a user takes a task, the assignee of that task will be set to the given
+ user. The task will disappear from all the candidate's group task list and
it will appear in the user's assigned tasks.
</para>
- <para>Users are only allowed to work on tasks in their personal task list. This
+ <para>Users are only allowed to work on tasks in their personal task list. This
should be enforced by the user interface.</para>
- <para>Similarly, the attribute <literal>candidate-users</literal> can be used that
- resolves to a comma separated list of userIds. The <literal>candidate-users</literal>
+ <para>Similarly, the attribute <literal>candidate-users</literal> can be used that
+ resolves to a comma separated list of userIds. The <literal>candidate-users</literal>
attribute can be used in combination with other assignment options.
</para>
</section>
@@ -1021,8 +1021,8 @@
<section id="taskassignmenthandler">
<title><literal>task</literal> assignment handler</title>
- <para>An <literal>AssignmentHandler</literal> can be used to calculate the
- assignee and the candidates for a task programmatically.
+ <para>An <literal>AssignmentHandler</literal> can be used to calculate the
+ assignee and the candidates for a task programmatically.
</para>
<programlisting>public interface <emphasis role="bold">AssignmentHandler</emphasis> extends Serializable {
@@ -1030,7 +1030,7 @@
void assign(Assignable assignable, OpenExecution execution) throws Exception;
}</programlisting>
<para><literal>Assignable</literal> is a common interface for Tasks and
- Swimlanes. So AssignmentHandlers can be used for tasks as well as swimlanes
+ Swimlanes. So AssignmentHandlers can be used for tasks as well as swimlanes
(see later).
</para>
<para><literal>assignment-handler</literal> is a sub element of the task element.
@@ -1042,12 +1042,12 @@
<title>The task assignment handler example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.task.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="TaskAssignmentHandler" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TaskAssignmentHandler" xmlns="http://jbpm.org/4.4/jpdl">
<start g="20,20,48,48">
<transition to="review" />
</start>
-
+
<task name="review" g="96,16,127,52">
<emphasis role="bold"><assignment-handler class="org.jbpm.examples.task.assignmenthandler.AssignTask">
<field name="assignee">
@@ -1058,7 +1058,7 @@
</task>
<state name="wait" g="255,16,88,52" />
-
+
</process></programlisting>
<para>The referenced class <literal>AssignTask</literal> looks like this: </para>
<programlisting>public class AssignTask implements AssignmentHandler {
@@ -1069,14 +1069,14 @@
assignable.setAssignee(assignee);
}
}</programlisting>
- <para>Please note that potentially, AssignmentHandler implementations can use
- the process variables and any other Java API to access resources like your
- application database to calculate the assignee and candidate users and groups.
+ <para>Please note that potentially, AssignmentHandler implementations can use
+ the process variables and any other Java API to access resources like your
+ application database to calculate the assignee and candidate users and groups.
</para>
- <para>Starting a new process instance of the <literal>TaskAssignmentHandler</literal>
- process will immediately bring the new execution to the task activity. A new
- <literal>review</literal> task is created and at that point, the <literal>AssignTask</literal>
- assignment handler is called. That will set <literal>johndoe</literal> as
+ <para>Starting a new process instance of the <literal>TaskAssignmentHandler</literal>
+ process will immediately bring the new execution to the task activity. A new
+ <literal>review</literal> task is created and at that point, the <literal>AssignTask</literal>
+ assignment handler is called. That will set <literal>johndoe</literal> as
the assignee. So John Doe will find the task in his personal task list.
</para>
</section>
@@ -1085,15 +1085,15 @@
<section id="taskswimlanes">
<title><literal>task</literal> swimlanes</title>
- <para>Multiple tasks in a process should be assigned to the same
- user or candidates. Multiple tasks in a process can be associated to a
- single swimlane. The process instance will remember the candidates and user
- that performed the first task in the swimlane. And subsequent tasks in the
- same swimlane will be assigned to those user and candidates.
+ <para>Multiple tasks in a process should be assigned to the same
+ user or candidates. Multiple tasks in a process can be associated to a
+ single swimlane. The process instance will remember the candidates and user
+ that performed the first task in the swimlane. And subsequent tasks in the
+ same swimlane will be assigned to those user and candidates.
</para>
- <para>A swimlane can also be considered as a process role. In some
- cases, this might boil down to authorization roles in the
- identity component. But bare in mind that it is not always the
+ <para>A swimlane can also be considered as a process role. In some
+ cases, this might boil down to authorization roles in the
+ identity component. But bare in mind that it is not always the
same thing.</para>
<table><title><literal>task</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -1135,7 +1135,7 @@
<entry>swimlane (string)</entry>
<entry></entry>
<entry><emphasis role="bold">required</emphasis></entry>
- <entry>Name for this swimlane. This is the
+ <entry>Name for this swimlane. This is the
name that will be referenced by task swimlane attributes.
</entry>
</row>
@@ -1144,7 +1144,7 @@
<entry>expression</entry>
<entry></entry>
<entry>optional</entry>
- <entry>userId referring to the person that is responsible for
+ <entry>userId referring to the person that is responsible for
completing this task.</entry>
</row>
<row>
@@ -1153,7 +1153,7 @@
<entry></entry>
<entry>optional</entry>
<entry>resolves to a comma separated list of groupIds.
- All the people in the groups will be candidates for this
+ All the people in the groups will be candidates for this
the tasks in this swimlane.</entry>
</row>
<row>
@@ -1162,7 +1162,7 @@
<entry></entry>
<entry>optional</entry>
<entry>resolves to a comma separated list of userIds.
- All the users will be candidates for the
+ All the users will be candidates for the
tasks in this swimlane.</entry>
</row>
</tbody>
@@ -1170,15 +1170,15 @@
</table>
<figure id="process.task.swimlane">
<title>The task swimlane example process</title>
-
- <!-- KOEN: volgende image moet aangepast worden naar
- images/process.task.swimlane.png
+
+ <!-- KOEN: volgende image moet aangepast worden naar
+ images/process.task.swimlane.png
nadat je die hebt toegevoegd aan de images directory -->
<mediaobject><imageobject><imagedata align="center" fileref="images/process.task.png"/></imageobject></mediaobject>
</figure>
<para>The task swimlane example has the following process file :</para>
- <programlisting><process name="TaskSwimlane" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="TaskSwimlane" xmlns="http://jbpm.org/4.4/jpdl">
<emphasis role="bold"><swimlane name="sales representative"
candidate-groups="sales-dept" /></emphasis>
@@ -1186,42 +1186,42 @@
<start>
<transition to="enter order data" />
</start>
-
+
<task name="enter order data"
<emphasis role="bold">swimlane="sales representative"</emphasis>>
<transition to="calculate quote"/>
</task>
- <task
- name="calculate quote"
+ <task
+ name="calculate quote"
<emphasis role="bold">swimlane="sales representative"</emphasis>>
</task>
</process></programlisting>
- <para>In this example we create the following information in the identity
+ <para>In this example we create the following information in the identity
component:</para>
<programlisting>identityService.createGroup("sales-dept");
identityService.createUser("johndoe", "johndoe", "John", "Doe");
identityService.createMembership("johndoe", "sales-dept");</programlisting>
- <para>After starting a new process instance, user <literal>johndoe</literal> will
- be a candidate for task <literal>enter order data</literal>. Again like in the
+ <para>After starting a new process instance, user <literal>johndoe</literal> will
+ be a candidate for task <literal>enter order data</literal>. Again like in the
previous task candidates example, John Doe can now take this task like this:
</para>
<programlisting>taskService.takeTask(taskDbid, "johndoe");</programlisting>
- <para>Taking the task will make Lit<literal>johndoe</literal> the assignee for
- the task. And since this task is coupled to the swimlane
- <literal>sales representative</literal>, assignee <literal>johndoe</literal> will
+ <para>Taking the task will make Lit<literal>johndoe</literal> the assignee for
+ the task. And since this task is coupled to the swimlane
+ <literal>sales representative</literal>, assignee <literal>johndoe</literal> will
also be propagated as the assignee in the swimlane.</para>
<para>Next, John Doe can complete the task like this:</para>
<programlisting>taskService.completeTask(taskDbid);</programlisting>
- <para>Completing the task will bring the process execution to the
- next task, which is <literal>calculate quote</literal>. Also
- this task is linked to the swimlane. Therefore, the task will be
- assigned to <literal>johndoe</literal>. Also the candidate users
- and candidate groups of the initial assignment will be copied from
- the swimlane to the task. This is relevant in case user <literal>johndoe</literal>
+ <para>Completing the task will bring the process execution to the
+ next task, which is <literal>calculate quote</literal>. Also
+ this task is linked to the swimlane. Therefore, the task will be
+ assigned to <literal>johndoe</literal>. Also the candidate users
+ and candidate groups of the initial assignment will be copied from
+ the swimlane to the task. This is relevant in case user <literal>johndoe</literal>
would release the task and offer it back to the other candidates.
</para>
</section>
@@ -1230,11 +1230,11 @@
<section id="taskvariables">
<title><literal>task</literal> variables</title>
- <para>Tasks can read and update process variables. Later tasks will have
- the option to declare task-local process variables. Task variables
- are an important part of the task forms. Task forms typically show
- data that comes from the task and the process instance. Then
- input from the user is translated in setting task variables.
+ <para>Tasks can read and update process variables. Later tasks will have
+ the option to declare task-local process variables. Task variables
+ are an important part of the task forms. Task forms typically show
+ data that comes from the task and the process instance. Then
+ input from the user is translated in setting task variables.
</para>
<para>Getting task variables can be done like this:</para>
<programlisting>List<Task> taskList = taskService.findPersonalTasks("johndoe");
@@ -1252,31 +1252,31 @@
taskService.setVariables(taskDbid, variables);</programlisting>
</section>
-
+
<!-- ~~~ MAIL SUPPORT IN TASKS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-
+
<section id="mailintasks">
<title>e-mail support in tasks</title>
<para>It is possible to provide assignees with notifications when a task
is added to their list, as well as reminders at specific intervals.
Every email message is produced from a template. Templates may be specified
- inline or in the <literal>process-engine-context</literal> section of the
+ inline or in the <literal>process-engine-context</literal> section of the
configuration file.</para>
<table><title><literal>task</literal> elements</title>
- <tgroup cols="3" rowsep="1" colsep="1">
- <thead>
- <row>
- <entry>Element</entry>
- <entry>Multiplicity</entry>
- <entry>Description</entry>
- </row>
- </thead>
+ <tgroup cols="3" rowsep="1" colsep="1">
+ <thead>
+ <row>
+ <entry>Element</entry>
+ <entry>Multiplicity</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
<tbody>
<row>
<entry>notification</entry>
<entry>0..1</entry>
<entry>Sends a notification message when a task is assigned.
- If no template is referenced or supplied inline, mail support
+ If no template is referenced or supplied inline, mail support
falls back on the template named <emphasis>task-notification</emphasis>.
</entry>
</row>
@@ -1308,7 +1308,7 @@
<entry>{sync | async | exclusive}</entry>
<entry>sync</entry>
<entry>optional</entry>
- <entry>Specifies if an asynchronous continuation should be introduced
+ <entry>Specifies if an asynchronous continuation should be introduced
right before sending this notification email.
</entry>
</row>
@@ -1347,7 +1347,7 @@
<entry>{sync | async | exclusive}</entry>
<entry>sync</entry>
<entry>optional</entry>
- <entry>Specifies if an asynchronous continuation should be introduced
+ <entry>Specifies if an asynchronous continuation should be introduced
right before sending this notification email.
</entry>
</row>
@@ -1355,7 +1355,7 @@
</tgroup>
</table>
<para>Here is a basic example that accepts the default templates.</para>
- <programlisting><![CDATA[<task name="review"
+ <programlisting><![CDATA[<task name="review"
assignee="#{order.owner}"
<notification/>
<reminder duedate="2 days" repeat="1 day"/>
@@ -1368,9 +1368,9 @@
<section id="subprocess">
<title><literal>sub-process</literal></title>
- <para>Creates a sub process instance and waits till it is completed. When
- the sub process instance completes, then the execution in the sub-process
- will continue.
+ <para>Creates a sub process instance and waits till it is completed. When
+ the sub process instance completes, then the execution in the sub-process
+ will continue.
</para>
<table><title><literal>sub-process</literal> attributes:</title>
@@ -1390,8 +1390,8 @@
<entry>string or expression</entry>
<entry></entry>
<entry>either this or sub-process-key is required</entry>
- <entry>Identifies the sub process by the id. This means that a specific
- version of a process definition is referenced. Sub process id can be specified as
+ <entry>Identifies the sub process by the id. This means that a specific
+ version of a process definition is referenced. Sub process id can be specified as
simple text or EL expression.</entry>
</row>
<row>
@@ -1399,9 +1399,9 @@
<entry>string or expression</entry>
<entry></entry>
<entry>either this or sub-process-key is required</entry>
- <entry>Identifies the sub process by the key. This means that the latest
- version of the process definition with the given key is referenced. The latest version
- of the process is looked up each time the activity executes. Sub process key can be specified as
+ <entry>Identifies the sub process by the key. This means that the latest
+ version of the process definition with the given key is referenced. The latest version
+ of the process is looked up each time the activity executes. Sub process key can be specified as
simple text or EL expression.
</entry>
</row>
@@ -1410,52 +1410,52 @@
<entry>expression</entry>
<entry></entry>
<entry>required when transitions have <literal>outcome-value</literal>'s specified</entry>
- <entry>Expression that is evaluated when the sub process
- instance ends. The value is then used for outcome transition mapping.
- Add <literal>outcome-value</literal> elements to the outgoing transitions
+ <entry>Expression that is evaluated when the sub process
+ instance ends. The value is then used for outcome transition mapping.
+ Add <literal>outcome-value</literal> elements to the outgoing transitions
of this <literal>sub-process</literal> activity.
</entry>
</row>
</tbody>
</tgroup>
</table>
-
+
<table><title><literal>sub-process</literal> elements:</title>
- <tgroup cols="3" rowsep="1" colsep="1">
- <thead>
- <row>
- <entry>Element</entry>
- <entry>Multiplicity</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>parameter-in</literal></entry>
- <entry>0..*</entry>
- <entry>Declares a variable that is passed to the sub process instance
- when it is created.
- </entry>
- </row>
- <!--
+ <tgroup cols="3" rowsep="1" colsep="1">
+ <thead>
+ <row>
+ <entry>Element</entry>
+ <entry>Multiplicity</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>parameter-in</literal></entry>
+ <entry>0..*</entry>
+ <entry>Declares a variable that is passed to the sub process instance
+ when it is created.
+ </entry>
+ </row>
+ <!--
<row>
<entry><literal>swimlane-mapping</literal></entry>
<entry>0..*</entry>
- <entry>Declares a swimlane that will be propagated to the sub process
+ <entry>Declares a swimlane that will be propagated to the sub process
instance when the sub process is created.
</entry>
</row>
-->
- <row>
- <entry><literal>parameter-out</literal></entry>
- <entry>0..*</entry>
- <entry>Declares a variable that will be set in the super process execution
- when the sub process ends.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
+ <row>
+ <entry><literal>parameter-out</literal></entry>
+ <entry>0..*</entry>
+ <entry>Declares a variable that will be set in the super process execution
+ when the sub process ends.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
<table><title><literal>parameter-in</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -1488,7 +1488,7 @@
<entry>string</entry>
<entry></entry>
<entry>exactly one of {'var', 'expr'} is required to specify the value</entry>
- <entry>An expression that will be resolved in the <emphasis role="bold">super</emphasis> process execution
+ <entry>An expression that will be resolved in the <emphasis role="bold">super</emphasis> process execution
context. The resulting value will be set in the sub process variable.
</entry>
</row>
@@ -1528,7 +1528,7 @@
<entry>string</entry>
<entry></entry>
<entry>exactly one of {'subvar', 'expr'} is required to specify the value</entry>
- <entry>The name of the sub process variable from which the value
+ <entry>The name of the sub process variable from which the value
will be taken.</entry>
</row>
<row>
@@ -1536,7 +1536,7 @@
<entry>string</entry>
<entry></entry>
<entry>exactly one of {'subvar', 'expr'} is required to specify the value</entry>
- <entry>An expression that will be resolved in the <emphasis role="bold">sub</emphasis> process execution
+ <entry>An expression that will be resolved in the <emphasis role="bold">sub</emphasis> process execution
context. The resulting value will be set in the super process variable.
</entry>
</row>
@@ -1564,20 +1564,20 @@
<row>
<entry><literal>outcome-value</literal></entry>
<entry>0..1</entry>
- <entry>If the <literal>outcome</literal> matches the value, this
- transition is taken after the sub-process ended. The value is specified with one child
+ <entry>If the <literal>outcome</literal> matches the value, this
+ transition is taken after the sub-process ended. The value is specified with one child
element.
</entry>
</row>
</tbody>
</tgroup>
</table>
-
+
<!-- ~~~ SUB PROCESS VARIABLES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<section id="subprocessvariables">
<title><literal>sub-process</literal> variables</title>
- <para>The SubProcessVariables example scenario will show the basic workings of the
- sub-process activity, how to feed information in the sub process when it starts
+ <para>The SubProcessVariables example scenario will show the basic workings of the
+ sub-process activity, how to feed information in the sub process when it starts
and how to extract information out of the subprocess when it ends.
</para>
<para>The parent process involves a document that needs to be reviewed.</para>
@@ -1585,7 +1585,7 @@
<title>The subprocess document example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.task.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="SubProcessDocument" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="SubProcessDocument" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="review" />
@@ -1593,13 +1593,13 @@
<emphasis role="bold"><sub-process name="review"
sub-process-key="SubProcessReview">
-
+
<parameter-in var="document" subvar="document" />
<parameter-out var="reviewResult" subvar="result" />
-
+
<transition to="wait" />
</sub-process></emphasis>
-
+
<state name="wait"/>
</process></programlisting>
@@ -1608,7 +1608,7 @@
<title>The subprocess review example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.subprocess.review.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="get approval"/>
@@ -1616,33 +1616,33 @@
<task name="get approval"
assignee="johndoe">
-
+
<transition to="end"/>
</task>
-
+
<end name="end" />
</process></programlisting>
<para>The document process is started with a document variable:</para>
<programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("document", "This document describes how we can make more money...");
-
+
ProcessInstance processInstance = executionService
.startProcessInstanceByKey("SubProcessDocument", variables);</programlisting>
- <para>Then the parent process execution will arrive in the sub process
+ <para>Then the parent process execution will arrive in the sub process
activity. A sub process instance is created and linked with the super
- process execution. When the <literal>SubProcessReview</literal> process
- instance starts, it arrives in the <literal>task</literal>. A task will be
- created for <literal>johndoe</literal>.
+ process execution. When the <literal>SubProcessReview</literal> process
+ instance starts, it arrives in the <literal>task</literal>. A task will be
+ created for <literal>johndoe</literal>.
</para>
<programlisting>List<Task> taskList = taskService.findPersonalTasks("johndoe");
Task task = taskList.get(0);</programlisting>
- <para>We can see that the document has been passed from the super process
- instance to the sub process instance:
+ <para>We can see that the document has been passed from the super process
+ instance to the sub process instance:
</para>
<programlisting>String document = (String) taskService.getVariable(task.getDbid(), "document");
assertEquals("This document describes how we can make more money...", document);</programlisting>
- <para>Then we set a variable on the task. This is typically done through a form. But
+ <para>Then we set a variable on the task. This is typically done through a form. But
here we'll show how it is done programmatically.
</para>
<programlisting>
@@ -1653,9 +1653,9 @@
</para>
<programlisting>taskService.completeTask(task.getDbid());</programlisting>
<para>When the sub process ends, the super process execution will get signalled(=notified).
- First the <literal>result</literal> variable from the sub process instance
- will be copied into the <literal>reviewResult</literal> variable in the
- super process execution. Then the super process execution will continue
+ First the <literal>result</literal> variable from the sub process instance
+ will be copied into the <literal>reviewResult</literal> variable in the
+ super process execution. Then the super process execution will continue
and leave the <link>review</link> activity.
</para>
</section>
@@ -1663,8 +1663,8 @@
<!-- ~~~ SUB PROCESS OUTCOME VALUE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<section id="subprocessoutcomevalue">
<title><literal>sub-process</literal> outcome value</title>
- <para>In the <literal>SubProcessOutcomeValueTest</literal> example, the value
- of a sub process variable is used to select the outgoing transition
+ <para>In the <literal>SubProcessOutcomeValueTest</literal> example, the value
+ of a sub process variable is used to select the outgoing transition
of the <literal>sub-process</literal> activity.
</para>
<figure id="process.subprocess.outcomevalue.document">
@@ -1680,24 +1680,24 @@
<sub-process name="review"
sub-process-key="SubProcessReview"
<emphasis role="bold">outcome="#{result}"</emphasis>>
-
+
<transition <emphasis role="bold">name="ok"</emphasis> to="next step" />
<transition <emphasis role="bold">name="nok"</emphasis> to="update" />
<transition <emphasis role="bold">name="reject"</emphasis> to="close" />
</sub-process>
-
+
<state name="next step" />
<state name="update" />
<state name="close" />
</process></programlisting>
- <para>The <literal>SubProcessReview</literal> is the same as above in the
+ <para>The <literal>SubProcessReview</literal> is the same as above in the
<link linkend="subprocessvariables">subprocess variables example</link>:</para>
<figure id="process.subprocess.outcomevalue.review">
<title>The subprocess review example process for outcome value</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.subprocess.review.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="get approval"/>
@@ -1705,10 +1705,10 @@
<task name="get approval"
assignee="johndoe">
-
+
<transition to="end"/>
</task>
-
+
<end name="end" />
</process></programlisting>
@@ -1720,25 +1720,25 @@
<programlisting>List<Task> taskList = taskService.findPersonalTasks("johndoe");
Task task = taskList.get(0);
</programlisting>
- <para>Then the <literal>result</literal> variable is set and
+ <para>Then the <literal>result</literal> variable is set and
the task is completed.
</para>
<programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("result", "ok");
taskService.setVariables(task.getId(), variables);
taskService.completeTask(task.getDbid());</programlisting>
- <para>In this scenario, the <literal>ok</literal> transition is taken in
- the parent process out of the sub-process review activity. The example
- test case also shows other scenarios.
+ <para>In this scenario, the <literal>ok</literal> transition is taken in
+ the parent process out of the sub-process review activity. The example
+ test case also shows other scenarios.
</para>
</section>
<!-- ~~~ SUB PROCESS OUTCOME ACTIVITY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<section id="subprocessoutcomeactivity">
<title><literal>sub-process</literal> outcome activity</title>
- <para>A process can have many end activities. In the <literal>SubProcessOutcomeActivityTest</literal>
- example, the resulting end activity is used to select the outgoing transition of the <literal>sub-process</literal>
- activity.
+ <para>A process can have many end activities. In the <literal>SubProcessOutcomeActivityTest</literal>
+ example, the resulting end activity is used to select the outgoing transition of the <literal>sub-process</literal>
+ activity.
</para>
<figure id="process.subprocess.outcomeactivity.document">
<title>The subprocess document example process for outcome activity</title>
@@ -1752,12 +1752,12 @@
<sub-process name="review"
sub-process-key="SubProcessReview">
-
+
<transition <emphasis role="bold">name="ok"</emphasis> to="next step" />
<transition <emphasis role="bold">name="nok"</emphasis> to="update" />
<transition <emphasis role="bold">name="reject"</emphasis> to="close" />
</sub-process>
-
+
<state name="next step" />
<state name="update" />
<state name="close" />
@@ -1768,7 +1768,7 @@
<title>The subprocess review example process for outcome activity</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.subprocess.outcomeactivity.review.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="SubProcessReview" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="get approval"/>
@@ -1776,16 +1776,16 @@
<task name="get approval"
assignee="johndoe">
-
+
<transition name="ok" to="ok"/>
<transition name="nok" to="nok"/>
<transition name="reject" to="reject"/>
</task>
-
+
<emphasis role="bold"><end name="ok" />
<end name="nok" />
<end name="reject" /></emphasis>
-
+
</process></programlisting>
<para>A new document process instance is started like usual:
</para>
@@ -1795,7 +1795,7 @@
<programlisting>List<Task> taskList = taskService.findPersonalTasks("johndoe");
Task task = taskList.get(0);
</programlisting>
- <para>Then the task is completed with outcome <literal>ok</literal>.
+ <para>Then the task is completed with outcome <literal>ok</literal>.
</para>
<programlisting>taskService.completeTask(task.getDbid(), "ok");
</programlisting>
@@ -1803,44 +1803,44 @@
The super process execution will then take outgoing transition <literal>ok</literal>
to <literal>next step</literal>.
</para>
- <para>The example test case also shows the other scenarios.
+ <para>The example test case also shows the other scenarios.
</para>
</section>
</section>
-
+
<!-- ### CUSTOM ####################################################### -->
<section id="custom">
<title><literal>custom</literal></title>
- <para>Invokes user code that implements custom behaviour of an activity.
+ <para>Invokes user code that implements custom behaviour of an activity.
</para>
-
+
<para>A custom activity refers to user code. See <xref linkend="usercode" />
- for more details on the specific attributes and elements. Let's look at
- the example:
+ for more details on the specific attributes and elements. Let's look at
+ the example:
</para>
- <programlisting><process name="Custom" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="Custom" xmlns="http://jbpm.org/4.4/jpdl">
<start >
<transition to="print dots" />
</start>
- <custom name="print dots"
+ <custom name="print dots"
class="org.jbpm.examples.custom.PrintDots">
-
+
<transition to="end" />
</custom>
-
+
<end name="end" />
</process></programlisting>
- <para>The custom activity behaviour class <literal>PrintDots</literal>
- shows that it's possible to control the flow when implementing
- custom activity behaviours. In this case the <literal>PrintDots</literal>
- acitivity implementation will after printing dots wait in the activity until
- a signal is given.
+ <para>The custom activity behaviour class <literal>PrintDots</literal>
+ shows that it's possible to control the flow when implementing
+ custom activity behaviours. In this case the <literal>PrintDots</literal>
+ acitivity implementation will after printing dots wait in the activity until
+ a signal is given.
</para>
<programlisting>public class PrintDots implements ExternalActivityBehaviour {
@@ -1848,37 +1848,37 @@
public void execute(ActivityExecution execution) {
String executionId = execution.getId();
-
+
String dots = ...;
System.out.println(dots);
-
+
execution.waitForSignal();
}
- public void signal(ActivityExecution execution,
- String signalName,
+ public void signal(ActivityExecution execution,
+ String signalName,
Map<String, ?> parameters) {
execution.take(signalName);
}
}</programlisting>
-
+
</section>
</section>
-
+
<!-- ##################################################################### -->
<!-- ### AUTOMATIC ACTIVITIES ### -->
<!-- ##################################################################### -->
-
+
<section id="automaticactivities">
<title>Automatic activities</title>
<!-- ### JAVA ########################################################## -->
-
+
<section id="java">
<title><literal>java</literal></title>
<para>The Java task. A process execution will execute the method of the class that is configured
- in this activity.</para>
+ in this activity.</para>
<table><title><literal>java</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
<thead>
@@ -1896,9 +1896,9 @@
<entry>classname</entry>
<entry></entry>
<entry>either 'class' or 'expr' has to be specified</entry>
- <entry>The fully qualified classname. See <xref linkend="usercodeclassloading"/>
- for classloading information. The user code object will be lazy initialized
- and cached as part of the process definition.
+ <entry>The fully qualified classname. See <xref linkend="usercodeclassloading"/>
+ for classloading information. The user code object will be lazy initialized
+ and cached as part of the process definition.
</entry>
</row>
<row>
@@ -1906,7 +1906,7 @@
<entry>expression</entry>
<entry></entry>
<entry>either 'expr' or 'class' has to be specified</entry>
- <entry>An expression that returns the target object on which
+ <entry>An expression that returns the target object on which
the method should be invoked.
</entry>
</row>
@@ -1922,7 +1922,7 @@
<entry>variablename</entry>
<entry></entry>
<entry>optional</entry>
- <entry>The name of the variable in which the return value
+ <entry>The name of the variable in which the return value
should be stored.
</entry>
</row>
@@ -1942,7 +1942,7 @@
<row>
<entry><literal>field</literal></entry>
<entry>0..*</entry>
- <entry>describes a configuration value to inject in a memberfield before
+ <entry>describes a configuration value to inject in a memberfield before
the method is invoked.</entry>
</row>
<row>
@@ -1958,33 +1958,33 @@
<title>A java task</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.java.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="Java" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="Java" xmlns="http://jbpm.org/4.4/jpdl">
<start >
<transition to="greet" />
</start>
- <java name="greet"
+ <java name="greet"
class="org.jbpm.examples.java.JohnDoe"
method="hello"
var="answer"
>
-
+
<field name="state"><string value="fine"/></field>
<arg><string value="Hi, how are you?"/></arg>
-
+
<transition to="shake hand" />
</java>
-
- <java name="shake hand"
+
+ <java name="shake hand"
expr="#{hand}"
method="shake"
var="hand"
>
-
+
<arg><object expr="#{joesmoe.handshakes.force}"/></arg>
<arg><object expr="#{joesmoe.handshakes.duration}"/></arg>
-
+
<transition to="wait" />
</java>
@@ -1994,10 +1994,10 @@
</programlisting>
<para>Classes involved:</para>
<programlisting>public class JohnDoe {
-
+
String state;
Session session;
-
+
public String hello(String msg) {
if ( (msg.indexOf("how are you?")!=-1)
&& (session.isOpen())
@@ -2014,7 +2014,7 @@
handshakes.put("force", 5);
handshakes.put("duration", 12);
}
-
+
public Map<String, Integer> getHandshakes() {
return handshakes;
}
@@ -2027,7 +2027,7 @@
if (force>3 && duration>7) {
isShaken = true;
}
-
+
return this;
}
@@ -2035,25 +2035,25 @@
return isShaken;
}
}</programlisting>
- <para>The first java activity <literal>greet</literal> specifies that during its execution an instance of the
- class <literal>org.jbpm.examples.java.JohnDoe</literal> will be instantiated and the method
+ <para>The first java activity <literal>greet</literal> specifies that during its execution an instance of the
+ class <literal>org.jbpm.examples.java.JohnDoe</literal> will be instantiated and the method
<literal>hello</literal> of this class will be invoked on the resulting object. The variable named
- <literal>answer</literal> will contain the result of the invocation.
+ <literal>answer</literal> will contain the result of the invocation.
</para>
<para>The class above reveals that it contains two fields named <literal>state</literal> and <literal>session</literal>
- and that the method <literal>hello</literal> accepts one argument. During the execution the values specified in the
+ and that the method <literal>hello</literal> accepts one argument. During the execution the values specified in the
<literal>field</literal> and <literal>arg</literal> configuration elements will be used. The expected result of creating
a process instance is that the process variable <literal>answer</literal> contains the string
<literal>I'm fine, thank you.</literal>.
</para>
- <para>The second java activity is named <literal>shake hand</literal>. It will resolve
+ <para>The second java activity is named <literal>shake hand</literal>. It will resolve
expression <literal>#{hand}</literal>
- and capture the resulting object as the target object. On that object, the method
- <literal>shake</literal> will be invoked. The two arguments will be calculated by resolving
- the respective expressions <literal>#{joesmoe.handshakes.force}</literal> and
- <literal>#{joesmoe.handshakes.duration}</literal>. The resulting object is a mofied
- version of the hand and <literal>var="hand"</literal> will cause the modified
- hand to overwrite the old <literal>hand</literal> variable value.
+ and capture the resulting object as the target object. On that object, the method
+ <literal>shake</literal> will be invoked. The two arguments will be calculated by resolving
+ the respective expressions <literal>#{joesmoe.handshakes.force}</literal> and
+ <literal>#{joesmoe.handshakes.duration}</literal>. The resulting object is a mofied
+ version of the hand and <literal>var="hand"</literal> will cause the modified
+ hand to overwrite the old <literal>hand</literal> variable value.
</para>
</section>
@@ -2061,7 +2061,7 @@
<section id="script">
<title><literal>script</literal></title>
- <para>A script activity evaluates a script. Scripts can be specified in any language for
+ <para>A script activity evaluates a script. Scripts can be specified in any language for
which there is <ulink url="https://scripting.dev.java.net/">a JSR-223 compliant scripting engine</ulink>.
Configuration of scripting engines <link linkend="scripting">is explained below</link>.
</para>
@@ -2070,8 +2070,8 @@
<section id="script.expression">
<title><literal>script</literal> expression</title>
<para>The script is provided with the <literal>expr</literal> attribute.
- This is for short expressions that are easier expressed in an attribute
- then in a text element. If no <literal>lang</literal> is specified,
+ This is for short expressions that are easier expressed in an attribute
+ then in a text element. If no <literal>lang</literal> is specified,
the default-expression-language is used.
</para>
<table><title><literal>script</literal> expression attributes:</title>
@@ -2105,33 +2105,33 @@
<entry>variablename</entry>
<entry></entry>
<entry>optional</entry>
- <entry>name of the variable in which the return value
+ <entry>name of the variable in which the return value
should be stored.
</entry>
</row>
</tbody>
</tgroup>
</table>
- <para>In the next example, we'll see how a script activity with an expression and
+ <para>In the next example, we'll see how a script activity with an expression and
how the result is stored in a variable.
</para>
<figure id="process.script.expression">
<title>The script.expression example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.script.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="ScriptExpression" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="ScriptExpression" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="invoke script" />
</start>
- <emphasis role="bold"><script name="invoke script"
+ <emphasis role="bold"><script name="invoke script"
expr="Send packet to #{person.address}"
var="text"></emphasis>
<transition to="wait" />
<emphasis role="bold"></script></emphasis>
-
+
<state name="wait"/>
</process></programlisting>
@@ -2140,35 +2140,35 @@
<programlisting>public class Person implements Serializable {
String address;
-
+
public Person(String address) {
this.address = address;
}
-
+
public String getAddress() {
return address;
}
-
+
public void setAddress(String address) {
this.address = address;
}
}</programlisting>
- <para>When starting a process instance for this process, we supply a person
- with a given address property as variable <literal>person</literal>.
+ <para>When starting a process instance for this process, we supply a person
+ with a given address property as variable <literal>person</literal>.
</para>
<programlisting>Map<String, Object> variables = new HashMap<String, Object>();
variables.put("<emphasis role="bold">person</emphasis>", <emphasis role="bold">new Person("Honolulu")</emphasis>);
-
+
executionService.startProcessInstanceByKey("ScriptText", variables);</programlisting>
<para>After the execution of the script activity, variable <literal>text</literal>
- will contain 'Send packet to Honolulu'.
+ will contain 'Send packet to Honolulu'.
</para>
</section>
-
+
<section id="script.text">
<title><literal>script</literal> text</title>
<para>The second way of specifying a script is with a <literal>text</literal> element.
- This is convenient when the script text spans multiple lines.
+ This is convenient when the script text spans multiple lines.
</para>
<table><title><literal>script</literal> text attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -2194,7 +2194,7 @@
<entry>variablename</entry>
<entry></entry>
<entry>optional</entry>
- <entry>name of the variable in which the return value
+ <entry>name of the variable in which the return value
should be stored.
</entry>
</row>
@@ -2224,20 +2224,20 @@
<title>The script.text example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.script.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="ScriptText" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="ScriptText" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="invoke script" />
</start>
- <emphasis role="bold"><script name="invoke script"
+ <emphasis role="bold"><script name="invoke script"
var="text">
<text>
Send packet to #{person.address}
</text></emphasis>
<transition to="wait" />
<emphasis role="bold"></script></emphasis>
-
+
<state name="wait"/>
</process></programlisting>
@@ -2341,8 +2341,8 @@
<section id="hql">
<title><literal>hql</literal></title>
- <para>With the <literal>hql</literal> activity, a HQL query can be performed
- on the database and the result is stored in a process variable.
+ <para>With the <literal>hql</literal> activity, a HQL query can be performed
+ on the database and the result is stored in a process variable.
</para>
<table><title><literal>hql</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -2368,10 +2368,10 @@
<entry>{true, false}</entry>
<entry>false</entry>
<entry>optional</entry>
- <entry>a value of true means that the result from the hibernate
+ <entry>a value of true means that the result from the hibernate
query should be obtained with method <literal>uniqueResult()</literal>.
The default is false and in that case the <literal>list()</literal>
- method will be used to get the result.
+ method will be used to get the result.
</entry>
</row>
</tbody>
@@ -2405,7 +2405,7 @@
<title>The hql example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.hql.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="Hql" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="Hql" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="get process names" />
@@ -2423,7 +2423,7 @@
</parameters></emphasis>
<transition to="count activities" />
<emphasis role="bold"></hql>
-
+
<hql name="count activities"
var="activities"
unique="true">
@@ -2444,13 +2444,13 @@
<section id="sql">
<title><literal>sql</literal></title>
<para>The <literal>sql</literal> activity is exactly the same as the
- <link linkend="hql">hql</link> activity, with the only difference that
- <literal>session.createSQLQuery(...)</literal> is used.
+ <link linkend="hql">hql</link> activity, with the only difference that
+ <literal>session.createSQLQuery(...)</literal> is used.
</para>
</section>
<!-- ### Mail ########################################################## -->
-
+
<section id="mail">
<title><literal>mail</literal></title>
@@ -2624,7 +2624,7 @@
<para>Example usage:</para>
- <programlisting><process name="InlineMail" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="InlineMail" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="send birthday reminder note" />
</start>
@@ -2649,7 +2649,7 @@
<section id="commonactivitycontents">
<title>Common activity contents</title>
- <para>Unless specified otherwise above, all activities also include this
+ <para>Unless specified otherwise above, all activities also include this
content model:
</para>
<table><title>Common activity attributes:</title>
@@ -2703,27 +2703,27 @@
<para>Events specify points in a process on which a list of event listeners can be registered.
When an execution passes that point in the process, the event listeners are notified.
The events and listeners are not shown in the graphical view of the process, which
- makes them very interesting for implementing technical details. An event
- is fired by an element in the process definition like e.g. the process definition,
- an activity or a transition.
+ makes them very interesting for implementing technical details. An event
+ is fired by an element in the process definition like e.g. the process definition,
+ an activity or a transition.
</para>
<para>The EventListener interface looks like this:
</para>
<programlisting>public interface <emphasis role="bold">EventListener</emphasis> extends Serializable {
-
+
void notify(EventListenerExecution execution) throws Exception;
}</programlisting>
- <para>All <link linkend="automaticactivities">automatic activities</link> can be used as
+ <para>All <link linkend="automaticactivities">automatic activities</link> can be used as
event listeners as well.</para>
- <para>To associate a list of event listeners with a process or an activity, use
- the <literal>on</literal> element to group the event listeners and specifiy the
+ <para>To associate a list of event listeners with a process or an activity, use
+ the <literal>on</literal> element to group the event listeners and specifiy the
event. <literal>on</literal> can be nested as a subelement of <literal>process</literal>
or any activity.
</para>
- <para>To associate a list of event listeners with a transition <literal>take</literal>
- event, just include the event listeners directly in the <literal>transition</literal>
- element.
+ <para>To associate a list of event listeners with a transition <literal>take</literal>
+ event, just include the event listeners directly in the <literal>transition</literal>
+ element.
</para>
<table><title><literal>on</literal> attributes:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -2771,11 +2771,11 @@
</tgroup>
</table>
<table><title>event listener attributes:</title>
- <para><literal>event-listener</literal> is user code so it can be configured
- like described in <xref linkend="usercode" />.
+ <para><literal>event-listener</literal> is user code so it can be configured
+ like described in <xref linkend="usercode" />.
</para>
- <para>Any automatic activities (including event-listener) that are placed on
- events can specify following additional attributes:
+ <para>Any automatic activities (including event-listener) that are placed on
+ events can specify following additional attributes:
</para>
<tgroup cols="5" rowsep="1" colsep="1">
<thead>
@@ -2793,7 +2793,7 @@
<entry>{enabled | disabled | true | false | on | off}</entry>
<entry>disabled</entry>
<entry>optional</entry>
- <entry>indicates if the event listener should also be invoked for
+ <entry>indicates if the event listener should also be invoked for
propagating events.
</entry>
</row>
@@ -2803,7 +2803,7 @@
<entry>sync</entry>
<entry>optional</entry>
<entry>indicates if the execution should be continued asynchronously
- right before the event listener is executed. @see also
+ right before the event listener is executed. @see also
<xref linkend="asynchronouscontinuations"/>
</entry>
</row>
@@ -2812,12 +2812,12 @@
</table>
<section>
<title>Event listener example</title>
- <para>Let's look at an example process with event listeners:</para>
- <figure id="process.eventlistener">
- <title>The event listener example process</title>
- <mediaobject><imageobject><imagedata align="center" fileref="images/process.eventlistener.png"/></imageobject></mediaobject>
- </figure>
- <programlisting><process name="EventListener" xmlns="http://jbpm.org/4.3/jpdl">
+ <para>Let's look at an example process with event listeners:</para>
+ <figure id="process.eventlistener">
+ <title>The event listener example process</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/process.eventlistener.png"/></imageobject></mediaobject>
+ </figure>
+ <programlisting><process name="EventListener" xmlns="http://jbpm.org/4.4/jpdl">
<on event="start">
<event-listener class="org.jbpm.examples.eventlistener.LogListener">
@@ -2846,13 +2846,13 @@
</event-listener>
</transition>
</state>
-
+
<state name="park"/>
</process></programlisting>
- <para><literal>LogListener</literal> will maintain a list of logs as a process variable:</para>
- <programlisting>public class <emphasis role="bold">LogListener</emphasis> implements EventListener {
-
+ <para><literal>LogListener</literal> will maintain a list of logs as a process variable:</para>
+ <programlisting>public class <emphasis role="bold">LogListener</emphasis> implements EventListener {
+
// value gets injected from process definition
String msg;
@@ -2862,32 +2862,32 @@
logs = new ArrayList<String>();
execution.setVariable("logs", logs);
}
-
+
logs.add(msg);
execution.setVariable("logs", logs);
}
}</programlisting>
- <para>Next, we start a new process instance.</para>
- <programlisting>ProcessInstance processInstance = executionService.startProcessInstanceByKey("EventListener");</programlisting>
- <para>Then the process instance executes up to the wait activity. So we provide a signal
- and that will cause it to execute till the end.</para>
- <programlisting>Execution execution = processInstance.findActiveExecutionIn("wait");
+ <para>Next, we start a new process instance.</para>
+ <programlisting>ProcessInstance processInstance = executionService.startProcessInstanceByKey("EventListener");</programlisting>
+ <para>Then the process instance executes up to the wait activity. So we provide a signal
+ and that will cause it to execute till the end.</para>
+ <programlisting>Execution execution = processInstance.findActiveExecutionIn("wait");
executionService.signalExecutionById(execution.getId());</programlisting>
- <para>The list of log messages will now look like this:</para>
- <programlisting>[start on process definition,
+ <para>The list of log messages will now look like this:</para>
+ <programlisting>[start on process definition,
start on activity wait,
end on activity wait,
take transition]</programlisting>
</section>
<section>
<title>Event propagation</title>
- <para>Events are propagated from activities and transitions to outer activities and
- eventually to the process definition.
+ <para>Events are propagated from activities and transitions to outer activities and
+ eventually to the process definition.
</para>
<para>By default, event listeners are only invoked
for events that are fired on the elements on which the event listeners are subscribed.
- But by specifying <literal>propagation="enabled"</literal>, the event
+ But by specifying <literal>propagation="enabled"</literal>, the event
listener will also be invoked for all events that are fired on contained elements.
</para>
</section>
@@ -2902,28 +2902,28 @@
</para>
<para>This default behaviour has a couple of advantages: user application transactions
can be easily propagated to jBPM to that jBPM's DB updates are done in the user's
- transaction context. Secondly, it's possible for a client to get an exception in
- case something goes wrong during execution of the process. Usually, the automatic
- work that has to be done as part of the process inbetween two wait states is
- relatively small. Even if multiple automatic activities
- are executed inbetween 2 wait states. So in most situations, it's good to
- do all that work in a single transaction. This explains that the default behaviour
- of jPDL is to perform all work of the process synchronously in the thread of client.
+ transaction context. Secondly, it's possible for a client to get an exception in
+ case something goes wrong during execution of the process. Usually, the automatic
+ work that has to be done as part of the process inbetween two wait states is
+ relatively small. Even if multiple automatic activities
+ are executed inbetween 2 wait states. So in most situations, it's good to
+ do all that work in a single transaction. This explains that the default behaviour
+ of jPDL is to perform all work of the process synchronously in the thread of client.
</para>
<para>For those cases where you don't want the call to jBPM to be blocking until
- all the automatic work is done, jPDL allows for very fine grained control over
- transaction boundaries. On various places in the process, asynchronous continuations
- can be introduced. Asynchronous continuations cause the transaction to commit and
- the jBPM method invocation will return. jBPM will then start a new transaction in a
+ all the automatic work is done, jPDL allows for very fine grained control over
+ transaction boundaries. On various places in the process, asynchronous continuations
+ can be introduced. Asynchronous continuations cause the transaction to commit and
+ the jBPM method invocation will return. jBPM will then start a new transaction in a
new thread and continue the rest of the automatic process work asynchronously. jBPM
- uses asynchronous messaging internally to accomplish this.
+ uses asynchronous messaging internally to accomplish this.
</para>
- <para>Upon an asynchronous continuation, an asynchronous message will be sent as
- part of the currently ongoing transaction. And then the originally invoked method
+ <para>Upon an asynchronous continuation, an asynchronous message will be sent as
+ part of the currently ongoing transaction. And then the originally invoked method
like e.g. <literal>startProcessInstanceById(...)</literal>
- or <literal>signalProcessInstanceById(...)</literal> will return. When the
+ or <literal>signalProcessInstanceById(...)</literal> will return. When the
asynchronous message is committed and then processed, it will start a new transaction
- and resume execution where it left off.
+ and resume execution where it left off.
</para>
<table><title>Attribute of any activity, <literal>transition</literal> or <literal>on</literal>:</title>
<tgroup cols="5" rowsep="1" colsep="1">
@@ -2942,7 +2942,7 @@
<entry>{sync | async | exclusive}</entry>
<entry>sync</entry>
<entry>optional</entry>
- <entry><para>indicates if an asynchronous continuation should be performed
+ <entry><para>indicates if an asynchronous continuation should be performed
before the element is executed.</para>
</entry>
</row>
@@ -2950,24 +2950,24 @@
</tgroup>
</table>
<itemizedlist>
- <listitem><emphasis role="bold">sync</emphasis> (default) keep executing
+ <listitem><emphasis role="bold">sync</emphasis> (default) keep executing
the element as part of the ongoing transaction.
</listitem>
<listitem><emphasis role="bold">async</emphasis> introduces an asynchronous
- continuation (aka safe point).
+ continuation (aka safe point).
The ongoing transaction is committed and the element is executed in a
- new transaction. Transactional asynchronous messaging is used by the jBPM
+ new transaction. Transactional asynchronous messaging is used by the jBPM
implementation to achieve this.
</listitem>
- <listitem><emphasis role="bold">exclusive</emphasis> introduces a asynchronous
- continuation (aka safe point).
+ <listitem><emphasis role="bold">exclusive</emphasis> introduces a asynchronous
+ continuation (aka safe point).
The ongoing transaction is committed and the element is executed in a
- new transaction. Transactional asynchronous messaging is used by the jBPM
- implementation to achieve this. Exclusive messages will not be processed
- concurrently. jBPM will make sure that exclusive jobs for the same process instance
- are not executed concurrently, even if your jBPM configuration has multiple
- asynchronous message processors (like the JobExecutor) running on different
- systems. This can be used to prevent optimistic locking failures in case
+ new transaction. Transactional asynchronous messaging is used by the jBPM
+ implementation to achieve this. Exclusive messages will not be processed
+ concurrently. jBPM will make sure that exclusive jobs for the same process instance
+ are not executed concurrently, even if your jBPM configuration has multiple
+ asynchronous message processors (like the JobExecutor) running on different
+ systems. This can be used to prevent optimistic locking failures in case
multiple, potentially conflicting jobs are scheduled in the same transaction.
</listitem>
</itemizedlist>
@@ -2979,21 +2979,21 @@
<title>The async activity example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.async.activity.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="AsyncActivity" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="AsyncActivity" xmlns="http://jbpm.org/4.4/jpdl">
<start>
<transition to="generate pdf"/>
</start>
- <java name="generate pdf"
- <emphasis role="bold">continue="async"</emphasis>
+ <java name="generate pdf"
+ <emphasis role="bold">continue="async"</emphasis>
class="org.jbpm.examples.async.activity.Application"
method="generatePdf" >
<transition to="calculate primes"/>
</java>
- <java name="calculate primes"
- <emphasis role="bold">continue="async"</emphasis>
+ <java name="calculate primes"
+ <emphasis role="bold">continue="async"</emphasis>
class="org.jbpm.examples.async.activity.Application"
method="calculatePrimes">
<transition to="end"/>
@@ -3012,32 +3012,32 @@
// assume long automatic calculations here
}
}</programlisting>
- <programlisting>ProcessInstance processInstance =
+ <programlisting>ProcessInstance processInstance =
executionService.startProcessInstanceByKey("AsyncActivity");
String processInstanceId = processInstance.getId();</programlisting>
- <para>Without the asynchronous continuations, this would be an all automatic
+ <para>Without the asynchronous continuations, this would be an all automatic
process and the process would execute all the way up to the end
- in method <literal>startProcessInstanceByKey</literal>
+ in method <literal>startProcessInstanceByKey</literal>
</para>
- <para>But with <literal>continue="async"</literal> the execution only
+ <para>But with <literal>continue="async"</literal> the execution only
goes untill it is about to execute activity <literal>generate pdf</literal>. Then
- an asynchronous continuation message is send and the <literal>startProcessInstanceByKey</literal>
+ an asynchronous continuation message is send and the <literal>startProcessInstanceByKey</literal>
method returns.
</para>
- <para>In a normal configuration, the job executor will automatically pick up
- the message and execute it. But for testing scenarios and for these examples we
- want to control when messages are executed so the job executor is not configured.
+ <para>In a normal configuration, the job executor will automatically pick up
+ the message and execute it. But for testing scenarios and for these examples we
+ want to control when messages are executed so the job executor is not configured.
Therefore we have to execute the jobs manually like this:
</para>
<programlisting>Job job = managementService.createJobQuery()
.processInstanceId(processInstanceId)
.uniqueResult();
managementService.executeJob(job.getDbid());</programlisting>
- <para>That will bring the process until it's about to execute activity
- <literal>calculate primes</literal> and again an asynchronous message is
- send.
+ <para>That will bring the process until it's about to execute activity
+ <literal>calculate primes</literal> and again an asynchronous message is
+ send.
</para>
- <para>Then the message can be looked up again and when that message
+ <para>Then the message can be looked up again and when that message
is executed, that transaction will run the execution till the end.
</para>
</section>
@@ -3048,7 +3048,7 @@
<title>The async fork example process</title>
<mediaobject><imageobject><imagedata align="center" fileref="images/process.async.fork.png"/></imageobject></mediaobject>
</figure>
- <programlisting><process name="AsyncFork" xmlns="http://jbpm.org/4.3/jpdl">
+ <programlisting><process name="AsyncFork" xmlns="http://jbpm.org/4.4/jpdl">
<start >
<transition to="fork"/>
@@ -3071,7 +3071,7 @@
<join >
<transition to="end"/>
</join>
-
+
<end />
</process></programlisting>
@@ -3086,16 +3086,16 @@
}
}</programlisting>
<para>By placing the asynchronous continuation on the <literal>end</literal>
- event of the fork (<literal><on event="end" continue="exclusive" /></literal>),
- each forked execution that takes a transition out of the
- fork will be continued asynchronously.
+ event of the fork (<literal><on event="end" continue="exclusive" /></literal>),
+ each forked execution that takes a transition out of the
+ fork will be continued asynchronously.
</para>
- <para>Value <literal>exclusive</literal> was selected to serialize the executions of
- the 2 asynchonous continuation jobs resulting from the fork. The respective transactions
- that will execute activities <literal>ship goods</literal>
- and <literal>send bill</literal> will both arrive at the join. At the join, both
- transactions will synchronize on the same execution (read: update the same execution
- row in the DB), resulting in a potential optimistic locking failure.
+ <para>Value <literal>exclusive</literal> was selected to serialize the executions of
+ the 2 asynchonous continuation jobs resulting from the fork. The respective transactions
+ that will execute activities <literal>ship goods</literal>
+ and <literal>send bill</literal> will both arrive at the join. At the join, both
+ transactions will synchronize on the same execution (read: update the same execution
+ row in the DB), resulting in a potential optimistic locking failure.
</para>
<programlisting>ProcessInstance processInstance = executionService.startProcessInstanceByKey("AsyncFork");
String processInstanceId = processInstance.getId();
@@ -3108,13 +3108,13 @@
Job job = jobs.get(0);
-// here we simulate execution of the job,
+// here we simulate execution of the job,
// which is normally done by the job executor
managementService.executeJob(job.getDbid());
job = jobs.get(1);
-// here we simulate execution of the job,
+// here we simulate execution of the job,
// which is normally done by the job executor
managementService.executeJob(job.getDbid());
@@ -3130,11 +3130,11 @@
<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. This section
- describes the common attributes and elements for the instantiation and
- configuration of such user code objects.
- </para>
+ <para>Various elements in the jPDL process language refer to a an
+ object on which an interface method will be invoked. This section
+ describes the common attributes and elements for the instantiation and
+ configuration of such user code objects.
+ </para>
<itemizedlist>
<listitem><literal>custom</literal></listitem>
<listitem><literal>event-listener</literal></listitem>
@@ -3161,8 +3161,8 @@
<entry>classname</entry>
<entry></entry>
<entry>one of {class|expr} is required</entry>
- <entry>The fully qualified classname. Instantiation is done only once and
- the user object is cached as part of the process definition.
+ <entry>The fully qualified classname. Instantiation is done only once and
+ the user object is cached as part of the process definition.
</entry>
</row>
<row>
@@ -3171,7 +3171,7 @@
<entry></entry>
<entry>one of {class|expr} is required</entry>
<entry>Expression for which the resulting value will be taken as the target object.
- Expressions will be evaluated for every usage. In other words, the resulting
+ Expressions will be evaluated for every usage. In other words, the resulting
value of the evaluation will not be cached.
</entry>
</row>
@@ -3191,13 +3191,13 @@
<row>
<entry><literal>field</literal></entry>
<entry>0..*</entry>
- <entry>describes a configuration value to be injected directly in
+ <entry>describes a configuration value to be injected directly in
a memberfield before this user class is used.</entry>
</row>
<row>
<entry><literal>property</literal></entry>
<entry>0..*</entry>
- <entry>describes a configuration value to injected through a setter
+ <entry>describes a configuration value to injected through a setter
method before this user object is used.</entry>
</row>
</tbody>
@@ -3227,7 +3227,7 @@
</table>
<table><title>field and property contained element:</title>
<para><literal>field</literal> and <literal>property</literal> elements
- have exactly one child element that represents the value that will be
+ have exactly one child element that represents the value that will be
injected.
</para>
<tgroup cols="3" rowsep="1" colsep="1">
@@ -3308,19 +3308,19 @@
<section id="usercodeclassloading">
<title>User code classloading</title>
<para>Process definitions are cached. By default, all user code objects are
- cached as part of those process definitions.
-
- For all objects that are referenced by a class name, will be
+ cached as part of those process definitions.
+
+ For all objects that are referenced by a class name, will be
instantiated during parsing time. Which implies that the objects aren't
allowed to store non-stateless data (ie which can change).
- This is typically OK since those objects are in practice almost always immutable.
- If you do need to use 'dynamic' data in your user code, you can always
+ This is typically OK since those objects are in practice almost always immutable.
+ If you do need to use 'dynamic' data in your user code, you can always
fall back to process variables (or Environment.get(xxx) calls).
</para>
- <para>Objects that are referenced by an expression are calculated
+ <para>Objects that are referenced by an expression are calculated
dynamically.
</para>
- <para>The devguide also explains an unsupported attribute to prevent
+ <para>The devguide also explains an unsupported attribute to prevent
that user objects are cached.
</para>
</section>
More information about the jbpm-commits
mailing list