[jboss-svn-commits] JBL Code SVN: r33676 - in labs/jbossrules/trunk/drools-persistence-jpa/src/test: resources and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 28 17:08:32 EDT 2010


Author: KrisVerlaenen
Date: 2010-06-28 17:08:31 -0400 (Mon, 28 Jun 2010)
New Revision: 33676

Added:
   labs/jbossrules/trunk/drools-persistence-jpa/src/test/resources/TimerProcess.rf
Modified:
   labs/jbossrules/trunk/drools-persistence-jpa/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java
Log:
 - timer instances not always marshaled correctly

Modified: labs/jbossrules/trunk/drools-persistence-jpa/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java	2010-06-28 21:01:19 UTC (rev 33675)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/test/java/org/drools/persistence/session/PersistentStatefulSessionTest.java	2010-06-28 21:08:31 UTC (rev 33676)
@@ -27,7 +27,6 @@
 import org.drools.event.process.ProcessStartedEvent;
 import org.drools.io.ResourceFactory;
 import org.drools.io.impl.ClassPathResource;
-import org.drools.logger.KnowledgeRuntimeLoggerFactory;
 import org.drools.persistence.jpa.JPAKnowledgeService;
 import org.drools.process.instance.impl.demo.SystemOutWorkItemHandler;
 import org.drools.runtime.Environment;
@@ -715,7 +714,40 @@
 
         assertEquals( 3,
                       list.size() );
+    }
 
+    public void testPersistenceTimer() throws Exception {
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( new ClassPathResource( "TimerProcess.rf" ),
+                      ResourceType.DRF );
+        KnowledgeBase kbase = kbuilder.newKnowledgeBase();
+
+        EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.drools.persistence.jpa" );
+        Environment env = KnowledgeBaseFactory.newEnvironment();
+        env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );
+        env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
+
+        StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env );
+        int id = ksession.getId();
+        ksession.dispose();
+        
+        ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env );
+        ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" );
+        ksession.dispose();
+
+        assertNotNull(TestWorkItemHandler.getInstance().getWorkItem());
+        
+        ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env );
+        processInstance = ksession.getProcessInstance( processInstance.getId() );
+        assertNotNull( processInstance );
+        
+        Thread.sleep(2000);
+        
+        ksession.dispose();
+
+        ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env );
+        processInstance = ksession.getProcessInstance( processInstance.getId() );
+        assertNull( processInstance );
     }
-
+    
 }

Added: labs/jbossrules/trunk/drools-persistence-jpa/src/test/resources/TimerProcess.rf
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/test/resources/TimerProcess.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/test/resources/TimerProcess.rf	2010-06-28 21:08:31 UTC (rev 33676)
@@ -0,0 +1,30 @@
+<?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="ruleflow" id="org.drools.test.TestProcess" package-name="org.drools.test" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <start id="1" name="Start" />
+    <humanTask id="2" name="User Task" >
+      <work name="Human Task" >
+      </work>
+      <timers>
+        <timer id="1" delay="1000" >
+        <action type="expression" dialect="java" >System.out.println("Timer triggered");
+((org.drools.process.instance.ProcessInstance) kcontext.getProcessInstance()).setState(org.drools.runtime.process.ProcessInstance.STATE_ABORTED);</action>
+        </timer>
+      </timers>
+    </humanTask>
+    <end id="3" name="End" />
+  </nodes>
+
+  <connections>
+    <connection from="1" to="2" />
+    <connection from="2" to="3" />
+  </connections>
+
+</process>
\ No newline at end of file



More information about the jboss-svn-commits mailing list