[jboss-svn-commits] JBL Code SVN: r34676 - labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 12 11:51:28 EDT 2010


Author: KrisVerlaenen
Date: 2010-08-12 11:51:28 -0400 (Thu, 12 Aug 2010)
New Revision: 34676

Modified:
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
Log:
 - commenting out BPMN2 tests for now

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 15:29:50 UTC (rev 34675)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java	2010-08-12 15:51:28 UTC (rev 34676)
@@ -111,769 +111,769 @@
 		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
 	}
 
-	public void testMinimalProcessWithGraphical() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MinimalProcessWithGraphical.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ProcessInstance processInstance = ksession.startProcess("Minimal");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-	public void testMinimalProcessWithDIGraphical() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MinimalProcessWithDIGraphical.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ProcessInstance processInstance = ksession.startProcess("Minimal");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-	public void testCompositeProcessWithDIGraphical() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-CompositeProcessWithDIGraphical.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ProcessInstance processInstance = ksession.startProcess("Composite");
-		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);
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("employee", "UserId-12345");
-        ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-    }
-
-	public void testEvaluationProcess() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler());
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("employee", "UserId-12345");
-		ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-	public void testEvaluationProcess2() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess2.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("employee", "UserId-12345");
-		ProcessInstance processInstance = ksession.startProcess("com.sample.evaluation", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-	public void testEvaluationProcess3() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess3.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler());
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("employee", "john2");
-		ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-	
-    public void testUserTask() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-UserTask.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);
-        WorkItem workItem = workItemHandler.getWorkItem();
-        assertNotNull(workItem);
-        assertEquals("john", workItem.getParameter("ActorId"));
-        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
-        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);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("x", "First");
-		params.put("y", "Second");
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-	
-	public void testExclusiveSplitDefault() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitDefault.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("x", "NotFirst");
-		params.put("y", "Second");
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-	
-    public void testInclusiveSplit() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-InclusiveSplit.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", 15);
-        ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-    }
-    
-    public void testInclusiveSplitDefault() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-InclusiveSplitDefault.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", -5);
-        ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-    }
-    
-//	public void testExclusiveSplitXPath() throws Exception {
-//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitXPath.xml");
-//        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-//        ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
-//        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder()
-//            .parse(new ByteArrayInputStream(
-//                "<myDocument><chapter1>BlaBla</chapter1><chapter2>MoreBlaBla</chapter2></myDocument>".getBytes()));
+//	public void testMinimalProcessWithGraphical() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MinimalProcessWithGraphical.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ProcessInstance processInstance = ksession.startProcess("Minimal");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//	public void testMinimalProcessWithDIGraphical() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MinimalProcessWithDIGraphical.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ProcessInstance processInstance = ksession.startProcess("Minimal");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//	public void testCompositeProcessWithDIGraphical() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-CompositeProcessWithDIGraphical.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ProcessInstance processInstance = ksession.startProcess("Composite");
+//		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);
 //        Map<String, Object> params = new HashMap<String, Object>();
-//        params.put("x", document);
-//        params.put("y", "SomeString");
+//        params.put("employee", "UserId-12345");
+//        ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//    }
+//
+//	public void testEvaluationProcess() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler());
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("employee", "UserId-12345");
+//		ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//	public void testEvaluationProcess2() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess2.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("employee", "UserId-12345");
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.evaluation", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//	public void testEvaluationProcess3() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess3.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler());
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("employee", "john2");
+//		ProcessInstance processInstance = ksession.startProcess("Evaluation", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//	
+//    public void testUserTask() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-UserTask.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);
+//        WorkItem workItem = workItemHandler.getWorkItem();
+//        assertNotNull(workItem);
+//        assertEquals("john", workItem.getParameter("ActorId"));
+//        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+//        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);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("x", "First");
+//		params.put("y", "Second");
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//	
+//	public void testExclusiveSplitDefault() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitDefault.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("x", "NotFirst");
+//		params.put("y", "Second");
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//	
+//    public void testInclusiveSplit() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-InclusiveSplit.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", 15);
 //        ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
 //        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
 //    }
-
-	public void testEventBasedSplit() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-		// No
-		processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.signalEvent("No", "NoValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-	}
-	
-	public void testEventBasedSplitBefore() throws Exception {
-		// signaling before the split is reached should have no effect
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		// No
-		processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-        ksession.signalEvent("No", "NoValue", processInstance.getId());
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-	}
-	
-	public void testEventBasedSplitAfter() throws Exception {
-		// signaling the other alternative after one has been selected should have no effect
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
-        // No
-		ksession.signalEvent("No", "NoValue", processInstance.getId());
-	}
-	
-	public void testEventBasedSplit2() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit2.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-		Thread.sleep(800);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.fireAllRules();
-        ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        // Timer
-		processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		Thread.sleep(800);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.fireAllRules();
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-	}
-	
-	public void testEventBasedSplit3() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit3.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		Person jack = new Person();
-		jack.setName("Jack");
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-		// Condition
-		processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.insert(jack);
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-	}
-	
-	public void testEventBasedSplit4() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit4.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ksession.signalEvent("Message-YesMessage", "YesValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		// No
-		processInstance = ksession.startProcess("com.sample.test");
-		ksession.signalEvent("Message-NoMessage", "NoValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-	}
-	
-	public void testEventBasedSplit5() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit5.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-        ReceiveTaskHandler receiveTaskHandler = new ReceiveTaskHandler(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
-		// Yes
-		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		receiveTaskHandler.setKnowledgeRuntime(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
-        receiveTaskHandler.messageReceived("YesMessage", "YesValue");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-        receiveTaskHandler.messageReceived("NoMessage", "NoValue");
-		ksession = restoreSession(ksession);
-		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
-		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
-		receiveTaskHandler.setKnowledgeRuntime(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
-		// No
-		processInstance = ksession.startProcess("com.sample.test");
-		receiveTaskHandler.messageReceived("NoMessage", "NoValue");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-		receiveTaskHandler.messageReceived("YesMessage", "YesValue");
-	}
-	
-	public void testCallActivity() throws Exception {
-		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
-		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivity.xml"), ResourceType.BPMN2);
-		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivitySubProcess.xml"), ResourceType.BPMN2);
-		if (!kbuilder.getErrors().isEmpty()) {
-			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
-				System.err.println(error);
-			}
-			throw new IllegalArgumentException("Errors while parsing knowledge base");
-		}
-		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
-		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("x", "oldValue");
-		ProcessInstance processInstance = ksession.startProcess("ParentProcess", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-		assertEquals("new value", ((WorkflowProcessInstance) processInstance).getVariable("y"));
-	}
-
-	public void testSubProcess() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-SubProcess.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ProcessInstance processInstance = ksession.startProcess("SubProcess");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-	public void testMultiInstanceLoopCharacteristicsProcess() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MultiInstanceLoopCharacteristicsProcess.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		Map<String, Object> params = new HashMap<String, Object>();
-		List<String> myList = new ArrayList<String>();
-		myList.add("First Item");
-		myList.add("Second Item");
-		params.put("list", myList);
-		ProcessInstance processInstance = ksession.startProcess("MultiInstanceLoopCharacteristicsProcess", params);
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-	}
-
-    public void testEscalationBoundaryEvent() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationBoundaryEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("EscalationBoundaryEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-    }
-
-    public void testEscalationBoundaryEventInterrupting() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationBoundaryEventInterrupting.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("EscalationBoundaryEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
-        // TODO: check for cancellation of task
-    }
-
-    public void testErrorBoundaryEvent() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ErrorBoundaryEventInterrupting.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("ErrorBoundaryEvent");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testTimerBoundaryEvent() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerBoundaryEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("TimerBoundaryEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        Thread.sleep(1000);
-        ksession = restoreSession(ksession);
-        System.out.println("Firing timer");
-        ksession.fireAllRules();
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testTimerBoundaryEventInterrupting() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerBoundaryEventInterrupting.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("TimerBoundaryEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        Thread.sleep(1000);
-        ksession = restoreSession(ksession);
-        System.out.println("Firing timer");
-        ksession.fireAllRules();
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testAdHocSubProcess() throws Exception {
-		KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
-		((PackageBuilderConfiguration) conf).initSemanticModules();
-		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
-		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
-        ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
-		XmlProcessReader processReader = new XmlProcessReader(
-	        ((PackageBuilderConfiguration) conf).getSemanticModules());
-		RuleFlowProcess p = (RuleFlowProcess)
-		    processReader.read(SimpleBPMNProcessTest.class.getResourceAsStream("/BPMN2-AdHocSubProcess.xml"));
-		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
-//		System.out.println(XmlBPMNProcessDumper.INSTANCE.dump(p));
-		kbuilder.add(ResourceFactory.newReaderResource(
-            new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.BPMN2);
-		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-AdHocSubProcess.drl"), ResourceType.DRL);
-		if (!kbuilder.getErrors().isEmpty()) {
-			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
-				System.err.println(error);
-			}
-			throw new IllegalArgumentException("Errors while parsing knowledge base");
-		}
-		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
-		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        WorkItem workItem = workItemHandler.getWorkItem();
-        assertNull(workItem);
-        ksession = restoreSession(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ksession.fireAllRules();
-        System.out.println("Signaling Hello2");
-        ksession.signalEvent("Hello2", null, processInstance.getId());
-        workItem = workItemHandler.getWorkItem();
-        assertNotNull(workItem);
-        ksession = restoreSession(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
-    }
-
-    public void testAdHocSubProcessAutoComplete() throws Exception {
-		KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
-		((PackageBuilderConfiguration) conf).initSemanticModules();
-		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
-		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
-        ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
-		XmlProcessReader processReader = new XmlProcessReader(
-	        ((PackageBuilderConfiguration) conf).getSemanticModules());
-		RuleFlowProcess p = (RuleFlowProcess)
-		    processReader.read(SimpleBPMNProcessTest.class.getResourceAsStream("/BPMN2-AdHocSubProcessAutoComplete.xml"));
-		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
-//		System.out.println(XmlBPMNProcessDumper.INSTANCE.dump(p));
-		kbuilder.add(ResourceFactory.newReaderResource(
-            new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.BPMN2);
-		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-AdHocSubProcess.drl"), ResourceType.DRL);
-		if (!kbuilder.getErrors().isEmpty()) {
-			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
-				System.err.println(error);
-			}
-			throw new IllegalArgumentException("Errors while parsing knowledge base");
-		}
-		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
-		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        WorkItem workItem = workItemHandler.getWorkItem();
-        assertNull(workItem);
-        ksession = restoreSession(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ksession.fireAllRules();
-        workItem = workItemHandler.getWorkItem();
-        assertNotNull(workItem);
-        ksession = restoreSession(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
-        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-    
-    public void testIntermediateCatchEventSignal() throws Exception {
-		KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
-		ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
-		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-		ksession = restoreSession(ksession);
-        // now signal process instance
-		ksession.signalEvent("MyMessage", "SomeValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-	}
-
-    public void testIntermediateCatchEventMessage() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventMessage.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        ksession = restoreSession(ksession);
-        // now signal process instance
-        ksession.signalEvent("Message-HelloMessage", "SomeValue", processInstance.getId());
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testIntermediateCatchEventTimer() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventTimer.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
-        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        // now wait for 1 second for timer to trigger
-        Thread.sleep(1000);
-        ksession = restoreSession(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
-        ksession.fireAllRules();
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testIntermediateCatchEventCondition() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventCondition.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
-        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
-        ksession = restoreSession(ksession);
-        // now activate condition
-        Person person = new Person();
-        person.setName("Jack");
-        ksession.insert(person);
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testErrorEndEventProcess() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ErrorEndEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("ErrorEndEvent");
-		assertProcessInstanceAborted(processInstance.getId(), ksession);
-    }
-
-    public void testEscalationEndEventProcess() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationEndEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("EscalationEndEvent");
-		assertProcessInstanceAborted(processInstance.getId(), ksession);
-    }
-
-    public void testEscalationIntermediateThrowEventProcess() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventEscalation.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("EscalationIntermediateThrowEvent");
-		assertProcessInstanceAborted(processInstance.getId(), ksession);
-    }
-
-    public void testCompensateIntermediateThrowEventProcess() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventCompensate.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("CompensateIntermediateThrowEvent");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testCompensateEndEventProcess() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-CompensateEndEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("CompensateEndEvent");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-//    public void testGraphicalInformation() throws Exception {
-//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-OryxExportedExample.xml");
+//    
+//    public void testInclusiveSplitDefault() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-InclusiveSplitDefault.xml");
 //		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
-//        ProcessInstance processInstance = ksession.startProcess("testProzess");
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", -5);
+//        ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
 //        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
 //    }
-
-    public void testServiceTask() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ServiceProcess.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler());
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("s", "john");
-        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
-            ksession.startProcess("ServiceProcess", params);
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-        assertEquals("Hello john!", processInstance.getVariable("s"));
-    }
-
-    public void testSendTask() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-SendTask.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("s", "john");
-        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
-            ksession.startProcess("SendTask", params);
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testReceiveTask() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ReceiveTask.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ReceiveTaskHandler receiveTaskHandler = new ReceiveTaskHandler(ksession);
-        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
-        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
-            ksession.startProcess("ReceiveTask");
-        assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
-        ksession = restoreSession(ksession);
-        receiveTaskHandler.messageReceived("HelloMessage", "Hello john!");
-		assertProcessInstanceCompleted(processInstance.getId(), ksession);
-    }
-
-    public void testConditionalStart() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ConditionalStart.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Person person = new Person();
-        person.setName("jack");
-        ksession.insert(person);
-        ksession.fireAllRules();
-        person = new Person();
-        person.setName("john");
-        ksession.insert(person);
-        ksession.fireAllRules();
-    }
+//    
+////	public void testExclusiveSplitXPath() throws Exception {
+////        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitXPath.xml");
+////        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+////        ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler());
+////        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder()
+////            .parse(new ByteArrayInputStream(
+////                "<myDocument><chapter1>BlaBla</chapter1><chapter2>MoreBlaBla</chapter2></myDocument>".getBytes()));
+////        Map<String, Object> params = new HashMap<String, Object>();
+////        params.put("x", document);
+////        params.put("y", "SomeString");
+////        ProcessInstance processInstance = ksession.startProcess("com.sample.test", params);
+////        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+////    }
+//
+//	public void testEventBasedSplit() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//		// No
+//		processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.signalEvent("No", "NoValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//	}
+//	
+//	public void testEventBasedSplitBefore() throws Exception {
+//		// signaling before the split is reached should have no effect
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		// No
+//		processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new DoNothingWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//        ksession.signalEvent("No", "NoValue", processInstance.getId());
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//	}
+//	
+//	public void testEventBasedSplitAfter() throws Exception {
+//		// signaling the other alternative after one has been selected should have no effect
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new DoNothingWorkItemHandler());
+//        // No
+//		ksession.signalEvent("No", "NoValue", processInstance.getId());
+//	}
+//	
+//	public void testEventBasedSplit2() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit2.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//		Thread.sleep(800);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.fireAllRules();
+//        ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        // Timer
+//		processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		Thread.sleep(800);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.fireAllRules();
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//	}
+//	
+//	public void testEventBasedSplit3() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit3.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		Person jack = new Person();
+//		jack.setName("Jack");
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.signalEvent("Yes", "YesValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//		// Condition
+//		processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.insert(jack);
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//	}
+//	
+//	public void testEventBasedSplit4() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit4.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ksession.signalEvent("Message-YesMessage", "YesValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		// No
+//		processInstance = ksession.startProcess("com.sample.test");
+//		ksession.signalEvent("Message-NoMessage", "NoValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//	}
+//	
+//	public void testEventBasedSplit5() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-EventBasedSplit5.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//        ReceiveTaskHandler receiveTaskHandler = new ReceiveTaskHandler(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
+//		// Yes
+//		ProcessInstance processInstance = ksession.startProcess("com.sample.test");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		receiveTaskHandler.setKnowledgeRuntime(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
+//        receiveTaskHandler.messageReceived("YesMessage", "YesValue");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//        receiveTaskHandler.messageReceived("NoMessage", "NoValue");
+//		ksession = restoreSession(ksession);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email1", new SystemOutWorkItemHandler());
+//		ksession.getWorkItemManager().registerWorkItemHandler("Email2", new SystemOutWorkItemHandler());
+//		receiveTaskHandler.setKnowledgeRuntime(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
+//		// No
+//		processInstance = ksession.startProcess("com.sample.test");
+//		receiveTaskHandler.messageReceived("NoMessage", "NoValue");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//		receiveTaskHandler.messageReceived("YesMessage", "YesValue");
+//	}
+//	
+//	public void testCallActivity() throws Exception {
+//		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+//		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivity.xml"), ResourceType.BPMN2);
+//		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-CallActivitySubProcess.xml"), ResourceType.BPMN2);
+//		if (!kbuilder.getErrors().isEmpty()) {
+//			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
+//				System.err.println(error);
+//			}
+//			throw new IllegalArgumentException("Errors while parsing knowledge base");
+//		}
+//		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+//		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		params.put("x", "oldValue");
+//		ProcessInstance processInstance = ksession.startProcess("ParentProcess", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//		assertEquals("new value", ((WorkflowProcessInstance) processInstance).getVariable("y"));
+//	}
+//
+//	public void testSubProcess() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-SubProcess.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ProcessInstance processInstance = ksession.startProcess("SubProcess");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//	public void testMultiInstanceLoopCharacteristicsProcess() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-MultiInstanceLoopCharacteristicsProcess.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		Map<String, Object> params = new HashMap<String, Object>();
+//		List<String> myList = new ArrayList<String>();
+//		myList.add("First Item");
+//		myList.add("Second Item");
+//		params.put("list", myList);
+//		ProcessInstance processInstance = ksession.startProcess("MultiInstanceLoopCharacteristicsProcess", params);
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//	}
+//
+//    public void testEscalationBoundaryEvent() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationBoundaryEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("EscalationBoundaryEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//    }
+//
+//    public void testEscalationBoundaryEventInterrupting() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationBoundaryEventInterrupting.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("EscalationBoundaryEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+//        // TODO: check for cancellation of task
+//    }
+//
+//    public void testErrorBoundaryEvent() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ErrorBoundaryEventInterrupting.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("ErrorBoundaryEvent");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testTimerBoundaryEvent() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerBoundaryEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("TimerBoundaryEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        Thread.sleep(1000);
+//        ksession = restoreSession(ksession);
+//        System.out.println("Firing timer");
+//        ksession.fireAllRules();
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testTimerBoundaryEventInterrupting() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerBoundaryEventInterrupting.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("TimerBoundaryEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        Thread.sleep(1000);
+//        ksession = restoreSession(ksession);
+//        System.out.println("Firing timer");
+//        ksession.fireAllRules();
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testAdHocSubProcess() throws Exception {
+//		KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+//		((PackageBuilderConfiguration) conf).initSemanticModules();
+//		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
+//		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
+//        ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
+//		XmlProcessReader processReader = new XmlProcessReader(
+//	        ((PackageBuilderConfiguration) conf).getSemanticModules());
+//		RuleFlowProcess p = (RuleFlowProcess)
+//		    processReader.read(SimpleBPMNProcessTest.class.getResourceAsStream("/BPMN2-AdHocSubProcess.xml"));
+//		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
+////		System.out.println(XmlBPMNProcessDumper.INSTANCE.dump(p));
+//		kbuilder.add(ResourceFactory.newReaderResource(
+//            new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.BPMN2);
+//		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-AdHocSubProcess.drl"), ResourceType.DRL);
+//		if (!kbuilder.getErrors().isEmpty()) {
+//			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
+//				System.err.println(error);
+//			}
+//			throw new IllegalArgumentException("Errors while parsing knowledge base");
+//		}
+//		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+//		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        WorkItem workItem = workItemHandler.getWorkItem();
+//        assertNull(workItem);
+//        ksession = restoreSession(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ksession.fireAllRules();
+//        System.out.println("Signaling Hello2");
+//        ksession.signalEvent("Hello2", null, processInstance.getId());
+//        workItem = workItemHandler.getWorkItem();
+//        assertNotNull(workItem);
+//        ksession = restoreSession(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+//    }
+//
+//    public void testAdHocSubProcessAutoComplete() throws Exception {
+//		KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+//		((PackageBuilderConfiguration) conf).initSemanticModules();
+//		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
+//		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
+//        ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
+//		XmlProcessReader processReader = new XmlProcessReader(
+//	        ((PackageBuilderConfiguration) conf).getSemanticModules());
+//		RuleFlowProcess p = (RuleFlowProcess)
+//		    processReader.read(SimpleBPMNProcessTest.class.getResourceAsStream("/BPMN2-AdHocSubProcessAutoComplete.xml"));
+//		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
+////		System.out.println(XmlBPMNProcessDumper.INSTANCE.dump(p));
+//		kbuilder.add(ResourceFactory.newReaderResource(
+//            new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.BPMN2);
+//		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-AdHocSubProcess.drl"), ResourceType.DRL);
+//		if (!kbuilder.getErrors().isEmpty()) {
+//			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
+//				System.err.println(error);
+//			}
+//			throw new IllegalArgumentException("Errors while parsing knowledge base");
+//		}
+//		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+//		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        WorkItem workItem = workItemHandler.getWorkItem();
+//        assertNull(workItem);
+//        ksession = restoreSession(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ksession.fireAllRules();
+//        workItem = workItemHandler.getWorkItem();
+//        assertNotNull(workItem);
+//        ksession = restoreSession(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
+//        ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//    
+//    public void testIntermediateCatchEventSignal() throws Exception {
+//		KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
+//		ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
+//		assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//		ksession = restoreSession(ksession);
+//        // now signal process instance
+//		ksession.signalEvent("MyMessage", "SomeValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//	}
+//
+//    public void testIntermediateCatchEventMessage() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventMessage.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        ksession = restoreSession(ksession);
+//        // now signal process instance
+//        ksession.signalEvent("Message-HelloMessage", "SomeValue", processInstance.getId());
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testIntermediateCatchEventTimer() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventTimer.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
+//        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        // now wait for 1 second for timer to trigger
+//        Thread.sleep(1000);
+//        ksession = restoreSession(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler());
+//        ksession.fireAllRules();
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testIntermediateCatchEventCondition() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventCondition.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent");
+//        assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
+//        ksession = restoreSession(ksession);
+//        // now activate condition
+//        Person person = new Person();
+//        person.setName("Jack");
+//        ksession.insert(person);
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testErrorEndEventProcess() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ErrorEndEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("ErrorEndEvent");
+//		assertProcessInstanceAborted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testEscalationEndEventProcess() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-EscalationEndEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("EscalationEndEvent");
+//		assertProcessInstanceAborted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testEscalationIntermediateThrowEventProcess() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventEscalation.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("EscalationIntermediateThrowEvent");
+//		assertProcessInstanceAborted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testCompensateIntermediateThrowEventProcess() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventCompensate.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("CompensateIntermediateThrowEvent");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testCompensateEndEventProcess() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-CompensateEndEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("CompensateEndEvent");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+////    public void testGraphicalInformation() throws Exception {
+////        KnowledgeBase kbase = createKnowledgeBase("BPMN2-OryxExportedExample.xml");
+////		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+////        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+////        ProcessInstance processInstance = ksession.startProcess("testProzess");
+////        assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
+////    }
+//
+//    public void testServiceTask() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ServiceProcess.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler());
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("s", "john");
+//        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
+//            ksession.startProcess("ServiceProcess", params);
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//        assertEquals("Hello john!", processInstance.getVariable("s"));
+//    }
+//
+//    public void testSendTask() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-SendTask.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("s", "john");
+//        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
+//            ksession.startProcess("SendTask", params);
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testReceiveTask() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ReceiveTask.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ReceiveTaskHandler receiveTaskHandler = new ReceiveTaskHandler(ksession);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
+//        WorkflowProcessInstance processInstance = (WorkflowProcessInstance)
+//            ksession.startProcess("ReceiveTask");
+//        assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+//        ksession = restoreSession(ksession);
+//        receiveTaskHandler.messageReceived("HelloMessage", "Hello john!");
+//		assertProcessInstanceCompleted(processInstance.getId(), ksession);
+//    }
+//
+//    public void testConditionalStart() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-ConditionalStart.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        Person person = new Person();
+//        person.setName("jack");
+//        ksession.insert(person);
+//        ksession.fireAllRules();
+//        person = new Person();
+//        person.setName("john");
+//        ksession.insert(person);
+//        ksession.fireAllRules();
+//    }
+//    
+//    public void testTimerStart() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerStart.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) {
+//			}
+//		});
+//		Thread.sleep(250);
+//		assertEquals(0, list.size());
+//        for (int i = 0; i < 5; i++) {
+//	        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 {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-SignalEndEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", "MyValue");
+//        ksession.startProcess("SignalEndEvent", params);
+//    }
+//    
+//    public void testMessageStart() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-MessageStart.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.signalEvent("Message-HelloMessage", "NewValue");
+//    }
+//    
+//    public void testMessageEnd() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-MessageEndEvent.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", "MyValue");
+//        ProcessInstance processInstance = ksession.startProcess("MessageEndEvent", params);
+//        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+//    }
+//    
+//    public void testMessageIntermediateThrow() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventMessage.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", "MyValue");
+//        ProcessInstance processInstance = ksession.startProcess("MessageIntermediateEvent", params);
+//        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+//    }
+//    
+//    public void testSignalIntermediateThrow() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventSignal.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        Map<String, Object> params = new HashMap<String, Object>();
+//        params.put("x", "MyValue");
+//        ProcessInstance processInstance = ksession.startProcess("SignalIntermediateEvent", params);
+//        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+//    }
+//    
+//    public void testNoneIntermediateThrow() throws Exception {
+//        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventNone.xml");
+//		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
+//        ProcessInstance processInstance = ksession.startProcess("NoneIntermediateEvent", null);
+//        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+//    }
     
-    public void testTimerStart() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerStart.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) {
-			}
-		});
-		Thread.sleep(250);
-		assertEquals(0, list.size());
-        for (int i = 0; i < 5; i++) {
-	        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 {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-SignalEndEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", "MyValue");
-        ksession.startProcess("SignalEndEvent", params);
-    }
-    
-    public void testMessageStart() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-MessageStart.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.signalEvent("Message-HelloMessage", "NewValue");
-    }
-    
-    public void testMessageEnd() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-MessageEndEvent.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", "MyValue");
-        ProcessInstance processInstance = ksession.startProcess("MessageEndEvent", params);
-        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
-    }
-    
-    public void testMessageIntermediateThrow() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventMessage.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler());
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", "MyValue");
-        ProcessInstance processInstance = ksession.startProcess("MessageIntermediateEvent", params);
-        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
-    }
-    
-    public void testSignalIntermediateThrow() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventSignal.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        Map<String, Object> params = new HashMap<String, Object>();
-        params.put("x", "MyValue");
-        ProcessInstance processInstance = ksession.startProcess("SignalIntermediateEvent", params);
-        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
-    }
-    
-    public void testNoneIntermediateThrow() throws Exception {
-        KnowledgeBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventNone.xml");
-		StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
-        ProcessInstance processInstance = ksession.startProcess("NoneIntermediateEvent", null);
-        assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
-    }
-    
 //    public void testPersistence() throws Exception {
 //        setupDataSource();
 //        EntityManagerFactory emf = Persistence.createEntityManagerFactory(



More information about the jboss-svn-commits mailing list