[jbpm-commits] JBoss JBPM SVN: r4515 - in jbpm4/trunk/modules: distro/src/main/resources/config-tool/jbpm and 11 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Apr 9 10:28:55 EDT 2009
Author: tom.baeyens at jboss.com
Date: 2009-04-09 10:28:55 -0400 (Thu, 09 Apr 2009)
New Revision: 4515
Added:
jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml
jbpm4/trunk/modules/examples/src/test/resources/jbpm.cache.xml
jbpm4/trunk/modules/examples/src/test/resources/jbpm.definition.hbm.xml
jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cache.xml
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.definition.hbm.xml
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java
jbpm4/trunk/modules/pvm/src/test/resources/jbpm.cache.xml
jbpm4/trunk/modules/pvm/src/test/resources/jbpm.definition.hbm.xml
jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cache.xml
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.definition.hbm.xml
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml
Removed:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlActivityBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/Activities.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/ActivitiesParser.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java
Modified:
jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.activities.xml
jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.activities.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ExclusiveBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.activities.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/TagBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java
jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.activities.xml
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.activities.xml
Log:
JBPM-2027 adding event listeners implementation
Modified: jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2009-04-09 14:28:55 UTC (rev 4515)
@@ -42,6 +42,7 @@
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="tns:swimlane" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<group ref="tns:activityGroup" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute name="name" use="required" type="string">
@@ -85,6 +86,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -97,6 +99,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attribute name="ends" default="process-instance">
@@ -118,6 +121,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attribute name="ends" default="process-instance">
@@ -136,6 +140,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attribute name="ends" default="process-instance">
@@ -157,6 +162,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -171,6 +177,7 @@
<complexType>
<sequence>
<element name="handler" minOccurs="0" type="tns:wireObjectType" />
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element name="transition" minOccurs="0" maxOccurs="unbounded">
<complexType>
<complexContent>
@@ -214,6 +221,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -226,6 +234,7 @@
</documentation></annotation>
<complexType>
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -239,6 +248,7 @@
<complexContent>
<extension base="tns:scriptType">
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -254,6 +264,7 @@
<complexContent>
<extension base="tns:qlType">
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -269,6 +280,7 @@
<complexContent>
<extension base="tns:qlType">
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -287,6 +299,7 @@
<complexContent>
<extension base="tns:javaType">
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -302,6 +315,7 @@
<complexContent>
<extension base="tns:esbType">
<sequence>
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
@@ -316,10 +330,12 @@
<complexType>
<sequence>
<element name="assignment-handler" minOccurs="0" type="tns:wireObjectType" />
+ <element ref="tns:on" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:activityAttributes" />
<attributeGroup ref="tns:assignmentAttributes"/>
+ <attribute name="swimlane" type="string" />
<attribute name="on-transition" default="cancel">
<simpleType>
<restriction base="string">
@@ -370,58 +386,6 @@
<attributeGroup ref="tns:activityAttributes" />
</complexType>
</element>
-
- <element name="activity">
- <annotation><documentation>Executes an activity implementation.
- </documentation></annotation>
- <complexType>
- <sequence>
- <group ref="tns:delegationGroup"/>
- <element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
- <element ref="tns:on" minOccurs="0" maxOccurs="unbounded">
- <annotation><documentation>Events on which listeners can be registered.</documentation></annotation>
- </element>
- </sequence>
- <attributeGroup ref="tns:activityAttributes" />
- </complexType>
- </element>
-
- <element name="email">
- <annotation><documentation>Sends an email
- </documentation></annotation>
- <complexType>
- <complexContent>
- <extension base="tns:emailType">
- <sequence>
- <element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
- <element ref="tns:on" minOccurs="0" maxOccurs="unbounded">
- <annotation><documentation>Events on which listeners can be registered.</documentation></annotation>
- </element>
- </sequence>
- <attributeGroup ref="tns:activityAttributes" />
- </extension>
- </complexContent>
- </complexType>
- </element>
-
- <element name="task">
- <annotation><documentation>Creates a human task
- </documentation></annotation>
- <complexType>
- <complexContent>
- <extension base="tns:taskType">
- <sequence>
- <element ref="tns:transition" minOccurs="0" maxOccurs="unbounded" />
- <element ref="tns:on" minOccurs="0" maxOccurs="unbounded">
- <annotation><documentation>Events on which listeners can be registered.</documentation></annotation>
- </element>
- <element ref="tns:timer" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attributeGroup ref="tns:activityAttributes" />
- </extension>
- </complexContent>
- </complexType>
- </element>
-->
</choice>
</group>
@@ -593,98 +557,49 @@
tasks and swimlanes to specify to whom these respectively are assigned.
</documentation></annotation>
<attribute name="assignee" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to an identifier of
- the actual actor that needs to execute the task. It can be a literal as well.
+ <annotation><documentation>Expression that resolves to a userId referencing
+ the person to which the task or swimlane will be assigned.
</documentation></annotation>
</attribute>
<attribute name="assignee-lang" type="string">
- <annotation><documentation>The expression language to use to evaluate the assignee
- expression.
+ <annotation><documentation>Expression language for the assignee attribute.
</documentation></annotation>
</attribute>
- <attribute name="candidate-groups" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
- list of groups of actors with candidates to execute the task.
- </documentation></annotation>
- </attribute>
- <attribute name="candidate-groups-lang" type="string">
- <annotation><documentation>The expression language to use to evaluate the candidate-groups
- expression.
- </documentation></annotation>
- </attribute>
<attribute name="candidate-users" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
- list of actors that are candidate to execute the task.
- </documentation></annotation>
+ <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>The expression language to use to evaluate the candidate-users
- expression.
- </documentation></annotation>
+ <annotation><documentation>Expression language for the
+ candidate-users attribute.</documentation></annotation>
</attribute>
- <attribute name="swimlane" type="string">
- <annotation><documentation>The name of the swimlane that will contain the actor that
- needs to execute the task.
- </documentation></annotation>
- </attribute>
- </attributeGroup>
-
-<!-- <complexType name="assignmentType">
- <annotation><documentation>An element of type assignmentType will be used in
- tasks and swimlanes to specify to whom these respectively are assigned.
- </documentation></annotation>
- <attribute name="assignee" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to an identifier of
- the actual actor that needs to execute the task. It can be a literal as well.
- </documentation></annotation>
- </attribute>
<attribute name="candidate-groups" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
- list of groups of actors with candidates to execute the task.
- </documentation></annotation>
+ <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-users" type="string">
- <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
- list of actors that are candidate to execute the task.
- </documentation></annotation>
+ <attribute name="candidate-groups-lang" type="string">
+ <annotation><documentation>Expression language for the
+ candidate-groups attribute.</documentation></annotation>
</attribute>
- <attribute name="swimlane" type="string">
- <annotation><documentation>The name of the swimlane that will contain the actor that
- needs to execute the task.
- </documentation></annotation>
- </attribute>
- </complexType>
+ </attributeGroup>
- <element name="assignment" type="tns:assignmentType">
- <annotation><documentation>The assignment which specifies who needs to execute
- task or who is among the candidates to execute it.
- </documentation></annotation>
- </element> -->
-
- <complexType name="swimlaneType">
- <annotation><documentation>Elements of type swimlaneType will be used in the
- process to enumerate all the participating swimlanes.
- </documentation></annotation>
- <sequence>
- </sequence>
- <attribute name="name" type="string"/>
- <attributeGroup ref="tns:assignmentAttributes"></attributeGroup>
- </complexType>
-
- <element name="swimlane" type="tns:swimlaneType" >
- <annotation><documentation>A participating swimlane for this process
- </documentation></annotation>
+ <element name="swimlane">
+ <annotation><documentation>A process role.</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required" />
+ <attributeGroup ref="tns:assignmentAttributes" />
+ </complexType>
</element>
<complexType name="transitionType">
<annotation><documentation>The outgoing transitions. The first in the list
will be the default outgoing transition.
</documentation></annotation>
- <!--
<sequence>
- <group ref="tns:eventListenerGroup" />
+ <group ref="tns:eventListenerGroup" minOccurs="0" maxOccurs="unbounded" />
</sequence>
- -->
<attribute name="name" type="string">
<annotation><documentation>Name of this outgoing transition</documentation></annotation>
</attribute>
@@ -703,84 +618,30 @@
</element>
<element name="on">
- <annotation><documentation>Events on which listeners can be registered.</documentation></annotation>
<complexType>
- <!--
<sequence>
<group ref="tns:eventListenerGroup" minOccurs="0" maxOccurs="unbounded">
<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
+ <annotation><documentation>The event identification. start, end, take or
+ any other custom event.
</documentation></annotation>
</attribute>
</complexType>
</element>
- <!--
-
<group name="eventListenerGroup">
<choice>
- <element name="notify">
- <annotation><documentation>Calls the notify method on an
- EventListener.
+ <element name="event-listener" type="tns:wireObjectType" >
+ <annotation><documentation>An EventListener
</documentation></annotation>
- <complexType>
- <group ref="tns:delegationGroup" />
- <attribute name="object" type="string">
- <annotation><documentation>The reference to an object that is declared
- in the objects section of this process definition.
- </documentation></annotation>
- </attribute>
- <attribute name="expr" type="string">
- <annotation><documentation>The expression that will resolve to
- an Activity implementation.</documentation></annotation>
- </attribute>
- </complexType>
</element>
- <element name="invoke" type="tns:invokeType">
- <annotation><documentation>Invokes a method on a Java object
- through reflection. The return value can be captured in a
- process variable.
- </documentation></annotation>
- </element>
- <element name="script" type="tns:scriptType">
- <annotation><documentation>Evaluates a piece of text as a script
- </documentation></annotation>
- </element>
- <element name="email" type="tns:emailType">
- <annotation><documentation>Sends an email
- </documentation></annotation>
- </element>
- <element ref="tns:timer">
- <annotation><documentation>Creates a timer.
- </documentation></annotation>
- </element>
</choice>
</group>
- <complexType name="scriptType">
- <sequence>
- <element name="expr" type="string">
- <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
- is mutually exclusive with the expression element.
- </documentation></annotation>
- </attribute>
- <attribute name="lang" type="string">
- <annotation><documentation>Identification of the scripting language
- to use.</documentation></annotation>
- </attribute>
- </complexType>
-
<complexType name="emailType">
<sequence>
<element name="property">
@@ -797,55 +658,26 @@
</attribute>
</complexType>
- <element name="timer">
- <annotation><documentation>A timer that will be bound to the most inner enclosing scope.
- Timers can give a signal to an activity instance. The signal will correspond to a transition
- or to an event being fired.
- </documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="tns:eventListenerGroup">
- <annotation><documentation>An inline list of event listeners
- on a timer is a short cut for defining the event separately.
- </documentation></annotation>
- </group>
- </choice>
- <attribute name="duedate" type="string" use="required" />
- <attribute name="signal" type="string" use="required">
- <annotation><documentation>Refers to the signal that will be used.
- If inline event listeners are declared, the signal name can not be
- the same as an event that is declared in this scope.
- </documentation></annotation>
- </attribute>
- <attribute name="repeat" type="string" />
- </complexType>
- </element>
-
- <complexType name="taskType">
+ <complexType name="taskType" >
+ <!--
<sequence>
- <element ref="tns:assignment" />
<element name="reminder">
<complexType>
<attribute name="duedate" type="string" use="required" />
<attribute name="repeat" type="string" />
</complexType>
</element>
- <element ref="tns:subtask" />
</sequence>
- <attribute name="title" type="string">
- </attribute>
+ -->
+ <attributeGroup ref="tns:assignmentAttributes" />
<attribute name="form" type="string">
</attribute>
<attribute name="swimlane" type="string">
</attribute>
<attribute name="description" type="string" />
<attribute name="duedate" type="string" />
- <attribute name="priority" type="tns:priorityType" default="normal" />
<attribute name="notify" type="boolean" default="false"/>
- <attribute name="dynamic" type="boolean" default="true">
- <annotation><documentation>Is dynamic creation of subtasks
- allowed ?</documentation></annotation>
- </attribute>
+ <!--
<attribute name="subtasksync">
<simpleType>
<union>
@@ -871,8 +703,34 @@
</union>
</simpleType>
</attribute>
+ -->
</complexType>
+ <!--
+ <element name="timer">
+ <annotation><documentation>A timer that will be bound to the most inner enclosing scope.
+ Timers can give a signal to an activity instance. The signal will correspond to a transition
+ or to an event being fired.
+ </documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <group ref="tns:eventListenerGroup">
+ <annotation><documentation>An inline list of event listeners
+ on a timer is a short cut for defining the event separately.
+ </documentation></annotation>
+ </group>
+ </choice>
+ <attribute name="duedate" type="string" use="required" />
+ <attribute name="signal" type="string" use="required">
+ <annotation><documentation>Refers to the signal that will be used.
+ If inline event listeners are declared, the signal name can not be
+ the same as an event that is declared in this scope.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="repeat" type="string" />
+ </complexType>
+ </element>
+
<simpleType name="priorityType">
<restriction base="string">
<enumeration value="highest"/>
@@ -885,52 +743,40 @@
<element name="subtask" type="tns:taskType">
<annotation><documentation>Subtask in a task activity.</documentation></annotation>
- </element>
+ </element>
+
+ <complexType name="assignmentType">
+ <annotation><documentation>An element of type assignmentType will be used in
+ tasks and swimlanes to specify to whom these respectively are assigned.
+ </documentation></annotation>
+ <attribute name="assignee" type="string">
+ <annotation><documentation>An expression '#{expr}' that resolves to an identifier of
+ the actual actor that needs to execute the task. It can be a literal as well.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="candidate-groups" type="string">
+ <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
+ list of groups of actors with candidates to execute the task.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="candidate-users" type="string">
+ <annotation><documentation>An expression '#{expr}' that resolves to a comma separated
+ list of actors that are candidate to execute the task.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="swimlane" type="string">
+ <annotation><documentation>The name of the swimlane that will contain the actor that
+ needs to execute the task.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
- <element name="swimlane">
- <annotation><documentation>A process role.</documentation></annotation>
- <complexType>
- <sequence>
- <element ref="tns:assignment"/>
- </sequence>
- <attribute name="name" type="string" use="required" />
- </complexType>
+ <element name="assignment" type="tns:assignmentType">
+ <annotation><documentation>The assignment which specifies who needs to execute
+ task or who is among the candidates to execute it.
+ </documentation></annotation>
</element>
+
+ -->
- <element name="assignment">
- <annotation><documentation>Specifies how a task or a swimlane should be assigned
- to a specific user or who will be identified as a candidate for it.</documentation></annotation>
- <complexType>
- <sequence minOccurs="0">
- <group ref="tns:delegationGroup">
- <annotation><documentation>An object that implements the
- Assigner interface.
- </documentation></annotation>
- </group>
- </sequence>
- <attribute name="assignee" type="string">
- <annotation><documentation>User ID of the person to which the task
- or swimlane will be assigned.
- </documentation></annotation>
- </attribute>
- <attribute name="assignee-expr" type="string">
- <annotation><documentation>Expression that resolves to a
- User ID to which the task or swimlane will be assigned.
- </documentation></annotation>
- </attribute>
- <attribute name="candidates" type="string">
- <annotation><documentation>Comma separated list of User ID's
- or Group ID's. All the referred people will be candidates to
- take the task or swimlane.</documentation></annotation>
- </attribute>
- <attribute name="candidate-expr" type="string">
- <annotation><documentation>Expression that resolves to a
- comma separated list of User ID's or Group ID's. All the
- referred people will be candidates to
- take the task or swimlane.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- -->
-
</schema>
Modified: jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.activities.xml 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.activities.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,5 +1,4 @@
<activities>
- <schema resource="jpdl.xsd" />
<activity binding="org.jbpm.jpdl.internal.activity.StartBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.StateBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.ExclusiveBinding" />
Copied: jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml)
===================================================================
--- jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml (rev 0)
+++ jbpm4/trunk/modules/distro/src/main/resources/config-tool/jbpm/jbpm.jpdl.eventlisteners.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,4 @@
+<eventlisteners>
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+</eventlisteners>
Copied: jbpm4/trunk/modules/examples/src/test/resources/jbpm.cache.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/examples/src/test/resources/jbpm.cache.xml)
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.cache.xml (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.cache.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,39 @@
+<hibernate-cache>
+
+ <class-cache class="org.jbpm.pvm.internal.model.ProcessDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ActivityImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TransitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.EventImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ExceptionHandlerImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ObjectReference" />
+ <class-cache class="org.jbpm.pvm.internal.model.VariableDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TimerDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.attachments" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.incomingTransitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.outgoingTransitions" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.events" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.listenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ExceptionHandlerImpl.eventListenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.argDescriptors" />
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.operations" />
+
+</hibernate-cache>
Copied: jbpm4/trunk/modules/examples/src/test/resources/jbpm.definition.hbm.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/examples/src/test/resources/jbpm.definition.hbm.xml)
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.definition.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.definition.hbm.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,646 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jbpm.pvm.internal.model" default-access="field">
+
+ <!-- ### PROCESS DEFINITION ############################################# -->
+ <class name="ProcessDefinitionImpl"
+ table="JBPM_PROCESS"
+ discriminator-value="pvm">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator><column name="CLASS_" /></discriminator>
+
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_PROCDEF_PROPS"
+ index="IDX_PROCDEF_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_PROCESS">
+ <column name="PROCESS_" index="IDX_EXHDLR_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl"/>
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_PROCESS">
+ <column name="PROCESS_" index="IDX_EVENT_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl"/>
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key foreign-key="FK_ACTS_PROCESS">
+ <column name="ACTSPROCESS_" index="IDX_ACTS_PROCESS"/>
+ </key>
+ <list-index column="ACTSPROCESS_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_VARDEF_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_TMRDEF_PROCESS"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ProcessDefinitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="key" column="KEY_" />
+ <property name="id" column="ID_" unique="true" />
+
+ <property name="packageName" column="PACKAGE_" />
+ <property name="version" column="VERSION_" />
+ <property name="deploymentTime" column="DEPLOYED_" />
+ <many-to-one name="initial"
+ column="INITIAL_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_PROCDEF_INITIAL"
+ index="IDX_PROCDEF_INIT"
+ fetch="select" />
+
+ <map name="attachments" cascade="all-delete-orphan">
+ <key foreign-key="FK_LOB_PROCESS">
+ <column name="PROCESS_" index="IDX_LOB_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.lob.Lob"/>
+ </map>
+ </class>
+
+ <!-- ### Activity ############################################################## -->
+ <class name="ActivityImpl" table="JBPM_ACTIVITY">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_ACT_PROCESS"
+ index="IDX_ACT_PROCESS" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_ACT_PROPS"
+ index="IDX_ACT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_ACT">
+ <column name="ACT_" index="IDX_EXHDLR_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_ACT">
+ <column name="ACT_" index="IDX_EVENT_ACT" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key column="PARENT_" foreign-key="none" />
+ <list-index column="PARENT_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_ACT">
+ <column name="ACT_" index="IDX_VARDEF_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_ACT">
+ <column name="ACT_" index="IDX_TMRDEF_ACT"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ActivityImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="type" column="TYPE_" />
+ <property name="isLocalScope" column="LOCAL_SCOPE_" />
+ <property name="isExecutionAsync" column="EXEC_ASYNC_" />
+ <property name="isSignalAsync" column="SIGNAL_ASYNC_" />
+ <property name="isPreviousNeeded" column="PREV_NEEDED_" />
+
+ <many-to-one name="parentActivity"
+ column="PARENT_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_ACT_PARENT"
+ index="IDX_ACT_PARENT" />
+
+ <many-to-one name="defaultTransition"
+ column="DEFTRANS_"
+ class="TransitionImpl"
+ fetch="select"
+ foreign-key="FK_ACT_DEFTRANS"
+ index="IDX_ACT_DEFTRANS" />
+
+ <list name="incomingTransitions" inverse="false">
+ <key column="DESTINATION_" />
+ <index column="IN_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <list name="outgoingTransitions" inverse="false" cascade="all">
+ <key column="SOURCE_" />
+ <index column="OUT_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <component name="behaviourReference" class="ObjectReference">
+ <many-to-one name="descriptor"
+ column="BEHAV_DESCR_"
+ cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_NODE_BEHAV_DESCR"
+ index="IDX_NODE_BEHAV_DESCR" />
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <!-- <meta-value value="bpel::activity" class="org.jbpm.pvm.bpel.BpelActivity"/> -->
+ <column name="BEHAV_CLASS_" />
+ <column name="BEHAV_ID_" />
+ </any>
+ </component>
+ </class>
+
+ <!-- ### TRANSITION ##################################################### -->
+ <class name="TransitionImpl" table="JBPM_TRANSITION">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_TRANS_PROCDEF"
+ index="IDX_TRANS_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_TRANS_PROPS"
+ index="IDX_TRANS_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_TRANS">
+ <column name="TRANSITION_" index="IDX_EXHDLR_TRANS" />
+ </key>
+ <index column="TRANSITION_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_TRANS">
+ <column name="TRANSITION_" index="IDX_EVENT_TRANS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- TransitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <many-to-one name="source"
+ column="SRC_"
+ class="ActivityImpl"
+ fetch="select"
+ foreign-key="FK_TRANS_SRC"
+ index="IDX_TRANS_SRC" />
+
+ <many-to-one name="destination"
+ column="DEST_"
+ class="ActivityImpl"
+ fetch="select"
+ cascade="all"
+ foreign-key="FK_TRANS_DST"
+ index="IDX_TRANS_DST" />
+
+ <many-to-one name="conditionDescriptor"
+ column="COND_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_COND"
+ index="IDX_TRANS_COND" />
+
+ <!--
+ <many-to-one name="waitConditionDescriptor"
+ column="WAIT_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_WAIT_DESCR"
+ index="IDX_TRANS_WAIT_DESCR" />
+ -->
+
+ <property name="isTakeAsync" column="TAKEASYNC_" />
+ </class>
+
+ <!-- ### EVENT ########################################################## -->
+ <class name="EventImpl" table="JBPM_EVENT">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESSDEF_"
+ foreign-key="FK_EVENT_PROCDEF"
+ index="IDX_EVENT_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_EVENT_PROPS"
+ index="IDX_EVENT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_EVENT">
+ <column name="EVENT_" index="IDX_EXHDLR_EVENT"/>
+ </key>
+ <index column="EVENT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- EventImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <list name="listenerReferences" table="JBPM_OBJECTREFERENCES" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJECTREF_EVENT">
+ <column name="EVENT_" index="IDX_OBJREF_EVENT"/>
+ </key>
+ <list-index column="EVENT_IDX_" />
+ <one-to-many class="EventListenerReference" />
+ </list>
+ </class>
+
+ <!-- ### EXCEPTION HANDLER ############################################## -->
+ <class name="ExceptionHandlerImpl" table="JBPM_EXCEPTHNDLR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="exceptionClassName" column="EXCEPT_CLASS_" />
+ <property name="isTransactional" column="TRANSACT_" />
+ <property name="isRethrowMasked" column="RETHROW_MASKED_"/>
+ <property name="transitionName" column="TRANSITIONNAME_" />
+ <property name="activityName" column="NODENAME_" />
+ <list name="eventListenerReferences"
+ inverse="false"
+ cascade="all-delete-orphan"
+ table="JBPM_OBJECTREFERENCES">
+ <key foreign-key="FK_OBJREF_EXHNDLR" not-null="false">
+ <column name="EXHNDLR_" index="IDX_OBJREF_EXHNDLR" />
+ </key>
+ <list-index column="EXHNDLR_IDX_" />
+ <one-to-many class="ObjectReference" />
+ </list>
+ </class>
+
+ <!-- ### OBJECT REFERENCE ############################################### -->
+ <class name="ObjectReference" discriminator-value="objref" table="JBPM_OBJECTREF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="descriptor"
+ column="OBJ_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_OBJREF_EVENT"
+ index="IDX_OBJREF_EVENT"/>
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <column name="OBJ_CLASS_" />
+ <column name="OBJ_ID_" />
+ </any>
+ <property name="expression" column="OBJ_EXPRESSION_"/>
+ <property name="expressionLanguage" column="OBJ_EXPRLANG_"/>
+
+ <subclass name="EventListenerReference" discriminator-value="evtlis">
+ <property name="isPropagationEnabled" column="PROPAGATE_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### VARIABLE DEFINITION ############################################ -->
+ <class name="VariableDefinitionImpl" table="JBPM_VARIABLEDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="name" column="NAME_"/>
+ <property name="typeName" column="TYPE_"/>
+
+ <property name="inVariableName" column="INVAR_" />
+ <property name="inExpression" column="INEXPR_" />
+ <many-to-one name="inDescriptor"
+ column="INDESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_VARDEF_INDES"
+ index="IDX_VARDEF_INDES"/>
+ <property name="outVariableName" column="OUTVAR_" />
+ <property name="outExpression" column="OUTEXPR_" />
+ </class>
+
+ <!-- ### TIMER DEFINITION ############################################### -->
+ <class name="TimerDefinitionImpl" table="JBPM_TIMERDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="dueDateDescription" column="DUEDATEDESCR_"/>
+ <property name="repeat" column="REPEAT_"/>
+ <property name="isExclusive" column="ISEXCL_"/>
+ <property name="retries" column="RETRIES_"/>
+ <property name="eventName" column="EVENT_"/>
+ <property name="signalName" column="SIGNAL_"/>
+ <property name="dueDate" column="DUEDATE_" type="timestamp"/>
+ </class>
+
+ <!-- ### DESCRIPTORS #################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" table="JBPM_DESCRIPTOR" abstract="true"
+ discriminator-value="abstract">
+ <!--
+ byte : ByteDescriptor
+ string : StringDescriptor
+ char : CharacterDescriptor
+ class : ClassDescriptor
+ double : DoubleDescriptor
+ expr : ExpressionDescriptor
+ float : FloatDescriptor
+ long : LongDescriptor
+ int : IntegerDescriptor
+ short : ShortDescriptor
+ coll : CollectionDescriptor
+ map : MapDescriptor
+ list : ListDescriptor
+ set : SetDescriptor
+ object : ObjectDescriptor
+ ref : ReferenceDescriptor
+ null : NullDescriptor
+ true : TrueDescriptor
+ false : FalseDescriptor
+ provided : ProvidedObjectDescriptor
+ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_" />
+ <property name="init" column="INIT_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.NullDescriptor" discriminator-value="null_" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.TrueDescriptor" discriminator-value="true" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FalseDescriptor" discriminator-value="false" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.StringDescriptor" discriminator-value="string">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CharacterDescriptor" discriminator-value="char">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ClassDescriptor" discriminator-value="class">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor" discriminator-value="ref">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.DoubleDescriptor" discriminator-value="double">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FloatDescriptor" discriminator-value="float">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.LongDescriptor" discriminator-value="long">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.IntegerDescriptor" discriminator-value="int">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ShortDescriptor" discriminator-value="short">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ByteDescriptor" discriminator-value="byte">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CollectionDescriptor" discriminator-value="coll">
+ <property name="className" column="CLASSNAME_" />
+ <list name="valueDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_DESCR_VALDESCR">
+ <column name="VALUEDESCR_" index="IDX_DESCR_VALDESCR" />
+ </key>
+ <list-index column="VALUEDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.MapDescriptor" discriminator-value="map">
+ <list name="keyDescriptors" cascade="all-delete-orphan">
+ <key column="KEYDESCR_" foreign-key="FK_DESCR_KEYDESCR" />
+ <list-index column="KEYDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ListDescriptor" discriminator-value="list" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.SetDescriptor" discriminator-value="set" />
+ </subclass>
+
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor" discriminator-value="object">
+ <property name="className" column="TEXT_" />
+ <property name="methodName" column="METHOD_" />
+ <property name="isAutoWireEnabled" column="BOOLVAL_" />
+ <property name="factoryObjectName" column="FACTORYNAME_" />
+
+ <many-to-one name="factoryDescriptor" class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" column="FACTORYDESCR_"
+ foreign-key="FK_DESCR_ARG_REF" index="IDX_DESCR_ARG_REF" cascade="all" />
+
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJARG_DESCR">
+ <column name="OBJARG_DESCR_" index="IDX_OBJARG_DESCR" />
+ </key>
+ <list-index column="OBJARG_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+
+ <list name="operations" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJOPER_DESCR">
+ <column name="OBJOPER_DESCR_" index="IDX_OBJOPER_DESCR" />
+ </key>
+ <list-index column="OBJOPER_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.operation.AbstractOperation" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ExpressionDescriptor" discriminator-value="expr">
+ <property name="expr" column="TEXT_" />
+ <property name="lang" column="METHOD_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor" discriminator-value="provided">
+ <any name="providedObject" id-type="long" cascade="all">
+ <column name="TEXT_" />
+ <column name="LONGVAL_" />
+ </any>
+ <property name="exposeType" column="BOOLVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.EnvDescriptor" discriminator-value="env">
+ <property name="objectName" column="TEXT_" />
+ <property name="typeName" column="CLASSNAME_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### OPERATIONS ##################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.operation.AbstractOperation" abstract="true"
+ table="JBPM_OPERATION" discriminator-value="oper">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.FieldOperation"
+ discriminator-value="field">
+ <property name="fieldName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_OPER_DESC" index="IDX_OPER_DESC" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.PropertyOperation"
+ discriminator-value="prop">
+ <property name="setterName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.InvokeOperation"
+ discriminator-value="invoke">
+ <property name="methodName" column="TEXT_" />
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_ARGDSCR_OPER">
+ <column name="OPER_" index="IDX_ARGDSCR_OPER" />
+ </key>
+ <list-index column="OPER_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+ </subclass>
+ </class>
+
+ <!-- ### ARG DESCRIPTOR ################################################# -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" table="JBPM_ARGDESCRIPTOR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="typeName" column="TYPENAME_" />
+ <many-to-one name="descriptor" column="DESCRIPTOR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_ARGDESCR_DESCR" index="IDX_ARGDESCR_DESCR" cascade="all" />
+ </class>
+
+ <!-- ### PROPERTIES ##################################################### -->
+ <class name="org.jbpm.pvm.internal.model.WireProperties" table="JBPM_WIREPROPS">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <component name="wireContext" class="org.jbpm.pvm.internal.wire.WireContext">
+ <component name="wireDefinition" class="org.jbpm.pvm.internal.wire.WireDefinition">
+ <map name="descriptors" cascade="all-delete-orphan" lazy="false">
+ <key foreign-key="FK_DESCR_PROPS">
+ <column name="PROPS_" index="IDX_DESCR_PROPS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </map>
+ </component>
+ </component>
+ </class>
+
+
+ <!-- ### QUERIES ######################################################## -->
+
+ <query name="findProcessDefinitionKeys">
+ <![CDATA[
+ select distinct process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ order by process.key asc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionsByKey">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ order by process.version desc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionById">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.id = :id
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionKeysByName">
+ <![CDATA[
+ select process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.name = :name
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionNamesByKey">
+ <![CDATA[
+ select process.name
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ ]]>
+ </query>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,5 +1,4 @@
<activities>
- <schema resource="jpdl.xsd" />
<activity binding="org.jbpm.jpdl.internal.activity.StartBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.StateBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.ExclusiveBinding" />
Copied: jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml)
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.jpdl.eventlisteners.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,4 @@
+<eventlisteners>
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+</eventlisteners>
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -30,7 +30,7 @@
/**
* @author Tom Baeyens
*/
-public class EndBinding extends JpdlActivityBinding {
+public class EndBinding extends JpdlBinding {
public EndBinding() {
super("end");
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EsbBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -38,7 +38,7 @@
/**
* @author Tom Baeyens
*/
-public class EsbBinding extends JpdlActivityBinding {
+public class EsbBinding extends JpdlBinding {
public static final String TAG = "esb";
private static final WireParser wireParser = WireParser.getInstance();
Copied: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import org.jbpm.jpdl.internal.xml.JpdlParser;
+import org.jbpm.listener.EventListener;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class EventListenerBinding extends JpdlBinding {
+
+ public EventListenerBinding() {
+ super("event-listener");
+ }
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ Descriptor descriptor = JpdlParser.parseObjectDescriptor(element, parse);
+ EventListener eventListener = (EventListener) WireContext.create(descriptor);
+ return eventListener;
+ }
+
+}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ExclusiveBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ExclusiveBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ExclusiveBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -40,7 +40,7 @@
/**
* @author Tom Baeyens
*/
-public class ExclusiveBinding extends JpdlActivityBinding {
+public class ExclusiveBinding extends JpdlBinding {
static ObjectBinding objectBinding = new ObjectBinding();
static WireParser wireParser = WireParser.getInstance();
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -29,7 +29,7 @@
/**
* @author Tom Baeyens
*/
-public class ForkBinding extends JpdlActivityBinding {
+public class ForkBinding extends JpdlBinding {
public ForkBinding() {
super("fork");
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -36,7 +36,7 @@
/**
* @author Tom Baeyens
*/
-public class HqlBinding extends JpdlActivityBinding {
+public class HqlBinding extends JpdlBinding {
public static final String TAG = "hql";
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaActivity.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -25,6 +25,9 @@
import java.util.List;
import org.jbpm.activity.ActivityExecution;
+import org.jbpm.listener.EventListener;
+import org.jbpm.listener.EventListenerExecution;
+import org.jbpm.model.OpenExecution;
import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
import org.jbpm.pvm.internal.wire.WireContext;
@@ -37,7 +40,7 @@
/**
* @author Tom Baeyens
*/
-public class JavaActivity extends JpdlActivity {
+public class JavaActivity extends JpdlActivity implements EventListener {
private static final long serialVersionUID = 1L;
@@ -47,6 +50,15 @@
protected InvokeOperation invokeOperation;
public void execute(ActivityExecution execution) throws Exception {
+ perform(execution);
+ execution.historyAutomatic();
+ }
+
+ public void notify(EventListenerExecution execution) throws Exception {
+ perform(execution);
+ }
+
+ public void perform(OpenExecution execution) throws Exception {
WireContext wireContext = new WireContext();
Object target = wireContext.create(descriptor, false);
@@ -70,8 +82,6 @@
execution.setVariable(variableName, returnValue);
}
- execution.historyAutomatic();
-
} catch (WireException e) {
throw e;
} catch (Exception e) {
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JavaBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -36,7 +36,7 @@
/**
* @author Tom Baeyens
*/
-public class JavaBinding extends JpdlActivityBinding {
+public class JavaBinding extends JpdlBinding {
public static final String TAG = "java";
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -29,7 +29,7 @@
/**
* @author Tom Baeyens
*/
-public class JoinBinding extends JpdlActivityBinding {
+public class JoinBinding extends JpdlBinding {
public JoinBinding() {
super("join");
Deleted: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlActivityBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlActivityBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlActivityBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,75 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.jpdl.internal.activity;
-
-import java.util.List;
-
-import org.jbpm.jpdl.internal.xml.JpdlParser;
-import org.jbpm.jpdl.internal.xml.UnresolvedTransitions;
-import org.jbpm.pvm.internal.model.ActivityImpl;
-import org.jbpm.pvm.internal.model.TransitionImpl;
-import org.jbpm.pvm.internal.util.TagBinding;
-import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.wire.xml.WireParser;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.w3c.dom.Element;
-
-
-/**
- * @author Tom Baeyens
- */
-public abstract class JpdlActivityBinding extends TagBinding {
-
- protected static final WireParser wireParser = JpdlParser.wireParser;
-
- public JpdlActivityBinding(String tagName) {
- super(tagName, "http://jbpm.org/4/jpdl", "activity");
- }
-
- public void parseName(Element element, ActivityImpl activity, Parse parse) {
- String name = XmlUtil.attribute(element, "name", isNameRequired(), parse);
-
- if (name!=null) {
- // basic name validation
- if ("".equals(name)) {
- parse.addProblem(XmlUtil.errorMessageAttribute(element, "name", name, "is empty"));
- } else if (name.indexOf('/')!=-1) {
- parse.addProblem(XmlUtil.errorMessageAttribute(element, "name", name, "contains slash (/)"));
- }
- activity.setName(name);
- }
- }
-
- public boolean isNameRequired() {
- return true;
- }
-
- public void parseFlows(Element element, ActivityImpl activity, Parse parse) {
- List<Element> transitionElements = XmlUtil.elements(element, "transition");
- UnresolvedTransitions unresolvedTransitions = parse.findObject(UnresolvedTransitions.class);
- for (Element transitionElement: transitionElements) {
- String transitionName = XmlUtil.attribute(transitionElement, "name", false, parse);
- TransitionImpl transition = activity.createOutgoingTransition(transitionName);
- unresolvedTransitions.add(transition, transitionElement);
- }
- }
-}
Copied: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import java.util.List;
+
+import org.jbpm.jpdl.internal.xml.JpdlParser;
+import org.jbpm.jpdl.internal.xml.UnresolvedTransitions;
+import org.jbpm.model.Event;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.TransitionImpl;
+import org.jbpm.pvm.internal.util.TagBinding;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.xml.WireParser;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public abstract class JpdlBinding extends TagBinding {
+
+ protected static final WireParser wireParser = JpdlParser.wireParser;
+
+ public JpdlBinding(String tagName) {
+ super(tagName, "http://jbpm.org/4/jpdl", null);
+ }
+
+ public void parseName(Element element, ActivityImpl activity, Parse parse) {
+ String name = XmlUtil.attribute(element, "name", isNameRequired(), parse);
+
+ if (name!=null) {
+ // basic name validation
+ if ("".equals(name)) {
+ parse.addProblem(XmlUtil.errorMessageAttribute(element, "name", name, "is empty"));
+ } else if (name.indexOf('/')!=-1) {
+ parse.addProblem(XmlUtil.errorMessageAttribute(element, "name", name, "contains slash (/)"));
+ }
+ activity.setName(name);
+ }
+ }
+
+ public boolean isNameRequired() {
+ return true;
+ }
+
+ public void parseTransitions(Element element, ActivityImpl activity, Parse parse, JpdlParser jpdlParser) {
+ List<Element> transitionElements = XmlUtil.elements(element, "transition");
+ UnresolvedTransitions unresolvedTransitions = parse.findObject(UnresolvedTransitions.class);
+ for (Element transitionElement: transitionElements) {
+ String transitionName = XmlUtil.attribute(transitionElement, "name", false, parse);
+ TransitionImpl transition = activity.createOutgoingTransition(transitionName);
+ unresolvedTransitions.add(transition, transitionElement);
+
+ jpdlParser.parseEventListeners(transitionElement, transition, Event.TAKE, parse);
+ }
+ }
+}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ScriptBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -32,7 +32,7 @@
/**
* @author Tom Baeyens
*/
-public class ScriptBinding extends JpdlActivityBinding {
+public class ScriptBinding extends JpdlBinding {
private static final String TAG = "script";
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -31,7 +31,7 @@
/**
* @author Tom Baeyens
*/
-public class StartBinding extends JpdlActivityBinding {
+public class StartBinding extends JpdlBinding {
public StartBinding() {
super("start");
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -31,7 +31,7 @@
/**
* @author Tom Baeyens
*/
-public class StateBinding extends JpdlActivityBinding {
+public class StateBinding extends JpdlBinding {
public StateBinding() {
super("state");
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -30,7 +30,7 @@
/**
* @author Tom Baeyens
*/
-public class TaskBinding extends JpdlActivityBinding {
+public class TaskBinding extends JpdlBinding {
private static final String TAG = "task";
Deleted: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/Activities.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/Activities.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/Activities.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.jpdl.internal.xml;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jbpm.pvm.internal.xml.Bindings;
-
-
-/**
- * @author Tom Baeyens
- */
-public class Activities {
-
- List<String> schemaResources = new ArrayList<String>();
- Bindings bindings = new Bindings();
-
-}
Deleted: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/ActivitiesParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/ActivitiesParser.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/ActivitiesParser.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.jpdl.internal.xml;
-
-import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.util.ReflectUtil;
-import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.xml.Binding;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
-import org.w3c.dom.Element;
-
-/**
- * @author Tom Baeyens
- */
-public class ActivitiesParser extends Parser {
-
- private static final Log log = Log.getLog(ActivitiesParser.class.getName());
-
- public Object parseDocumentElement(Element documentElement, Parse parse) {
- Activities activities = parse.findObject(Activities.class);
- if (activities==null) {
- activities = new Activities();
- }
- parse.setDocumentObject(activities);
-
- for (Element bindingElement : XmlUtil.elements(documentElement, "activity")) {
- Binding binding = instantiateBinding(bindingElement, parse);
- activities.bindings.addBinding(binding);
- }
-
- for (Element schemaElement : XmlUtil.elements(documentElement, "schema")) {
- String schemaResource = XmlUtil.attribute(schemaElement, "resource", true, parse);
- activities.schemaResources.add(schemaResource);
- }
-
- return activities;
- }
-
- protected Binding instantiateBinding(Element bindingElement, Parse parse) {
- String bindingClassName = XmlUtil.attribute(bindingElement, "binding", true, parse);
-
- log.trace("adding activity binding "+bindingClassName);
-
- if (bindingClassName!=null) {
- try {
- Class<?> bindingClass = ReflectUtil.loadClass(classLoader, bindingClassName);
- return (Binding) bindingClass.newInstance();
- } catch (Exception e) {
- parse.addProblem("couldn't instantiate activity binding "+bindingClassName, e);
- }
- }
- return null;
- }
-}
Copied: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.util.ReflectUtil;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.xml.Binding;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+/**
+ * @author Tom Baeyens
+ */
+public class BindingsParser extends Parser {
+
+ private static final Log log = Log.getLog(BindingsParser.class.getName());
+
+ public Object parseDocumentElement(Element documentElement, Parse parse) {
+ List<Binding> bindings = new ArrayList<Binding>();
+ parse.setDocumentObject(bindings);
+
+ for (Element bindingElement : XmlUtil.elements(documentElement)) {
+ Binding binding = instantiateBinding(bindingElement, parse);
+ bindings.add(binding);
+ }
+
+ return bindings;
+ }
+
+ protected Binding instantiateBinding(Element bindingElement, Parse parse) {
+ String bindingClassName = XmlUtil.attribute(bindingElement, "binding", true, parse);
+
+ log.trace("adding jpdl binding "+bindingClassName);
+
+ if (bindingClassName!=null) {
+ try {
+ Class<?> bindingClass = ReflectUtil.loadClass(classLoader, bindingClassName);
+ return (Binding) bindingClass.newInstance();
+ } catch (Exception e) {
+ parse.addProblem("couldn't instantiate activity binding "+bindingClassName, e);
+ }
+ }
+ return null;
+ }
+}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -29,9 +29,12 @@
import org.jbpm.activity.ActivityBehaviour;
import org.jbpm.internal.log.Log;
-import org.jbpm.jpdl.internal.activity.JpdlActivityBinding;
+import org.jbpm.jpdl.internal.activity.JpdlBinding;
import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
+import org.jbpm.listener.EventListener;
import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.EventImpl;
+import org.jbpm.pvm.internal.model.ObservableElementImpl;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.task.AssignableDefinitionImpl;
import org.jbpm.pvm.internal.task.SwimlaneDefinitionImpl;
@@ -41,6 +44,7 @@
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.wire.operation.Operation;
import org.jbpm.pvm.internal.wire.xml.WireParser;
+import org.jbpm.pvm.internal.xml.Bindings;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -59,18 +63,26 @@
"jbpm.user.activities.xml"
};
- static ActivitiesParser activityParser = new ActivitiesParser();
+ public static final String[] DEFAULT_EVENTLISTENERS_RESOURCES = new String[]{
+ "jbpm.jpdl.eventlisteners.xml",
+ "jbpm.user.eventlisteners.xml"
+ };
+ static BindingsParser bindingsParser = new BindingsParser();
+
public JpdlParser() {
initialize();
- Activities activitiesConfiguration = parseActivitiesConfiguration();
- setBindings(activitiesConfiguration.bindings);
- setSchemaResources(activitiesConfiguration.schemaResources);
+ parseBindings();
+
+ List<String> schemaResources = new ArrayList<String>();
+ schemaResources.add("jpdl.xsd");
+ setSchemaResources(schemaResources);
}
- protected Activities parseActivitiesConfiguration() {
- Activities activities = new Activities();
+ protected void parseBindings() {
+ Bindings bindings = new Bindings();
+ setBindings(bindings);
for (String activityResource: DEFAULT_ACTIVITIES_RESOURCES) {
Enumeration<URL> resourceUrls = ReflectUtil.getResources(null, activityResource);
@@ -78,18 +90,45 @@
while (resourceUrls.hasMoreElements()) {
URL resourceUrl = resourceUrls.nextElement();
log.trace("loading jpdl activities from resource: "+resourceUrl);
- activityParser.createParse()
+ List<JpdlBinding> activityBindings = (List<JpdlBinding>) bindingsParser.createParse()
.setUrl(resourceUrl)
- .pushObject(activities)
.execute()
- .checkProblems("jpdl activities from "+resourceUrl.toString());
+ .checkProblems("jpdl activities from "+resourceUrl.toString())
+ .getDocumentObject();
+
+ for (JpdlBinding binding: activityBindings) {
+ binding.setCategory("activity");
+ bindings.addBinding(binding);
+ }
+
}
} else {
log.trace("skipping unavailable jpdl activities resource: "+activityResource);
}
}
-
- return activities;
+
+ for (String eventListenerResource: DEFAULT_EVENTLISTENERS_RESOURCES) {
+ Enumeration<URL> resourceUrls = ReflectUtil.getResources(null, eventListenerResource);
+ if (resourceUrls.hasMoreElements()) {
+ while (resourceUrls.hasMoreElements()) {
+ URL resourceUrl = resourceUrls.nextElement();
+ log.trace("loading jpdl eventlisteners from resource: "+resourceUrl);
+ List<JpdlBinding> activityBindings = (List<JpdlBinding>) bindingsParser.createParse()
+ .setUrl(resourceUrl)
+ .execute()
+ .checkProblems("jpdl eventlisteners from "+resourceUrl.toString())
+ .getDocumentObject();
+
+ for (JpdlBinding binding: activityBindings) {
+ binding.setCategory("eventlistener");
+ bindings.addBinding(binding);
+ }
+
+ }
+ } else {
+ log.trace("skipping unavailable jpdl eventlistener resource: "+eventListenerResource);
+ }
+ }
}
public Object parseDocumentElement(Element documentElement, Parse parse) {
@@ -137,26 +176,33 @@
JpdlParser.parseAssignmentAttributes(swimlaneElement, swimlaneDefinition, parse);
}
}
-
+
+ parseOnEvents(documentElement, parse, processDefinition);
+
// activities
List<Element> elements = XmlUtil.elements(documentElement);
for (Element element: elements) {
- JpdlActivityBinding activityBinding = (JpdlActivityBinding) getBinding(element, "activity");
- if (activityBinding!=null) {
- ActivityImpl activity = (ActivityImpl) processDefinition.createActivity();
- parse.pushObject(activity);
- try {
- activity.setType(activityBinding.getTagName());
- activityBinding.parseName(element, activity, parse);
- activityBinding.parseFlows(element, activity, parse);
- ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(element, parse, this);
- activity.setBehaviour(activityBehaviour);
- } finally {
- parse.popObject();
+ if (!"on".equals(XmlUtil.getTagLocalName(element))) {
+ JpdlBinding activityBinding = (JpdlBinding) getBinding(element, "activity");
+ if (activityBinding!=null) {
+ ActivityImpl activity = processDefinition.createActivity();
+ parse.pushObject(activity);
+ try {
+ activity.setType(activityBinding.getTagName());
+ activityBinding.parseName(element, activity, parse);
+ activityBinding.parseTransitions(element, activity, parse, this);
+ ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(element, parse, this);
+ activity.setBehaviour(activityBehaviour);
+
+ parseOnEvents(element, parse, activity);
+
+ } finally {
+ parse.popObject();
+ }
+ } else {
+ log.debug("unrecognized activity: "+XmlUtil.getTagLocalName(element));
}
- } else {
- log.debug("unrecognized activity: "+XmlUtil.getTagLocalName(element));
- }
+ }
}
for (UnresolvedTransition unresolvedTransition: unresolvedTransitions.list) {
@@ -175,6 +221,34 @@
return processDefinition;
}
+ public void parseOnEvents(Element element, Parse parse, ObservableElementImpl observableElement) {
+ // event listeners
+ List<Element> onElements = XmlUtil.elements(element, "on");
+ for (Element onElement: onElements) {
+ String eventName = XmlUtil.attribute(onElement, "event", true, parse);
+ parseEventListeners(onElement, observableElement, eventName, parse);
+ }
+ }
+
+ public void parseEventListeners(Element element, ObservableElementImpl observableElement, String eventName, Parse parse) {
+ if (eventName!=null) {
+ EventImpl event = observableElement.getEvent(eventName);
+ if (event==null) {
+ event = observableElement.createEvent(eventName);
+ }
+
+ for (Element eventListenerElement: XmlUtil.elements(element)) {
+ JpdlBinding eventBinding = (JpdlBinding) getBinding(eventListenerElement, "eventlistener");
+ if (eventBinding!=null) {
+ EventListener eventListener = (EventListener) eventBinding.parse(eventListenerElement, parse, this);
+ event.createEventListenerReference(eventListener);
+ } else {
+ log.debug("unrecognized event listener: "+XmlUtil.getTagLocalName(eventListenerElement));
+ }
+ }
+ }
+ }
+
public static void parseAssignmentAttributes(Element element, AssignableDefinitionImpl assignableDefinition, Parse parse) {
Element descriptionElement = XmlUtil.element(element, "description");
if (descriptionElement!=null) {
Copied: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cache.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/test/resources/jbpm.cache.xml)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cache.xml (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cache.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,39 @@
+<hibernate-cache>
+
+ <class-cache class="org.jbpm.pvm.internal.model.ProcessDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ActivityImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TransitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.EventImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ExceptionHandlerImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ObjectReference" />
+ <class-cache class="org.jbpm.pvm.internal.model.VariableDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TimerDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.attachments" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.incomingTransitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.outgoingTransitions" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.events" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.listenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ExceptionHandlerImpl.eventListenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.argDescriptors" />
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.operations" />
+
+</hibernate-cache>
Copied: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.definition.hbm.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/test/resources/jbpm.definition.hbm.xml)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.definition.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.definition.hbm.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,646 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jbpm.pvm.internal.model" default-access="field">
+
+ <!-- ### PROCESS DEFINITION ############################################# -->
+ <class name="ProcessDefinitionImpl"
+ table="JBPM_PROCESS"
+ discriminator-value="pvm">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator><column name="CLASS_" /></discriminator>
+
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_PROCDEF_PROPS"
+ index="IDX_PROCDEF_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_PROCESS">
+ <column name="PROCESS_" index="IDX_EXHDLR_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl"/>
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_PROCESS">
+ <column name="PROCESS_" index="IDX_EVENT_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl"/>
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key foreign-key="FK_ACTS_PROCESS">
+ <column name="ACTSPROCESS_" index="IDX_ACTS_PROCESS"/>
+ </key>
+ <list-index column="ACTSPROCESS_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_VARDEF_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_TMRDEF_PROCESS"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ProcessDefinitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="key" column="KEY_" />
+ <property name="id" column="ID_" unique="true" />
+
+ <property name="packageName" column="PACKAGE_" />
+ <property name="version" column="VERSION_" />
+ <property name="deploymentTime" column="DEPLOYED_" />
+ <many-to-one name="initial"
+ column="INITIAL_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_PROCDEF_INITIAL"
+ index="IDX_PROCDEF_INIT"
+ fetch="select" />
+
+ <map name="attachments" cascade="all-delete-orphan">
+ <key foreign-key="FK_LOB_PROCESS">
+ <column name="PROCESS_" index="IDX_LOB_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.lob.Lob"/>
+ </map>
+ </class>
+
+ <!-- ### Activity ############################################################## -->
+ <class name="ActivityImpl" table="JBPM_ACTIVITY">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_ACT_PROCESS"
+ index="IDX_ACT_PROCESS" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_ACT_PROPS"
+ index="IDX_ACT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_ACT">
+ <column name="ACT_" index="IDX_EXHDLR_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_ACT">
+ <column name="ACT_" index="IDX_EVENT_ACT" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key column="PARENT_" foreign-key="none" />
+ <list-index column="PARENT_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_ACT">
+ <column name="ACT_" index="IDX_VARDEF_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_ACT">
+ <column name="ACT_" index="IDX_TMRDEF_ACT"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ActivityImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="type" column="TYPE_" />
+ <property name="isLocalScope" column="LOCAL_SCOPE_" />
+ <property name="isExecutionAsync" column="EXEC_ASYNC_" />
+ <property name="isSignalAsync" column="SIGNAL_ASYNC_" />
+ <property name="isPreviousNeeded" column="PREV_NEEDED_" />
+
+ <many-to-one name="parentActivity"
+ column="PARENT_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_ACT_PARENT"
+ index="IDX_ACT_PARENT" />
+
+ <many-to-one name="defaultTransition"
+ column="DEFTRANS_"
+ class="TransitionImpl"
+ fetch="select"
+ foreign-key="FK_ACT_DEFTRANS"
+ index="IDX_ACT_DEFTRANS" />
+
+ <list name="incomingTransitions" inverse="false">
+ <key column="DESTINATION_" />
+ <index column="IN_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <list name="outgoingTransitions" inverse="false" cascade="all">
+ <key column="SOURCE_" />
+ <index column="OUT_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <component name="behaviourReference" class="ObjectReference">
+ <many-to-one name="descriptor"
+ column="BEHAV_DESCR_"
+ cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_NODE_BEHAV_DESCR"
+ index="IDX_NODE_BEHAV_DESCR" />
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <!-- <meta-value value="bpel::activity" class="org.jbpm.pvm.bpel.BpelActivity"/> -->
+ <column name="BEHAV_CLASS_" />
+ <column name="BEHAV_ID_" />
+ </any>
+ </component>
+ </class>
+
+ <!-- ### TRANSITION ##################################################### -->
+ <class name="TransitionImpl" table="JBPM_TRANSITION">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_TRANS_PROCDEF"
+ index="IDX_TRANS_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_TRANS_PROPS"
+ index="IDX_TRANS_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_TRANS">
+ <column name="TRANSITION_" index="IDX_EXHDLR_TRANS" />
+ </key>
+ <index column="TRANSITION_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_TRANS">
+ <column name="TRANSITION_" index="IDX_EVENT_TRANS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- TransitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <many-to-one name="source"
+ column="SRC_"
+ class="ActivityImpl"
+ fetch="select"
+ foreign-key="FK_TRANS_SRC"
+ index="IDX_TRANS_SRC" />
+
+ <many-to-one name="destination"
+ column="DEST_"
+ class="ActivityImpl"
+ fetch="select"
+ cascade="all"
+ foreign-key="FK_TRANS_DST"
+ index="IDX_TRANS_DST" />
+
+ <many-to-one name="conditionDescriptor"
+ column="COND_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_COND"
+ index="IDX_TRANS_COND" />
+
+ <!--
+ <many-to-one name="waitConditionDescriptor"
+ column="WAIT_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_WAIT_DESCR"
+ index="IDX_TRANS_WAIT_DESCR" />
+ -->
+
+ <property name="isTakeAsync" column="TAKEASYNC_" />
+ </class>
+
+ <!-- ### EVENT ########################################################## -->
+ <class name="EventImpl" table="JBPM_EVENT">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESSDEF_"
+ foreign-key="FK_EVENT_PROCDEF"
+ index="IDX_EVENT_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_EVENT_PROPS"
+ index="IDX_EVENT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_EVENT">
+ <column name="EVENT_" index="IDX_EXHDLR_EVENT"/>
+ </key>
+ <index column="EVENT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- EventImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <list name="listenerReferences" table="JBPM_OBJECTREFERENCES" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJECTREF_EVENT">
+ <column name="EVENT_" index="IDX_OBJREF_EVENT"/>
+ </key>
+ <list-index column="EVENT_IDX_" />
+ <one-to-many class="EventListenerReference" />
+ </list>
+ </class>
+
+ <!-- ### EXCEPTION HANDLER ############################################## -->
+ <class name="ExceptionHandlerImpl" table="JBPM_EXCEPTHNDLR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="exceptionClassName" column="EXCEPT_CLASS_" />
+ <property name="isTransactional" column="TRANSACT_" />
+ <property name="isRethrowMasked" column="RETHROW_MASKED_"/>
+ <property name="transitionName" column="TRANSITIONNAME_" />
+ <property name="activityName" column="NODENAME_" />
+ <list name="eventListenerReferences"
+ inverse="false"
+ cascade="all-delete-orphan"
+ table="JBPM_OBJECTREFERENCES">
+ <key foreign-key="FK_OBJREF_EXHNDLR" not-null="false">
+ <column name="EXHNDLR_" index="IDX_OBJREF_EXHNDLR" />
+ </key>
+ <list-index column="EXHNDLR_IDX_" />
+ <one-to-many class="ObjectReference" />
+ </list>
+ </class>
+
+ <!-- ### OBJECT REFERENCE ############################################### -->
+ <class name="ObjectReference" discriminator-value="objref" table="JBPM_OBJECTREF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="descriptor"
+ column="OBJ_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_OBJREF_EVENT"
+ index="IDX_OBJREF_EVENT"/>
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <column name="OBJ_CLASS_" />
+ <column name="OBJ_ID_" />
+ </any>
+ <property name="expression" column="OBJ_EXPRESSION_"/>
+ <property name="expressionLanguage" column="OBJ_EXPRLANG_"/>
+
+ <subclass name="EventListenerReference" discriminator-value="evtlis">
+ <property name="isPropagationEnabled" column="PROPAGATE_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### VARIABLE DEFINITION ############################################ -->
+ <class name="VariableDefinitionImpl" table="JBPM_VARIABLEDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="name" column="NAME_"/>
+ <property name="typeName" column="TYPE_"/>
+
+ <property name="inVariableName" column="INVAR_" />
+ <property name="inExpression" column="INEXPR_" />
+ <many-to-one name="inDescriptor"
+ column="INDESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_VARDEF_INDES"
+ index="IDX_VARDEF_INDES"/>
+ <property name="outVariableName" column="OUTVAR_" />
+ <property name="outExpression" column="OUTEXPR_" />
+ </class>
+
+ <!-- ### TIMER DEFINITION ############################################### -->
+ <class name="TimerDefinitionImpl" table="JBPM_TIMERDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="dueDateDescription" column="DUEDATEDESCR_"/>
+ <property name="repeat" column="REPEAT_"/>
+ <property name="isExclusive" column="ISEXCL_"/>
+ <property name="retries" column="RETRIES_"/>
+ <property name="eventName" column="EVENT_"/>
+ <property name="signalName" column="SIGNAL_"/>
+ <property name="dueDate" column="DUEDATE_" type="timestamp"/>
+ </class>
+
+ <!-- ### DESCRIPTORS #################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" table="JBPM_DESCRIPTOR" abstract="true"
+ discriminator-value="abstract">
+ <!--
+ byte : ByteDescriptor
+ string : StringDescriptor
+ char : CharacterDescriptor
+ class : ClassDescriptor
+ double : DoubleDescriptor
+ expr : ExpressionDescriptor
+ float : FloatDescriptor
+ long : LongDescriptor
+ int : IntegerDescriptor
+ short : ShortDescriptor
+ coll : CollectionDescriptor
+ map : MapDescriptor
+ list : ListDescriptor
+ set : SetDescriptor
+ object : ObjectDescriptor
+ ref : ReferenceDescriptor
+ null : NullDescriptor
+ true : TrueDescriptor
+ false : FalseDescriptor
+ provided : ProvidedObjectDescriptor
+ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_" />
+ <property name="init" column="INIT_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.NullDescriptor" discriminator-value="null_" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.TrueDescriptor" discriminator-value="true" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FalseDescriptor" discriminator-value="false" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.StringDescriptor" discriminator-value="string">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CharacterDescriptor" discriminator-value="char">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ClassDescriptor" discriminator-value="class">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor" discriminator-value="ref">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.DoubleDescriptor" discriminator-value="double">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FloatDescriptor" discriminator-value="float">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.LongDescriptor" discriminator-value="long">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.IntegerDescriptor" discriminator-value="int">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ShortDescriptor" discriminator-value="short">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ByteDescriptor" discriminator-value="byte">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CollectionDescriptor" discriminator-value="coll">
+ <property name="className" column="CLASSNAME_" />
+ <list name="valueDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_DESCR_VALDESCR">
+ <column name="VALUEDESCR_" index="IDX_DESCR_VALDESCR" />
+ </key>
+ <list-index column="VALUEDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.MapDescriptor" discriminator-value="map">
+ <list name="keyDescriptors" cascade="all-delete-orphan">
+ <key column="KEYDESCR_" foreign-key="FK_DESCR_KEYDESCR" />
+ <list-index column="KEYDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ListDescriptor" discriminator-value="list" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.SetDescriptor" discriminator-value="set" />
+ </subclass>
+
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor" discriminator-value="object">
+ <property name="className" column="TEXT_" />
+ <property name="methodName" column="METHOD_" />
+ <property name="isAutoWireEnabled" column="BOOLVAL_" />
+ <property name="factoryObjectName" column="FACTORYNAME_" />
+
+ <many-to-one name="factoryDescriptor" class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" column="FACTORYDESCR_"
+ foreign-key="FK_DESCR_ARG_REF" index="IDX_DESCR_ARG_REF" cascade="all" />
+
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJARG_DESCR">
+ <column name="OBJARG_DESCR_" index="IDX_OBJARG_DESCR" />
+ </key>
+ <list-index column="OBJARG_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+
+ <list name="operations" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJOPER_DESCR">
+ <column name="OBJOPER_DESCR_" index="IDX_OBJOPER_DESCR" />
+ </key>
+ <list-index column="OBJOPER_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.operation.AbstractOperation" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ExpressionDescriptor" discriminator-value="expr">
+ <property name="expr" column="TEXT_" />
+ <property name="lang" column="METHOD_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor" discriminator-value="provided">
+ <any name="providedObject" id-type="long" cascade="all">
+ <column name="TEXT_" />
+ <column name="LONGVAL_" />
+ </any>
+ <property name="exposeType" column="BOOLVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.EnvDescriptor" discriminator-value="env">
+ <property name="objectName" column="TEXT_" />
+ <property name="typeName" column="CLASSNAME_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### OPERATIONS ##################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.operation.AbstractOperation" abstract="true"
+ table="JBPM_OPERATION" discriminator-value="oper">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.FieldOperation"
+ discriminator-value="field">
+ <property name="fieldName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_OPER_DESC" index="IDX_OPER_DESC" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.PropertyOperation"
+ discriminator-value="prop">
+ <property name="setterName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.InvokeOperation"
+ discriminator-value="invoke">
+ <property name="methodName" column="TEXT_" />
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_ARGDSCR_OPER">
+ <column name="OPER_" index="IDX_ARGDSCR_OPER" />
+ </key>
+ <list-index column="OPER_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+ </subclass>
+ </class>
+
+ <!-- ### ARG DESCRIPTOR ################################################# -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" table="JBPM_ARGDESCRIPTOR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="typeName" column="TYPENAME_" />
+ <many-to-one name="descriptor" column="DESCRIPTOR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_ARGDESCR_DESCR" index="IDX_ARGDESCR_DESCR" cascade="all" />
+ </class>
+
+ <!-- ### PROPERTIES ##################################################### -->
+ <class name="org.jbpm.pvm.internal.model.WireProperties" table="JBPM_WIREPROPS">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <component name="wireContext" class="org.jbpm.pvm.internal.wire.WireContext">
+ <component name="wireDefinition" class="org.jbpm.pvm.internal.wire.WireDefinition">
+ <map name="descriptors" cascade="all-delete-orphan" lazy="false">
+ <key foreign-key="FK_DESCR_PROPS">
+ <column name="PROPS_" index="IDX_DESCR_PROPS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </map>
+ </component>
+ </component>
+ </class>
+
+
+ <!-- ### QUERIES ######################################################## -->
+
+ <query name="findProcessDefinitionKeys">
+ <![CDATA[
+ select distinct process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ order by process.key asc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionsByKey">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ order by process.version desc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionById">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.id = :id
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionKeysByName">
+ <![CDATA[
+ select process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.name = :name
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionNamesByKey">
+ <![CDATA[
+ select process.name
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ ]]>
+ </query>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,5 +1,4 @@
<activities>
- <schema resource="jpdl.xsd" />
<activity binding="org.jbpm.jpdl.internal.activity.StartBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.StateBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.ExclusiveBinding" />
Copied: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.jpdl.eventlisteners.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,4 @@
+<eventlisteners>
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+</eventlisteners>
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java (from rev 4513, jbpm4/branches/tbaeyens/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.repository;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+import org.jbpm.JbpmException;
+import org.jbpm.pvm.internal.util.IoUtil;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class DeploymentClassLoader extends ClassLoader {
+
+ private DeploymentImpl deployment = null;
+
+ public DeploymentClassLoader(ClassLoader parent, DeploymentImpl deployment ) {
+ super(parent);
+ this.deployment = deployment;
+ }
+
+ public URL findResource(String name) {
+ URL url = null;
+ InputStream inputStream = deployment.getResourceAsStream(name);
+ if (inputStream!=null) {
+ try {
+ url = new URL(null, "jbpm://"+deployment.getDbid()+"/"+name, new BytesUrlStreamHandler(inputStream));
+ } catch (MalformedURLException e) {
+ throw new JbpmException("couldn't create url", e);
+ }
+ }
+ return url;
+ }
+
+ public static class BytesUrlStreamHandler extends URLStreamHandler {
+ InputStream inputStream;
+ public BytesUrlStreamHandler(InputStream inputStream) {
+ this.inputStream = inputStream;
+ }
+ protected URLConnection openConnection(URL u) throws IOException {
+ return new BytesUrlConnection(inputStream, u);
+ }
+ }
+
+ public static class BytesUrlConnection extends URLConnection {
+ InputStream inputStream;
+ public BytesUrlConnection(InputStream inputStream, URL url) {
+ super(url);
+ this.inputStream = inputStream;
+ }
+ public void connect() throws IOException {
+ }
+ public InputStream getInputStream() throws IOException {
+ return inputStream;
+ }
+ }
+
+ public Class findClass(String name) throws ClassNotFoundException {
+ Class clazz = null;
+
+ String fileName = name.replace( '.', '/' ) + ".class";
+ InputStream inputStream = deployment.getResourceAsStream(fileName);
+ if (inputStream!=null) {
+ try {
+ byte[] classBytes = IoUtil.readBytes(inputStream);
+ clazz = defineClass(name, classBytes, 0, classBytes.length);
+
+ // Add the package information
+ final int packageIndex = name.lastIndexOf('.');
+ if (packageIndex != -1) {
+ final String packageName = name.substring(0, packageIndex);
+ final Package classPackage = getPackage(packageName);
+ if (classPackage == null) {
+ definePackage(packageName, null, null, null, null, null, null, null);
+ }
+ }
+
+ } catch (JbpmException e) {
+ clazz = null;
+ }
+ }
+
+ if (clazz==null) {
+ throw new ClassNotFoundException("class '"+name+"' could not be found in jbpm "+deployment);
+ }
+
+ return clazz;
+ }
+}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -70,6 +70,10 @@
this.commandService = commandService;
}
+ public String toString() {
+ return "deployment("+dbid+")";
+ }
+
public long deploy() {
return commandService.execute(new DeployCmd(this));
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/TagBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/TagBinding.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/TagBinding.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -79,4 +79,13 @@
public String getNamespaceUri() {
return namespaceUri;
}
+ public void setCategory(String category) {
+ this.category = category;
+ }
+ public void setTagName(String tagName) {
+ this.tagName = tagName;
+ }
+ public void setNamespaceUri(String namespaceUri) {
+ this.namespaceUri = namespaceUri;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -319,7 +319,7 @@
URL schemaUrl = classLoader.getResource(schemaResource);
if (schemaUrl!=null) {
String schemaLocation = schemaUrl.toString();
- log.debug("schema resource found: " + schemaResource);
+ log.trace("schema resource found: " + schemaResource);
schemaLocations.add(schemaLocation);
} else {
log.debug("skipping unavailble schema resource: " + schemaResource);
Copied: jbpm4/trunk/modules/pvm/src/test/resources/jbpm.cache.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/pvm/src/test/resources/jbpm.cache.xml)
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/jbpm.cache.xml (rev 0)
+++ jbpm4/trunk/modules/pvm/src/test/resources/jbpm.cache.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,39 @@
+<hibernate-cache>
+
+ <class-cache class="org.jbpm.pvm.internal.model.ProcessDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ActivityImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TransitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.EventImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ExceptionHandlerImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ObjectReference" />
+ <class-cache class="org.jbpm.pvm.internal.model.VariableDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TimerDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.attachments" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.incomingTransitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.outgoingTransitions" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.events" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.listenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ExceptionHandlerImpl.eventListenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.argDescriptors" />
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.operations" />
+
+</hibernate-cache>
Copied: jbpm4/trunk/modules/pvm/src/test/resources/jbpm.definition.hbm.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/pvm/src/test/resources/jbpm.definition.hbm.xml)
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/jbpm.definition.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/pvm/src/test/resources/jbpm.definition.hbm.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,646 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jbpm.pvm.internal.model" default-access="field">
+
+ <!-- ### PROCESS DEFINITION ############################################# -->
+ <class name="ProcessDefinitionImpl"
+ table="JBPM_PROCESS"
+ discriminator-value="pvm">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator><column name="CLASS_" /></discriminator>
+
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_PROCDEF_PROPS"
+ index="IDX_PROCDEF_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_PROCESS">
+ <column name="PROCESS_" index="IDX_EXHDLR_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl"/>
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_PROCESS">
+ <column name="PROCESS_" index="IDX_EVENT_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl"/>
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key foreign-key="FK_ACTS_PROCESS">
+ <column name="ACTSPROCESS_" index="IDX_ACTS_PROCESS"/>
+ </key>
+ <list-index column="ACTSPROCESS_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_VARDEF_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_TMRDEF_PROCESS"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ProcessDefinitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="key" column="KEY_" />
+ <property name="id" column="ID_" unique="true" />
+
+ <property name="packageName" column="PACKAGE_" />
+ <property name="version" column="VERSION_" />
+ <property name="deploymentTime" column="DEPLOYED_" />
+ <many-to-one name="initial"
+ column="INITIAL_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_PROCDEF_INITIAL"
+ index="IDX_PROCDEF_INIT"
+ fetch="select" />
+
+ <map name="attachments" cascade="all-delete-orphan">
+ <key foreign-key="FK_LOB_PROCESS">
+ <column name="PROCESS_" index="IDX_LOB_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.lob.Lob"/>
+ </map>
+ </class>
+
+ <!-- ### Activity ############################################################## -->
+ <class name="ActivityImpl" table="JBPM_ACTIVITY">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_ACT_PROCESS"
+ index="IDX_ACT_PROCESS" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_ACT_PROPS"
+ index="IDX_ACT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_ACT">
+ <column name="ACT_" index="IDX_EXHDLR_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_ACT">
+ <column name="ACT_" index="IDX_EVENT_ACT" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key column="PARENT_" foreign-key="none" />
+ <list-index column="PARENT_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_ACT">
+ <column name="ACT_" index="IDX_VARDEF_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_ACT">
+ <column name="ACT_" index="IDX_TMRDEF_ACT"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ActivityImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="type" column="TYPE_" />
+ <property name="isLocalScope" column="LOCAL_SCOPE_" />
+ <property name="isExecutionAsync" column="EXEC_ASYNC_" />
+ <property name="isSignalAsync" column="SIGNAL_ASYNC_" />
+ <property name="isPreviousNeeded" column="PREV_NEEDED_" />
+
+ <many-to-one name="parentActivity"
+ column="PARENT_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_ACT_PARENT"
+ index="IDX_ACT_PARENT" />
+
+ <many-to-one name="defaultTransition"
+ column="DEFTRANS_"
+ class="TransitionImpl"
+ fetch="select"
+ foreign-key="FK_ACT_DEFTRANS"
+ index="IDX_ACT_DEFTRANS" />
+
+ <list name="incomingTransitions" inverse="false">
+ <key column="DESTINATION_" />
+ <index column="IN_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <list name="outgoingTransitions" inverse="false" cascade="all">
+ <key column="SOURCE_" />
+ <index column="OUT_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <component name="behaviourReference" class="ObjectReference">
+ <many-to-one name="descriptor"
+ column="BEHAV_DESCR_"
+ cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_NODE_BEHAV_DESCR"
+ index="IDX_NODE_BEHAV_DESCR" />
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <!-- <meta-value value="bpel::activity" class="org.jbpm.pvm.bpel.BpelActivity"/> -->
+ <column name="BEHAV_CLASS_" />
+ <column name="BEHAV_ID_" />
+ </any>
+ </component>
+ </class>
+
+ <!-- ### TRANSITION ##################################################### -->
+ <class name="TransitionImpl" table="JBPM_TRANSITION">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_TRANS_PROCDEF"
+ index="IDX_TRANS_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_TRANS_PROPS"
+ index="IDX_TRANS_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_TRANS">
+ <column name="TRANSITION_" index="IDX_EXHDLR_TRANS" />
+ </key>
+ <index column="TRANSITION_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_TRANS">
+ <column name="TRANSITION_" index="IDX_EVENT_TRANS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- TransitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <many-to-one name="source"
+ column="SRC_"
+ class="ActivityImpl"
+ fetch="select"
+ foreign-key="FK_TRANS_SRC"
+ index="IDX_TRANS_SRC" />
+
+ <many-to-one name="destination"
+ column="DEST_"
+ class="ActivityImpl"
+ fetch="select"
+ cascade="all"
+ foreign-key="FK_TRANS_DST"
+ index="IDX_TRANS_DST" />
+
+ <many-to-one name="conditionDescriptor"
+ column="COND_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_COND"
+ index="IDX_TRANS_COND" />
+
+ <!--
+ <many-to-one name="waitConditionDescriptor"
+ column="WAIT_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_WAIT_DESCR"
+ index="IDX_TRANS_WAIT_DESCR" />
+ -->
+
+ <property name="isTakeAsync" column="TAKEASYNC_" />
+ </class>
+
+ <!-- ### EVENT ########################################################## -->
+ <class name="EventImpl" table="JBPM_EVENT">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESSDEF_"
+ foreign-key="FK_EVENT_PROCDEF"
+ index="IDX_EVENT_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_EVENT_PROPS"
+ index="IDX_EVENT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_EVENT">
+ <column name="EVENT_" index="IDX_EXHDLR_EVENT"/>
+ </key>
+ <index column="EVENT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- EventImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <list name="listenerReferences" table="JBPM_OBJECTREFERENCES" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJECTREF_EVENT">
+ <column name="EVENT_" index="IDX_OBJREF_EVENT"/>
+ </key>
+ <list-index column="EVENT_IDX_" />
+ <one-to-many class="EventListenerReference" />
+ </list>
+ </class>
+
+ <!-- ### EXCEPTION HANDLER ############################################## -->
+ <class name="ExceptionHandlerImpl" table="JBPM_EXCEPTHNDLR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="exceptionClassName" column="EXCEPT_CLASS_" />
+ <property name="isTransactional" column="TRANSACT_" />
+ <property name="isRethrowMasked" column="RETHROW_MASKED_"/>
+ <property name="transitionName" column="TRANSITIONNAME_" />
+ <property name="activityName" column="NODENAME_" />
+ <list name="eventListenerReferences"
+ inverse="false"
+ cascade="all-delete-orphan"
+ table="JBPM_OBJECTREFERENCES">
+ <key foreign-key="FK_OBJREF_EXHNDLR" not-null="false">
+ <column name="EXHNDLR_" index="IDX_OBJREF_EXHNDLR" />
+ </key>
+ <list-index column="EXHNDLR_IDX_" />
+ <one-to-many class="ObjectReference" />
+ </list>
+ </class>
+
+ <!-- ### OBJECT REFERENCE ############################################### -->
+ <class name="ObjectReference" discriminator-value="objref" table="JBPM_OBJECTREF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="descriptor"
+ column="OBJ_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_OBJREF_EVENT"
+ index="IDX_OBJREF_EVENT"/>
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <column name="OBJ_CLASS_" />
+ <column name="OBJ_ID_" />
+ </any>
+ <property name="expression" column="OBJ_EXPRESSION_"/>
+ <property name="expressionLanguage" column="OBJ_EXPRLANG_"/>
+
+ <subclass name="EventListenerReference" discriminator-value="evtlis">
+ <property name="isPropagationEnabled" column="PROPAGATE_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### VARIABLE DEFINITION ############################################ -->
+ <class name="VariableDefinitionImpl" table="JBPM_VARIABLEDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="name" column="NAME_"/>
+ <property name="typeName" column="TYPE_"/>
+
+ <property name="inVariableName" column="INVAR_" />
+ <property name="inExpression" column="INEXPR_" />
+ <many-to-one name="inDescriptor"
+ column="INDESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_VARDEF_INDES"
+ index="IDX_VARDEF_INDES"/>
+ <property name="outVariableName" column="OUTVAR_" />
+ <property name="outExpression" column="OUTEXPR_" />
+ </class>
+
+ <!-- ### TIMER DEFINITION ############################################### -->
+ <class name="TimerDefinitionImpl" table="JBPM_TIMERDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="dueDateDescription" column="DUEDATEDESCR_"/>
+ <property name="repeat" column="REPEAT_"/>
+ <property name="isExclusive" column="ISEXCL_"/>
+ <property name="retries" column="RETRIES_"/>
+ <property name="eventName" column="EVENT_"/>
+ <property name="signalName" column="SIGNAL_"/>
+ <property name="dueDate" column="DUEDATE_" type="timestamp"/>
+ </class>
+
+ <!-- ### DESCRIPTORS #################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" table="JBPM_DESCRIPTOR" abstract="true"
+ discriminator-value="abstract">
+ <!--
+ byte : ByteDescriptor
+ string : StringDescriptor
+ char : CharacterDescriptor
+ class : ClassDescriptor
+ double : DoubleDescriptor
+ expr : ExpressionDescriptor
+ float : FloatDescriptor
+ long : LongDescriptor
+ int : IntegerDescriptor
+ short : ShortDescriptor
+ coll : CollectionDescriptor
+ map : MapDescriptor
+ list : ListDescriptor
+ set : SetDescriptor
+ object : ObjectDescriptor
+ ref : ReferenceDescriptor
+ null : NullDescriptor
+ true : TrueDescriptor
+ false : FalseDescriptor
+ provided : ProvidedObjectDescriptor
+ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_" />
+ <property name="init" column="INIT_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.NullDescriptor" discriminator-value="null_" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.TrueDescriptor" discriminator-value="true" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FalseDescriptor" discriminator-value="false" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.StringDescriptor" discriminator-value="string">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CharacterDescriptor" discriminator-value="char">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ClassDescriptor" discriminator-value="class">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor" discriminator-value="ref">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.DoubleDescriptor" discriminator-value="double">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FloatDescriptor" discriminator-value="float">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.LongDescriptor" discriminator-value="long">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.IntegerDescriptor" discriminator-value="int">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ShortDescriptor" discriminator-value="short">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ByteDescriptor" discriminator-value="byte">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CollectionDescriptor" discriminator-value="coll">
+ <property name="className" column="CLASSNAME_" />
+ <list name="valueDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_DESCR_VALDESCR">
+ <column name="VALUEDESCR_" index="IDX_DESCR_VALDESCR" />
+ </key>
+ <list-index column="VALUEDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.MapDescriptor" discriminator-value="map">
+ <list name="keyDescriptors" cascade="all-delete-orphan">
+ <key column="KEYDESCR_" foreign-key="FK_DESCR_KEYDESCR" />
+ <list-index column="KEYDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ListDescriptor" discriminator-value="list" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.SetDescriptor" discriminator-value="set" />
+ </subclass>
+
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor" discriminator-value="object">
+ <property name="className" column="TEXT_" />
+ <property name="methodName" column="METHOD_" />
+ <property name="isAutoWireEnabled" column="BOOLVAL_" />
+ <property name="factoryObjectName" column="FACTORYNAME_" />
+
+ <many-to-one name="factoryDescriptor" class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" column="FACTORYDESCR_"
+ foreign-key="FK_DESCR_ARG_REF" index="IDX_DESCR_ARG_REF" cascade="all" />
+
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJARG_DESCR">
+ <column name="OBJARG_DESCR_" index="IDX_OBJARG_DESCR" />
+ </key>
+ <list-index column="OBJARG_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+
+ <list name="operations" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJOPER_DESCR">
+ <column name="OBJOPER_DESCR_" index="IDX_OBJOPER_DESCR" />
+ </key>
+ <list-index column="OBJOPER_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.operation.AbstractOperation" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ExpressionDescriptor" discriminator-value="expr">
+ <property name="expr" column="TEXT_" />
+ <property name="lang" column="METHOD_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor" discriminator-value="provided">
+ <any name="providedObject" id-type="long" cascade="all">
+ <column name="TEXT_" />
+ <column name="LONGVAL_" />
+ </any>
+ <property name="exposeType" column="BOOLVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.EnvDescriptor" discriminator-value="env">
+ <property name="objectName" column="TEXT_" />
+ <property name="typeName" column="CLASSNAME_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### OPERATIONS ##################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.operation.AbstractOperation" abstract="true"
+ table="JBPM_OPERATION" discriminator-value="oper">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.FieldOperation"
+ discriminator-value="field">
+ <property name="fieldName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_OPER_DESC" index="IDX_OPER_DESC" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.PropertyOperation"
+ discriminator-value="prop">
+ <property name="setterName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.InvokeOperation"
+ discriminator-value="invoke">
+ <property name="methodName" column="TEXT_" />
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_ARGDSCR_OPER">
+ <column name="OPER_" index="IDX_ARGDSCR_OPER" />
+ </key>
+ <list-index column="OPER_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+ </subclass>
+ </class>
+
+ <!-- ### ARG DESCRIPTOR ################################################# -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" table="JBPM_ARGDESCRIPTOR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="typeName" column="TYPENAME_" />
+ <many-to-one name="descriptor" column="DESCRIPTOR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_ARGDESCR_DESCR" index="IDX_ARGDESCR_DESCR" cascade="all" />
+ </class>
+
+ <!-- ### PROPERTIES ##################################################### -->
+ <class name="org.jbpm.pvm.internal.model.WireProperties" table="JBPM_WIREPROPS">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <component name="wireContext" class="org.jbpm.pvm.internal.wire.WireContext">
+ <component name="wireDefinition" class="org.jbpm.pvm.internal.wire.WireDefinition">
+ <map name="descriptors" cascade="all-delete-orphan" lazy="false">
+ <key foreign-key="FK_DESCR_PROPS">
+ <column name="PROPS_" index="IDX_DESCR_PROPS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </map>
+ </component>
+ </component>
+ </class>
+
+
+ <!-- ### QUERIES ######################################################## -->
+
+ <query name="findProcessDefinitionKeys">
+ <![CDATA[
+ select distinct process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ order by process.key asc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionsByKey">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ order by process.version desc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionById">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.id = :id
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionKeysByName">
+ <![CDATA[
+ select process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.name = :name
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionNamesByKey">
+ <![CDATA[
+ select process.name
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ ]]>
+ </query>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,5 +1,4 @@
<activities>
- <schema resource="jpdl.xsd" />
<activity binding="org.jbpm.jpdl.internal.activity.StartBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.StateBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.ExclusiveBinding" />
Copied: jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml)
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml (rev 0)
+++ jbpm4/trunk/modules/pvm/src/test/resources/jbpm.jpdl.eventlisteners.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,4 @@
+<eventlisteners>
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+</eventlisteners>
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener (from rev 4513, jbpm4/branches/tbaeyens/modules/test-db/src/test/java/org/jbpm/test/eventlistener)
Deleted: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java
===================================================================
--- jbpm4/branches/tbaeyens/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java 2009-04-09 10:11:42 UTC (rev 4513)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,236 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.eventlistener;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jbpm.Execution;
-import org.jbpm.listener.EventListener;
-import org.jbpm.listener.EventListenerExecution;
-import org.jbpm.test.JbpmTestCase;
-
-
-/**
- * @author Tom Baeyens
- */
-public class EventListenerTest extends JbpmTestCase {
-
- static boolean isInvoked = false;
- static List<Integer> order;
-
- protected void setUp() throws Exception {
- super.setUp();
- isInvoked = false;
- }
-
- public static class ProcessStartListener implements EventListener {
- private static final long serialVersionUID = 1L;
- public void notify(EventListenerExecution execution) {
- assertNotNull(execution.getActivity());
- assertSame(execution.getActivity(), execution.getProcessDefinition().getInitial());
- isInvoked = true;
- }
- }
-
- public void testProcessStartListener() {
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <on event='start'>" +
- " <event-listener class='"+ProcessStartListener.class.getName()+"' />" +
- " </on>" +
- " <start>" +
- " <transition to='a' />" +
- " </start>" +
- " <state name='a' />" +
- "</process>"
- );
-
- executionService.startProcessInstanceByKey("ICL");
-
- assertTrue("process start listener not invoked", isInvoked);
- }
-
- public static class ProcessEndListener implements EventListener {
- private static final long serialVersionUID = 1L;
- public void notify(EventListenerExecution execution) {
- assertNotNull(execution.getActivity());
- assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("end"));
- isInvoked = true;
- }
- }
-
- public void testProcessEndListener() {
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <on event='end'>" +
- " <event-listener class='"+ProcessEndListener.class.getName()+"' />" +
- " </on>" +
- " <start>" +
- " <transition to='end' />" +
- " </start>" +
- " <end name='end' />" +
- "</process>"
- );
-
- executionService.startProcessInstanceByKey("ICL");
-
- assertTrue("process end listener not invoked", isInvoked);
- }
-
- public static class ActivityStartListener implements EventListener {
- private static final long serialVersionUID = 1L;
- public void notify(EventListenerExecution execution) {
- assertNotNull(execution.getActivity());
- assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
- isInvoked = true;
- }
- }
-
- public void testActivityStartListener() {
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <start>" +
- " <transition to='s' />" +
- " </start>" +
- " <state name='s'>" +
- " <on event='start'>" +
- " <event-listener class='"+ActivityStartListener.class.getName()+"' />" +
- " </on>" +
- " <transition to='end' />" +
- " </state>" +
- " <end name='end' />" +
- "</process>"
- );
-
- executionService.startProcessInstanceByKey("ICL");
-
- assertTrue("activity start listener not invoked", isInvoked);
- }
-
- public static class ActivityEndListener implements EventListener {
- private static final long serialVersionUID = 1L;
- public void notify(EventListenerExecution execution) {
- assertNotNull(execution.getActivity());
- assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
- isInvoked = true;
- }
- }
-
- public void testActivityEndListener() {
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <start>" +
- " <transition to='s' />" +
- " </start>" +
- " <state name='s'>" +
- " <on event='end'>" +
- " <event-listener class='"+ActivityStartListener.class.getName()+"' />" +
- " </on>" +
- " <transition to='end' />" +
- " </state>" +
- " <end name='end' />" +
- "</process>"
- );
-
- Execution execution = executionService.startProcessInstanceByKey("ICL");
-
- assertFalse("activity end listener invoked too early", isInvoked);
-
- executionService.signalExecutionById(execution.getId());
-
- assertTrue("activity end listener not invoked", isInvoked);
- }
-
- public static class TransitionListener implements EventListener {
- private static final long serialVersionUID = 1L;
- public void notify(EventListenerExecution execution) {
- assertNotNull(execution.getTransition());
- isInvoked = true;
- }
- }
-
- public void testTransitionListener() {
- order = new ArrayList<Integer>();
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <start>" +
- " <transition to='end'>" +
- " <event-listener class='"+TransitionListener.class.getName()+"' />" +
- " </transition>" +
- " </start>" +
- " <end name='end' />" +
- "</process>"
- );
-
- executionService.startProcessInstanceByKey("ICL");
-
- assertTrue("transition listener not invoked", isInvoked);
- }
-
- public static class OrderListener implements EventListener {
- private static final long serialVersionUID = 1L;
- int i;
- public void notify(EventListenerExecution execution) {
- order.add(i);
- }
- }
-
- public void testEventOrdering() {
- order = new ArrayList<Integer>();
- deployJpdlXmlString(
- "<process name='Insurance claim' key='ICL'>" +
- " <start>" +
- " <transition to='end'>" +
- " <event-listener class='"+OrderListener.class.getName()+"'>" +
- " <field name='i'><int value='1' /></field> " +
- " </event-listener>" +
- " <event-listener class='"+OrderListener.class.getName()+"'>" +
- " <field name='i'><int value='2' /></field> " +
- " </event-listener>" +
- " <event-listener class='"+OrderListener.class.getName()+"'>" +
- " <field name='i'><int value='3' /></field> " +
- " </event-listener>" +
- " <event-listener class='"+OrderListener.class.getName()+"'>" +
- " <field name='i'><int value='4' /></field> " +
- " </event-listener>" +
- " <event-listener class='"+OrderListener.class.getName()+"'>" +
- " <field name='i'><int value='5' /></field> " +
- " </event-listener>" +
- " </transition>" +
- " </start>" +
- " <end name='end' />" +
- "</process>"
- );
-
- executionService.startProcessInstanceByKey("ICL");
-
- List<Integer> expectedOrder = new ArrayList<Integer>();
- expectedOrder.add(1);
- expectedOrder.add(2);
- expectedOrder.add(3);
- expectedOrder.add(4);
- expectedOrder.add(5);
-
- assertEquals(expectedOrder, order);
- }
-}
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java (from rev 4513, jbpm4/branches/tbaeyens/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,236 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.eventlistener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.Execution;
+import org.jbpm.listener.EventListener;
+import org.jbpm.listener.EventListenerExecution;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class EventListenerTest extends JbpmTestCase {
+
+ static boolean isInvoked = false;
+ static List<Integer> order;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ isInvoked = false;
+ }
+
+ public static class ProcessStartListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ public void notify(EventListenerExecution execution) {
+ assertNotNull(execution.getActivity());
+ assertSame(execution.getActivity(), execution.getProcessDefinition().getInitial());
+ isInvoked = true;
+ }
+ }
+
+ public void testProcessStartListener() {
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <on event='start'>" +
+ " <event-listener class='"+ProcessStartListener.class.getName()+"' />" +
+ " </on>" +
+ " <start>" +
+ " <transition to='a' />" +
+ " </start>" +
+ " <state name='a' />" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("ICL");
+
+ assertTrue("process start listener not invoked", isInvoked);
+ }
+
+ public static class ProcessEndListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ public void notify(EventListenerExecution execution) {
+ assertNotNull(execution.getActivity());
+ assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("end"));
+ isInvoked = true;
+ }
+ }
+
+ public void testProcessEndListener() {
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <on event='end'>" +
+ " <event-listener class='"+ProcessEndListener.class.getName()+"' />" +
+ " </on>" +
+ " <start>" +
+ " <transition to='end' />" +
+ " </start>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("ICL");
+
+ assertTrue("process end listener not invoked", isInvoked);
+ }
+
+ public static class ActivityStartListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ public void notify(EventListenerExecution execution) {
+ assertNotNull(execution.getActivity());
+ assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
+ isInvoked = true;
+ }
+ }
+
+ public void testActivityStartListener() {
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <start>" +
+ " <transition to='s' />" +
+ " </start>" +
+ " <state name='s'>" +
+ " <on event='start'>" +
+ " <event-listener class='"+ActivityStartListener.class.getName()+"' />" +
+ " </on>" +
+ " <transition to='end' />" +
+ " </state>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("ICL");
+
+ assertTrue("activity start listener not invoked", isInvoked);
+ }
+
+ public static class ActivityEndListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ public void notify(EventListenerExecution execution) {
+ assertNotNull(execution.getActivity());
+ assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
+ isInvoked = true;
+ }
+ }
+
+ public void testActivityEndListener() {
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <start>" +
+ " <transition to='s' />" +
+ " </start>" +
+ " <state name='s'>" +
+ " <on event='end'>" +
+ " <event-listener class='"+ActivityStartListener.class.getName()+"' />" +
+ " </on>" +
+ " <transition to='end' />" +
+ " </state>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ Execution execution = executionService.startProcessInstanceByKey("ICL");
+
+ assertFalse("activity end listener invoked too early", isInvoked);
+
+ executionService.signalExecutionById(execution.getId());
+
+ assertTrue("activity end listener not invoked", isInvoked);
+ }
+
+ public static class TransitionListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ public void notify(EventListenerExecution execution) {
+ assertNotNull(execution.getTransition());
+ isInvoked = true;
+ }
+ }
+
+ public void testTransitionListener() {
+ order = new ArrayList<Integer>();
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <start>" +
+ " <transition to='end'>" +
+ " <event-listener class='"+TransitionListener.class.getName()+"' />" +
+ " </transition>" +
+ " </start>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("ICL");
+
+ assertTrue("transition listener not invoked", isInvoked);
+ }
+
+ public static class OrderListener implements EventListener {
+ private static final long serialVersionUID = 1L;
+ int i;
+ public void notify(EventListenerExecution execution) {
+ order.add(i);
+ }
+ }
+
+ public void testEventOrdering() {
+ order = new ArrayList<Integer>();
+ deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <start>" +
+ " <transition to='end'>" +
+ " <event-listener class='"+OrderListener.class.getName()+"'>" +
+ " <field name='i'><int value='1' /></field> " +
+ " </event-listener>" +
+ " <event-listener class='"+OrderListener.class.getName()+"'>" +
+ " <field name='i'><int value='2' /></field> " +
+ " </event-listener>" +
+ " <event-listener class='"+OrderListener.class.getName()+"'>" +
+ " <field name='i'><int value='3' /></field> " +
+ " </event-listener>" +
+ " <event-listener class='"+OrderListener.class.getName()+"'>" +
+ " <field name='i'><int value='4' /></field> " +
+ " </event-listener>" +
+ " <event-listener class='"+OrderListener.class.getName()+"'>" +
+ " <field name='i'><int value='5' /></field> " +
+ " </event-listener>" +
+ " </transition>" +
+ " </start>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("ICL");
+
+ List<Integer> expectedOrder = new ArrayList<Integer>();
+ expectedOrder.add(1);
+ expectedOrder.add(2);
+ expectedOrder.add(3);
+ expectedOrder.add(4);
+ expectedOrder.add(5);
+
+ assertEquals(expectedOrder, order);
+ }
+}
Copied: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cache.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/test-db/src/test/resources/jbpm.cache.xml)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cache.xml (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cache.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,39 @@
+<hibernate-cache>
+
+ <class-cache class="org.jbpm.pvm.internal.model.ProcessDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ActivityImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TransitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.EventImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ExceptionHandlerImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.ObjectReference" />
+ <class-cache class="org.jbpm.pvm.internal.model.VariableDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.model.TimerDefinitionImpl" />
+ <class-cache class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ProcessDefinitionImpl.attachments" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.events" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.activities" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.variableDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.timerDefinitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.incomingTransitions" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.ActivityImpl.outgoingTransitions" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.TransitionImpl.events" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.exceptionHandlers" />
+ <collection-cache collection="org.jbpm.pvm.internal.model.EventImpl.listenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.model.ExceptionHandlerImpl.eventListenerReferences" />
+
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.argDescriptors" />
+ <collection-cache collection="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.operations" />
+
+</hibernate-cache>
Copied: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.definition.hbm.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/test-db/src/test/resources/jbpm.definition.hbm.xml)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.definition.hbm.xml (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.definition.hbm.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,646 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jbpm.pvm.internal.model" default-access="field">
+
+ <!-- ### PROCESS DEFINITION ############################################# -->
+ <class name="ProcessDefinitionImpl"
+ table="JBPM_PROCESS"
+ discriminator-value="pvm">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator><column name="CLASS_" /></discriminator>
+
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_PROCDEF_PROPS"
+ index="IDX_PROCDEF_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_PROCESS">
+ <column name="PROCESS_" index="IDX_EXHDLR_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl"/>
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_PROCESS">
+ <column name="PROCESS_" index="IDX_EVENT_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl"/>
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key foreign-key="FK_ACTS_PROCESS">
+ <column name="ACTSPROCESS_" index="IDX_ACTS_PROCESS"/>
+ </key>
+ <list-index column="ACTSPROCESS_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_VARDEF_PROCESS"/>
+ </key>
+ <index column="PROCESS_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_PROCESS">
+ <column name="PROCESS_" index="IDX_TMRDEF_PROCESS"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ProcessDefinitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="key" column="KEY_" />
+ <property name="id" column="ID_" unique="true" />
+
+ <property name="packageName" column="PACKAGE_" />
+ <property name="version" column="VERSION_" />
+ <property name="deploymentTime" column="DEPLOYED_" />
+ <many-to-one name="initial"
+ column="INITIAL_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_PROCDEF_INITIAL"
+ index="IDX_PROCDEF_INIT"
+ fetch="select" />
+
+ <map name="attachments" cascade="all-delete-orphan">
+ <key foreign-key="FK_LOB_PROCESS">
+ <column name="PROCESS_" index="IDX_LOB_PROCESS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.lob.Lob"/>
+ </map>
+ </class>
+
+ <!-- ### Activity ############################################################## -->
+ <class name="ActivityImpl" table="JBPM_ACTIVITY">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_ACT_PROCESS"
+ index="IDX_ACT_PROCESS" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_ACT_PROPS"
+ index="IDX_ACT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_ACT">
+ <column name="ACT_" index="IDX_EXHDLR_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_"/>
+ <property name="description" column="DESCR_"/>
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_ACT">
+ <column name="ACT_" index="IDX_EVENT_ACT" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- CompositeElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <list name="activities" cascade="all" inverse="false">
+ <key column="PARENT_" foreign-key="none" />
+ <list-index column="PARENT_IDX_" />
+ <one-to-many class="ActivityImpl" />
+ </list>
+ <property name="hasVariableDefinitions" column="HAS_VAR_DEF_" />
+ <list name="variableDefinitions" cascade="all">
+ <key foreign-key="FK_VARDEF_ACT">
+ <column name="ACT_" index="IDX_VARDEF_ACT"/>
+ </key>
+ <index column="ACT_IDX_" />
+ <one-to-many class="VariableDefinitionImpl" />
+ </list>
+ <property name="hasTimerDefinitions" column="HAS_TIMER_DEF_" />
+ <set name="timerDefinitions" cascade="all">
+ <key foreign-key="FK_TMRDEF_ACT">
+ <column name="ACT_" index="IDX_TMRDEF_ACT"/>
+ </key>
+ <one-to-many class="TimerDefinitionImpl" />
+ </set>
+
+ <!-- ActivityImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="type" column="TYPE_" />
+ <property name="isLocalScope" column="LOCAL_SCOPE_" />
+ <property name="isExecutionAsync" column="EXEC_ASYNC_" />
+ <property name="isSignalAsync" column="SIGNAL_ASYNC_" />
+ <property name="isPreviousNeeded" column="PREV_NEEDED_" />
+
+ <many-to-one name="parentActivity"
+ column="PARENT_"
+ class="ActivityImpl"
+ cascade="all"
+ foreign-key="FK_ACT_PARENT"
+ index="IDX_ACT_PARENT" />
+
+ <many-to-one name="defaultTransition"
+ column="DEFTRANS_"
+ class="TransitionImpl"
+ fetch="select"
+ foreign-key="FK_ACT_DEFTRANS"
+ index="IDX_ACT_DEFTRANS" />
+
+ <list name="incomingTransitions" inverse="false">
+ <key column="DESTINATION_" />
+ <index column="IN_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <list name="outgoingTransitions" inverse="false" cascade="all">
+ <key column="SOURCE_" />
+ <index column="OUT_IDX_" />
+ <one-to-many class="TransitionImpl" />
+ </list>
+
+ <component name="behaviourReference" class="ObjectReference">
+ <many-to-one name="descriptor"
+ column="BEHAV_DESCR_"
+ cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_NODE_BEHAV_DESCR"
+ index="IDX_NODE_BEHAV_DESCR" />
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <!-- <meta-value value="bpel::activity" class="org.jbpm.pvm.bpel.BpelActivity"/> -->
+ <column name="BEHAV_CLASS_" />
+ <column name="BEHAV_ID_" />
+ </any>
+ </component>
+ </class>
+
+ <!-- ### TRANSITION ##################################################### -->
+ <class name="TransitionImpl" table="JBPM_TRANSITION">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESS_"
+ foreign-key="FK_TRANS_PROCDEF"
+ index="IDX_TRANS_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_TRANS_PROPS"
+ index="IDX_TRANS_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_TRANS">
+ <column name="TRANSITION_" index="IDX_EXHDLR_TRANS" />
+ </key>
+ <index column="TRANSITION_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- ObservableElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <property name="description" column="DESCR_" />
+ <map name="events" cascade="all-delete-orphan">
+ <key foreign-key="FK_EVENT_TRANS">
+ <column name="TRANSITION_" index="IDX_EVENT_TRANS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.model.EventImpl" />
+ </map>
+
+ <!-- TransitionImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <many-to-one name="source"
+ column="SRC_"
+ class="ActivityImpl"
+ fetch="select"
+ foreign-key="FK_TRANS_SRC"
+ index="IDX_TRANS_SRC" />
+
+ <many-to-one name="destination"
+ column="DEST_"
+ class="ActivityImpl"
+ fetch="select"
+ cascade="all"
+ foreign-key="FK_TRANS_DST"
+ index="IDX_TRANS_DST" />
+
+ <many-to-one name="conditionDescriptor"
+ column="COND_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_COND"
+ index="IDX_TRANS_COND" />
+
+ <!--
+ <many-to-one name="waitConditionDescriptor"
+ column="WAIT_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_TRANS_WAIT_DESCR"
+ index="IDX_TRANS_WAIT_DESCR" />
+ -->
+
+ <property name="isTakeAsync" column="TAKEASYNC_" />
+ </class>
+
+ <!-- ### EVENT ########################################################## -->
+ <class name="EventImpl" table="JBPM_EVENT">
+ <!-- ProcessElementImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="processDefinition"
+ class="ProcessDefinitionImpl"
+ column="PROCESSDEF_"
+ foreign-key="FK_EVENT_PROCDEF"
+ index="IDX_EVENT_PROCDEF" />
+ <many-to-one name="properties"
+ class="WireProperties"
+ column="PROPS_"
+ foreign-key="FK_EVENT_PROPS"
+ index="IDX_EVENT_PROPS"
+ cascade="all" />
+ <list name="exceptionHandlers" cascade="all">
+ <key foreign-key="FK_EXHDLR_EVENT">
+ <column name="EVENT_" index="IDX_EXHDLR_EVENT"/>
+ </key>
+ <index column="EVENT_IDX_" />
+ <one-to-many class="ExceptionHandlerImpl" />
+ </list>
+
+ <!-- EventImpl part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <property name="name" column="NAME_" />
+ <list name="listenerReferences" table="JBPM_OBJECTREFERENCES" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJECTREF_EVENT">
+ <column name="EVENT_" index="IDX_OBJREF_EVENT"/>
+ </key>
+ <list-index column="EVENT_IDX_" />
+ <one-to-many class="EventListenerReference" />
+ </list>
+ </class>
+
+ <!-- ### EXCEPTION HANDLER ############################################## -->
+ <class name="ExceptionHandlerImpl" table="JBPM_EXCEPTHNDLR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="exceptionClassName" column="EXCEPT_CLASS_" />
+ <property name="isTransactional" column="TRANSACT_" />
+ <property name="isRethrowMasked" column="RETHROW_MASKED_"/>
+ <property name="transitionName" column="TRANSITIONNAME_" />
+ <property name="activityName" column="NODENAME_" />
+ <list name="eventListenerReferences"
+ inverse="false"
+ cascade="all-delete-orphan"
+ table="JBPM_OBJECTREFERENCES">
+ <key foreign-key="FK_OBJREF_EXHNDLR" not-null="false">
+ <column name="EXHNDLR_" index="IDX_OBJREF_EXHNDLR" />
+ </key>
+ <list-index column="EXHNDLR_IDX_" />
+ <one-to-many class="ObjectReference" />
+ </list>
+ </class>
+
+ <!-- ### OBJECT REFERENCE ############################################### -->
+ <class name="ObjectReference" discriminator-value="objref" table="JBPM_OBJECTREF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+ <many-to-one name="descriptor"
+ column="OBJ_DESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_OBJREF_EVENT"
+ index="IDX_OBJREF_EVENT"/>
+ <any name="object" id-type="long" cascade="all">
+ <!-- TODO: Specify names for classes -->
+ <column name="OBJ_CLASS_" />
+ <column name="OBJ_ID_" />
+ </any>
+ <property name="expression" column="OBJ_EXPRESSION_"/>
+ <property name="expressionLanguage" column="OBJ_EXPRLANG_"/>
+
+ <subclass name="EventListenerReference" discriminator-value="evtlis">
+ <property name="isPropagationEnabled" column="PROPAGATE_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### VARIABLE DEFINITION ############################################ -->
+ <class name="VariableDefinitionImpl" table="JBPM_VARIABLEDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="name" column="NAME_"/>
+ <property name="typeName" column="TYPE_"/>
+
+ <property name="inVariableName" column="INVAR_" />
+ <property name="inExpression" column="INEXPR_" />
+ <many-to-one name="inDescriptor"
+ column="INDESCR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ cascade="all"
+ foreign-key="FK_VARDEF_INDES"
+ index="IDX_VARDEF_INDES"/>
+ <property name="outVariableName" column="OUTVAR_" />
+ <property name="outExpression" column="OUTEXPR_" />
+ </class>
+
+ <!-- ### TIMER DEFINITION ############################################### -->
+ <class name="TimerDefinitionImpl" table="JBPM_TIMERDEF">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="dueDateDescription" column="DUEDATEDESCR_"/>
+ <property name="repeat" column="REPEAT_"/>
+ <property name="isExclusive" column="ISEXCL_"/>
+ <property name="retries" column="RETRIES_"/>
+ <property name="eventName" column="EVENT_"/>
+ <property name="signalName" column="SIGNAL_"/>
+ <property name="dueDate" column="DUEDATE_" type="timestamp"/>
+ </class>
+
+ <!-- ### DESCRIPTORS #################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" table="JBPM_DESCRIPTOR" abstract="true"
+ discriminator-value="abstract">
+ <!--
+ byte : ByteDescriptor
+ string : StringDescriptor
+ char : CharacterDescriptor
+ class : ClassDescriptor
+ double : DoubleDescriptor
+ expr : ExpressionDescriptor
+ float : FloatDescriptor
+ long : LongDescriptor
+ int : IntegerDescriptor
+ short : ShortDescriptor
+ coll : CollectionDescriptor
+ map : MapDescriptor
+ list : ListDescriptor
+ set : SetDescriptor
+ object : ObjectDescriptor
+ ref : ReferenceDescriptor
+ null : NullDescriptor
+ true : TrueDescriptor
+ false : FalseDescriptor
+ provided : ProvidedObjectDescriptor
+ -->
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <property name="name" column="NAME_" />
+ <property name="init" column="INIT_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.NullDescriptor" discriminator-value="null_" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.TrueDescriptor" discriminator-value="true" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FalseDescriptor" discriminator-value="false" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.StringDescriptor" discriminator-value="string">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CharacterDescriptor" discriminator-value="char">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ClassDescriptor" discriminator-value="class">
+ <property name="text" column="TEXT_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor" discriminator-value="ref">
+ <property name="text" column="TEXT_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.DoubleDescriptor" discriminator-value="double">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.FloatDescriptor" discriminator-value="float">
+ <property name="doubleVal" column="DOUBLEVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.LongDescriptor" discriminator-value="long">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.IntegerDescriptor" discriminator-value="int">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ShortDescriptor" discriminator-value="short">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ByteDescriptor" discriminator-value="byte">
+ <property name="longVal" column="LONGVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.CollectionDescriptor" discriminator-value="coll">
+ <property name="className" column="CLASSNAME_" />
+ <list name="valueDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_DESCR_VALDESCR">
+ <column name="VALUEDESCR_" index="IDX_DESCR_VALDESCR" />
+ </key>
+ <list-index column="VALUEDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.MapDescriptor" discriminator-value="map">
+ <list name="keyDescriptors" cascade="all-delete-orphan">
+ <key column="KEYDESCR_" foreign-key="FK_DESCR_KEYDESCR" />
+ <list-index column="KEYDESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ListDescriptor" discriminator-value="list" />
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.SetDescriptor" discriminator-value="set" />
+ </subclass>
+
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor" discriminator-value="object">
+ <property name="className" column="TEXT_" />
+ <property name="methodName" column="METHOD_" />
+ <property name="isAutoWireEnabled" column="BOOLVAL_" />
+ <property name="factoryObjectName" column="FACTORYNAME_" />
+
+ <many-to-one name="factoryDescriptor" class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" column="FACTORYDESCR_"
+ foreign-key="FK_DESCR_ARG_REF" index="IDX_DESCR_ARG_REF" cascade="all" />
+
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJARG_DESCR">
+ <column name="OBJARG_DESCR_" index="IDX_OBJARG_DESCR" />
+ </key>
+ <list-index column="OBJARG_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+
+ <list name="operations" cascade="all-delete-orphan">
+ <key foreign-key="FK_OBJOPER_DESCR">
+ <column name="OBJOPER_DESCR_" index="IDX_OBJOPER_DESCR" />
+ </key>
+ <list-index column="OBJOPER_DESCR_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.operation.AbstractOperation" />
+ </list>
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ExpressionDescriptor" discriminator-value="expr">
+ <property name="expr" column="TEXT_" />
+ <property name="lang" column="METHOD_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor" discriminator-value="provided">
+ <any name="providedObject" id-type="long" cascade="all">
+ <column name="TEXT_" />
+ <column name="LONGVAL_" />
+ </any>
+ <property name="exposeType" column="BOOLVAL_" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.descriptor.EnvDescriptor" discriminator-value="env">
+ <property name="objectName" column="TEXT_" />
+ <property name="typeName" column="CLASSNAME_" />
+ </subclass>
+
+ </class>
+
+ <!-- ### OPERATIONS ##################################################### -->
+ <class name="org.jbpm.pvm.internal.wire.operation.AbstractOperation" abstract="true"
+ table="JBPM_OPERATION" discriminator-value="oper">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <discriminator column="CLASS_" />
+ <version name="dbversion" column="DBVERSION_" />
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.FieldOperation"
+ discriminator-value="field">
+ <property name="fieldName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_OPER_DESC" index="IDX_OPER_DESC" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.PropertyOperation"
+ discriminator-value="prop">
+ <property name="setterName" column="TEXT_" />
+ <many-to-one name="descriptor" column="DESCR_" cascade="all"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.wire.operation.InvokeOperation"
+ discriminator-value="invoke">
+ <property name="methodName" column="TEXT_" />
+ <list name="argDescriptors" cascade="all-delete-orphan">
+ <key foreign-key="FK_ARGDSCR_OPER">
+ <column name="OPER_" index="IDX_ARGDSCR_OPER" />
+ </key>
+ <list-index column="OPER_IDX_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" />
+ </list>
+ </subclass>
+ </class>
+
+ <!-- ### ARG DESCRIPTOR ################################################# -->
+ <class name="org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor" table="JBPM_ARGDESCRIPTOR">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <property name="typeName" column="TYPENAME_" />
+ <many-to-one name="descriptor" column="DESCRIPTOR_"
+ class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor"
+ foreign-key="FK_ARGDESCR_DESCR" index="IDX_ARGDESCR_DESCR" cascade="all" />
+ </class>
+
+ <!-- ### PROPERTIES ##################################################### -->
+ <class name="org.jbpm.pvm.internal.model.WireProperties" table="JBPM_WIREPROPS">
+ <id name="dbid" column="DBID_">
+ <generator class="native" />
+ </id>
+ <version name="dbversion" column="DBVERSION_" />
+ <component name="wireContext" class="org.jbpm.pvm.internal.wire.WireContext">
+ <component name="wireDefinition" class="org.jbpm.pvm.internal.wire.WireDefinition">
+ <map name="descriptors" cascade="all-delete-orphan" lazy="false">
+ <key foreign-key="FK_DESCR_PROPS">
+ <column name="PROPS_" index="IDX_DESCR_PROPS" />
+ </key>
+ <map-key type="string" column="NAME_" />
+ <one-to-many class="org.jbpm.pvm.internal.wire.descriptor.AbstractDescriptor" />
+ </map>
+ </component>
+ </component>
+ </class>
+
+
+ <!-- ### QUERIES ######################################################## -->
+
+ <query name="findProcessDefinitionKeys">
+ <![CDATA[
+ select distinct process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ order by process.key asc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionsByKey">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ order by process.version desc
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionById">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.id = :id
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionKeysByName">
+ <![CDATA[
+ select process.key
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.name = :name
+ ]]>
+ </query>
+
+ <query name="findProcessDefinitionNamesByKey">
+ <![CDATA[
+ select process.name
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ ]]>
+ </query>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:25:18 UTC (rev 4514)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.activities.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -1,5 +1,4 @@
<activities>
- <schema resource="jpdl.xsd" />
<activity binding="org.jbpm.jpdl.internal.activity.StartBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.StateBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.ExclusiveBinding" />
Copied: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml (from rev 4513, jbpm4/branches/tbaeyens/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.jpdl.eventlisteners.xml 2009-04-09 14:28:55 UTC (rev 4515)
@@ -0,0 +1,4 @@
+<eventlisteners>
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
+</eventlisteners>
More information about the jbpm-commits
mailing list