[jboss-svn-commits] JBL Code SVN: r34673 - in labs/jbossrules/trunk: drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1 and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 12 11:13:32 EDT 2010


Author: KrisVerlaenen
Date: 2010-08-12 11:13:30 -0400 (Thu, 12 Aug 2010)
New Revision: 34673

Added:
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-Lane.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ScriptTask.xml
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/bpmn2/editor/BPMNModelEditor.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/CompositeContextNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/EndEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/IntermediateCatchEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/ProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/XmlBPMNProcessDumper.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AbstractNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNDISemanticModule.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BoundaryEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BusinessRuleTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CallActivityHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ComplexGatewayHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventBasedGatewayHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ExclusiveGatewayHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/FaultNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ForEachNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/InclusiveGatewayHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateCatchEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/JoinHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/LaneHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ParallelGatewayHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SplitHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StartEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StateNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TimerNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/WorkItemNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/di/BPMNPlaneHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xpath/XPathReturnValueEvaluator.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMN20.xsd
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMNDI.xsd
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/Semantic.xsd
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2XMLTest.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/Person.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-CompositeProcessWithDIGraphical.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithDIGraphical.xml
Log:
 - extended BPMN2 impl

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/bpmn2/editor/BPMNModelEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/bpmn2/editor/BPMNModelEditor.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/bpmn2/editor/BPMNModelEditor.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -188,7 +188,7 @@
                 writer.write(out);
         	} else {
 	            XmlBPMNProcessDumper dumper = XmlBPMNProcessDumper.INSTANCE;
-	            String out = dumper.dump(process, includeGraphics);
+	            String out = dumper.dump(process, XmlBPMNProcessDumper.META_DATA_USING_DI);
 	            writer.write(out);
         	}
         } catch (Throwable t) {
@@ -204,6 +204,7 @@
     		InputStreamReader isr = new InputStreamReader(is);
     		SemanticModules semanticModules = new SemanticModules();
     		semanticModules.addSemanticModule(new BPMNSemanticModule());
+    		semanticModules.addSemanticModule(new BPMNDISemanticModule());
     		semanticModules.addSemanticModule(new org.drools.bpmn2.legacy.beta1.BPMNSemanticModule());
     		semanticModules.addSemanticModule(new org.drools.bpmn2.legacy.beta1.BPMN2SemanticModule());
             semanticModules.addSemanticModule(new org.drools.bpmn2.legacy.beta1.BPMNDISemanticModule());

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/CompositeContextNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/CompositeContextNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/CompositeContextNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -42,7 +42,7 @@
     public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
     	CompositeContextNode compositeNode = (CompositeContextNode) node;
     	String nodeType = "subProcess";
-    	if (node.getMetaData("Transaction") != null) {
+    	if (node.getMetaData().get("Transaction") != null) {
     		nodeType = "transaction";
     	}
 		writeNode(nodeType, compositeNode, xmlDump, includeMeta);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/EndEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/EndEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/EndEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -70,7 +70,7 @@
                 faultNode.setId(node.getId());
                 faultNode.setName(node.getName());
                 faultNode.setTerminateParent(true);
-                faultNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                faultNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = faultNode;
                 super.handleNode(node, element, uri, localName, parser);
                 handleErrorNode(node, element, uri, localName, parser);
@@ -80,7 +80,7 @@
                 FaultNode faultNode = new FaultNode();
                 faultNode.setId(node.getId());
                 faultNode.setName(node.getName());
-                faultNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                faultNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = faultNode;
                 super.handleNode(node, element, uri, localName, parser);
                 handleEscalationNode(node, element, uri, localName, parser);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/IntermediateCatchEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/IntermediateCatchEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/IntermediateCatchEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -68,7 +68,7 @@
                 TimerNode timerNode = new TimerNode();
                 timerNode.setId(node.getId());
                 timerNode.setName(node.getName());
-                timerNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                timerNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = timerNode;
                 handleTimerNode(node, element, uri, localName, parser);
                 break;
@@ -77,7 +77,7 @@
                 StateNode stateNode = new StateNode();
                 stateNode.setId(node.getId());
                 stateNode.setName(node.getName());
-                stateNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                stateNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = stateNode;
                 handleStateNode(node, element, uri, localName, parser);
                 break;

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/ProcessHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/ProcessHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -137,7 +137,7 @@
 				} catch (NumberFormatException e) {
 				    // try looking for a node with same "UniqueId" (in metadata)
 				    for (Node node: nodeContainer.getNodes()) {
-				        if (connection.getSourceRef().equals(node.getMetaData("UniqueId"))) {
+				        if (connection.getSourceRef().equals(node.getMetaData().get("UniqueId"))) {
 				            source = node;
 				            break;
 				        }
@@ -155,7 +155,7 @@
 				} catch (NumberFormatException e) {
 				    // try looking for a node with same "UniqueId" (in metadata)
                     for (Node node: nodeContainer.getNodes()) {
-                        if (connection.getTargetRef().equals(node.getMetaData("UniqueId"))) {
+                        if (connection.getTargetRef().equals(node.getMetaData().get("UniqueId"))) {
                             target = node;
                             break;
                         }
@@ -202,7 +202,7 @@
     public static void linkBoundaryEvents(NodeContainer nodeContainer) {
         for (Node node: nodeContainer.getNodes()) {
             if (node instanceof EventNode) {
-                String attachedTo = (String) node.getMetaData("AttachedTo");
+                String attachedTo = (String) node.getMetaData().get("AttachedTo");
                 if (attachedTo != null) {
                 	String type = ((EventTypeFilter)
                         ((EventNode) node).getEventFilters().get(0)).getType();
@@ -216,7 +216,7 @@
                     } catch (NumberFormatException e) {
                         // try looking for a node with same "UniqueId" (in metadata)
                         for (Node subnode: nodeContainer.getNodes()) {
-                            if (attachedTo.equals(subnode.getMetaData("UniqueId"))) {
+                            if (attachedTo.equals(subnode.getMetaData().get("UniqueId"))) {
                                 attachedNode = subnode;
                                 break;
                             }
@@ -226,7 +226,7 @@
                         }
                     }
                     if (type.startsWith("Escalation-")) {
-                        boolean cancelActivity = (Boolean) node.getMetaData("CancelActivity");
+                        boolean cancelActivity = (Boolean) node.getMetaData().get("CancelActivity");
                         CompositeContextNode compositeNode = (CompositeContextNode) attachedNode;
                         ExceptionScope exceptionScope = (ExceptionScope) 
                             compositeNode.getDefaultContext(ExceptionScope.EXCEPTION_SCOPE);
@@ -235,7 +235,7 @@
                             compositeNode.addContext(exceptionScope);
                             compositeNode.setDefaultContext(exceptionScope);
                         }
-                        String escalationCode = (String) node.getMetaData("EscalationEvent");
+                        String escalationCode = (String) node.getMetaData().get("EscalationEvent");
                         ActionExceptionHandler exceptionHandler = new ActionExceptionHandler();
                         exceptionHandler.setAction(new DroolsConsequenceAction("java",
                             (cancelActivity ? "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" : "") +
@@ -250,23 +250,23 @@
                             compositeNode.addContext(exceptionScope);
                             compositeNode.setDefaultContext(exceptionScope);
                         }
-                        String errorCode = (String) node.getMetaData("ErrorEvent");
+                        String errorCode = (String) node.getMetaData().get("ErrorEvent");
                         ActionExceptionHandler exceptionHandler = new ActionExceptionHandler();
                         exceptionHandler.setAction(new DroolsConsequenceAction("java",
                             "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" +
                             "kcontext.getProcessInstance().signalEvent(\"Error-" + attachedTo + "-" + errorCode + "\", null);"));
                         exceptionScope.setExceptionHandler(errorCode, exceptionHandler);
                     } else if (type.startsWith("Timer-")) {
-                        boolean cancelActivity = (Boolean) node.getMetaData("CancelActivity");
+                        boolean cancelActivity = (Boolean) node.getMetaData().get("CancelActivity");
                         CompositeContextNode compositeNode = (CompositeContextNode) attachedNode;
-                        String timeCycle = (String) node.getMetaData("TimeCycle");
+                        String timeCycle = (String) node.getMetaData().get("TimeCycle");
                         Timer timer = new Timer();
                         timer.setDelay(timeCycle);
                         compositeNode.addTimer(timer, new DroolsConsequenceAction("java",
                             (cancelActivity ? "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" : "") +
                             "kcontext.getProcessInstance().signalEvent(\"Timer-" + attachedTo + "-" + timeCycle + "\", null);"));
                     } else if (type.startsWith("Compensate-")) {
-                    	String uniqueId = (String) node.getMetaData("UniqueId");
+                    	String uniqueId = (String) node.getMetaData().get("UniqueId");
             	        String eventType = "Compensate-" + uniqueId;
             	        ((EventTypeFilter) ((EventNode) node).getEventFilters().get(0)).setType(eventType);
                     }
@@ -299,7 +299,7 @@
         for (Node node: container.getNodes()) {
             if (node instanceof StateNode) {
                 StateNode stateNode = (StateNode) node;
-                String condition = (String) stateNode.getMetaData("Condition");
+                String condition = (String) stateNode.getMetaData().get("Condition");
                 Constraint constraint = new ConstraintImpl();
                 constraint.setConstraint(condition);
                 constraint.setType("rule");
@@ -315,7 +315,7 @@
 	private void assignLanes(NodeContainer nodeContainer, Map<String, String> laneMapping) {
 	    for (Node node: nodeContainer.getNodes()) {
 	        String lane = null;
-	        String uniqueId = (String) node.getMetaData("UniqueId");
+	        String uniqueId = (String) node.getMetaData().get("UniqueId");
 	        if (uniqueId != null) {
 	            lane = laneMapping.get(uniqueId);
 	        } else {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/XmlBPMNProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/XmlBPMNProcessDumper.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/legacy/beta1/XmlBPMNProcessDumper.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -82,7 +82,7 @@
     }
     
     protected void visitProcess(WorkflowProcess process, StringBuilder xmlDump, boolean includeMeta) {
-        String targetNamespace = (String) process.getMetaData("TargetNamespace");
+        String targetNamespace = (String) process.getMetaData().get("TargetNamespace");
         if (targetNamespace == null) {
         	targetNamespace = "http://www.jboss.org/drools";
         }
@@ -135,10 +135,10 @@
     			"    <di:laneCompartment isVisible=\"false\" >" + EOL);
         	for (Node node: process.getNodes()) {
         		String nodeType = null;
-                Integer x = (Integer) node.getMetaData("x");
-                Integer y = (Integer) node.getMetaData("y");
-                Integer width = (Integer) node.getMetaData("width");
-                Integer height = (Integer) node.getMetaData("height");
+                Integer x = (Integer) node.getMetaData().get("x");
+                Integer y = (Integer) node.getMetaData().get("y");
+                Integer width = (Integer) node.getMetaData().get("width");
+                Integer height = (Integer) node.getMetaData().get("height");
         		if (node instanceof StartNode || node instanceof EndNode || node instanceof EventNode || node instanceof FaultNode) {
         			nodeType = "event";
         			int offsetX = (int) ((width - 30) / 2);
@@ -235,7 +235,7 @@
                     xmlDump.append("        <flowElementRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
                 }
             } else {
-                String swimlane = (String) node.getMetaData("Lane");
+                String swimlane = (String) node.getMetaData().get("Lane");
                 if (lane.equals(swimlane)) {
                     xmlDump.append("        <flowElementRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
                 }
@@ -330,14 +330,14 @@
                     }
                 }
             } else if (node instanceof EndNode) {
-                String messageType = (String) node.getMetaData("MessageType");
+                String messageType = (String) node.getMetaData().get("MessageType");
                 if (messageType != null) {
                     xmlDump.append(
                         "  <itemDefinition id=\"" + getUniqueNodeId(node) + "_MessageType\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                         "  <message id=\"" + getUniqueNodeId(node) + "_Message\" structureRef=\"" + getUniqueNodeId(node) + "_MessageType\" />" + EOL + EOL);
                 }
             } else if (node instanceof ActionNode) {
-                String messageType = (String) node.getMetaData("MessageType");
+                String messageType = (String) node.getMetaData().get("MessageType");
                 if (messageType != null) {
                     xmlDump.append(
                         "  <itemDefinition id=\"" + getUniqueNodeId(node) + "_MessageType\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
@@ -346,7 +346,7 @@
             } else if (node instanceof EventNode) {
                 String messageRef = ((EventTypeFilter) ((EventNode) node).getEventFilters().get(0)).getType();
                 messageRef = messageRef.substring(8);
-                String messageType = (String) node.getMetaData("MessageType");
+                String messageType = (String) node.getMetaData().get("MessageType");
                 xmlDump.append(
                     "  <itemDefinition id=\"" + XmlDumper.replaceIllegalChars(messageRef) + "Type\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                     "  <message id=\"" + XmlDumper.replaceIllegalChars(messageRef) + "\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageRef) + "Type\" />" + EOL + EOL);
@@ -358,7 +358,7 @@
                         String eventType = ((EventTypeFilter) ((EventTrigger) trigger).getEventFilters().get(0)).getType();
                         if (eventType.startsWith("Message-")) {
                             eventType = eventType.substring(8);
-                            String messageType = (String) node.getMetaData("MessageType");
+                            String messageType = (String) node.getMetaData().get("MessageType");
                             xmlDump.append(
                                 "  <itemDefinition id=\"" + XmlDumper.replaceIllegalChars(eventType) + "Type\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                                 "  <message id=\"" + XmlDumper.replaceIllegalChars(eventType) + "\" structureRef=\"" + XmlDumper.replaceIllegalChars(eventType) + "Type\" />" + EOL + EOL);
@@ -457,7 +457,7 @@
     }
     
     public static String getUniqueNodeId(Node node) {
-    	String result = (String) node.getMetaData("UniqueId");
+    	String result = (String) node.getMetaData().get("UniqueId");
     	if (result != null) {
     		return result;
     	}
@@ -482,7 +482,7 @@
             }
         }
         for (Connection connection: connections) {
-            String bendpoints = (String) connection.getMetaData("bendpoints");
+            String bendpoints = (String) connection.getMetaData().get("bendpoints");
             xmlDump.append(
         		"    <di:sequenceFlowConnector sequenceFlowRef=\"" + 
         			getUniqueNodeId(connection.getFrom()) + "-" + getUniqueNodeId(connection.getTo()) + "\" " +

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AbstractNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AbstractNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AbstractNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -134,20 +134,20 @@
     }
     
     public abstract void writeNode(final Node node, final StringBuilder xmlDump,
-    		                       final boolean includeMeta);
+    		                       final int metaDataType);
     
     protected void writeNode(final String name, final Node node, 
-    		                 final StringBuilder xmlDump, boolean includeMeta) {
+    		                 final StringBuilder xmlDump, int metaDataType) {
     	xmlDump.append("    <" + name + " "); 
         xmlDump.append("id=\"" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "\" ");
         if (node.getName() != null) {
             xmlDump.append("name=\"" + XmlDumper.replaceIllegalChars(node.getName()) + "\" ");
         }
-        if (includeMeta) {
-            Integer x = (Integer) node.getMetaData("x");
-            Integer y = (Integer) node.getMetaData("y");
-            Integer width = (Integer) node.getMetaData("width");
-            Integer height = (Integer) node.getMetaData("height");
+        if (metaDataType == XmlBPMNProcessDumper.META_DATA_AS_NODE_PROPERTY) {
+            Integer x = (Integer) node.getMetaData().get("x");
+            Integer y = (Integer) node.getMetaData().get("y");
+            Integer width = (Integer) node.getMetaData().get("width");
+            Integer height = (Integer) node.getMetaData().get("height");
             if (x != null && x != 0) {
                 xmlDump.append("g:x=\"" + x + "\" ");
             }

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -34,13 +34,13 @@
         return ActionNode.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		ActionNode actionNode = (ActionNode) node;
 		DroolsConsequenceAction action = (DroolsConsequenceAction) actionNode.getAction();
 		if (action != null) {
 		    String s = action.getConsequence();
 		    if (s.startsWith("org.drools.process.instance.impl.WorkItemImpl workItem = new org.drools.process.instance.impl.WorkItemImpl();")) {
-                writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+                writeNode("intermediateThrowEvent", actionNode, xmlDump, metaDataType);
                 xmlDump.append(">" + EOL);
                 String variable = (String) actionNode.getMetaData("MappingVariable");
                 if (variable != null) {
@@ -57,7 +57,7 @@
                 xmlDump.append("      <messageEventDefinition messageRef=\"" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Message\"/>" + EOL);
                 endNode("intermediateThrowEvent", xmlDump);
             } else if (s.startsWith("kcontext.getKnowledgeRuntime().signalEvent(\"")) {
-                writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+                writeNode("intermediateThrowEvent", actionNode, xmlDump, metaDataType);
                 xmlDump.append(">" + EOL);
                 s = s.substring(44);
                 String type = s.substring(0, s.indexOf("\""));
@@ -82,26 +82,26 @@
                 }
                 endNode("intermediateThrowEvent", xmlDump);
             } else if (s.startsWith("kcontext.getProcessInstance().signalEvent(\"")) {
-                writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+                writeNode("intermediateThrowEvent", actionNode, xmlDump, metaDataType);
                 xmlDump.append(">" + EOL);
                 s = s.substring(43);
                 String type = s.substring(0, s.indexOf("\""));
                 xmlDump.append("      <compensateEventDefinition activityRef=\"" + XmlDumper.replaceIllegalChars(type.substring(11)) + "\"/>" + EOL);
                 endNode("intermediateThrowEvent", xmlDump);
             } else if (s.startsWith("org.drools.process.instance.context.exception.ExceptionScopeInstance scopeInstance = (org.drools.process.instance.context.exception.ExceptionScopeInstance) ((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).resolveContextInstance(org.drools.process.core.context.exception.ExceptionScope.EXCEPTION_SCOPE, \"")) {
-                writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+                writeNode("intermediateThrowEvent", actionNode, xmlDump, metaDataType);
                 xmlDump.append(">" + EOL);
                 s = s.substring(327);
                 String type = s.substring(0, s.indexOf("\""));
                 xmlDump.append("      <escalationEventDefinition escalationRef=\"" + XmlDumper.replaceIllegalChars(type) + "\"/>" + EOL);
                 endNode("intermediateThrowEvent", xmlDump);
             } else if ("IntermediateThrowEvent-None".equals(actionNode.getMetaData("NodeType"))) {
-            	writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+            	writeNode("intermediateThrowEvent", actionNode, xmlDump, metaDataType);
                 endNode(xmlDump);
             } else {
-                writeNode("scriptTask", actionNode, xmlDump, includeMeta);
+                writeNode("scriptTask", actionNode, xmlDump, metaDataType);
                 if (JavaDialect.ID.equals(action.getDialect())) {
-                    xmlDump.append("scriptLanguage=\"" + XmlBPMNProcessDumper.JAVA_LANGUAGE + "\" ");
+                    xmlDump.append("scriptFormat=\"" + XmlBPMNProcessDumper.JAVA_LANGUAGE + "\" ");
                 }
                 if (action.getConsequence() != null) {
                     xmlDump.append(">" + EOL + 
@@ -112,7 +112,7 @@
                 }
             }
 		} else {
-		    writeNode("scriptTask", actionNode, xmlDump, includeMeta);
+		    writeNode("scriptTask", actionNode, xmlDump, metaDataType);
 	        endNode(xmlDump);
 		}
 	}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -69,9 +69,9 @@
     	ProcessHandler.linkBoundaryEvents(dynamicNode);
     }
     
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         DynamicNode dynamicNode = (DynamicNode) node;
-		writeNode("adHocSubProcess", dynamicNode, xmlDump, includeMeta);
+		writeNode("adHocSubProcess", dynamicNode, xmlDump, metaDataType);
 		if (!dynamicNode.isCancelRemainingInstances()) {
 			xmlDump.append(" cancelRemainingInstances=\"false\"");
 		}
@@ -80,13 +80,13 @@
 		List<Node> subNodes = getSubNodes(dynamicNode);
     	xmlDump.append("    <!-- nodes -->" + EOL);
         for (Node subNode: subNodes) {
-    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, includeMeta);
+    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, metaDataType);
         }
         // connections
         List<Connection> connections = getSubConnections(dynamicNode);
     	xmlDump.append("    <!-- connections -->" + EOL);
         for (Connection connection: connections) {
-        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, includeMeta);
+        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, metaDataType);
         }
         if (dynamicNode.isAutoComplete()) {
         	xmlDump.append("    <completionCondition xs:type=\"tFormalExpression\">getActivityInstanceAttribute(\"numberOfActiveInstances\") == 0</completionCondition>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNDISemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNDISemanticModule.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNDISemanticModule.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -24,7 +24,7 @@
 public class BPMNDISemanticModule extends DefaultSemanticModule {
 	
 	public BPMNDISemanticModule() {
-		super("http://www.omg.org/spec/BPMN/20100524/BPMNDI");
+		super("http://www.omg.org/spec/BPMN/20100524/DI");
 		
 		addHandler("BPMNPlane", new BPMNPlaneHandler());
 		addHandler("BPMNShape", new BPMNShapeHandler());

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BoundaryEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BoundaryEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BoundaryEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -202,7 +202,7 @@
         ((EventNode) node).setEventFilters(eventFilters);
     }
     
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    throw new IllegalArgumentException("Writing out should be handled by specific handlers");
     }
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BusinessRuleTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BusinessRuleTaskHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BusinessRuleTaskHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -45,9 +45,9 @@
 		}
 	}
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		RuleSetNode ruleSetNode = (RuleSetNode) node;
-		writeNode("businessRuleTask", ruleSetNode, xmlDump, includeMeta);
+		writeNode("businessRuleTask", ruleSetNode, xmlDump, metaDataType);
 		if (ruleSetNode.getRuleFlowGroup() != null) {
 			xmlDump.append("g:ruleFlowGroup=\"" + XmlDumper.replaceIllegalChars(ruleSetNode.getRuleFlowGroup()) + "\" ");
 		}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CallActivityHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CallActivityHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CallActivityHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -107,9 +107,9 @@
 		subProcessNode.addOutMapping(dataOutputs.get(from), to);
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		SubProcessNode subProcessNode = (SubProcessNode) node;
-		writeNode("callActivity", subProcessNode, xmlDump, includeMeta);
+		writeNode("callActivity", subProcessNode, xmlDump, metaDataType);
 		if (subProcessNode.getProcessId() != null) {
 			xmlDump.append("calledElement=\"" + XmlDumper.replaceIllegalChars(subProcessNode.getProcessId()) + "\" ");
 		}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ComplexGatewayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ComplexGatewayHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ComplexGatewayHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -44,7 +44,7 @@
         return Node.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		throw new IllegalArgumentException("Writing out should be handled by split / join handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -39,13 +39,13 @@
         return CompositeContextNode.class;
     }
 
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
     	CompositeContextNode compositeNode = (CompositeContextNode) node;
     	String nodeType = "subProcess";
-    	if (node.getMetaData("Transaction") != null) {
+    	if (node.getMetaData().get("Transaction") != null) {
     		nodeType = "transaction";
     	}
-		writeNode(nodeType, compositeNode, xmlDump, includeMeta);
+		writeNode(nodeType, compositeNode, xmlDump, metaDataType);
 		xmlDump.append(" >" + EOL);
         // variables
 		VariableScope variableScope = (VariableScope) 
@@ -65,13 +65,13 @@
 		List<Node> subNodes = getSubNodes(compositeNode);
     	xmlDump.append("    <!-- nodes -->" + EOL);
         for (Node subNode: subNodes) {
-    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, includeMeta);
+    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, metaDataType);
         }
         // connections
         List<Connection> connections = getSubConnections(compositeNode);
     	xmlDump.append("    <!-- connections -->" + EOL);
         for (Connection connection: connections) {
-        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, includeMeta);
+        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, metaDataType);
         }
 		endNode(nodeType, xmlDump);
 	}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -72,7 +72,7 @@
                 faultNode.setId(node.getId());
                 faultNode.setName(node.getName());
                 faultNode.setTerminateParent(true);
-                faultNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                faultNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = faultNode;
                 super.handleNode(node, element, uri, localName, parser);
                 handleErrorNode(node, element, uri, localName, parser);
@@ -82,7 +82,7 @@
                 FaultNode faultNode = new FaultNode();
                 faultNode.setId(node.getId());
                 faultNode.setName(node.getName());
-                faultNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                faultNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = faultNode;
                 super.handleNode(node, element, uri, localName, parser);
                 handleEscalationNode(node, element, uri, localName, parser);
@@ -259,7 +259,7 @@
         }
     }
     
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         throw new IllegalArgumentException("Writing out should be handled by specific handlers");
     }
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -36,9 +36,9 @@
         return EndNode.class;
     }
 
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		EndNode endNode = (EndNode) node;
-		writeNode("endEvent", endNode, xmlDump, includeMeta);
+		writeNode("endEvent", endNode, xmlDump, metaDataType);
 		if (endNode.isTerminate()) {
     		xmlDump.append(">" + EOL);
             xmlDump.append("        <terminateEventDefinition/>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventBasedGatewayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventBasedGatewayHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventBasedGatewayHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -40,7 +40,7 @@
         return Node.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		throw new IllegalArgumentException("Writing out should be handled by split / join handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EventNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -33,11 +33,11 @@
         return EventNode.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		EventNode eventNode = (EventNode) node;
 		String attachedTo = (String) eventNode.getMetaData("AttachedTo");
 		if (attachedTo == null) {
-    		writeNode("intermediateCatchEvent", eventNode, xmlDump, includeMeta);
+    		writeNode("intermediateCatchEvent", eventNode, xmlDump, metaDataType);
     		xmlDump.append(">" + EOL);
     		if (eventNode.getVariableName() != null) {
     			xmlDump.append("      <dataOutput id=\"" + XmlBPMNProcessDumper.getUniqueNodeId(eventNode) + "_Output\" name=\"event\" />" + EOL);
@@ -65,7 +65,7 @@
 		    if (type.startsWith("Escalation-")) {
     		    type = type.substring(attachedTo.length() + 12);
     		    boolean cancelActivity = (Boolean) eventNode.getMetaData("CancelActivity");
-                writeNode("boundaryEvent", eventNode, xmlDump, includeMeta);
+                writeNode("boundaryEvent", eventNode, xmlDump, metaDataType);
     		    xmlDump.append("attachedToRef=\"" + attachedTo + "\" ");
     		    if (!cancelActivity) {
     		        xmlDump.append("cancelActivity=\"false\" ");
@@ -75,7 +75,7 @@
     		    endNode("boundaryEvent", xmlDump);
 		    } else if (type.startsWith("Error-")) {
                 type = type.substring(attachedTo.length() + 7);
-                writeNode("boundaryEvent", eventNode, xmlDump, includeMeta);
+                writeNode("boundaryEvent", eventNode, xmlDump, metaDataType);
                 xmlDump.append("attachedToRef=\"" + attachedTo + "\" ");
                 xmlDump.append(">" + EOL);
                 xmlDump.append("      <errorEventDefinition errorRef=\"" + XmlDumper.replaceIllegalChars(type) + "\" />" + EOL);
@@ -83,7 +83,7 @@
             } else if (type.startsWith("Timer-")) {
                 type = type.substring(attachedTo.length() + 7);
                 boolean cancelActivity = (Boolean) eventNode.getMetaData("CancelActivity");
-                writeNode("boundaryEvent", eventNode, xmlDump, includeMeta);
+                writeNode("boundaryEvent", eventNode, xmlDump, metaDataType);
                 xmlDump.append("attachedToRef=\"" + attachedTo + "\" ");
                 if (!cancelActivity) {
                     xmlDump.append("cancelActivity=\"false\" ");
@@ -96,7 +96,7 @@
                 endNode("boundaryEvent", xmlDump);
             } else if (type.startsWith("Compensate-")) {
                 type = type.substring(attachedTo.length() + 7);
-                writeNode("boundaryEvent", eventNode, xmlDump, includeMeta);
+                writeNode("boundaryEvent", eventNode, xmlDump, metaDataType);
                 xmlDump.append("attachedToRef=\"" + attachedTo + "\" ");
                 xmlDump.append(">" + EOL);
                 xmlDump.append("      <compensateEventDefinition/>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ExclusiveGatewayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ExclusiveGatewayHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ExclusiveGatewayHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -46,7 +46,7 @@
         return Node.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		throw new IllegalArgumentException("Writing out should be handled by split / join handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/FaultNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/FaultNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/FaultNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -32,9 +32,9 @@
         return FaultNode.class;
     }
 
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         FaultNode faultNode = (FaultNode) node;
-		writeNode("endEvent", faultNode, xmlDump, includeMeta);
+		writeNode("endEvent", faultNode, xmlDump, metaDataType);
 		xmlDump.append(">" + EOL);
         if (faultNode.getFaultVariable() != null) {
             xmlDump.append("      <dataInput id=\"" + XmlBPMNProcessDumper.getUniqueNodeId(faultNode) + "_Input\" name=\"error\" />" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ForEachNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ForEachNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ForEachNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -37,9 +37,9 @@
         return ForEachNode.class;
     }
 
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
     	ForEachNode forEachNode = (ForEachNode) node;
-    	writeNode("subProcess", forEachNode, xmlDump, includeMeta);
+    	writeNode("subProcess", forEachNode, xmlDump, metaDataType);
 		xmlDump.append(" >" + EOL);
 		// ioSpecification and dataInputAssociation 
         xmlDump.append(
@@ -73,13 +73,13 @@
 		List<Node> subNodes = getSubNodes(forEachNode);
     	xmlDump.append("    <!-- nodes -->" + EOL);
         for (Node subNode: subNodes) {
-    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, includeMeta);
+    		XmlBPMNProcessDumper.INSTANCE.visitNode(subNode, xmlDump, metaDataType);
         }
         // connections
         List<Connection> connections = getSubConnections(forEachNode);
     	xmlDump.append("    <!-- connections -->" + EOL);
         for (Connection connection: connections) {
-        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, includeMeta);
+        	XmlBPMNProcessDumper.INSTANCE.visitConnection(connection, xmlDump, metaDataType);
         }
 		endNode("subProcess", xmlDump);
 	}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/InclusiveGatewayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/InclusiveGatewayHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/InclusiveGatewayHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -41,7 +41,7 @@
         return Node.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		throw new IllegalArgumentException("Writing out should be handled by split / join handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateCatchEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateCatchEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateCatchEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -68,7 +68,7 @@
                 TimerNode timerNode = new TimerNode();
                 timerNode.setId(node.getId());
                 timerNode.setName(node.getName());
-                timerNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                timerNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = timerNode;
                 handleTimerNode(node, element, uri, localName, parser);
                 break;
@@ -77,7 +77,7 @@
                 StateNode stateNode = new StateNode();
                 stateNode.setId(node.getId());
                 stateNode.setName(node.getName());
-                stateNode.setMetaData("UniqueId", node.getMetaData("UniqueId"));
+                stateNode.setMetaData("UniqueId", node.getMetaData().get("UniqueId"));
                 node = stateNode;
                 handleStateNode(node, element, uri, localName, parser);
                 break;
@@ -201,7 +201,7 @@
 		eventNode.setVariableName(to);
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    throw new IllegalArgumentException("Writing out should be handled by specific handlers");
     }
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -198,7 +198,7 @@
         }
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         throw new IllegalArgumentException("Writing out should be handled by action node handler");
     }
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/JoinHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/JoinHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/JoinHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -31,17 +31,17 @@
         return Join.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		Join join = (Join) node;
 		switch (join.getType()) {
 			case Join.TYPE_AND:
-				writeNode("parallelGateway", node, xmlDump, includeMeta);
+				writeNode("parallelGateway", node, xmlDump, metaDataType);
 				break;
 			case Join.TYPE_XOR:
-				writeNode("exclusiveGateway", node, xmlDump, includeMeta);
+				writeNode("exclusiveGateway", node, xmlDump, metaDataType);
 				break;
 			default:
-				writeNode("complexGateway", node, xmlDump, includeMeta);
+				writeNode("complexGateway", node, xmlDump, metaDataType);
 		}
 		xmlDump.append("gatewayDirection=\"Converging\" ");
 		endNode(xmlDump);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/LaneHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/LaneHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/LaneHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -78,7 +78,7 @@
         org.w3c.dom.Node xmlNode = element.getFirstChild();
         while (xmlNode != null) {
             String nodeName = xmlNode.getNodeName();
-            if ("flowElementRef".equals(nodeName)) {
+            if ("flowNodeRef".equals(nodeName)) {
                 String flowElementRef = xmlNode.getTextContent();
                 lane.addFlowElement(flowElementRef);
             }

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ParallelGatewayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ParallelGatewayHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ParallelGatewayHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -44,7 +44,7 @@
         return Node.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    throw new IllegalArgumentException("Writing out should be handled by split / join handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -141,7 +141,7 @@
 				} catch (NumberFormatException e) {
 				    // try looking for a node with same "UniqueId" (in metadata)
 				    for (Node node: nodeContainer.getNodes()) {
-				        if (connection.getSourceRef().equals(node.getMetaData("UniqueId"))) {
+				        if (connection.getSourceRef().equals(node.getMetaData().get("UniqueId"))) {
 				            source = node;
 				            break;
 				        }
@@ -159,7 +159,7 @@
 				} catch (NumberFormatException e) {
 				    // try looking for a node with same "UniqueId" (in metadata)
                     for (Node node: nodeContainer.getNodes()) {
-                        if (connection.getTargetRef().equals(node.getMetaData("UniqueId"))) {
+                        if (connection.getTargetRef().equals(node.getMetaData().get("UniqueId"))) {
                             target = node;
                             break;
                         }
@@ -207,7 +207,7 @@
     public static void linkBoundaryEvents(NodeContainer nodeContainer) {
         for (Node node: nodeContainer.getNodes()) {
             if (node instanceof EventNode) {
-                String attachedTo = (String) node.getMetaData("AttachedTo");
+                String attachedTo = (String) node.getMetaData().get("AttachedTo");
                 if (attachedTo != null) {
                 	String type = ((EventTypeFilter)
                         ((EventNode) node).getEventFilters().get(0)).getType();
@@ -221,7 +221,7 @@
                     } catch (NumberFormatException e) {
                         // try looking for a node with same "UniqueId" (in metadata)
                         for (Node subnode: nodeContainer.getNodes()) {
-                            if (attachedTo.equals(subnode.getMetaData("UniqueId"))) {
+                            if (attachedTo.equals(subnode.getMetaData().get("UniqueId"))) {
                                 attachedNode = subnode;
                                 break;
                             }
@@ -231,7 +231,7 @@
                         }
                     }
                     if (type.startsWith("Escalation-")) {
-                        boolean cancelActivity = (Boolean) node.getMetaData("CancelActivity");
+                        boolean cancelActivity = (Boolean) node.getMetaData().get("CancelActivity");
                         CompositeContextNode compositeNode = (CompositeContextNode) attachedNode;
                         ExceptionScope exceptionScope = (ExceptionScope) 
                             compositeNode.getDefaultContext(ExceptionScope.EXCEPTION_SCOPE);
@@ -240,7 +240,7 @@
                             compositeNode.addContext(exceptionScope);
                             compositeNode.setDefaultContext(exceptionScope);
                         }
-                        String escalationCode = (String) node.getMetaData("EscalationEvent");
+                        String escalationCode = (String) node.getMetaData().get("EscalationEvent");
                         ActionExceptionHandler exceptionHandler = new ActionExceptionHandler();
                         exceptionHandler.setAction(new DroolsConsequenceAction("java",
                             (cancelActivity ? "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" : "") +
@@ -255,23 +255,23 @@
                             compositeNode.addContext(exceptionScope);
                             compositeNode.setDefaultContext(exceptionScope);
                         }
-                        String errorCode = (String) node.getMetaData("ErrorEvent");
+                        String errorCode = (String) node.getMetaData().get("ErrorEvent");
                         ActionExceptionHandler exceptionHandler = new ActionExceptionHandler();
                         exceptionHandler.setAction(new DroolsConsequenceAction("java",
                             "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" +
                             "kcontext.getProcessInstance().signalEvent(\"Error-" + attachedTo + "-" + errorCode + "\", null);"));
                         exceptionScope.setExceptionHandler(errorCode, exceptionHandler);
                     } else if (type.startsWith("Timer-")) {
-                        boolean cancelActivity = (Boolean) node.getMetaData("CancelActivity");
+                        boolean cancelActivity = (Boolean) node.getMetaData().get("CancelActivity");
                         CompositeContextNode compositeNode = (CompositeContextNode) attachedNode;
-                        String timeCycle = (String) node.getMetaData("TimeCycle");
+                        String timeCycle = (String) node.getMetaData().get("TimeCycle");
                         Timer timer = new Timer();
                         timer.setDelay(timeCycle);
                         compositeNode.addTimer(timer, new DroolsConsequenceAction("java",
                             (cancelActivity ? "((org.drools.workflow.instance.NodeInstance) kcontext.getNodeInstance()).cancel();" : "") +
                             "kcontext.getProcessInstance().signalEvent(\"Timer-" + attachedTo + "-" + timeCycle + "\", null);"));
                     } else if (type.startsWith("Compensate-")) {
-                    	String uniqueId = (String) node.getMetaData("UniqueId");
+                    	String uniqueId = (String) node.getMetaData().get("UniqueId");
             	        String eventType = "Compensate-" + uniqueId;
             	        ((EventTypeFilter) ((EventNode) node).getEventFilters().get(0)).setType(eventType);
                     }
@@ -320,7 +320,7 @@
 	private void assignLanes(NodeContainer nodeContainer, Map<String, String> laneMapping) {
 	    for (Node node: nodeContainer.getNodes()) {
 	        String lane = null;
-	        String uniqueId = (String) node.getMetaData("UniqueId");
+	        String uniqueId = (String) node.getMetaData().get("UniqueId");
 	        if (uniqueId != null) {
 	            lane = laneMapping.get(uniqueId);
 	        } else {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -47,7 +47,7 @@
         	action = new DroolsConsequenceAction();
         	actionNode.setAction(action);
         }
-		String language = element.getAttribute("scriptLanguage");
+		String language = element.getAttribute("scriptFormat");
 		if (XmlBPMNProcessDumper.JAVA_LANGUAGE.equals(language)) {
 			action.setDialect(JavaDialect.ID);
 		}
@@ -59,7 +59,7 @@
         }
 	}
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    throw new IllegalArgumentException("Writing out should be handled by action node handler");
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SplitHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SplitHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SplitHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -35,14 +35,14 @@
         return Split.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		Split split = (Split) node;
 		switch (split.getType()) {
 			case Split.TYPE_AND:
-				writeNode("parallelGateway", node, xmlDump, includeMeta);
+				writeNode("parallelGateway", node, xmlDump, metaDataType);
 				break;
 			case Split.TYPE_XOR:
-				writeNode("exclusiveGateway", node, xmlDump, includeMeta);
+				writeNode("exclusiveGateway", node, xmlDump, metaDataType);
 				for (Map.Entry<ConnectionRef, Constraint> entry: split.getConstraints().entrySet()) {
 					if (entry.getValue().isDefault()) {
 						xmlDump.append("default=\"" +
@@ -54,7 +54,7 @@
 				}
 				break;
 			case Split.TYPE_OR:
-                writeNode("inclusiveGateway", node, xmlDump, includeMeta);
+                writeNode("inclusiveGateway", node, xmlDump, metaDataType);
 				for (Map.Entry<ConnectionRef, Constraint> entry: split.getConstraints().entrySet()) {
 					if (entry.getValue().isDefault()) {
 						xmlDump.append("default=\"" +
@@ -66,10 +66,10 @@
 				}
                 break;
 			case Split.TYPE_XAND:
-				writeNode("eventBasedGateway", node, xmlDump, includeMeta);
+				writeNode("eventBasedGateway", node, xmlDump, metaDataType);
 				break;
             default:
-				writeNode("complexGateway", node, xmlDump, includeMeta);
+				writeNode("complexGateway", node, xmlDump, metaDataType);
 		}
 		xmlDump.append("gatewayDirection=\"Diverging\" ");
 		endNode(xmlDump);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StartEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StartEventHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StartEventHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -126,15 +126,17 @@
     protected void readDataOutputAssociation(org.w3c.dom.Node xmlNode, StartNode startNode) {
         // sourceRef
         org.w3c.dom.Node subNode = xmlNode.getFirstChild();
+        if ("sourceRef".equals(subNode.getNodeName())) {
+            subNode = subNode.getNextSibling();
+        }
         // targetRef
-        subNode = subNode.getNextSibling();
         String to = subNode.getTextContent();
         startNode.setMetaData("TriggerMapping", to);
     }
 
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		StartNode startNode = (StartNode) node;
-		writeNode("startEvent", startNode, xmlDump, includeMeta);
+		writeNode("startEvent", startNode, xmlDump, metaDataType);
 		List<Trigger> triggers = startNode.getTriggers();
 		if (triggers != null) {
 		    xmlDump.append(">" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StateNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StateNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/StateNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -32,10 +32,10 @@
         return StateNode.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    StateNode stateNode = (StateNode) node;
 		String condition = (String) stateNode.getMetaData("Condition");
-		writeNode("intermediateCatchEvent", stateNode, xmlDump, includeMeta);
+		writeNode("intermediateCatchEvent", stateNode, xmlDump, metaDataType);
 		xmlDump.append(">" + EOL);
         xmlDump.append("      <conditionalEventDefinition>" + EOL);
         xmlDump.append("        <condition xs:type=\"tFormalExpression\" language=\"" + XmlBPMNProcessDumper.RULE_LANGUAGE + "\">" + XmlDumper.replaceIllegalChars(condition) + "</condition>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -67,6 +67,7 @@
 				for (org.drools.definition.process.Node subNode: ((CompositeContextNode) node).getNodes()) {
 					forEachNode.addNode(subNode);
 				}
+				forEachNode.setMetaData("UniqueId", ((CompositeContextNode) node).getMetaData("UniqueId"));
 				forEachNode.setMetaData(ProcessHandler.CONNECTIONS, ((CompositeContextNode) node).getMetaData(ProcessHandler.CONNECTIONS));
 				node = forEachNode;
 				handleForEachNode(node, element, uri, localName, parser);
@@ -153,7 +154,7 @@
         }
     }
     
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         throw new IllegalArgumentException("Writing out should be handled by specific handlers");
     }
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TaskHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TaskHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -118,7 +118,7 @@
     }
 
     @Override
-    public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
         throw new IllegalArgumentException(
             "Writing out should be handled by the WorkItemNodeHandler");
     }

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TimerNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TimerNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/TimerNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -32,9 +32,9 @@
         return TimerNode.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 	    TimerNode timerNode = (TimerNode) node;
-		writeNode("intermediateCatchEvent", timerNode, xmlDump, includeMeta);
+		writeNode("intermediateCatchEvent", timerNode, xmlDump, metaDataType);
 		xmlDump.append(">" + EOL);
 		xmlDump.append("      <timerEventDefinition>" + EOL);
 		if (timerNode.getTimer() != null && timerNode.getTimer().getDelay() != null) {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -79,9 +79,9 @@
 		return xmlNode.getFirstChild().getFirstChild().getFirstChild().getTextContent();
     }
     
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		HumanTaskNode humanTaskNode = (HumanTaskNode) node;
-		writeNode("userTask", humanTaskNode, xmlDump, includeMeta);
+		writeNode("userTask", humanTaskNode, xmlDump, metaDataType);
 		xmlDump.append(">" + EOL);
 		writeIO(humanTaskNode, xmlDump);
 		String ownerString = (String) humanTaskNode.getWork().getParameter("ActorId");

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/WorkItemNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/WorkItemNodeHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/WorkItemNodeHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -34,16 +34,16 @@
         return WorkItemNode.class;
     }
 
-	public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+	public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) {
 		WorkItemNode workItemNode = (WorkItemNode) node;
 		String type = workItemNode.getWork().getName();
 		if ("Manual Task".equals(type)) {
-		    writeNode("manualTask", workItemNode, xmlDump, includeMeta);
+		    writeNode("manualTask", workItemNode, xmlDump, metaDataType);
 	        endNode(xmlDump);
 	        return;
 		} 
         if ("Service Task".equals(type)) {
-            writeNode("serviceTask", workItemNode, xmlDump, includeMeta);
+            writeNode("serviceTask", workItemNode, xmlDump, metaDataType);
             xmlDump.append("operationRef=\"" + 
                 XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_ServiceOperation\" implementation=\"Other\" >" + EOL);
             xmlDump.append(
@@ -77,7 +77,7 @@
             return;
         } 
         if ("Send Task".equals(type)) {
-            writeNode("sendTask", workItemNode, xmlDump, includeMeta);
+            writeNode("sendTask", workItemNode, xmlDump, metaDataType);
             xmlDump.append("messageRef=\"" + 
                     XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_Message\" implementation=\"Other\" >" + EOL);
                 xmlDump.append(
@@ -100,7 +100,7 @@
             return;
         } 
         if ("Receive Task".equals(type)) {
-            writeNode("receiveTask", workItemNode, xmlDump, includeMeta);
+            writeNode("receiveTask", workItemNode, xmlDump, metaDataType);
             String messageId = (String) workItemNode.getWork().getParameter("MessageId");
             xmlDump.append("messageRef=\"" + 
                     messageId + "\" implementation=\"Other\" >" + EOL);
@@ -123,7 +123,7 @@
             endNode("receiveTask", xmlDump);
             return;
         } 
-		writeNode("task", workItemNode, xmlDump, includeMeta);
+		writeNode("task", workItemNode, xmlDump, metaDataType);
 		xmlDump.append("tns:taskName=\"" + XmlDumper.replaceIllegalChars(type) + "\" >" + EOL);
 		writeIO(workItemNode, xmlDump);
 		endNode("task", xmlDump);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -45,6 +45,7 @@
 import org.drools.workflow.core.node.FaultNode;
 import org.drools.workflow.core.node.ForEachNode;
 import org.drools.workflow.core.node.HumanTaskNode;
+import org.drools.workflow.core.node.Join;
 import org.drools.workflow.core.node.Split;
 import org.drools.workflow.core.node.StartNode;
 import org.drools.workflow.core.node.Trigger;
@@ -58,28 +59,45 @@
 	public static final String RULE_LANGUAGE = "http://www.jboss.org/drools/rule";
     public static final String XPATH_LANGUAGE = "http://www.w3.org/1999/XPath";
     
+    public static final int NO_META_DATA = 0;
+    public static final int META_DATA_AS_NODE_PROPERTY = 1;
+    public static final int META_DATA_USING_DI = 2;
+    
 	public static XmlBPMNProcessDumper INSTANCE = new XmlBPMNProcessDumper();
 	
     private final static String EOL = System.getProperty( "line.separator" );
     
     private SemanticModule semanticModule;
+    private int metaDataType = META_DATA_USING_DI;
     
     private XmlBPMNProcessDumper() {
     	semanticModule = new BPMNSemanticModule();
     }
     
     public String dump(WorkflowProcess process) {
-        return dump(process, true);
+        return dump(process, META_DATA_USING_DI);
     }
     
     public String dump(WorkflowProcess process, boolean includeMeta) {
+    	return dump(process, META_DATA_AS_NODE_PROPERTY);
+    }
+    
+    public String dump(WorkflowProcess process, int metaDataType) {
         StringBuilder xmlDump = new StringBuilder();
-        visitProcess(process, xmlDump, includeMeta);
+        visitProcess(process, xmlDump, metaDataType);
         return xmlDump.toString();
     }
     
-    protected void visitProcess(WorkflowProcess process, StringBuilder xmlDump, boolean includeMeta) {
-        String targetNamespace = (String) process.getMetaData("TargetNamespace");
+    public int getMetaDataType() {
+		return metaDataType;
+	}
+
+	public void setMetaDataType(int metaDataType) {
+		this.metaDataType = metaDataType;
+	}
+
+	protected void visitProcess(WorkflowProcess process, StringBuilder xmlDump, int metaDataType) {
+        String targetNamespace = (String) process.getMetaData().get("TargetNamespace");
         if (targetNamespace == null) {
         	targetNamespace = "http://www.jboss.org/drools";
         }
@@ -92,7 +110,12 @@
             "             xmlns=\"http://www.omg.org/spec/BPMN/20100524/MODEL\"" + EOL +
             "             xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"" + EOL +
             "             xs:schemaLocation=\"http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd\"" + EOL +
-            "             xmlns:g=\"http://www.jboss.org/drools/flow/gpd\"" + EOL +
+            (metaDataType == META_DATA_AS_NODE_PROPERTY ? 
+                "             xmlns:g=\"http://www.jboss.org/drools/flow/gpd\"" + EOL : "") +
+            (metaDataType == META_DATA_USING_DI ? 
+                "             xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\"" + EOL +
+            	"             xmlns:dc=\"http://www.omg.org/spec/DD/20100524/DC\"" + EOL +
+        		"             xmlns:di=\"http://www.omg.org/spec/DD/20100524/DI\"" + EOL : "") +
             "             xmlns:tns=\"http://www.jboss.org/drools\">" + EOL + EOL);
 
     	// item definitions
@@ -121,10 +144,20 @@
         // TODO: package, version
         xmlDump.append(">" + EOL + EOL);
         visitLanes(process, xmlDump);
-        visitHeader(process, xmlDump, includeMeta);
-        visitNodes(process, xmlDump, includeMeta);
-        visitConnections(process.getNodes(), xmlDump, includeMeta);
+        visitHeader(process, xmlDump, metaDataType);
+        visitNodes(process, xmlDump, metaDataType);
+        visitConnections(process.getNodes(), xmlDump, metaDataType);
         xmlDump.append("  </process>" + EOL + EOL);
+        if (metaDataType == META_DATA_USING_DI) {
+        	xmlDump.append(
+    			"  <bpmndi:BPMNDiagram>" + EOL +
+    			"    <bpmndi:BPMNPlane bpmnElement=\"" + XmlDumper.replaceIllegalChars(process.getId()) + "\" >" + EOL);
+        	visitNodesDi(process.getNodes(), xmlDump);
+        	visitConnectionsDi(process.getNodes(), xmlDump);
+        	xmlDump.append(
+    			"    </bpmndi:BPMNPlane>" + EOL +
+        		"  </bpmndi:BPMNDiagram>" + EOL + EOL);
+        }
         xmlDump.append("</definitions>");
     }
     
@@ -178,12 +211,12 @@
             if (node instanceof HumanTaskNode) {
                 String swimlane = ((HumanTaskNode) node).getSwimlane();
                 if (lane.equals(swimlane)) {
-                    xmlDump.append("        <flowElementRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
+                    xmlDump.append("        <flowNodeRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowNodeRef>" + EOL);
                 }
             } else {
-                String swimlane = (String) node.getMetaData("Lane");
+                String swimlane = (String) node.getMetaData().get("Lane");
                 if (lane.equals(swimlane)) {
-                    xmlDump.append("        <flowElementRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
+                    xmlDump.append("        <flowNodeRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowNodeRef>" + EOL);
                 }
             }
             if (node instanceof NodeContainer) {
@@ -192,7 +225,7 @@
         }
     }
     
-    protected void visitHeader(WorkflowProcess process, StringBuilder xmlDump, boolean includeMeta) {
+    protected void visitHeader(WorkflowProcess process, StringBuilder xmlDump, int metaDataType) {
     	// TODO: imports, function imports
     	// TODO: globals
         // TODO: swimlanes
@@ -277,25 +310,25 @@
                     }
                 }
             } else if (node instanceof EndNode) {
-                String messageType = (String) node.getMetaData("MessageType");
+                String messageType = (String) node.getMetaData().get("MessageType");
                 if (messageType != null) {
                     xmlDump.append(
                         "  <itemDefinition id=\"" + getUniqueNodeId(node) + "_MessageType\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                         "  <message id=\"" + getUniqueNodeId(node) + "_Message\" itemRef=\"" + getUniqueNodeId(node) + "_MessageType\" />" + EOL + EOL);
                 }
             } else if (node instanceof ActionNode) {
-                String messageType = (String) node.getMetaData("MessageType");
+                String messageType = (String) node.getMetaData().get("MessageType");
                 if (messageType != null) {
                     xmlDump.append(
                         "  <itemDefinition id=\"" + getUniqueNodeId(node) + "_MessageType\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                         "  <message id=\"" + getUniqueNodeId(node) + "_Message\" itemRef=\"" + getUniqueNodeId(node) + "_MessageType\" />" + EOL + EOL);
                 }
             } else if (node instanceof EventNode) {
-            	if (node.getMetaData("AttachedTo") == null) {
+            	if (node.getMetaData().get("AttachedTo") == null) {
 	                String messageRef = ((EventTypeFilter) ((EventNode) node).getEventFilters().get(0)).getType();
 	                if (messageRef.startsWith("Message-")) {
 		                messageRef = messageRef.substring(8);
-		                String messageType = (String) node.getMetaData("MessageType");
+		                String messageType = (String) node.getMetaData().get("MessageType");
 		                xmlDump.append(
 		                    "  <itemDefinition id=\"" + XmlDumper.replaceIllegalChars(messageRef) + "Type\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
 		                    "  <message id=\"" + XmlDumper.replaceIllegalChars(messageRef) + "\" itemRef=\"" + XmlDumper.replaceIllegalChars(messageRef) + "Type\" />" + EOL + EOL);
@@ -309,7 +342,7 @@
                         String eventType = ((EventTypeFilter) ((EventTrigger) trigger).getEventFilters().get(0)).getType();
                         if (eventType.startsWith("Message-")) {
                             eventType = eventType.substring(8);
-                            String messageType = (String) node.getMetaData("MessageType");
+                            String messageType = (String) node.getMetaData().get("MessageType");
                             xmlDump.append(
                                 "  <itemDefinition id=\"" + XmlDumper.replaceIllegalChars(eventType) + "Type\" structureRef=\"" + XmlDumper.replaceIllegalChars(messageType) + "\"/>" + EOL +
                                 "  <message id=\"" + XmlDumper.replaceIllegalChars(eventType) + "\" itemRef=\"" + XmlDumper.replaceIllegalChars(eventType) + "Type\" />" + EOL + EOL);
@@ -404,25 +437,70 @@
         }
     }
     
-    private void visitNodes(WorkflowProcess process, StringBuilder xmlDump, boolean includeMeta) {
+    private void visitNodes(WorkflowProcess process, StringBuilder xmlDump, int metaDataType) {
     	xmlDump.append("    <!-- nodes -->" + EOL);
         for (Node node: process.getNodes()) {
-            visitNode(node, xmlDump, includeMeta);
+            visitNode(node, xmlDump, metaDataType);
         }
         xmlDump.append(EOL);
     }
     
-    public void visitNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
+    public void visitNode(Node node, StringBuilder xmlDump, int metaDataType) {
      	Handler handler = semanticModule.getHandlerByClass(node.getClass());
         if (handler != null) {
-        	((AbstractNodeHandler) handler).writeNode((org.drools.workflow.core.Node) node, xmlDump, includeMeta);
+        	((AbstractNodeHandler) handler).writeNode((org.drools.workflow.core.Node) node, xmlDump, metaDataType);
         } else {
         	throw new IllegalArgumentException(
                 "Unknown node type: " + node);
         }
     }
     
-    private void visitConnections(Node[] nodes, StringBuilder xmlDump, boolean includeMeta) {
+    private void visitNodesDi(Node[] nodes, StringBuilder xmlDump) {
+    	for (Node node: nodes) {
+            Integer x = (Integer) node.getMetaData().get("x");
+            Integer y = (Integer) node.getMetaData().get("y");
+            Integer width = (Integer) node.getMetaData().get("width");
+            Integer height = (Integer) node.getMetaData().get("height");
+    		if (x == null) {
+    			x = 0;
+    		}
+    		if (y == null) {
+    			y = 0;
+    		}
+    		if (width == null) {
+    			width = 48;
+    		}
+    		if (height == null) {
+    			height = 48;
+    		}
+    		if (node instanceof StartNode || node instanceof EndNode || node instanceof EventNode || node instanceof FaultNode) {
+    			int offsetX = (int) ((width - 48) / 2);
+    			width = 48;
+    	        x = x + offsetX;
+    	        int offsetY = (int) ((height - 48) / 2);
+    	        y = y + offsetY;
+    	        height = 48;
+    		} else if (node instanceof Join || node instanceof Split) {
+    			int offsetX = (int) ((width - 48) / 2);
+    			width = 48;
+    	        x = x + offsetX;
+    	        int offsetY = (int) ((height - 48) / 2);
+    	        y = y + offsetY;
+    	        height = 48;
+    		}
+			xmlDump.append(
+				"      <bpmndi:BPMNShape bpmnElement=\"" + getUniqueNodeId(node) + "\" >" + EOL +
+				"        <dc:Bounds x=\"" + x + "\" " + "y=\"" + y + "\" " + 
+								   "width=\"" + width + "\" " + "height=\"" + height + "\" />" + EOL +
+			    "      </bpmndi:BPMNShape>" + EOL);
+			if (node instanceof CompositeNode) {
+				visitNodesDi(((CompositeNode) node).getNodes(), xmlDump);
+			}
+    	}
+
+    }
+    
+    private void visitConnections(Node[] nodes, StringBuilder xmlDump, int metaDataType) {
     	xmlDump.append("    <!-- connections -->" + EOL);
         List<Connection> connections = new ArrayList<Connection>();
         for (Node node: nodes) {
@@ -431,20 +509,20 @@
             }
         }
         for (Connection connection: connections) {
-            visitConnection(connection, xmlDump, includeMeta);
+            visitConnection(connection, xmlDump, metaDataType);
         }
         xmlDump.append(EOL);
     }
     
-    public void visitConnection(Connection connection, StringBuilder xmlDump, boolean includeMeta) {
+    public void visitConnection(Connection connection, StringBuilder xmlDump, int metaDataType) {
         xmlDump.append("    <sequenceFlow id=\"" +
     		getUniqueNodeId(connection.getFrom()) + "-" + 
     		getUniqueNodeId(connection.getTo()) + 
     		"\" sourceRef=\"" + getUniqueNodeId(connection.getFrom()) + "\" ");
         // TODO fromType, toType
         xmlDump.append("targetRef=\"" + getUniqueNodeId(connection.getTo()) + "\" ");
-        if (includeMeta) {
-            String bendpoints = (String) connection.getMetaData("bendpoints");
+        if (metaDataType == META_DATA_AS_NODE_PROPERTY) {
+            String bendpoints = (String) connection.getMetaData().get("bendpoints");
             if (bendpoints != null) {
                 xmlDump.append("g:bendpoints=\"" + bendpoints + "\" ");
             }
@@ -487,8 +565,75 @@
         }
     }
     
+    private void visitConnectionsDi(Node[] nodes, StringBuilder xmlDump) {
+        List<Connection> connections = new ArrayList<Connection>();
+        for (Node node: nodes) {
+            for (List<Connection> connectionList: node.getIncomingConnections().values()) {
+                connections.addAll(connectionList);
+            }
+            if (node instanceof CompositeNode) {
+            	visitConnectionsDi(((CompositeNode) node).getNodes(), xmlDump);
+            }
+        }
+        for (Connection connection: connections) {
+            String bendpoints = (String) connection.getMetaData().get("bendpoints");
+            xmlDump.append(
+        		"      <bpmndi:BPMNEdge bpmnElement=\"" + 
+        			getUniqueNodeId(connection.getFrom()) + "-" + getUniqueNodeId(connection.getTo()) + "\" >" + EOL);
+        	Integer x = (Integer) connection.getFrom().getMetaData().get("x");
+        	if (x == null) {
+        		x = 0;
+        	}
+        	Integer y = (Integer) connection.getFrom().getMetaData().get("y");
+        	if (y == null) {
+        		y = 0;
+        	}
+        	Integer width = (Integer) connection.getFrom().getMetaData().get("width");
+        	if (width == null) {
+        		width = 40;
+        	}
+        	Integer height = (Integer) connection.getFrom().getMetaData().get("height");
+        	if (height == null) {
+        		height = 40;
+        	}
+			xmlDump.append(
+				"        <di:waypoint x=\"" + (x + width/2) + "\" y=\"" + (y + height/2) + "\" />" + EOL);
+            if (bendpoints != null) {
+            	bendpoints = bendpoints.substring(1, bendpoints.length() - 1);
+            	String[] points = bendpoints.split(";");
+            	for (String point: points) {
+            		String[] coords = point.split(",");
+            		if (coords.length == 2) {
+            			xmlDump.append(
+        					"        <di:waypoint x=\"" + coords[0] + "\" y=\"" + coords[1] + "\" />" + EOL);
+            		}
+            	}
+            }
+        	x = (Integer) connection.getTo().getMetaData().get("x");
+        	if (x == null) {
+        		x = 0;
+        	}
+        	y = (Integer) connection.getTo().getMetaData().get("y");
+        	if (y == null) {
+        		y = 0;
+        	}
+        	width = (Integer) connection.getTo().getMetaData().get("width");
+        	if (width == null) {
+        		width = 40;
+        	}
+        	height = (Integer) connection.getTo().getMetaData().get("height");
+        	if (height == null) {
+        		height = 40;
+        	}
+			xmlDump.append(
+				"        <di:waypoint x=\"" + (x + width/2) + "\" y=\"" + (y + height/2) + "\" />" + EOL);
+        	xmlDump.append(
+        		"      </bpmndi:BPMNEdge>" + EOL);
+        }
+    }
+    
     public static String getUniqueNodeId(Node node) {
-    	String result = (String) node.getMetaData("UniqueId");
+    	String result = (String) node.getMetaData().get("UniqueId");
     	if (result != null) {
     		return result;
     	}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/di/BPMNPlaneHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/di/BPMNPlaneHandler.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/di/BPMNPlaneHandler.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -92,7 +92,7 @@
     
     private boolean processNodeInfo(NodeInfo nodeInfo, Node[] nodes) {
         for (Node node: nodes) {
-            String id = (String) node.getMetaData("UniqueId");
+            String id = (String) node.getMetaData().get("UniqueId");
             if (nodeInfo.getNodeRef().equals(id)) {
                 ((org.drools.workflow.core.Node) node).setMetaData("x", nodeInfo.getX());
                 ((org.drools.workflow.core.Node) node).setMetaData("y", nodeInfo.getY());
@@ -112,11 +112,11 @@
     
     private void postProcessNodeOffset(Node[] nodes, int xOffset, int yOffset) {
     	for (Node node: nodes) {
-    		Integer x = (Integer) node.getMetaData("x");
+    		Integer x = (Integer) node.getMetaData().get("x");
     		if (x != null) {
     			((org.drools.workflow.core.Node) node).setMetaData("x", x - xOffset);
     		}
-    		Integer y = (Integer) node.getMetaData("y");
+    		Integer y = (Integer) node.getMetaData().get("y");
     		if (y != null) {
     			((org.drools.workflow.core.Node) node).setMetaData("y", y - yOffset);
     		}
@@ -130,7 +130,7 @@
         for (Node node: nodes) {
         	for (List<Connection> connections: node.getOutgoingConnections().values()) {
         		for (Connection connection: connections) {
-                    String id = (String) connection.getMetaData("UniqueId");
+                    String id = (String) connection.getMetaData().get("UniqueId");
                     if (id != null && id.equals(connectionInfo.getElementRef())) {
                         ((ConnectionImpl) connection).setMetaData(
                             "bendpoints", connectionInfo.getBendpoints());

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xpath/XPathReturnValueEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xpath/XPathReturnValueEvaluator.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xpath/XPathReturnValueEvaluator.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -21,9 +21,6 @@
 //import javax.script.SimpleBindings;
 
 import org.drools.WorkingMemory;
-import org.drools.process.core.context.variable.VariableScope;
-import org.drools.process.instance.ProcessInstance;
-import org.drools.process.instance.context.variable.VariableScopeInstance;
 import org.drools.spi.ProcessContext;
 import org.drools.spi.ReturnValueEvaluator;
 
@@ -31,10 +28,10 @@
     
 //    private static XPathScriptEngineFactory FACTORY = new XPathScriptEngineFactory();
 
-    private String expression;
+//    private String expression;
     
     public void setExpression(String expression) {
-        this.expression = expression;
+//        this.expression = expression;
     }
 
     public Object evaluate(WorkingMemory workingMemory, ProcessContext processContext) throws Exception {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -30,7 +30,8 @@
     BundleActivator {
     private ServiceRegistration bpmn2ProcessReg;
 
-    public void start(BundleContext bc) throws Exception {
+    @SuppressWarnings("unchecked")
+	public void start(BundleContext bc) throws Exception {
         System.out.println( "registering BPMN2 process drools services" );
         this.bpmn2ProcessReg = bc.registerService( new String[]{ BPMN2ProcessProvider.class.getName(), Service.class.getName()},
                                                    new BPMN2ProcessProviderImpl(),

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMN20.xsd
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMN20.xsd	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMN20.xsd	2010-08-12 15:13:30 UTC (rev 34673)
@@ -2,10 +2,10 @@
 <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"	
 	xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/BPMNDI"
+	xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
 	targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">
 
-	<xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/BPMNDI" schemaLocation="BPMNDI.xsd"/>
+	<xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/DI" schemaLocation="BPMNDI.xsd"/>
 	<xsd:include schemaLocation="Semantic.xsd"/>
 
 	<xsd:element name="definitions" type="tDefinitions"/>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMNDI.xsd
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMNDI.xsd	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/BPMNDI.xsd	2010-08-12 15:13:30 UTC (rev 34673)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/BPMNDI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/BPMN/20100524/BPMNDI"  elementFormDefault="qualified" attributeFormDefault="unqualified">
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/BPMN/20100524/DI"  elementFormDefault="qualified" attributeFormDefault="unqualified">
 
 	<xsd:import namespace="http://www.omg.org/spec/DD/20100524/DC" schemaLocation="DC.xsd" />
 	<xsd:import namespace="http://www.omg.org/spec/DD/20100524/DI" schemaLocation="DI.xsd" />

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/Semantic.xsd
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/Semantic.xsd	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/resources/META-INF/Semantic.xsd	2010-08-12 15:13:30 UTC (rev 34673)
@@ -151,8 +151,8 @@
 		</xsd:complexContent>
 	</xsd:complexType>
 	
-	<xsd:element name="callChoreographyActivity" type="tCallChoreographyActivity" substitutionGroup="flowElement"/>
-	<xsd:complexType name="tCallChoreographyActivity">
+	<xsd:element name="callChoreography" type="tCallChoreography" substitutionGroup="flowElement"/>
+	<xsd:complexType name="tCallChoreography">
 		<xsd:complexContent>
 			<xsd:extension base="tChoreographyActivity">
 				<xsd:sequence>
@@ -258,7 +258,7 @@
 		<xsd:complexContent>
 			<xsd:extension base="tChoreographyActivity">
 				<xsd:sequence>
-					<xsd:element name="messageFlowRef" type="xsd:QName" maxOccurs="unbounded"/>
+					<xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="1" maxOccurs="2"/>
 				</xsd:sequence>
 			</xsd:extension>
 		</xsd:complexContent>
@@ -342,8 +342,8 @@
 	<xsd:complexType name="tConversationAssociation">
 		<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:attribute name="innerConversationNodeRef" type="xsd:QName" use="required"/>
+				<xsd:attribute name="outerConversationNodeRef" type="xsd:QName" use="required"/>
 			</xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>
@@ -1530,7 +1530,7 @@
 	<xsd:complexType name="tTransaction">
 		<xsd:complexContent>
 			<xsd:extension base="tSubProcess">
-				<xsd:attribute name="method" type="tTransactionMethod" default="Compensate"/>
+				<xsd:attribute name="method" type="tTransactionMethod" default="##Compensate"/>
 			</xsd:extension>
 		</xsd:complexContent>
 	</xsd:complexType>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2XMLTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2XMLTest.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2XMLTest.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -49,7 +49,7 @@
 			String original = slurp(BPMN2XMLTest.class.getResourceAsStream("/" + processName));
 			RuleFlowProcess p = (RuleFlowProcess)
 		    	processReader.read(BPMN2XMLTest.class.getResourceAsStream("/" + processName));
-			String result = XmlBPMNProcessDumper.INSTANCE.dump(p);
+			String result = XmlBPMNProcessDumper.INSTANCE.dump(p, XmlBPMNProcessDumper.META_DATA_AS_NODE_PROPERTY);
 			System.out.println(original);
 			System.out.println("---------------------------------------------------------------");
 			System.out.println(result);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/Person.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/Person.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/Person.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -20,7 +20,9 @@
 
 public class Person implements Serializable {
     
-    private String name;
+	private static final long serialVersionUID = 5L;
+	
+	private String name;
 
     public String getName() {
         return name;

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java	2010-08-12 15:13:30 UTC (rev 34673)
@@ -44,7 +44,13 @@
 import org.drools.builder.ResourceType;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.compiler.xml.XmlProcessReader;
+import org.drools.event.process.ProcessCompletedEvent;
+import org.drools.event.process.ProcessEventListener;
+import org.drools.event.process.ProcessNodeLeftEvent;
+import org.drools.event.process.ProcessNodeTriggeredEvent;
+import org.drools.event.process.ProcessStartedEvent;
 import org.drools.io.ResourceFactory;
+import org.drools.logger.KnowledgeRuntimeLoggerFactory;
 import org.drools.persistence.jpa.JPAKnowledgeService;
 import org.drools.process.instance.impl.demo.DoNothingWorkItemHandler;
 import org.drools.process.instance.impl.demo.SystemOutWorkItemHandler;
@@ -126,6 +132,13 @@
 		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
 	}
 
+    public void testScriptTask() throws Exception {
+		KnowledgeBase kbase = createKnowledgeBase("BPMN2-ScriptTask.xml");
+		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+		ProcessInstance processInstance = ksession.startProcess("ScriptTask");
+		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+	}
+
     public void testDataObject() throws Exception {
         KnowledgeBase kbase = createKnowledgeBase("BPMN2-DataObject.xml");
 		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
@@ -182,6 +195,30 @@
         assertProcessInstanceCompleted(processInstance.getId(), ksession);
     }
 
+    public void testLane() throws Exception {
+        KnowledgeBase kbase = createKnowledgeBase("BPMN2-Lane.xml");
+		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+        TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+        ProcessInstance processInstance = ksession.startProcess("UserTask");
+        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+        ksession = restoreSession(ksession);
+        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+        WorkItem workItem = workItemHandler.getWorkItem();
+        assertNotNull(workItem);
+        assertEquals("john", workItem.getParameter("ActorId"));
+        Map<String, Object> results = new HashMap<String, Object>();
+        results.put("ActorId", "mary");
+        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), results);
+        ksession = restoreSession(ksession);
+        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+        workItem = workItemHandler.getWorkItem();
+        assertNotNull(workItem);
+        assertEquals("mary", workItem.getParameter("ActorId"));
+        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+        assertProcessInstanceCompleted(processInstance.getId(), ksession);
+    }
+
 	public void testExclusiveSplit() throws Exception {
 		KnowledgeBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplit.xml");
 		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
@@ -731,17 +768,60 @@
     public void testTimerStart() throws Exception {
         KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerStart.xml");
 		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Thread.sleep(600);
+		final List<Long> list = new ArrayList<Long>();
+		ksession.addEventListener(new ProcessEventListener() {
+			public void beforeProcessStarted(ProcessStartedEvent event) {
+			}
+			public void beforeProcessCompleted(ProcessCompletedEvent event) {
+			}
+			public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
+			}
+			public void beforeNodeLeft(ProcessNodeLeftEvent event) {
+			}
+			public void afterProcessStarted(ProcessStartedEvent event) {
+				list.add(event.getProcessInstance().getId());
+			}
+			public void afterProcessCompleted(ProcessCompletedEvent event) {
+			}
+			public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
+			}
+			public void afterNodeLeft(ProcessNodeLeftEvent event) {
+			}
+		});
+		Thread.sleep(250);
+		assertEquals(0, list.size());
         for (int i = 0; i < 5; i++) {
-//	        ksession.fireAllRules();
+	        ksession.fireAllRules();
 	        Thread.sleep(500);
         }
+        assertEquals(5, list.size());
     }
     
     public void testSignalStart() throws Exception {
         KnowledgeBase kbase = createKnowledgeBase("BPMN2-SignalStart.xml");
 		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+		final List<Long> list = new ArrayList<Long>();
+		ksession.addEventListener(new ProcessEventListener() {
+			public void beforeProcessStarted(ProcessStartedEvent event) {
+			}
+			public void beforeProcessCompleted(ProcessCompletedEvent event) {
+			}
+			public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
+			}
+			public void beforeNodeLeft(ProcessNodeLeftEvent event) {
+			}
+			public void afterProcessStarted(ProcessStartedEvent event) {
+				list.add(event.getProcessInstance().getId());
+			}
+			public void afterProcessCompleted(ProcessCompletedEvent event) {
+			}
+			public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
+			}
+			public void afterNodeLeft(ProcessNodeLeftEvent event) {
+			}
+		});
         ksession.signalEvent("MyStartSignal", "NewValue");
+		assertEquals(1, list.size());
     }
     
     public void testSignalEnd() throws Exception {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-CompositeProcessWithDIGraphical.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-CompositeProcessWithDIGraphical.xml	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-CompositeProcessWithDIGraphical.xml	2010-08-12 15:13:30 UTC (rev 34673)
@@ -6,7 +6,7 @@
              xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
              xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
              xs:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
-             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/BPMNDI"
+             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
              xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
              xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
              xmlns:g="http://www.jboss.org/drools/flow/gpd"

Added: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-Lane.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-Lane.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-Lane.xml	2010-08-12 15:13:30 UTC (rev 34673)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions id="Definition"
+             targetNamespace="http://www.example.org/MinimalExample"
+             typeLanguage="http://www.java.com/javaTypes"
+             expressionLanguage="http://www.mvel.org/2.0"
+             xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+             xs:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
+             xmlns:tns="http://www.example.org/MinimalExample">
+
+  <process id="UserTask" name="User Task">
+    <laneSet>
+      <lane name="MyLane">
+        <flowNodeRef>_2</flowNodeRef>
+        <flowNodeRef>_3</flowNodeRef>
+      </lane>
+    </laneSet>
+    <startEvent id="_1" name="StartProcess"/>
+    <sequenceFlow sourceRef="_1" targetRef="_2"/>
+    <userTask id="_2" name="Hello">
+      <potentialOwner>
+        <resourceAssignmentExpression>
+          <formalExpression>john</formalExpression>
+        </resourceAssignmentExpression>
+      </potentialOwner>
+    </userTask>
+    <sequenceFlow sourceRef="_2" targetRef="_3"/>
+    <userTask id="_3" name="Goodbye"/>
+    <sequenceFlow sourceRef="_3" targetRef="_4"/>
+    <endEvent id="_4" name="EndProcess">
+      <terminateEventDefinition/>
+    </endEvent>
+  </process>
+</definitions>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithDIGraphical.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithDIGraphical.xml	2010-08-12 14:43:17 UTC (rev 34672)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithDIGraphical.xml	2010-08-12 15:13:30 UTC (rev 34673)
@@ -6,10 +6,9 @@
              xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
              xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
              xs:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
-             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/BPMNDI"
+             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
              xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
              xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
-             xmlns:g="http://www.jboss.org/drools/flow/gpd"
              xmlns:tns="http://www.example.org/MinimalExample">
 
   <process id="Minimal" name="Minimal Process">

Added: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ScriptTask.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ScriptTask.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ScriptTask.xml	2010-08-12 15:13:30 UTC (rev 34673)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions id="Definition"
+             targetNamespace="http://www.example.org/MinimalExample"
+             typeLanguage="http://www.java.com/javaTypes"
+             expressionLanguage="http://www.mvel.org/2.0"
+             xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+             xs:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
+             xmlns:tns="http://www.jboss.org/drools">
+
+  <process id="ScriptTask" name="ScriptTask Process" tns:packageName="com.sample">
+    <startEvent id="_1" name="StartProcess"/>
+    <sequenceFlow sourceRef="_1" targetRef="_2"/>
+    <scriptTask id="_2" name="Hello" scriptFormat="http://www.java.com/java">
+      <script>System.out.println("Hello World");</script>
+    </scriptTask>
+    <sequenceFlow sourceRef="_2" targetRef="_3"/>
+    <endEvent id="_3" name="EndProcess">
+      <terminateEventDefinition/>
+    </endEvent>
+  </process>
+</definitions>



More information about the jboss-svn-commits mailing list