[jboss-svn-commits] JBL Code SVN: r25016 - in labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test: resources and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 30 08:34:39 EST 2009


Author: KrisVerlaenen
Date: 2009-01-30 08:34:39 -0500 (Fri, 30 Jan 2009)
New Revision: 25016

Added:
   labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SubProcess.rf
   labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SuperProcess.rf
Modified:
   labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java
   labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/META-INF/MyWorkItemHandlers.conf
Log:
JBRULES-1915: Improve process persistence usability
 - improved command-based implementation of StatefulKnowledgeSession

Modified: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java	2009-01-30 13:30:55 UTC (rev 25015)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java	2009-01-30 13:34:39 UTC (rev 25016)
@@ -83,4 +83,55 @@
         pconfig.setSessionId(null);
 	}
     
+	public void testPersistenceSubProcess() {
+		Properties properties = new Properties();
+		properties.setProperty("drools.commandService", "org.drools.persistence.session.SingleSessionCommandService");
+		properties.setProperty("drools.processInstanceManagerFactory", "org.drools.persistence.processinstance.JPAProcessInstanceManagerFactory");
+		properties.setProperty("drools.workItemManagerFactory", "org.drools.persistence.processinstance.JPAWorkItemManagerFactory");
+		properties.setProperty("drools.processSignalManagerFactory", "org.drools.persistence.processinstance.JPASignalManagerFactory");
+		KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);
+		
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add(new ClassPathResource("SuperProcess.rf"), ResourceType.DRF);
+        kbuilder.add(new ClassPathResource("SubProcess.rf"), ResourceType.DRF);
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+        
+        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(config);
+        ProcessInstance processInstance = session.startProcess("com.sample.SuperProcess");
+        System.out.println("Started process instance " + processInstance.getId());
+        
+        TestWorkItemHandler handler = TestWorkItemHandler.getInstance();
+        WorkItem workItem = handler.getWorkItem();
+        assertNotNull(workItem);
+        
+        session = kbase.newStatefulKnowledgeSession(config);
+        processInstance = session.getProcessInstance(processInstance.getId());
+        assertNotNull(processInstance);
+        
+        session = kbase.newStatefulKnowledgeSession(config);
+        session.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+        
+        workItem = handler.getWorkItem();
+        assertNotNull(workItem);
+        
+        session = kbase.newStatefulKnowledgeSession(config);
+        processInstance = session.getProcessInstance(processInstance.getId());
+        assertNotNull(processInstance);
+        
+        session = kbase.newStatefulKnowledgeSession(config);
+        session.getWorkItemManager().completeWorkItem(workItem.getId(), null);
+        
+        workItem = handler.getWorkItem();
+        assertNull(workItem);
+        
+        session = kbase.newStatefulKnowledgeSession(config);
+        processInstance = session.getProcessInstance(processInstance.getId());
+        assertNull(processInstance);
+        
+        PersistenceConfig pconfig = (PersistenceConfig)
+        	EnvironmentFactory.newEnvironment().get(PersistenceConfig.class.getName());
+        pconfig.setSessionId(null);
+	}
+    
 }

Modified: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/META-INF/MyWorkItemHandlers.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/META-INF/MyWorkItemHandlers.conf	2009-01-30 13:30:55 UTC (rev 25015)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/META-INF/MyWorkItemHandlers.conf	2009-01-30 13:34:39 UTC (rev 25016)
@@ -6,6 +6,7 @@
 
 [
 
-  "MyWork" : TestWorkItemHandler.getInstance()
+  "MyWork" : TestWorkItemHandler.getInstance(),
+  "Human Task" : TestWorkItemHandler.getInstance()
       
 ]
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SubProcess.rf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SubProcess.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SubProcess.rf	2009-01-30 13:34:39 UTC (rev 25016)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<process xmlns="http://drools.org/drools-5.0/process"
+         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+         xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
+         type="RuleFlow" name="SubProcess" id="com.sample.SubProcess" package-name="com.sample" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <humanTask id="6" name="Task2" x="128" y="16" width="80" height="40" >
+      <work name="Human Task" >
+        <parameter name="ActorId" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>admin</value>
+        </parameter>
+        <parameter name="Comment" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>You need to do task 2 !</value>
+        </parameter>
+        <parameter name="Content" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value></value>
+        </parameter>
+        <parameter name="Priority" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>0</value>
+        </parameter>
+        <parameter name="Skippable" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>false</value>
+        </parameter>
+        <parameter name="TaskName" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>Task2</value>
+        </parameter>
+      </work>
+    </humanTask>
+    <start id="1" name="Start" x="16" y="16" width="80" height="40" />
+    <end id="3" name="End" x="240" y="16" width="80" height="40" />
+  </nodes>
+
+  <connections>
+    <connection from="1" to="6" />
+    <connection from="6" to="3" />
+  </connections>
+
+</process>
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SuperProcess.rf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SuperProcess.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/test/resources/SuperProcess.rf	2009-01-30 13:34:39 UTC (rev 25016)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<process xmlns="http://drools.org/drools-5.0/process"
+         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+         xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
+         type="RuleFlow" name="SuperProcess" id="com.sample.SuperProcess" package-name="com.sample" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <humanTask id="6" name="Task1" x="240" y="16" width="80" height="40" >
+      <work name="Human Task" >
+        <parameter name="ActorId" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>admin</value>
+        </parameter>
+        <parameter name="Comment" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>You need to do task 1 !</value>
+        </parameter>
+        <parameter name="Content" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value></value>
+        </parameter>
+        <parameter name="Priority" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>0</value>
+        </parameter>
+        <parameter name="Skippable" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>false</value>
+        </parameter>
+        <parameter name="TaskName" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>Task1</value>
+        </parameter>
+      </work>
+    </humanTask>
+    <start id="1" name="Start" x="16" y="52" width="80" height="40" />
+    <end id="3" name="End" x="576" y="52" width="80" height="40" />
+    <subProcess id="7" name="Flow" x="464" y="52" width="80" height="40" processId="com.sample.SubProcess" >
+    </subProcess>
+  </nodes>
+
+  <connections>
+    <connection from="1" to="6" />
+    <connection from="6" to="7" />
+    <connection from="7" to="3" />
+  </connections>
+
+</process>
\ No newline at end of file




More information about the jboss-svn-commits mailing list