[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