JBoss JBPM SVN: r5334 - jbpm4/trunk/modules/integration.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-21 16:42:34 -0400 (Tue, 21 Jul 2009)
New Revision: 5334
Removed:
jbpm4/trunk/modules/integration/.project
Log:
removed integration eclipse project preventing easy importing of subdirectory projects
Deleted: jbpm4/trunk/modules/integration/.project
===================================================================
--- jbpm4/trunk/modules/integration/.project 2009-07-21 20:41:45 UTC (rev 5333)
+++ jbpm4/trunk/modules/integration/.project 2009-07-21 20:42:34 UTC (rev 5334)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>jbpm-integration</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
15 years, 3 months
JBoss JBPM SVN: r5333 - jbpm4/trunk/modules/bpmn.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-21 16:41:45 -0400 (Tue, 21 Jul 2009)
New Revision: 5333
Modified:
jbpm4/trunk/modules/bpmn/
Log:
adding target to svn:ignore
Property changes on: jbpm4/trunk/modules/bpmn
___________________________________________________________________
Name: svn:ignore
+ target
15 years, 3 months
JBoss JBPM SVN: r5332 - jbpm4/trunk/modules/bpmn.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-21 16:13:26 -0400 (Tue, 21 Jul 2009)
New Revision: 5332
Removed:
jbpm4/trunk/modules/bpmn/target/
Log:
initial bpmn parsing setup
15 years, 3 months
JBoss JBPM SVN: r5331 - in jbpm4/trunk/modules/bpmn/src: main/java/org/jbpm/bpmn/flowobjects and 2 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-21 16:09:30 -0400 (Tue, 21 Jul 2009)
New Revision: 5331
Added:
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/BpmnDeployer.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/EndEvent.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/StartEvent.java
jbpm4/trunk/modules/bpmn/src/main/resources/BPMN20.xsd
jbpm4/trunk/modules/bpmn/src/main/resources/DiagramDefinition.xsd
jbpm4/trunk/modules/bpmn/src/main/resources/DiagramInterchange.xsd
jbpm4/trunk/modules/bpmn/src/main/resources/Semantic.xsd
jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.hibernate.cfg.xml
jbpm4/trunk/modules/bpmn/src/test/resources/logging.properties
Log:
initial bpmn parsing setup
Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/BpmnDeployer.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/BpmnDeployer.java (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/BpmnDeployer.java 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,40 @@
+/*
+ * 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.bpmn.deployer;
+
+import org.jbpm.bpmn.parser.BpmnParser;
+import org.jbpm.pvm.internal.repository.ProcessDeployer;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class BpmnDeployer extends ProcessDeployer {
+
+ static BpmnParser bpmnParser = new BpmnParser();
+ static final String bpmnExtension = ".bpmn.xml";
+
+ public BpmnDeployer() {
+ super(bpmnExtension, bpmnParser);
+ }
+
+}
Property changes on: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/BpmnDeployer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/EndEvent.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/EndEvent.java (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/EndEvent.java 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,38 @@
+/*
+ * 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.bpmn.flowobjects;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class EndEvent implements ActivityBehaviour {
+
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) throws Exception {
+ }
+
+}
Property changes on: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/EndEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/StartEvent.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/StartEvent.java (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/StartEvent.java 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,38 @@
+/*
+ * 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.bpmn.flowobjects;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class StartEvent implements ActivityBehaviour {
+
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) throws Exception {
+ }
+
+}
Property changes on: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/StartEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/resources/BPMN20.xsd
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/resources/BPMN20.xsd (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/resources/BPMN20.xsd 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://schema.omg.org/spec/BPMN/2.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:di="http://www.omg.com/di/1.0.0"
+ targetNamespace="http://schema.omg.org/spec/BPMN/2.0">
+
+ <xsd:import namespace="http://www.omg.com/di/1.0.0" schemaLocation="DiagramInterchange.xsd"/>
+ <xsd:include schemaLocation="Semantic.xsd"/>
+
+ <xsd:element name="definitions" type="tDefinitions"/>
+ <xsd:complexType name="tDefinitions">
+ <xsd:sequence>
+ <xsd:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="rootElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="di:diagram" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="relationship" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="expressionLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/1999/XPath"/>
+ <xsd:attribute name="typeLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/2001/XMLSchema"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="import" type="tImport"/>
+ <xsd:complexType name="tImport">
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:string" use="required"/>
+ <xsd:attribute name="importType" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/src/main/resources/BPMN20.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/resources/DiagramDefinition.xsd
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/resources/DiagramDefinition.xsd (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/resources/DiagramDefinition.xsd 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema targetNamespace="http://www.omg.com/dd/1.0.0" xmlns:dd="http://www.omg.com/dd/1.0.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="namedElement" type="dd:NamedElement"/>
+ <xsd:element name="package" type="dd:Package"/>
+ <xsd:element name="viewDefinition" type="dd:ViewDefinition" abstract="true"/>
+ <xsd:element name="nodeDefinition" type="dd:NodeDefinition" substitutionGroup="dd:viewDefinition"/>
+ <xsd:element name="connectorDefinition" type="dd:ConnectorDefinition" substitutionGroup="dd:viewDefinition"/>
+ <xsd:element name="diagramDefinition" type="dd:DiagramDefinition" substitutionGroup="dd:viewDefinition"/>
+ <xsd:element name="childDefinition" type="dd:ChildDefinition"/>
+ <xsd:element name="styleDefinition" type="dd:StyleDefinition"/>
+ <xsd:element name="constraint" type="dd:Constraint"/>
+
+ <xsd:complexType abstract="true" name="NamedElement">
+ <xsd:attribute name="name" type="xsd:NCName" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="Package">
+ <xsd:complexContent>
+ <xsd:extension base="dd:NamedElement">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="dd:viewDefinition"/>
+ </xsd:sequence>
+ <xsd:attribute name="nsURI" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="nsPrefix" type="xsd:NCName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="ViewDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:NamedElement">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="dd:constraint"/>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="dd:styleDefinition"/>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="dd:childDefinition"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:NCName" use="required"/>
+ <xsd:attribute name="abstract" type="xsd:boolean"/>
+ <xsd:attribute name="superDefinition" type="xsd:QName"/>
+ <xsd:attribute name="contextType" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="NodeDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:ViewDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectorDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:ViewDefinition">
+ <xsd:attribute name="sourceDefinition" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetDefinition" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="DiagramDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:ViewDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="ChildDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:NamedElement">
+ <xsd:attribute name="lowerBound" type="xsd:int" default="0" />
+ <xsd:attribute name="upperBound" type="xsd:int" default="-1"/>
+ <xsd:attribute name="typeDefinition" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="StyleDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="dd:NamedElement">
+ <xsd:attribute name="default" type="xsd:string"/>
+ <xsd:attribute name="inherited" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="type" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Constraint">
+ <xsd:complexContent>
+ <xsd:extension base="dd:NamedElement">
+ <xsd:attribute name="condition" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/src/main/resources/DiagramDefinition.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/resources/DiagramInterchange.xsd
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/resources/DiagramInterchange.xsd (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/resources/DiagramInterchange.xsd 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema targetNamespace="http://www.omg.com/di/1.0.0" xmlns:dd="http://www.omg.com/dd/1.0.0" xmlns:di="http://www.omg.com/di/1.0.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:import namespace="http://www.omg.com/dd/1.0.0" schemaLocation="DiagramDefinition.xsd"/>
+
+ <xsd:element name="view" type="di:View"/>
+ <xsd:element name="diagram" type="di:Diagram" substitutionGroup="di:view"/>
+ <xsd:element name="node" type="di:Node" substitutionGroup="di:view"/>
+ <xsd:element name="connector" type="di:Connector" substitutionGroup="di:view"/>
+ <xsd:element name="style" type="di:Style"/>
+ <xsd:element name="bendpoint" type="di:Bendpoint"/>
+
+ <xsd:complexType abstract="true" name="View">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="di:style"/>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="child" type="di:Node" form="qualified"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:NCName" use="required"/>
+ <xsd:attribute name="context" type="xsd:anyURI"/>
+ <xsd:attribute name="definition" use="required">
+ <xsd:simpleType>
+ <xsd:list itemType="xsd:QName"/>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="targetConnector">
+ <xsd:simpleType>
+ <xsd:list itemType="xsd:anyURI"/>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="sourceConnector">
+ <xsd:simpleType>
+ <xsd:list itemType="xsd:anyURI"/>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:complexType name="Diagram">
+ <xsd:complexContent>
+ <xsd:extension base="di:View">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="di:connector"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Node">
+ <xsd:complexContent>
+ <xsd:extension base="di:View"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Connector">
+ <xsd:complexContent>
+ <xsd:extension base="di:View">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="di:bendpoint"/>
+ </xsd:sequence>
+ <xsd:attribute name="source" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="target" type="xsd:anyURI" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Style">
+ <xsd:attribute name="name" type="xsd:NCName" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="Bendpoint">
+ <xsd:attribute name="sourceX" type="xsd:int" use="required"/>
+ <xsd:attribute name="sourceY" type="xsd:int" use="required"/>
+ <xsd:attribute name="targetX" type="xsd:int" use="required"/>
+ <xsd:attribute name="targetY" type="xsd:int" use="required"/>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/src/main/resources/DiagramInterchange.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/resources/Semantic.xsd
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/resources/Semantic.xsd (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/resources/Semantic.xsd 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,1540 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://schema.omg.org/spec/BPMN/2.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://schema.omg.org/spec/BPMN/2.0">
+
+ <xsd:element name="activity" type="tActivity"/>
+ <xsd:complexType name="tActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="activityResource" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="loopCharacteristics" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="isForCompensation" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="startQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="completionQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="activityResource" type="tActivityResource"/>
+ <xsd:complexType name="tActivityResource">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceAssignmentExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="resourceParameterBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="resourceRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="adHocSubProcess" type="tAdHocSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tAdHocSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tSubProcess">
+ <xsd:sequence>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="cancelRemainingInstances" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="ordering" type="tAdHocOrdering"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAdHocOrdering">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="parallel"/>
+ <xsd:enumeration value="sequential"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="artifact" type="tArtifact"/>
+ <xsd:complexType name="tArtifact" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="assignment" type="tAssignment" />
+ <xsd:complexType name="tAssignment">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="from" type="tBaseElementWithMixedContent" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="to" type="tBaseElementWithMixedContent" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="language" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="association" type="tAssociation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="associationDirection" type="tAssociationDirection" default="none"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAssociationDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="none"/>
+ <xsd:enumeration value="one"/>
+ <xsd:enumeration value="both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="auditing" type="tAuditing"/>
+ <xsd:complexType name="tAuditing">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="baseElement" type="tBaseElement"/>
+ <xsd:complexType name="tBaseElement" abstract="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="baseElementWithMixedContent" type="tBaseElementWithMixedContent"/>
+ <xsd:complexType name="tBaseElementWithMixedContent" abstract="true" mixed="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="category" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="boundaryEvent" type="tBoundaryEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBoundaryEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="cancelActivity" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="attachedToRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="businessRuleTask" type="tBusinessRuleTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callableElement" type="tCallableElement"/>
+ <xsd:complexType name="tCallableElement">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="supportedInterfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="ioBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callActivity" type="tCallActivity" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallActivity">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:attribute name="calledElement" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callChoreographyActivity" type="tCallChoreographyActivity" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallChoreographyActivity">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledElement" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callConversation" type="tCallConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tCallConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledElementRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="cancelEventDefinition" type="tCancelEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCancelEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="catchEvent" type="tCatchEvent"/>
+ <xsd:complexType name="tCatchEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="parallelMultiple" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="category" type="tCategory" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCategory">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="categoryValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="categoryValue" type="tCategoryValue"/>
+ <xsd:complexType name="tCategoryValue">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="value" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreography" type="tChoreography" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlowAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreographyActivity" type="tChoreographyActivity"/>
+ <xsd:complexType name="tChoreographyActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="2" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreographySubProcess" type="tChoreographySubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tChoreographySubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreographyTask" type="tChoreographyTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="collaboration" type="tCollaboration" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCollaboration">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlowAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="choreographyRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="communication" type="tCommunication" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tCommunication">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="compensateEventDefinition" type="tCompensateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCompensateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="waitForCompletion" type="xsd:boolean"/>
+ <xsd:attribute name="activityRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexBehaviorDefinition" type="tComplexBehaviorDefinition"/>
+ <xsd:complexType name="tComplexBehaviorDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="event" type="tImplicitThrowEvent" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexGateway" type="tComplexGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tComplexGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:sequence>
+ <xsd:element name="activationCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="default" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conditionalEventDefinition" type="tConditionalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tConditionalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tExpression"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversation" type="tConversation" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationAssociation" type="tConversationAssociation"/>
+ <xsd:complexType name="tConversationAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="conversationRef" type="xsd:QName"/>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationNode" type="tConversationNode"/>
+ <xsd:complexType name="tConversationNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationKey" type="tCorrelationKey"/>
+ <xsd:complexType name="tCorrelationKey">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="correlationPropertyRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationProperty" type="tCorrelationProperty" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCorrelationProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyRetrievalExpression" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyBinding" type="tCorrelationPropertyBinding"/>
+ <xsd:complexType name="tCorrelationPropertyBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataPath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationPropertyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyRetrievalExpression" type="tCorrelationPropertyRetrievalExpression"/>
+ <xsd:complexType name="tCorrelationPropertyRetrievalExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="messagePath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationSubscription" type="tCorrelationSubscription"/>
+ <xsd:complexType name="tCorrelationSubscription">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="process" type="xsd:QName" use="required"/>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataAssociation" type="tDataAssociation" />
+ <xsd:complexType name="tDataAssociation" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="transformation" type="tFormalExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInput" type="tDataInput" />
+ <xsd:complexType name="tDataInput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName" />
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInputAssociation" type="tDataInputAssociation" />
+ <xsd:complexType name="tDataInputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation">
+ <xsd:sequence>
+ <xsd:element name="sourceRef" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="targetRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataObject" type="tDataObject" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataObject">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutput" type="tDataOutput" />
+ <xsd:complexType name="tDataOutput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional" />
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutputAssociation" type="tDataOutputAssociation" />
+ <xsd:complexType name="tDataOutputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation">
+ <xsd:sequence>
+ <xsd:element name="sourceRef" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="targetRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataState" type="tDataState" />
+ <xsd:complexType name="tDataState">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStore" type="tDataStore" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tDataStore">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="capacity" type="xsd:integer"/>
+ <xsd:attribute name="isUnlimited" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStoreReference" type="tDataStoreReference" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataStoreReference">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="dataStoreRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="documentation" type="tDocumentation"/>
+ <xsd:complexType name="tDocumentation" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:element name="endEvent" type="tEndEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEndEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="endPoint" type="tEndPoint" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEndPoint">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="error" type="tError" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tError">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="errorEventDefinition" type="tErrorEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tErrorEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="errorCode" type="xsd:string"/>
+ <xsd:attribute name="errorRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalation" type="tEscalation" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEscalation">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalationEventDefinition" type="tEscalationEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tEscalationEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="escalationCode" type="xsd:string"/>
+ <xsd:attribute name="escalationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="event" type="tEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="eventBasedGateway" type="tEventBasedGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEventBasedGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="eventGatewayType" type="tEventBasedGatewayType" default="Exclusive"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tEventBasedGatewayType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Exclusive"/>
+ <xsd:enumeration value="Parallel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="eventDefinition" type="tEventDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEventDefinition" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="exclusiveGateway" type="tExclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tExclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="expression" type="tExpression"/>
+ <xsd:complexType name="tExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElementWithMixedContent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="extension" type="tExtension"/>
+ <xsd:complexType name="tExtension">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="definition" type="xsd:QName"/>
+ <xsd:attribute name="mustUnderstand" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+
+ <xsd:element name="flowElement" type="tFlowElement"/>
+ <xsd:complexType name="tFlowElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="categoryValueRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="flowNode" type="tFlowNode"/>
+ <xsd:complexType name="tFlowNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="incoming" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outgoing" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="formalExpression" type="tFormalExpression" substitutionGroup="expression"/>
+ <xsd:complexType name="tFormalExpression" mixed="true">
+ <xsd:complexContent>
+ <xsd:extension base="tExpression">
+ <xsd:attribute name="language" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="evaluatesToTypeRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="gateway" type="tGateway" abstract="true"/>
+ <xsd:complexType name="tGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:attribute name="gatewayDirection" type="tGatewayDirection" default="unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tGatewayDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="unspecified"/>
+ <xsd:enumeration value="converging"/>
+ <xsd:enumeration value="diverging"/>
+ <xsd:enumeration value="mixed"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="globalBusinessRuleTask" type="tGlobalBusinessRuleTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalChoreographyTask" type="tGlobalChoreographyTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalCommunication" type="tGlobalCommunication" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalCommunication">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalManualTask" type="tGlobalManualTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalScriptTask" type="tGlobalScriptTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptLanguage" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalTask" type="tGlobalTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalTask">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="performer" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalUserTask" type="tGlobalUserTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tUserTaskImplementation" default="unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="group" type="tGroup" substitutionGroup="artifact"/>
+ <xsd:complexType name="tGroup">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="categoryRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="humanPerformer" type="tHumanPerformer" substitutionGroup="performer"/>
+ <xsd:complexType name="tHumanPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="implicitThrowEvent" type="tImplicitThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tImplicitThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inclusiveGateway" type="tInclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tInclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inputSet" type="tInputSet" />
+ <xsd:complexType name="tInputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="interface" type="tInterface" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tInterface">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="operation" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateCatchEvent" type="tIntermediateCatchEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateCatchEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateThrowEvent" type="tIntermediateThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioBinding" type="tInputOutputBinding" />
+ <xsd:complexType name="tInputOutputBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="operationRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="inputDataRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="outputDataRef" type="xsd:IDREF" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioSpecification" type="tInputOutputSpecification" />
+ <xsd:complexType name="tInputOutputSpecification">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="itemDefinition" type="tItemDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tItemDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="itemKind" type="tItemKind" default="Information"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tItemKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Information"/>
+ <xsd:enumeration value="Physical"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="lane" type="tLane"/>
+ <xsd:complexType name="tLane">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="partitionElement" type="tBaseElement" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="flowElementRef" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="childLaneSet" type="tLaneSet" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="partitionElementRef" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="laneSet" type="tLaneSet"/>
+ <xsd:complexType name="tLaneSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="lane" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="linkEventDefinition" type="tLinkEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tLinkEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="loopCharacteristics" type="tLoopCharacteristics"/>
+ <xsd:complexType name="tLoopCharacteristics" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="manualTask" type="tManualTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="message" type="tMessage" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tMessage">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageEventDefinition" type="tMessageEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tMessageEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="operationRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlow" type="tMessageFlow"/>
+ <xsd:complexType name="tMessageFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlowAssociation" type="tMessageFlowAssociation"/>
+ <xsd:complexType name="tMessageFlowAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="innerMessageFlowRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="outerMessageFlowRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="monitoring" type="tMonitoring"/>
+ <xsd:complexType name="tMonitoring">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="multiInstanceLoopCharacteristics" type="tMultiInstanceLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tMultiInstanceLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCardinality" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataInput" type="tDataInput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataOutput" type="tDataOutput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="inputDataItem" type="tProperty" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="outputDataItem" type="tProperty" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="complexBehaviorDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="isSequential" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="behavior" type="tMultiInstanceFlowCondition" default="all"/>
+ <xsd:attribute name="oneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="noneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tMultiInstanceFlowCondition">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="none"/>
+ <xsd:enumeration value="one"/>
+ <xsd:enumeration value="all"/>
+ <xsd:enumeration value="complex"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="operation" type="tOperation"/>
+ <xsd:complexType name="tOperation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="inMessageRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outMessageRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="errorRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="outputSet" type="tOutputSet" />
+ <xsd:complexType name="tOutputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="inputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="parallelGateway" type="tParallelGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tParallelGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participant" type="tParticipant"/>
+ <xsd:complexType name="tParticipant">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="interfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="endPointRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantMultiplicity" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="partnerRoleRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="partnerEntityRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="processRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantAssociation" type="tParticipantAssociation"/>
+ <xsd:complexType name="tParticipantAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="innerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantMultiplicity" type="tParticipantMultiplicity"/>
+ <xsd:complexType name="tParticipantMultiplicity">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="minimum" type="xsd:int"/>
+ <xsd:attribute name="maximum" type="xsd:int"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerEntity" type="tPartnerEntity" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerEntity">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerRole" type="tPartnerRole" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerRole">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="performer" type="tPerformer" substitutionGroup="activityResource"/>
+ <xsd:complexType name="tPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tActivityResource"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="potentialOwner" type="tPotentialOwner" substitutionGroup="performer"/>
+ <xsd:complexType name="tPotentialOwner">
+ <xsd:complexContent>
+ <xsd:extension base="tHumanPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="process" type="tProcess" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="supports" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="processType" type="tProcessType" default="none"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="definitionalCollaborationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tProcessType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="none"/>
+ <xsd:enumeration value="executable"/>
+ <xsd:enumeration value="non-executable"/>
+ <xsd:enumeration value="public"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="property" type="tProperty" />
+ <xsd:complexType name="tProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="receiveTask" type="tReceiveTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tReceiveTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tServiceImplementation" default="WebService"/>
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="relationship" type="tRelationship"/>
+ <xsd:complexType name="tRelationship">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="source" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="target" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ <xsd:attribute name="direction" type="tRelationshipDirection"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tRelationshipDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="none"/>
+ <xsd:enumeration value="forward"/>
+ <xsd:enumeration value="backward"/>
+ <xsd:enumeration value="both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="rendering" type="tRendering"/>
+ <xsd:complexType name="tRendering">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resource" type="tResource" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tResource">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceParameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceAssignmentExpression" type="tResourceAssignmentExpression"/>
+ <xsd:complexType name="tResourceAssignmentExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameter" type="tResourceParameter"/>
+ <xsd:complexType name="tResourceParameter">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="type" type="xsd:QName"/>
+ <xsd:attribute name="isRequired" type="xsd:boolean"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameterBinding" type="tResourceParameterBinding"/>
+ <xsd:complexType name="tResourceParameterBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="parameterRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="rootElement" type="tRootElement"/>
+ <xsd:complexType name="tRootElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="scriptTask" type="tScriptTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptLanguage" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="script" type="tScript"/>
+ <xsd:complexType name="tScript" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="sendTask" type="tSendTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSendTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tServiceImplementation" default="WebService"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="sequenceFlow" type="tSequenceFlow" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSequenceFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="conditionExpression" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="sourceRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="isImmediate" type="xsd:boolean" default="true"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="serviceTask" type="tServiceTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tServiceTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tServiceImplementation" default="WebService"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tServiceImplementation">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="WebService"/>
+ <xsd:enumeration value="Other"/>
+ <xsd:enumeration value="Unspecified"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="signal" type="tSignal" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tSignal">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="signalEventDefinition" type="tSignalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tSignalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="signalRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="standardLoopCharacteristics" type="tStandardLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tStandardLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCondition" type="tExpression" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="testBefore" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="loopMaximum" type="xsd:integer" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="startEvent" type="tStartEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tStartEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="isInterrupting" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subConversation" type="tSubConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tSubConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subProcess" type="tSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="triggeredByEvent" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="task" type="tTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTask">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="terminateEventDefinition" type="tTerminateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTerminateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="textAnnotation" type="tTextAnnotation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tTextAnnotation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:sequence>
+ <xsd:element ref="text" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="text" type="tText"/>
+ <xsd:complexType name="tText" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="throwEvent" type="tThrowEvent"/>
+ <xsd:complexType name="tThrowEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="timerEventDefinition" type="tTimerEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTimerEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:choice>
+ <xsd:element name="timeDate" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="timeCycle" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:choice>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="transaction" type="tTransaction" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTransaction">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:attribute name="method" type="tTransactionMethod" default="compensate"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tTransactionMethod">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="compensate"/>
+ <xsd:enumeration value="image"/>
+ <xsd:enumeration value="store"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="userTask" type="tUserTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tUserTaskImplementation" default="unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tUserTaskImplementation">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="unspecified"/>
+ <xsd:enumeration value="other"/>
+ <xsd:enumeration value="webService"/>
+ <xsd:enumeration value="humanTaskWebService"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+</xsd:schema>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/src/main/resources/Semantic.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.cfg.xml (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.cfg.xml 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jbpm-configuration>
+
+ <import resource="jbpm.default.cfg.xml" />
+ <import resource="jbpm.businesscalendar.cfg.xml" />
+ <import resource="jbpm.tx.hibernate.cfg.xml" />
+ <import resource="jbpm.bpmn.cfg.xml" />
+ <import resource="jbpm.identity.cfg.xml" />
+
+ <process-engine-context>
+ <deployer-manager>
+ <object class="org.jbpm.bpmn.deployer.BpmnDeployer" />
+ </deployer-manager>
+ </process-engine-context>
+
+</jbpm-configuration>
Property changes on: jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.cfg.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.hibernate.cfg.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.hibernate.cfg.xml (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.hibernate.cfg.xml 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+ <session-factory>
+
+ <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
+ <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
+ <property name="hibernate.connection.url">jdbc:hsqldb:mem:.</property>
+ <property name="hibernate.connection.username">sa</property>
+ <property name="hibernate.connection.password"></property>
+ <property name="hibernate.hbm2ddl.auto">create-drop</property>
+ <property name="hibernate.format_sql">true</property>
+
+ <mapping resource="jbpm.repository.hbm.xml" />
+ <mapping resource="jbpm.execution.hbm.xml" />
+ <mapping resource="jbpm.history.hbm.xml" />
+ <mapping resource="jbpm.task.hbm.xml" />
+ <mapping resource="jbpm.identity.hbm.xml" />
+
+ </session-factory>
+</hibernate-configuration>
Property changes on: jbpm4/trunk/modules/bpmn/src/test/resources/jbpm.hibernate.cfg.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/test/resources/logging.properties
===================================================================
--- jbpm4/trunk/modules/bpmn/src/test/resources/logging.properties (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/test/resources/logging.properties 2009-07-21 20:09:30 UTC (rev 5331)
@@ -0,0 +1,18 @@
+handlers= java.util.logging.ConsoleHandler
+redirect.commons.logging = enabled
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = org.jbpm.internal.log.LogFormatter
+
+org.jbpm.level=FINE
+# org.jbpm.pvm.internal.tx.level=FINE
+# org.jbpm.pvm.internal.wire.level=FINE
+# org.jbpm.pvm.internal.util.level=FINE
+
+org.hibernate.level=INFO
+org.hibernate.cfg.SettingsFactory.level=SEVERE
+org.hibernate.cfg.HbmBinder.level=SEVERE
+# org.hibernate.SQL.level=FINEST
+# org.hibernate.type.level=FINEST
+# org.hibernate.tool.hbm2ddl.SchemaExport.level=FINEST
+# org.hibernate.transaction.level=FINEST
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/src/test/resources/logging.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 3 months
JBoss JBPM SVN: r5330 - in jbpm4/trunk/modules: bpmn and 20 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-21 16:08:11 -0400 (Tue, 21 Jul 2009)
New Revision: 5330
Added:
jbpm4/trunk/modules/bpmn/
jbpm4/trunk/modules/bpmn/.classpath
jbpm4/trunk/modules/bpmn/.project
jbpm4/trunk/modules/bpmn/pom.xml
jbpm4/trunk/modules/bpmn/src/
jbpm4/trunk/modules/bpmn/src/main/
jbpm4/trunk/modules/bpmn/src/main/java/
jbpm4/trunk/modules/bpmn/src/main/java/org/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/deployer/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flowobjects/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java
jbpm4/trunk/modules/bpmn/src/main/resources/
jbpm4/trunk/modules/bpmn/src/test/
jbpm4/trunk/modules/bpmn/src/test/java/
jbpm4/trunk/modules/bpmn/src/test/java/org/
jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/
jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/
jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/
jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/ShipmentTest.java
jbpm4/trunk/modules/bpmn/src/test/resources/
jbpm4/trunk/modules/bpmn/src/test/resources/org/
jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/
jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/
jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/
jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/shipment.bpmn.xml
jbpm4/trunk/modules/bpmn/target/
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
Log:
initial bpmn parsing setup
Added: jbpm4/trunk/modules/bpmn/.classpath
===================================================================
--- jbpm4/trunk/modules/bpmn/.classpath (rev 0)
+++ jbpm4/trunk/modules/bpmn/.classpath 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Property changes on: jbpm4/trunk/modules/bpmn/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/.project
===================================================================
--- jbpm4/trunk/modules/bpmn/.project (rev 0)
+++ jbpm4/trunk/modules/bpmn/.project 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>bpmn</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Property changes on: jbpm4/trunk/modules/bpmn/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/pom.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/pom.xml (rev 0)
+++ jbpm4/trunk/modules/bpmn/pom.xml 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id: pom.xml 5246 2009-07-06 11:07:48Z tom.baeyens(a)jboss.com $ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!-- Module Info -->
+ <modelVersion>4.0.0</modelVersion>
+ <name>jBPM 4 - BPMN</name>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-bpmn</artifactId>
+ <packaging>jar</packaging>
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm</artifactId>
+ <version>4.1-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <!-- Dependencies -->
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-test-base</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-jpdl</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-test-base</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/bpmn/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,70 @@
+/*
+ * 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.bpmn.parser;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class BpmnParser extends Parser {
+
+ public Object parseDocumentElement(Element documentElement, Parse parse) {
+ List<ProcessDefinitionImpl> processDefinitions = new ArrayList<ProcessDefinitionImpl>();
+ for (Element processElement: XmlUtil.elements(documentElement, "process")) {
+ ProcessDefinitionImpl processDefinition = parseProcess(processElement, parse);
+ processDefinitions.add(processDefinition);
+ }
+
+ // TODO unify document object of JpdlParser with BpmnParser so that ProcessDeployer can be refactored accordingly
+
+ return processDefinitions;
+ }
+
+ public ProcessDefinitionImpl parseProcess(Element processElement, Parse parse) {
+ ProcessDefinitionImpl processDefinition = new ProcessDefinitionImpl();
+
+ parse.pushObject(processDefinition);
+ try {
+
+ // process attribues
+ String name = XmlUtil.attribute(processElement, "name", true, parse);
+ processDefinition.setName(name);
+
+ // TODO finish rest of parsing
+
+
+ } finally {
+ parse.popObject();
+ }
+
+ return processDefinition;
+ }
+}
Property changes on: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/ShipmentTest.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/ShipmentTest.java (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/ShipmentTest.java 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,39 @@
+/*
+ * 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.bpmn.test;
+
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ShipmentTest extends JbpmTestCase {
+
+ public void testShipment() {
+ repositoryService.createDeployment()
+ .addResourceFromClasspath("org/jbpm/bpmn/test/shipment.bpmn.xml")
+ .deploy();
+
+ // todo
+ }
+}
Property changes on: jbpm4/trunk/modules/bpmn/src/test/java/org/jbpm/bpmn/test/ShipmentTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/shipment.bpmn.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/shipment.bpmn.xml (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/shipment.bpmn.xml 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions id="ShipmentDefinitions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.omg.org/spec/BPMN/2.0 D:\Projekte\workspace\jbpm4\BPMN-2.0\src\resource\BPMN20.xsd" xmlns:bpmn="http://schema.omg.org/spec/BPMN/2.0" xmlns:sample="http://sample.bpmn.camunda.com/" xmlns:xbpmn="http://bpmn.camunda.com/" xmlns:tns="http://sample.bpmn.camunda.com/" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://sample.bpmn.camunda.com/">
+ <!-- imports -->
+ <bpmn:import namespace="http://sample.bpmn.camunda.com/" location="D:\Projekte\workspace\jbpm4\BPMN-2.0\src\resource\SampleService.xsd" importType="http://www.w3.org/2001/XMLSchema"/>
+ <bpmn:import namespace="http://sample.bpmn.camunda.com/" location="D:\Projekte\workspace\jbpm4\BPMN-2.0\src\resource\SampleService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/soap/"/>
+ <bpmn:import namespace="http://sample.bpmn.camunda.com/" location="D:\Projekte\workspace\jbpm4\BPMN-2.0\src\resource\ShipmentProcessService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/soap/"/>
+ <!-- definition structures for process variables -->
+ <bpmn:itemDefinition id="lieferungDef" itemKind="Information" structureRef="sample:shipment"/>
+ <!-- definition structures for messages -->
+ <bpmn:itemDefinition id="ProzessStartenDef" itemKind="Information" structureRef="sample:startShipmentProces"/>
+ <bpmn:itemDefinition id="LieferungAnlegenDef" itemKind="Information" structureRef="sample:createShipment"/>
+ <bpmn:itemDefinition id="KommissioniertDef" itemKind="Information" structureRef="sample:notifyShipmentConsigned"/>
+ <!-- messages -->
+ <bpmn:message name="ProzessStarten" id="ProzessStartenNachricht" structureRef="tns:ProzessStartenDef"/>
+ <bpmn:message name="LieferungAnlegen" id="LieferungAnlegenNachricht" structureRef="tns:LieferungAnlegenDef"/>
+ <bpmn:message name="Kommissioniert" id="KommissioniertNachricht" structureRef="tns:KommissioniertDef"/>
+ <!-- Services -->
+ <!-- serivceReference ?? -->
+ <!-- conversation? Participant? -->
+ <bpmn:endPoint id="ProzessEndpoint">
+ <xbpmn:url/>
+ </bpmn:endPoint>
+ <bpmn:endPoint id="LiefersystemEndpoint">
+ <xbpmn:url/>
+ </bpmn:endPoint>
+ <!-- interfaces -->
+ <bpmn:interface id="ProzessInterface" name="Lieferprozess Schnittstelle">
+ <bpmn:operation name="startShipmentProcess">
+ <bpmn:inMessageRef>tns:ProzessStartenNachricht</bpmn:inMessageRef>
+ </bpmn:operation>
+ <bpmn:operation name="notifyShipmentConsigned">
+ <bpmn:inMessageRef>tns:KommissioniertNachricht</bpmn:inMessageRef>
+ </bpmn:operation>
+ </bpmn:interface>
+ <bpmn:interface id="LiefersystemInterface" name="Liefersystem Schnittstelle">
+ <bpmn:operation name="createShiptment">
+ <bpmn:inMessageRef>tns:LieferungAnlegenNachricht</bpmn:inMessageRef>
+ </bpmn:operation>
+ </bpmn:interface>
+ <!-- Resources / Performers -->
+ <bpmn:resource id="VertriebResource" name="Vertrieb"/>
+ <!-- process definition -->
+ <bpmn:process id="Shipment" name="Shipment">
+ <bpmn:documentation id="doc1">Teilprozess der Lieferung</bpmn:documentation>
+ <!-- process variables -->
+ <bpmn:dataObject id="lieferungVariable" name="Lieferung" itemSubjectRef="tns:lieferungDef"/>
+ <!-- Start-Event -->
+ <bpmn:startEvent id="Start">
+ <bpmn:dataOutput id="ProzessStartOutput" itemSubjectRef="tns:ProzessStartenNachricht"/>
+ <bpmn:dataOutputAssociation>
+ <bpmn:assignment>
+ <bpmn:from xsi:type="bpmn:tFormalExpression">getDataOutput('ProzessStartOutput')/shipment</bpmn:from>
+ <bpmn:to xsi:type="bpmn:tFormalExpression">getDataObject('lieferungVariable')</bpmn:to>
+ </bpmn:assignment>
+ <bpmn:sourceRef>ProzessStartOutput</bpmn:sourceRef>
+ <bpmn:targetRef>tns:lieferungVariable</bpmn:targetRef>
+ </bpmn:dataOutputAssociation>
+ <bpmn:messageEventDefinition messageRef="tns:ProzessStartenNachricht">
+ <bpmn:operationRef>tns:startShipmentProcess</bpmn:operationRef>
+ </bpmn:messageEventDefinition>
+ </bpmn:startEvent>
+ <!-- Activity 1: Service Task -->
+ <bpmn:serviceTask id="LieferungBuchen" name="Lieferung buchen" implementation="WebService" operationRef="createShipment">
+ <xbpmn:url/>
+ <bpmn:ioSpecification>
+ <bpmn:dataInput id="LieferungBuchenInput" isCollection="false" itemSubjectRef="tns:LieferungAnlegenNachricht"/>
+ <bpmn:inputSet>
+ <bpmn:dataInputRefs>LieferungBuchenInput</bpmn:dataInputRefs>
+ </bpmn:inputSet>
+ <bpmn:outputSet/>
+ </bpmn:ioSpecification>
+ <bpmn:dataInputAssociation>
+ <bpmn:assignment>
+ <bpmn:from xsi:type="bpmn:tFormalExpression">bpmn:getDataObject('lieferungVariable')</bpmn:from>
+ <bpmn:to xsi:type="bpmn:tFormalExpression">bpmn:getDataInput('LieferungBuchenInput'/shipment/</bpmn:to>
+ </bpmn:assignment>
+ <bpmn:sourceRef>tns:lieferungVariable</bpmn:sourceRef>
+ <bpmn:targetRef>LieferungBuchenInput</bpmn:targetRef>
+ </bpmn:dataInputAssociation>
+ </bpmn:serviceTask>
+ <!-- Activity 2: Receive Task -->
+ <bpmn:receiveTask id="WartenAufLieferung" name="Warten auf Lieferung" instantiate="false" implementation="WebService" operationRef="notifyShipmentConsigned" messageRef="tns:Kommissioniert">
+ <bpmn:ioSpecification>
+ <bpmn:dataOutput id="KommissioniertOutput" itemSubjectRef="tns:KommissioniertNachricht"/>
+ <bpmn:inputSet/>
+ <bpmn:outputSet>
+ <bpmn:dataOutputRefs>KommissioniertOutput</bpmn:dataOutputRefs>
+ </bpmn:outputSet>
+ </bpmn:ioSpecification>
+
+ <bpmn:dataOutputAssociation>
+ <bpmn:assignment>
+ <bpmn:from xsi:type="bpmn:tFormalExpression">getDataOutput('KommissioniertOutput')/shipment</bpmn:from>
+ <bpmn:to xsi:type="bpmn:tFormalExpression">getDataObject('lieferungVariable')</bpmn:to>
+ </bpmn:assignment>
+ <bpmn:sourceRef>KommissioniertOutput</bpmn:sourceRef>
+ <bpmn:targetRef>tns:lieferungVariable</bpmn:targetRef>
+ </bpmn:dataOutputAssociation>
+ </bpmn:receiveTask>
+ <!-- Gateway -->
+ <bpmn:exclusiveGateway id="PruefeAvisierung" name="Avisierung benoetigt?"/>
+ <!-- Activity 3: User Task -->
+ <bpmn:userTask id="LieferterminAvisieren" name="Liefertermin avisieren" implementation="other">
+ <!-- <bpmn:humanPerformer resourceRef="tns:Vertrieb"></bpmn:humanPerformer>-->
+ <bpmn:potentialOwner resourceRef="tns:VertriebResource"/>
+ </bpmn:userTask>
+ <!-- End Events -->
+ <bpmn:endEvent id="End" name="End"/>
+ <!-- Sequence Flow -->
+ <bpmn:sequenceFlow id="flow1" sourceRef="Start" targetRef="LieferungBuchen" name="Start->LieferungBuchen"/>
+ <bpmn:sequenceFlow id="flow2" sourceRef="LieferungBuchen" targetRef="WartenAufLieferung"/>
+ <bpmn:sequenceFlow id="flow3" sourceRef="WartenAufLieferung" targetRef="PruefeAvisierung"/>
+ <bpmn:sequenceFlow id="flow4" sourceRef="PruefeAvisierung" targetRef="LieferterminAvisieren">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">getDataObject('lieferungVariable')/confirmationRequired=true</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="flow5" sourceRef="PruefeAvisierung" targetRef="End">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">not( getDataObject('lieferungVariable')/confirmationRequired=true )</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="flow6" sourceRef="LieferterminAvisieren" targetRef="End"/>
+ </bpmn:process>
+
+<!--
+ <bpmn:correlationSubscription>
+ </bpmn:correlationSubscription>
+-->
+
+ <!-- TODO: Correlation / Conversation -->
+ <bpmn:conversation>
+ <bpmn:correlationKey>
+ <bpmn:correlationPropertyRef>test</bpmn:correlationPropertyRef>
+ </bpmn:correlationKey>
+ </bpmn:conversation>
+</bpmn:definitions>
Property changes on: jbpm4/trunk/modules/bpmn/src/test/resources/org/jbpm/bpmn/test/shipment.bpmn.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-07-21 10:13:21 UTC (rev 5329)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-07-21 20:08:11 UTC (rev 5330)
@@ -21,152 +21,19 @@
*/
package org.jbpm.jpdl.internal.repository;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.List;
-
-import org.jbpm.api.ProcessDefinition;
-import org.jbpm.api.ProcessDefinitionQuery;
-import org.jbpm.internal.log.Log;
-import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
import org.jbpm.jpdl.internal.xml.JpdlParser;
-import org.jbpm.pvm.internal.env.Environment;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
-import org.jbpm.pvm.internal.repository.Deployer;
-import org.jbpm.pvm.internal.repository.DeploymentImpl;
-import org.jbpm.pvm.internal.session.RepositorySession;
-import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.repository.ProcessDeployer;
-
/**
* @author Tom Baeyens
*/
-public class JpdlDeployer implements Deployer {
+public class JpdlDeployer extends ProcessDeployer {
- private static Log log = Log.getLog(JpdlDeployer.class.getName());
-
static JpdlParser jpdlParser = new JpdlParser();
-
- public void deploy(DeploymentImpl deployment) {
-
- for (String resourceName: deployment.getResourceNames()) {
-
- if (resourceName.endsWith(".jpdl.xml")) {
- byte[] bytes = deployment.getBytes(resourceName);
- InputStream inputStream = new ByteArrayInputStream(bytes);
- Parse parse = jpdlParser.createParse();
- parse.setProblems(deployment.getProblems());
- parse.setInputStream(inputStream);
- parse.execute();
- JpdlProcessDefinition processDefinition = (JpdlProcessDefinition) parse.getDocumentObject();
- if ((processDefinition != null) && (processDefinition.getName() != null)) {
- String processDefinitionName = processDefinition.getName();
-
- processDefinition.setSuspended(deployment.isSuspended());
-
- String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(".jpdl.xml"))+".png";
- if (deployment.getResourceNames().contains(imageResourceName)) {
- processDefinition.setImageResourceName(imageResourceName);
- }
-
- processDefinition.setDeploymentDbid(deployment.getDbid());
-
- if (deployment.hasObjectProperties(processDefinitionName)) {
- String key = deployment.getProcessDefinitionKey(processDefinitionName);
- String id = deployment.getProcessDefinitionId(processDefinitionName);
- Long version = deployment.getProcessDefinitionVersion(processDefinitionName);
- processDefinition.setId(id);
- processDefinition.setKey(key);
- processDefinition.setVersion(version.intValue());
-
- } else {
- checkKey(processDefinition, deployment);
- checkVersion(processDefinition, deployment);
- checkId(processDefinition, deployment);
-
- deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId());
- deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey());
- deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion()));
- }
-
- deployment.addObject(processDefinitionName, processDefinition);
- }
- }
- }
- }
+ static final String jpdlExtension = ".jpdl.xml";
- protected void checkKey(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- String processDefinitionName = processDefinition.getName();
- String processDefinitionKey = processDefinition.getKey();
-
- // if no key was specified in the jpdl process file
- if (processDefinitionKey==null) {
- // derive the key from the name
- // replace any non-word character with an underscore
- processDefinitionKey = processDefinitionName.replaceAll("\\W", "_");
- processDefinition.setKey(processDefinitionKey);
- }
-
- RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
-
- List<ProcessDefinition> existingProcesses = repositorySession.createProcessDefinitionQuery()
- .processDefinitionName(processDefinitionName)
- .list();
-
- for (ProcessDefinition existingProcess: existingProcesses) {
- if (!processDefinitionKey.equals(existingProcess.getKey())) {
- deployment.addProblem("invalid key '"+processDefinitionKey+"' in process "+processDefinition.getName()+". Existing process has name '"+processDefinitionName+"' and key '"+processDefinitionKey+"'");
- }
- }
-
- existingProcesses = repositorySession.createProcessDefinitionQuery()
- .processDefinitionKey(processDefinitionKey)
- .list();
-
- for (ProcessDefinition existingProcess: existingProcesses) {
- if (!processDefinitionName.equals(existingProcess.getName())) {
- deployment.addProblem("invalid name '"+processDefinitionName+"' in process "+processDefinition.getName()+". Existing process has name '"+processDefinitionName+"' and key '"+processDefinitionKey+"'");
- }
- }
+ public JpdlDeployer() {
+ super(jpdlExtension, jpdlParser);
}
- protected void checkId(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- String id = processDefinition.getId();
- if (id==null) {
- id = processDefinition.getKey()+"-"+processDefinition.getVersion();
- if (log.isTraceEnabled()) log.trace("created id '"+id+"' for "+processDefinition);
- processDefinition.setId(id);
- }
-
- RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
- ProcessDefinition existingProcessDefinition = repositorySession.createProcessDefinitionQuery()
- .processDefinitionId(id)
- .uniqueResult();
- if (existingProcessDefinition != null) {
- deployment.addProblem("process '" + id + "' already exists");
- }
- }
-
- protected void checkVersion(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- int version = processDefinition.getVersion();
- String key = processDefinition.getKey();
- if (version==ProcessDefinitionImpl.UNASSIGNED_VERSION) {
- RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
-
- ProcessDefinition latestDeployedVersion = repositorySession
- .createProcessDefinitionQuery()
- .processDefinitionKey(key)
- .orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
- .page(0, 1)
- .uniqueResult();
-
- if (latestDeployedVersion!=null) {
- version = latestDeployedVersion.getVersion() + 1;
- } else {
- version = 1;
- }
- if (log.isTraceEnabled()) log.trace("assigning version "+version+" to process definition "+key);
- processDefinition.setVersion(version);
- }
- }
}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java 2009-07-21 20:08:11 UTC (rev 5330)
@@ -0,0 +1,175 @@
+/*
+ * 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.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import org.jbpm.api.ProcessDefinition;
+import org.jbpm.api.ProcessDefinitionQuery;
+import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.env.Environment;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.session.RepositorySession;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ProcessDeployer implements Deployer {
+
+ private static final Log log = Log.getLog(ProcessDeployer.class.getName());
+
+ protected String extension;
+ protected Parser parser;
+
+ public ProcessDeployer(String extension, Parser parser) {
+ this.extension = extension;
+ this.parser = parser;
+ }
+
+ public void deploy(DeploymentImpl deployment) {
+
+ for (String resourceName: deployment.getResourceNames()) {
+
+ if (resourceName.endsWith(extension)) {
+ byte[] bytes = deployment.getBytes(resourceName);
+ InputStream inputStream = new ByteArrayInputStream(bytes);
+ Parse parse = parser.createParse();
+ parse.setProblems(deployment.getProblems());
+ parse.setInputStream(inputStream);
+ parse.execute();
+ ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) parse.getDocumentObject();
+ if ((processDefinition != null) && (processDefinition.getName() != null)) {
+ String processDefinitionName = processDefinition.getName();
+
+ processDefinition.setSuspended(deployment.isSuspended());
+
+ String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(extension))+".png";
+ if (deployment.getResourceNames().contains(imageResourceName)) {
+ processDefinition.setImageResourceName(imageResourceName);
+ }
+
+ processDefinition.setDeploymentDbid(deployment.getDbid());
+
+ if (deployment.hasObjectProperties(processDefinitionName)) {
+ String key = deployment.getProcessDefinitionKey(processDefinitionName);
+ String id = deployment.getProcessDefinitionId(processDefinitionName);
+ Long version = deployment.getProcessDefinitionVersion(processDefinitionName);
+ processDefinition.setId(id);
+ processDefinition.setKey(key);
+ processDefinition.setVersion(version.intValue());
+
+ } else {
+ checkKey(processDefinition, deployment);
+ checkVersion(processDefinition, deployment);
+ checkId(processDefinition, deployment);
+
+ deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId());
+ deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey());
+ deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion()));
+ }
+
+ deployment.addObject(processDefinitionName, processDefinition);
+ }
+ }
+ }
+ }
+
+ protected void checkKey(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
+ String processDefinitionName = processDefinition.getName();
+ String processDefinitionKey = processDefinition.getKey();
+
+ // if no key was specified in the jpdl process file
+ if (processDefinitionKey==null) {
+ // derive the key from the name
+ // replace any non-word character with an underscore
+ processDefinitionKey = processDefinitionName.replaceAll("\\W", "_");
+ processDefinition.setKey(processDefinitionKey);
+ }
+
+ RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+
+ List<ProcessDefinition> existingProcesses = repositorySession.createProcessDefinitionQuery()
+ .processDefinitionName(processDefinitionName)
+ .list();
+
+ for (ProcessDefinition existingProcess: existingProcesses) {
+ if (!processDefinitionKey.equals(existingProcess.getKey())) {
+ deployment.addProblem("invalid key '"+processDefinitionKey+"' in process "+processDefinition.getName()+". Existing process has name '"+processDefinitionName+"' and key '"+processDefinitionKey+"'");
+ }
+ }
+
+ existingProcesses = repositorySession.createProcessDefinitionQuery()
+ .processDefinitionKey(processDefinitionKey)
+ .list();
+
+ for (ProcessDefinition existingProcess: existingProcesses) {
+ if (!processDefinitionName.equals(existingProcess.getName())) {
+ deployment.addProblem("invalid name '"+processDefinitionName+"' in process "+processDefinition.getName()+". Existing process has name '"+processDefinitionName+"' and key '"+processDefinitionKey+"'");
+ }
+ }
+ }
+
+ protected void checkId(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
+ String id = processDefinition.getId();
+ if (id==null) {
+ id = processDefinition.getKey()+"-"+processDefinition.getVersion();
+ if (log.isTraceEnabled()) log.trace("created id '"+id+"' for "+processDefinition);
+ processDefinition.setId(id);
+ }
+
+ RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+ ProcessDefinition existingProcessDefinition = repositorySession.createProcessDefinitionQuery()
+ .processDefinitionId(id)
+ .uniqueResult();
+ if (existingProcessDefinition != null) {
+ deployment.addProblem("process '" + id + "' already exists");
+ }
+ }
+
+ protected void checkVersion(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
+ int version = processDefinition.getVersion();
+ String key = processDefinition.getKey();
+ if (version==ProcessDefinitionImpl.UNASSIGNED_VERSION) {
+ RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+
+ ProcessDefinition latestDeployedVersion = repositorySession
+ .createProcessDefinitionQuery()
+ .processDefinitionKey(key)
+ .orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
+ .page(0, 1)
+ .uniqueResult();
+
+ if (latestDeployedVersion!=null) {
+ version = latestDeployedVersion.getVersion() + 1;
+ } else {
+ version = 1;
+ }
+ if (log.isTraceEnabled()) log.trace("assigning version "+version+" to process definition "+key);
+ processDefinition.setVersion(version);
+ }
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 3 months
JBoss JBPM SVN: r5329 - in jbpm4/trunk/modules/migration/src: main/java/org/jbpm/jpdl/internal/convert/action and 4 other directories.
by do-not-reply@jboss.org
Author: jim.ma
Date: 2009-07-21 06:13:21 -0400 (Tue, 21 Jul 2009)
New Revision: 5329
Added:
jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/SuperState.java
Modified:
jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java
jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/action/Action.java
jbpm4/trunk/modules/migration/src/main/resources/node.converter.types.xml
jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
jbpm4/trunk/modules/migration/src/test/resources/superstate-mail.xml
Log:
JBPM-2388:Fixed action continue attribute;Added super-state conversion support
Modified: jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java
===================================================================
--- jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java 2009-07-21 05:55:48 UTC (rev 5328)
+++ jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java 2009-07-21 10:13:21 UTC (rev 5329)
@@ -300,12 +300,6 @@
Element nodeElement = (Element)nodeElementIter.next();
String nodeName = nodeElement.getName();
- //This will affect the transition, so add error and throw exception
- if ("super-state".equalsIgnoreCase(nodeName)) {
- this.addError("Unsupported " + nodeName + " conversion : <" + nodeName
- + " name=\"" + jpdl3Element.attributeValue("name") + "\"");
- }
-
Class<?> nodeType = NodeConverterTypes.getNodeType(nodeName);
if (nodeType != null) {
@@ -331,6 +325,13 @@
// read the common node parts of the element
node.setNodeElement(nodeElement);
+ Element actionElement = nodeElement.element("action");
+ //The node without action element can not be converted, report error
+ if (nodeName.equals("node") && actionElement == null) {
+ addError("Could not convert a node without action element:" + nodeElement.asXML());
+ return;
+ }
+
node.createConvertedElement(jpdl4Element);
convertNode(nodeElement,node.getConvertedElement());
Modified: jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/action/Action.java
===================================================================
--- jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/action/Action.java 2009-07-21 05:55:48 UTC (rev 5328)
+++ jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/action/Action.java 2009-07-21 10:13:21 UTC (rev 5329)
@@ -46,11 +46,11 @@
if (expression != null) {
convertedElement = jpdl4Doc.addElement("script");
- }
-
- if (actionElement.attributeValue("class")!=null) {
- convertedElement = jpdl4Doc.addElement("java");
-
+ } else if (actionElement.attributeValue("class")!=null) {
+ convertedElement = jpdl4Doc.addElement("java");
+ } else {
+ //both expression and class are null
+ convertedElement = jpdl4Doc.addElement("custom");
}
return convertedElement;
@@ -71,7 +71,7 @@
convertedElement.addAttribute("method", "execute");
} else {
- jpdlReader.addWarning("action does not have class nor ref-name attribute "+actionElement.asXML());
+ jpdlReader.addWarning("action does not have class nor ref-name attribute, generated the default node <custom> "+actionElement.asXML());
}
//TODO: propagate...
String acceptPropagatedEvents = actionElement.attributeValue("accept-propagated-events");
@@ -83,9 +83,9 @@
String asyncText = actionElement.attributeValue("async");
if ("true".equalsIgnoreCase(asyncText)) {
- convertedElement.addAttribute("async", "true");
+ convertedElement.addAttribute("continue", "async");
} else if ("exclusive".equalsIgnoreCase(asyncText)) {
- convertedElement.addAttribute("async", "exclusive");
+ convertedElement.addAttribute("continue", "exclusive");
}
}
Added: jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/SuperState.java
===================================================================
--- jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/SuperState.java (rev 0)
+++ jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/SuperState.java 2009-07-21 10:13:21 UTC (rev 5329)
@@ -0,0 +1,38 @@
+/*
+ * 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.convert.node;
+
+import org.dom4j.Element;
+import org.jbpm.jpdl.internal.convert.Jpdl3Converter;
+
+public class SuperState extends Node {
+ public Element createConvertedElement(Element jpdl4Doc) {
+ convertedElement = jpdl4Doc.addElement("group");
+ return convertedElement;
+ }
+
+ public void read(Jpdl3Converter reader) {
+ String name = nodeElement.attributeValue("name");
+ convertedElement.attributeValue("name", name);
+ reader.convertNodes(nodeElement, convertedElement);
+ }
+}
Modified: jbpm4/trunk/modules/migration/src/main/resources/node.converter.types.xml
===================================================================
--- jbpm4/trunk/modules/migration/src/main/resources/node.converter.types.xml 2009-07-21 05:55:48 UTC (rev 5328)
+++ jbpm4/trunk/modules/migration/src/main/resources/node.converter.types.xml 2009-07-21 10:13:21 UTC (rev 5329)
@@ -9,9 +9,9 @@
<node-type element="decision" class="org.jbpm.jpdl.internal.convert.node.Decision" />
<node-type element="process-state" class="org.jbpm.jpdl.internal.convert.node.ProcessState" />
<node-type element="mail-node" class="org.jbpm.jpdl.internal.convert.node.MailNode" />
- <!--node-type element="super-state" class="org.jbpm.jpdl.internal.convert.node.SuperState" />
-
- <node-type element="merge" class="org.jbpm.jpdl.internal.convert.node.Merge" />
+ <node-type element="super-state" class="org.jbpm.jpdl.internal.convert.node.SuperState"/>
+
+ <!-- node-type element="merge" class="org.jbpm.jpdl.internal.convert.node.Merge" />
<node-type element="milestone-node" class="oorg.jbpm.jpdl.internal.convert.node.MilestoneNode" />
<node-type element="interleave-start" class="org.jbpm.jpdl.internal.convert.node.InterleaveStart" />
<node-type element="interleave-end" class="org.jbpm.jpdl.internal.convert.node.InterleaveEnd"/>
Modified: jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
===================================================================
--- jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-21 05:55:48 UTC (rev 5328)
+++ jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-21 10:13:21 UTC (rev 5329)
@@ -101,17 +101,14 @@
@Test
//Unsupported super-sate and mail node conversion
- public void testSuperStateAndMailNode() {
+ public void testSuperStateAndMailNode() throws Exception {
InputStream inputStream = getClass().getClassLoader()
.getResourceAsStream("superstate-mail.xml");
// Convert to process file to jpdl4
InputSource ins = new InputSource(inputStream);
- Jpdl3Converter converter = new Jpdl3Converter(ins);
- try {
- Document doc = converter.readAndConvert();
- Assert.fail("The unsupported exception does not throw");
- } catch (java.lang.Throwable e) {
- }
+ Jpdl3Converter converter = new Jpdl3Converter(ins);
+ Document doc = converter.readAndConvert();
+ validate(doc);
}
@Test
@@ -169,7 +166,7 @@
InputSource ins = new InputSource(inputStream);
Jpdl3Converter converter = new Jpdl3Converter(ins);
Document doc = converter.readAndConvert();
- //System.out.println(doc.asXML());
+ System.out.println(doc.asXML());
return doc;
}
Modified: jbpm4/trunk/modules/migration/src/test/resources/superstate-mail.xml
===================================================================
--- jbpm4/trunk/modules/migration/src/test/resources/superstate-mail.xml 2009-07-21 05:55:48 UTC (rev 5328)
+++ jbpm4/trunk/modules/migration/src/test/resources/superstate-mail.xml 2009-07-21 10:13:21 UTC (rev 5329)
@@ -5,14 +5,75 @@
name="simple">
<start-state name="start">
<transition name="to_state" to="phase one">
- <action name="action" class="com.sample.action.MessageActionHandler">
+ <action name="action" class="com.test.MessageActionHandler">
<message>Going to the first state!</message>
</action>
</transition>
</start-state>
- <super-state name="phase one">
- <node name="node1"/>
+ <super-state name="phase one">
+
+ <join name="join">
+ <transition to="preparations"></transition>
+ </join>
+
+ <fork name="preparations">
+ <transition to="make_decision" name="make_decision"></transition>
+ <transition to="state" name="state"></transition>
+ </fork>
+
+
+ <decision name="make_decision">
+ <transition to="Approve Order Node">
+ <condition>a=="OKOK"</condition>
+ </transition>
+ <transition to="end">
+ <condition>a=="NOK"</condition>
+ </transition>
+ </decision>
+
+ <task-node name="Approve Order Node">
+ <task name="ApproveOrder1">
+ <assignment class="com.test.RulesAssignmentHandler" >
+ <group>reviewers</group>
+ <objectNames>
+ <element>order</element>
+ </objectNames>
+ <ruleFile>/assignment/Assignment.drl</ruleFile>
+ </assignment>
+ </task>
+
+ <task name="ApproveOrder2">
+ <assignment class="com.test.RulesAssignmentHandler" >
+ <group>reviewers</group>
+ <objectNames>
+ <element>order</element>
+ </objectNames>
+ <ruleFile>/assignment/Assignment.drl</ruleFile>
+ </assignment>
+ </task>
+
+ <transition name="" to="node1"></transition>
+ </task-node>
+
+ <node name="node1">
+ <action name="NodeEnterAction" class="com.test.MessageActionHandler">
+ </action>
+ <transition name="to_state" to="state"/>
+ </node>
+ <state name="state">
+ <event type="node-enter">
+ <action class="com.test.NodeEnterAction"/>
+ </event>
+ <transition name="to_end" to="end">
+ <action name="action" class="com.test.MessageActionHandler">
+ <message>About to finish!</message>
+ </action>
+ </transition>
+ </state>
+ <end-state name="end"></end-state>
+
+
<transition to="mail-node"/>
</super-state>
@@ -27,7 +88,7 @@
<mail name="test"/>
</event>
<transition name="to_end" to="end">
- <action name="action" class="com.sample.action.MessageActionHandler">
+ <action name="action" class="com.test.MessageActionHandler">
<message>About to finish!</message>
</action>
</transition>
15 years, 3 months
JBoss JBPM SVN: r5328 - in jbpm4/trunk/modules/migration/src: test/java/org/jbpm/jpdl/internal/convert and 1 other directories.
by do-not-reply@jboss.org
Author: jim.ma
Date: 2009-07-21 01:55:48 -0400 (Tue, 21 Jul 2009)
New Revision: 5328
Modified:
jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java
jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
jbpm4/trunk/modules/migration/src/test/resources/script.xml
Log:
JBPM-2388:Fixed continue attribute
Modified: jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java
===================================================================
--- jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java 2009-07-21 05:08:11 UTC (rev 5327)
+++ jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/Jpdl3Converter.java 2009-07-21 05:55:48 UTC (rev 5328)
@@ -569,11 +569,11 @@
String asyncText = jpdl3Element.attributeValue("async");
if ("true".equalsIgnoreCase(asyncText)) {
- jpdl4Element.addAttribute("asyn", "true");
+ jpdl4Element.addAttribute("continue", "async");
}
else if ("exclusive".equalsIgnoreCase(asyncText)) {
- jpdl4Element.addAttribute("asyn", "exclusive");
- }
+ jpdl4Element.addAttribute("continue", "exclusive");
+ }//else if -> uses the default continue="sync"
// parse common subelements
Modified: jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
===================================================================
--- jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-21 05:08:11 UTC (rev 5327)
+++ jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-21 05:55:48 UTC (rev 5328)
@@ -79,7 +79,10 @@
@Test
public void testScript() throws Exception {
setUpEnviroment();
- testConvert("script.xml");
+ Document doc = convert("script.xml");
+ Element stateEle = doc.getRootElement().element("state");
+ Assert.assertEquals("async", stateEle.attributeValue("continue"));
+ validate(doc);
}
@Test
Modified: jbpm4/trunk/modules/migration/src/test/resources/script.xml
===================================================================
--- jbpm4/trunk/modules/migration/src/test/resources/script.xml 2009-07-21 05:08:11 UTC (rev 5327)
+++ jbpm4/trunk/modules/migration/src/test/resources/script.xml 2009-07-21 05:55:48 UTC (rev 5328)
@@ -22,7 +22,7 @@
</action>
</transition>
</start-state>
- <state name="first">
+ <state name="first" async="true">
<event type="node-enter">
<action class="com.test.NodeEnterAction"/>
</event>
15 years, 3 months
JBoss JBPM SVN: r5327 - in jbpm4/trunk/modules/migration/src: test/java/org/jbpm/jpdl/internal/convert and 1 other directory.
by do-not-reply@jboss.org
Author: jim.ma
Date: 2009-07-21 01:08:11 -0400 (Tue, 21 Jul 2009)
New Revision: 5327
Modified:
jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/ProcessState.java
jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
Log:
JBPM-2388:Fixed the sub-process-key in ProcessState conversion code
Modified: jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/ProcessState.java
===================================================================
--- jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/ProcessState.java 2009-07-17 15:02:57 UTC (rev 5326)
+++ jbpm4/trunk/modules/migration/src/main/java/org/jbpm/jpdl/internal/convert/node/ProcessState.java 2009-07-21 05:08:11 UTC (rev 5327)
@@ -21,7 +21,7 @@
if (subProcessElement!=null) {
String subProcessName = subProcessElement.attributeValue("name");
//String subProcessVersion = subProcessElement.attributeValue("version");
- convertedElement.attributeValue("sub-process-id", subProcessName);
+ convertedElement.addAttribute("sub-process-key", subProcessName);
}
List<VariableAccess> readVariableAccesses = reader.convertVariableAccesses(nodeElement);
Modified: jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java
===================================================================
--- jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-17 15:02:57 UTC (rev 5326)
+++ jbpm4/trunk/modules/migration/src/test/java/org/jbpm/jpdl/internal/convert/Jpdl3ConverterReaderTest.java 2009-07-21 05:08:11 UTC (rev 5327)
@@ -25,6 +25,7 @@
import java.util.List;
import org.dom4j.Document;
+import org.dom4j.Element;
import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.cfg.JbpmConfiguration;
import org.jbpm.pvm.internal.env.EnvironmentFactory;
@@ -67,7 +68,12 @@
@Test
public void testProcessState() throws Exception {
- testConvert("process-state.xml");
+ Document convertedDoc = convert("process-state.xml");
+ Element ele = convertedDoc.getRootElement();
+ String subProcessKey = ele.element("sub-process").attributeValue("sub-process-key");
+ Assert.assertEquals("interview", subProcessKey);
+ validate(convertedDoc);
+
}
@Test
@@ -126,7 +132,7 @@
@Test
public void testTimer() throws Exception {
- String xml = convert("timer.xml");
+ String xml = convert("timer.xml").asXML();
List<Problem> problems = new JpdlParser().createParse().setString(xml)
.execute().getProblems();
Assert.assertEquals(2, problems.size());
@@ -139,7 +145,7 @@
@Test
public void testMailNode() throws Exception {
setUpEnviroment();
- String xml = convert("mail-node.xml");
+ String xml = convert("mail-node.xml").asXML();
List<Problem> problems = new JpdlParser().createParse().setString(xml)
.execute().getProblems();
Assert.assertEquals(0, problems.size());
@@ -149,21 +155,26 @@
private void testConvert(String resourcefile) throws Exception {
- String xml = convert(resourcefile);
- List<Problem> problems = new JpdlParser().createParse().setString(xml).execute().getProblems();
- Assert.assertEquals(problems.toString(), 0, problems.size());
+ Document doc = convert(resourcefile);
+ validate(doc);
}
-
- private String convert(String resouceFile) throws Exception {
+
+
+ private Document convert(String resouceFile) throws Exception {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(resouceFile);
// Convert to process file to jpdl4
InputSource ins = new InputSource(inputStream);
Jpdl3Converter converter = new Jpdl3Converter(ins);
Document doc = converter.readAndConvert();
//System.out.println(doc.asXML());
- return doc.asXML();
+ return doc;
}
-
+
+ private void validate(Document convertedDoc) throws Exception {
+ List<Problem> problems = new JpdlParser().createParse().setString(convertedDoc.asXML()).execute().getProblems();
+ Assert.assertEquals(problems.toString(), 0, problems.size());
+ }
+
private void setUpEnviroment() throws Exception {
EnvironmentFactory environmentFactory = JbpmConfiguration
.parseXmlString("<jbpm-configuration>"
15 years, 3 months
JBoss JBPM SVN: r5326 - jbpm3/branches/jbpm-3.2-soa/hudson.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2009-07-17 11:02:57 -0400 (Fri, 17 Jul 2009)
New Revision: 5326
Modified:
jbpm3/branches/jbpm-3.2-soa/hudson/profiles.xml.redhat.qa
Log:
switch to new DB2 9.7 host in QA lab
Modified: jbpm3/branches/jbpm-3.2-soa/hudson/profiles.xml.redhat.qa
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/hudson/profiles.xml.redhat.qa 2009-07-17 13:52:24 UTC (rev 5325)
+++ jbpm3/branches/jbpm-3.2-soa/hudson/profiles.xml.redhat.qa 2009-07-17 15:02:57 UTC (rev 5326)
@@ -11,7 +11,7 @@
</activation>
<properties>
- <jdbc.db2.server>dev67.qa.atl.jboss.com</jdbc.db2.server>
+ <jdbc.db2.server>vmg06.mw.lab.eng.bos.redhat.com</jdbc.db2.server>
<jdbc.db2.port>50000</jdbc.db2.port>
<jdbc.db2.database>jbossqa</jdbc.db2.database>
<jdbc.db2.url>jdbc:db2://${jdbc.db2.server}:${jdbc.db2.port}/${jdbc.db2.database}</jdbc.db2.url>
15 years, 3 months
JBoss JBPM SVN: r5325 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/history/model and 2 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-07-17 09:52:24 -0400 (Fri, 17 Jul 2009)
New Revision: 5325
Added:
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/history/HistoryDetailQueryTest.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/history/HistoryDetailQuery.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryCommentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryPriorityUpdateImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskAssignmentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskDuedateUpdateImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableUpdateImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/HistoryDetailQueryImpl.java
Log:
JBPM-2398 added history detail query impl and started on the test
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/history/HistoryDetailQuery.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/history/HistoryDetailQuery.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/history/HistoryDetailQuery.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -39,8 +39,8 @@
/** only select details for the given processInstanceId */
HistoryDetailQuery processInstanceId(String processInstanceId);
- /** only select details for the given historyActivityInstanceId */
- HistoryDetailQuery processActivityInstanceId(String historyActivityInstanceId);
+ /** only select details for the given activityInstanceId */
+ HistoryDetailQuery activityInstanceId(String activityInstanceId);
/** only select details for the given taskId */
HistoryDetailQuery taskId(String taskId);
@@ -51,9 +51,9 @@
/** only select details before the given time */
HistoryDetailQuery timeBefore(Date time);
- /** only select activity instances for the given activity
+ /** only select details of type comment
* (this usually used in combination with {@link #processDefinitionId(String)}) */
- HistoryDetailQuery taskComments();
+ HistoryDetailQuery comments();
/** order selected process definitions descending for certain {@link #PROPERTY_USERID properties} */
HistoryDetailQuery orderDesc(String property);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryCommentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryCommentImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryCommentImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -51,6 +51,10 @@
this.message = message;
}
+ public String toString() {
+ return (userId!=null ? userId+" comments: " : "comment: ")+message;
+ }
+
// replies //////////////////////////////////////////////////////////////////
public HistoryCommentImpl createReply(String message) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryPriorityUpdateImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryPriorityUpdateImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryPriorityUpdateImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -42,4 +42,8 @@
this.oldPriority = oldPriority;
this.newPriority = newPriority;
}
+
+ public String toString() {
+ return (userId!=null ? userId+" updated priority" : "priority updated")+" from "+oldPriority+" to "+newPriority;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskAssignmentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskAssignmentImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskAssignmentImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -42,4 +42,8 @@
this.oldAssignee = oldAssignee;
this.newAssignee = newAssignee;
}
+
+ public String toString() {
+ return (userId!=null ? userId+" assigned task" : "task assigned")+" from "+oldAssignee+" to "+newAssignee;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskDuedateUpdateImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskDuedateUpdateImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryTaskDuedateUpdateImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -44,4 +44,8 @@
this.oldDuedate = oldDuedate;
this.newDuedate = newDuedate;
}
+
+ public String toString() {
+ return (userId!=null ? userId+" updated task duedate" : "task duedate updated")+" from "+oldDuedate+" to "+newDuedate;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -25,7 +25,6 @@
import java.util.HashSet;
import java.util.Set;
-import org.jbpm.api.history.HistoryProcessInstance;
import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.pvm.internal.type.Variable;
@@ -84,4 +83,36 @@
detail.setHistoryVariable(this, nextDetailIndex);
nextDetailIndex++;
}
+
+
+ public long getDbid() {
+ return dbid;
+ }
+ public int getDbversion() {
+ return dbversion;
+ }
+ public HistoryProcessInstanceImpl getHistoryProcessInstance() {
+ return historyProcessInstance;
+ }
+ public HistoryTaskImpl getHistoryTask() {
+ return historyTask;
+ }
+ public String getProcessInstanceId() {
+ return processInstanceId;
+ }
+ public String getExecutionId() {
+ return executionId;
+ }
+ public String getVariableName() {
+ return variableName;
+ }
+ public String getValue() {
+ return value;
+ }
+ public int getNextDetailIndex() {
+ return nextDetailIndex;
+ }
+ public Set<HistoryDetailImpl> getDetails() {
+ return details;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableUpdateImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableUpdateImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/model/HistoryVariableUpdateImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -42,4 +42,8 @@
this.oldValue = oldValue;
this.newValue = newValue;
}
+
+ public String toString() {
+ return (userId!=null ? userId+" " : "")+"updated variable "+this.historyVariable.getVariableName()+" from "+oldValue+" to "+newValue;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/HistoryDetailQueryImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/HistoryDetailQueryImpl.java 2009-07-17 13:50:03 UTC (rev 5324)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/HistoryDetailQueryImpl.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -27,6 +27,8 @@
import org.hibernate.Query;
import org.jbpm.api.history.HistoryDetail;
import org.jbpm.api.history.HistoryDetailQuery;
+import org.jbpm.pvm.internal.history.model.HistoryCommentImpl;
+import org.jbpm.pvm.internal.history.model.HistoryDetailImpl;
/**
@@ -34,53 +36,105 @@
*/
public class HistoryDetailQueryImpl extends AbstractQuery implements HistoryDetailQuery {
- @Override
- protected void applyParameters(Query query) {
- }
+ protected Class<?> type = HistoryDetailImpl.class;
- @Override
+ protected Date timeBefore;
+ protected Date timeAfter;
+
+ protected String processInstanceId;
+ protected String activityInstanceId;
+ protected String taskId;
+
public String hql() {
- return null;
+ StringBuilder hql = new StringBuilder();
+ hql.append("select hd ");
+ hql.append("from ");
+ hql.append(type.getName());
+ hql.append(" as hd ");
+
+ if (taskId!=null) {
+ appendWhereClause(" hd.historyTask.dbid = "+taskId+" ", hql);
+ }
+
+ if (processInstanceId!=null) {
+ appendWhereClause(" hd.historyProcessInstance.dbid = "+processInstanceId+" ", hql);
+ }
+
+ if (activityInstanceId!=null) {
+ appendWhereClause(" hd.historyActivityInstance.dbid = "+activityInstanceId+" ", hql);
+ }
+
+ if (timeBefore!=null) {
+ appendWhereClause(" hd.time < :timeBefore ", hql);
+ }
+
+ if (timeAfter!=null) {
+ appendWhereClause(" hd.time > :timeAfter ", hql);
+ }
+
+ return hql.toString();
}
+ protected void applyParameters(Query query) {
+ if (timeAfter!=null) {
+ query.setTime("timeAfter", timeAfter);
+ }
+
+ if (timeBefore!=null) {
+ query.setTime("timeBefore", timeBefore);
+ }
+ }
+
public List<HistoryDetail> list() {
- return null;
+ return (List) untypedList();
}
+
+ public HistoryDetail uniqueResult() {
+ return (HistoryDetail) untypedUniqueResult();
+ }
- public HistoryDetailQuery orderDesc(String property) {
- return null;
+ public HistoryDetailQuery taskId(String taskId) {
+ this.taskId = taskId;
+ return this;
}
- public HistoryDetailQuery page(int firstResult, int maxResults) {
- return null;
+ public HistoryDetailQuery orderAsc(String property) {
+ addOrderByClause("hd."+property+" asc");
+ return this;
}
- public HistoryDetailQuery processActivityInstanceId(String historyActivityInstanceId) {
- return null;
+ public HistoryDetailQuery orderDesc(String property) {
+ addOrderByClause("hd."+property+" desc");
+ return this;
}
- public HistoryDetailQuery processInstanceId(String processInstanceId) {
- return null;
+ public HistoryDetailQuery page(int firstResult, int maxResults) {
+ this.page = new Page(firstResult, maxResults);
+ return this;
}
- public HistoryDetailQuery taskComments() {
- return null;
+ public HistoryDetailQuery activityInstanceId(String activityInstanceId) {
+ this.activityInstanceId = activityInstanceId;
+ return this;
}
- public HistoryDetailQuery taskId(String taskId) {
- return null;
+ public HistoryDetailQuery processInstanceId(String processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ return this;
}
- public HistoryDetailQuery timeAfter(Date time) {
- return null;
+ public HistoryDetailQuery comments() {
+ type = HistoryCommentImpl.class;
+ return this;
}
- public HistoryDetailQuery timeBefore(Date time) {
- return null;
+ public HistoryDetailQuery timeAfter(Date timeAfter) {
+ this.timeAfter = timeAfter;
+ return this;
}
- public HistoryDetail uniqueResult() {
- return null;
+ public HistoryDetailQuery timeBefore(Date timeBefore) {
+ this.timeBefore = timeBefore;
+ return this;
}
-
}
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/history/HistoryDetailQueryTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/history/HistoryDetailQueryTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/history/HistoryDetailQueryTest.java 2009-07-17 13:52:24 UTC (rev 5325)
@@ -0,0 +1,97 @@
+/*
+ * 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.history;
+
+import java.util.List;
+
+import org.jbpm.api.history.HistoryComment;
+import org.jbpm.api.history.HistoryDetail;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class HistoryDetailQueryTest extends JbpmTestCase {
+
+ public void testTaskCommentDetail() {
+ deployJpdlXmlString(
+ "<process name='TaskCommentDetail'>" +
+ " <start>" +
+ " <transition to='t' />" +
+ " </start>" +
+ " <task name='t' assignee='johndoe'/>" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("TaskCommentDetail");
+
+ String taskId = taskService.createTaskQuery().uniqueResult().getId();
+
+ taskService.addTaskComment(taskId, "hello");
+
+ List<HistoryDetail> historyDetails = historyService.createHistoryDetailQuery().list();
+ assertEquals(historyDetails.toString(), 1, historyDetails.size());
+
+ historyDetails = historyService
+ .createHistoryDetailQuery()
+ .comments()
+ .list();
+
+ assertEquals(historyDetails.toString(), 1, historyDetails.size());
+
+ HistoryComment historyComment = (HistoryComment) historyDetails.get(0);
+ assertEquals("hello", historyComment.getMessage());
+ }
+
+ public void testTaskCommentRepliesDetail() {
+ deployJpdlXmlString(
+ "<process name='TaskCommentRepliesDetail'>" +
+ " <start>" +
+ " <transition to='t' />" +
+ " </start>" +
+ " <task name='t' assignee='johndoe'/>" +
+ "</process>"
+ );
+
+ executionService.startProcessInstanceByKey("TaskCommentRepliesDetail");
+
+ String taskId = taskService.createTaskQuery().uniqueResult().getId();
+
+ processEngine.setAuthenticatedUserId("johndoe");
+ String helloCommentId = taskService.addTaskComment(taskId, "hi, how are you guys?").getId();
+
+ processEngine.setAuthenticatedUserId("joesmoe");
+ taskService.addReplyComment(helloCommentId, "i'm doing fine, thanks");
+
+ processEngine.setAuthenticatedUserId("jackblack");
+ taskService.addReplyComment(helloCommentId, "i got a hangover");
+
+ List<HistoryDetail> historyDetails = historyService.createHistoryDetailQuery().list();
+ assertEquals(historyDetails.toString(), 3, historyDetails.size());
+
+ historyDetails = historyService
+ .createHistoryDetailQuery()
+ .comments()
+ .list();
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/history/HistoryDetailQueryTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 3 months