[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