[jboss-svn-commits] JBL Code SVN: r34633 - in labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer: drools-timer-executor/src/test/java/org/drools/job/executor/timer and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 11 01:09:55 EDT 2010
Author: diegoll
Date: 2010-08-11 01:09:55 -0400 (Wed, 11 Aug 2010)
New Revision: 34633
Added:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/Buddy.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/MockProcessTimerPersistenceStrategy.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcess.rf
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml
Modified:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/timer/TimerJobExecutor.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/TimerExecutorServiceTest.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-messages/src/main/java/org/drools/timer/message/TimerJob.java
Log:
[JBRULES-2616] basic test working. Must move Environment creation using spring config. Abstract the current way of revivify the ksession to support other ways different to Spring
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/timer/TimerJobExecutor.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/timer/TimerJobExecutor.java 2010-08-11 05:06:41 UTC (rev 34632)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/timer/TimerJobExecutor.java 2010-08-11 05:09:55 UTC (rev 34633)
@@ -39,7 +39,11 @@
StatefulKnowledgeSessionImpl sessionImpl = (StatefulKnowledgeSessionImpl) ((KnowledgeCommandContext) ((CommandBasedStatefulKnowledgeSession)ksession).getCommandService().getContext()).getStatefulKnowledgesession();
SignalManager signalManager = sessionImpl.getInternalWorkingMemory().getSignalManager();
- TimerInstance timerInstance = null; //FIXME serialize timer instance information
+
+ TimerInstance timerInstance = new TimerInstance();
+ timerInstance.setId(job.getTimerId());
+ timerInstance.setPeriod(job.getPeriod());
+
signalManager.signalEvent( processInstanceId, "timerTriggered", timerInstance );
ksession.dispose();
@@ -61,6 +65,7 @@
env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, sessionContext.getBean( "entityManagerFactory" ));
env.set( EnvironmentName.TRANSACTION_MANAGER, txManager);
env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
+ env.set(EnvironmentName.PROCESS_TIMER_STRATEGY, new MockProcessTimerPersistenceStrategy());
KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
StatefulKnowledgeSession ksession = kstore.loadStatefulKnowledgeSession(sessionId, kbase, null, env);
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/Buddy.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/Buddy.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/Buddy.java 2010-08-11 05:09:55 UTC (rev 34633)
@@ -0,0 +1,7 @@
+package org.drools.job.executor.timer;
+
+import java.io.Serializable;
+
+public class Buddy implements Serializable{
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/Buddy.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/MockProcessTimerPersistenceStrategy.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/MockProcessTimerPersistenceStrategy.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/MockProcessTimerPersistenceStrategy.java 2010-08-11 05:09:55 UTC (rev 34633)
@@ -0,0 +1,19 @@
+package org.drools.job.executor.timer;
+
+import org.drools.process.instance.timer.TimerManager.ProcessJobContext;
+import org.drools.time.ProcessTimerPersistenceStrategy;
+import org.drools.time.impl.IntervalTrigger;
+import org.drools.time.impl.ProcessJobHandle;
+
+public class MockProcessTimerPersistenceStrategy implements
+ ProcessTimerPersistenceStrategy {
+
+ public void save(ProcessJobContext processContext,
+ IntervalTrigger intervalTrigger) {
+ }
+
+ public boolean remove(ProcessJobHandle jobHandle) {
+ return true;
+ }
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/MockProcessTimerPersistenceStrategy.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/TimerExecutorServiceTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/TimerExecutorServiceTest.java 2010-08-11 05:06:41 UTC (rev 34632)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/TimerExecutorServiceTest.java 2010-08-11 05:09:55 UTC (rev 34633)
@@ -8,12 +8,14 @@
import org.drools.KnowledgeBaseFactory;
import org.drools.base.MapGlobalResolver;
import org.drools.core.util.KnowledgeSessionRuntimeConfigurator;
+import org.drools.job.executor.HornetQMessageTranslator;
import org.drools.job.executor.JobExecutorService;
import org.drools.job.executor.utils.SerializedMessageTranslator;
import org.drools.persistence.jpa.KnowledgeStoreService;
import org.drools.runtime.Environment;
import org.drools.runtime.EnvironmentName;
import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.process.ProcessInstance;
import org.drools.timer.message.TimerJob;
import org.h2.tools.DeleteDbFiles;
import org.h2.tools.Server;
@@ -26,6 +28,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.transaction.PlatformTransactionManager;
@@ -80,7 +83,7 @@
//create timer job to consume
TimerJob timerJob = new TimerJob();
ClientProducer producer = (ClientProducer)context.getBean("timerMessageProducer");
- SerializedMessageTranslator<TimerJob> timerJobMessageTranslator = (SerializedMessageTranslator<TimerJob>) context.getBean("messageTranslator");
+ HornetQMessageTranslator<TimerJob> timerJobMessageTranslator = (HornetQMessageTranslator<TimerJob>) context.getBean("messageTranslator");
producer.send(timerJobMessageTranslator.writeMessage(timerJob));
//check timer succesfully executed
@@ -88,6 +91,21 @@
context.destroy();
}
+ /**
+ * this test uses the following process:
+ * start -> timer -> action (insert Buddy) -> wait until 5 Buddies inserted -> end
+ *
+ * start process
+ * simulate timer triggered
+ * check process still active
+ * simulate timer triggered 4 times (total Buddies inserted 5)
+ * check process id is not in the session anymore (it has finished)
+ *
+ * voila
+ *
+ * @throws InterruptedException
+ * @throws HornetQException
+ */
@Test
public void checkTriggerCompletedProcess() throws InterruptedException, HornetQException{
String sessionContextLocation = "classpath:/completedProcessSession.xml";
@@ -105,6 +123,7 @@
//start process
AbstractApplicationContext sessionContext = new ClassPathXmlApplicationContext(sessionContextLocation);
final StatefulKnowledgeSession ksession = createSession(knowledgeStoreServiceBeanName, sessionContext);
+ int sessionId = ksession.getId();
KnowledgeSessionRuntimeConfigurator sessionConfigurator = (KnowledgeSessionRuntimeConfigurator) sessionContext.getBean(sessionConfiguratorBeanName);
sessionConfigurator.configure(ksession);
@@ -118,15 +137,18 @@
}
});
- //send message to executor (emulates scheduler)
ClientProducer producer = (ClientProducer)executorContext.getBean("timerMessageProducer");
- SerializedMessageTranslator<TimerJob> timerJobMessageTranslator = (SerializedMessageTranslator<TimerJob>) executorContext.getBean("messageTranslator");
- TimerJob timerJob = new TimerJob();
- timerJob.setSessionId(ksession.getId());
- timerJob.setProcessId(processId);
- timerJob.setKnowledgeStoreServiceBeanName(knowledgeStoreServiceBeanName);
- timerJob.setRuntimeSessionConfiguratorBeanName(sessionConfiguratorBeanName);
- producer.send(timerJobMessageTranslator.writeMessage(timerJob));
+ HornetQMessageTranslator<TimerJob> timerJobMessageTranslator = (HornetQMessageTranslator<TimerJob>) executorContext.getBean("messageTranslator");
+ TimerSchedulerSimulator scheduler = new TimerSchedulerSimulator(timerJobMessageTranslator, producer);
+ scheduler.setKnowledgeSessionRuntimeConfiguratorBeanName(sessionConfiguratorBeanName);
+ scheduler.setKnowledgeStoreServiceBeanName(knowledgeStoreServiceBeanName);
+ scheduler.setSessionId(sessionId);
+ scheduler.setProcessId(processId);
+ scheduler.setTimerId(1);
+ scheduler.setPeriod(1000); // any value != 0
+
+ scheduler.triggerTimerJob();
+ Thread.sleep(1000);
//close everything
timerJobExecutorService.cancel();
@@ -134,7 +156,75 @@
sessionContext.close();
executorContext.close();
}
+
+
+ @Test
+ public void checkTriggerTimer() throws InterruptedException, HornetQException{
+ String sessionContextLocation = "classpath:/timerProcessSession.xml";
+ String sessionConfiguratorBeanName = "sessionConfigurator";
+ String knowledgeStoreServiceBeanName = "kstore";
+ //start the executor
+ AbstractApplicationContext executorContext = createExecutorContext(sessionContextLocation);
+ JobExecutorService<TimerJob> timerJobExecutorService = (JobExecutorService<TimerJob>) executorContext.getBean("timerJobExecutorService");
+ ExecutorService executor = Executors.newSingleThreadExecutor();
+ executor.execute(timerJobExecutorService);
+ Thread.sleep(1500); //executor doesn't guarantee you it'll run immediately
+ Assert.assertTrue(timerJobExecutorService.isRunning());
+
+ //start process
+ AbstractApplicationContext sessionContext = new ClassPathXmlApplicationContext(sessionContextLocation);
+ StatefulKnowledgeSession ksession = createSession(knowledgeStoreServiceBeanName, sessionContext);
+ int sessionId = ksession.getId();
+ KnowledgeSessionRuntimeConfigurator sessionConfigurator = (KnowledgeSessionRuntimeConfigurator) sessionContext.getBean(sessionConfiguratorBeanName);
+ sessionConfigurator.configure(ksession);
+
+ long processId = ksession.startProcess("timerProcess").getId();
+ ksession.dispose();
+
+ //create scheduler simulator
+ ClientProducer producer = (ClientProducer)executorContext.getBean("timerMessageProducer");
+ @SuppressWarnings("unchecked")
+ HornetQMessageTranslator<TimerJob> timerJobMessageTranslator = (SerializedMessageTranslator<TimerJob>) executorContext.getBean("messageTranslator");
+ TimerSchedulerSimulator scheduler = new TimerSchedulerSimulator(timerJobMessageTranslator, producer);
+ scheduler.setKnowledgeSessionRuntimeConfiguratorBeanName(sessionConfiguratorBeanName);
+ scheduler.setKnowledgeStoreServiceBeanName(knowledgeStoreServiceBeanName);
+ scheduler.setSessionId(sessionId);
+ scheduler.setProcessId(processId);
+ scheduler.setTimerId(1);
+ scheduler.setPeriod(1000); // any value != 0
+
+ scheduler.triggerTimerJob();
+ Thread.sleep(1000);
+
+ ksession = loadSession(sessionId, knowledgeStoreServiceBeanName, sessionContext);
+ ProcessInstance processInstance = ksession.getProcessInstance(processId);
+ Assert.assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ ksession.dispose();
+
+ scheduler.triggerTimerJob();
+ scheduler.triggerTimerJob();
+ scheduler.triggerTimerJob();
+ scheduler.triggerTimerJob();
+ Thread.sleep(4000);
+
+ ksession = loadSession(sessionId, knowledgeStoreServiceBeanName, sessionContext);
+ processInstance = ksession.getProcessInstance(processId);
+ Assert.assertNull(processInstance);
+
+ //close everything
+ timerJobExecutorService.cancel();
+ producer.close();
+ sessionContext.close();
+ executorContext.close();
+
+ //close everything
+ timerJobExecutorService.cancel();
+ producer.close();
+ sessionContext.close();
+ executorContext.close();
+ }
+
private AbstractApplicationContext createExecutorContext(String sessionContextLocation) {
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
Properties properties = new Properties();
@@ -151,15 +241,121 @@
return context;
}
- private StatefulKnowledgeSession createSession(String kstoreName, AbstractApplicationContext sessionContext) {
- PlatformTransactionManager txManager = (PlatformTransactionManager) sessionContext.getBean( "transactionManager" );
- Environment env = KnowledgeBaseFactory.newEnvironment();
- env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, sessionContext.getBean( "entityManagerFactory" ));
- env.set( EnvironmentName.TRANSACTION_MANAGER, txManager);
- env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
+ private StatefulKnowledgeSession createSession(String kstoreName, ApplicationContext sessionContext) {
+ Environment env = getEnvironment(sessionContext);
KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
StatefulKnowledgeSession ksession = kstore.newStatefulKnowledgeSession(kbase, null, env);
return ksession;
}
+
+ private StatefulKnowledgeSession loadSession(int sessionId, String kstoreName, ApplicationContext sessionContext) {
+ Environment env = getEnvironment(sessionContext);
+ KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
+ KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
+ StatefulKnowledgeSession ksession = kstore.loadStatefulKnowledgeSession(sessionId, kbase, null, env);
+ return ksession;
+ }
+
+ private Environment getEnvironment(ApplicationContext sessionContext) {
+ Environment env = KnowledgeBaseFactory.newEnvironment();
+ env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, sessionContext.getBean( "entityManagerFactory" ));
+ env.set( EnvironmentName.TRANSACTION_MANAGER, (PlatformTransactionManager) sessionContext.getBean( "transactionManager" ));
+ env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
+ env.set(EnvironmentName.PROCESS_TIMER_STRATEGY, new MockProcessTimerPersistenceStrategy());
+ return env;
+ }
+
+
+ private static class TimerSchedulerSimulator {
+
+ private HornetQMessageTranslator<TimerJob> translator;
+ private ClientProducer producer;
+
+ private long processId;
+ private int sessionId;
+
+ private long timerId;
+ private long period;
+
+ private String knowledgeStoreServiceBeanName;
+ private String knowledgeSessionRuntimeConfiguratorBeanName;
+
+ public TimerSchedulerSimulator(HornetQMessageTranslator<TimerJob> translator, ClientProducer producer){
+ this.translator = translator;
+ this.producer = producer;
+ }
+
+ public void triggerTimerJob() throws HornetQException{
+ TimerJob timerJob = new TimerJob();
+ timerJob.setProcessId(getProcessId());
+ timerJob.setSessionId(getSessionId());
+
+ timerJob.setTimerId(getTimerId());
+ timerJob.setPeriod(getPeriod());
+
+ timerJob.setKnowledgeStoreServiceBeanName(getKnowledgeStoreServiceBeanName());
+ timerJob.setRuntimeSessionConfiguratorBeanName(getKnowledgeSessionRuntimeConfiguratorBeanName());
+
+ producer.send(getTranslator().writeMessage(timerJob));
+ }
+
+ public long getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(long processId) {
+ this.processId = processId;
+ }
+
+ public int getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(int sessionId) {
+ this.sessionId = sessionId;
+ }
+
+ public long getTimerId() {
+ return timerId;
+ }
+
+ public void setTimerId(long timerId) {
+ this.timerId = timerId;
+ }
+
+ public long getPeriod() {
+ return period;
+ }
+
+ public void setPeriod(long period) {
+ this.period = period;
+ }
+
+ public String getKnowledgeStoreServiceBeanName() {
+ return knowledgeStoreServiceBeanName;
+ }
+
+ public void setKnowledgeStoreServiceBeanName(
+ String knowledgeStoreServiceBeanName) {
+ this.knowledgeStoreServiceBeanName = knowledgeStoreServiceBeanName;
+ }
+
+ public String getKnowledgeSessionRuntimeConfiguratorBeanName() {
+ return knowledgeSessionRuntimeConfiguratorBeanName;
+ }
+
+ public void setKnowledgeSessionRuntimeConfiguratorBeanName(
+ String knowledgeSessionRuntimeConfiguratorBeanName) {
+ this.knowledgeSessionRuntimeConfiguratorBeanName = knowledgeSessionRuntimeConfiguratorBeanName;
+ }
+
+ public HornetQMessageTranslator<TimerJob> getTranslator() {
+ return translator;
+ }
+
+ public ClientProducer getProducer() {
+ return producer;
+ }
+ }
}
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcess.rf
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcess.rf (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcess.rf 2010-08-11 05:09:55 UTC (rev 34633)
@@ -0,0 +1,33 @@
+<?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="org.drools.timer.TimerProcess" id="timerProcess" package-name="org.drools.timer" version="1" >
+
+ <header>
+ <imports>
+ <import name="org.drools.job.executor.timer.Buddy" />
+ </imports>
+ </header>
+
+ <nodes>
+ <start id="1" name="Start" x="96" y="96" width="48" height="48" />
+ <timerNode id="2" name="Timer" x="228" y="96" width="48" height="48" delay="800ms" period="200ms" />
+ <actionNode id="3" name="Action" x="348" y="96" width="80" height="48" >
+ <action type="expression" dialect="java" >System.out.println("Triggered");
+insert( new Buddy() );</action>
+ </actionNode>
+ <milestone id="4" name="Wait" x="504" y="96" width="80" height="48" >
+ <constraint type="rule" dialect="mvel" >Number( intValue >= 5 ) from accumulate ( b: Buddy( ), count( b ) )</constraint>
+ </milestone>
+ <end id="5" name="End" x="648" y="96" width="48" height="48" />
+ </nodes>
+
+ <connections>
+ <connection from="1" to="2" />
+ <connection from="2" to="3" />
+ <connection from="3" to="4" />
+ <connection from="4" to="5" />
+ </connections>
+
+</process>
\ No newline at end of file
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcess.rf
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml 2010-08-11 05:09:55 UTC (rev 34633)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans
+ xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:drools="http://drools.org/schema/drools-spring"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd">
+
+
+ <!-- drools configuration -->
+
+ <bean id="sessionConfigurator" class="org.drools.core.util.KnowledgeSessionRuntimeConfiguratorImpl">
+ <property name="workItemHandlers">
+ <map>
+ <entry key="nothing">
+ <bean class="org.drools.process.instance.impl.demo.DoNothingWorkItemHandler" />
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <drools:kstore id="kstore" />
+
+ <drools:connection id="connection1" type="local" />
+ <drools:execution-node id="node1" connection="connection1" />
+
+ <drools:kbase id="kbase">
+ <drools:resources>
+ <drools:resource type="DRF" source="classpath:timerProcess.rf" />
+ </drools:resources>
+ </drools:kbase>
+
+ <!-- persistence configuration -->
+ <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <property name="driverClassName" value="org.h2.Driver" />
+ <property name="url" value="jdbc:h2:tcp://localhost/persistentTimersTest" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
+ </bean>
+
+ <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="dataSource" ref="dataSource" />
+ <property name="persistenceUnitName" value="org.drools.persistence.jpa.local" />
+ </bean>
+
+ <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+ <property name="entityManagerFactory" ref="entityManagerFactory" />
+ </bean>
+</beans>
\ No newline at end of file
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-messages/src/main/java/org/drools/timer/message/TimerJob.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-messages/src/main/java/org/drools/timer/message/TimerJob.java 2010-08-11 05:06:41 UTC (rev 34632)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-messages/src/main/java/org/drools/timer/message/TimerJob.java 2010-08-11 05:09:55 UTC (rev 34633)
@@ -8,6 +8,8 @@
private String runtimeSessionConfiguratorBeanName;
private String knowledgeStoreServiceBeanName;
private int sessionId;
+ private long timerId;
+ private long period;
public void setProcessId(long processId) {
this.processId = processId;
@@ -40,4 +42,20 @@
public int getSessionId() {
return sessionId;
}
+
+ public void setTimerId(long timerId) {
+ this.timerId = timerId;
+ }
+
+ public void setPeriod(long period) {
+ this.period = period;
+ }
+
+ public long getTimerId() {
+ return timerId;
+ }
+
+ public long getPeriod() {
+ return period;
+ }
}
More information about the jboss-svn-commits
mailing list