[jboss-svn-commits] JBL Code SVN: r34647 - 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 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 11 14:41:44 EDT 2010
Author: diegoll
Date: 2010-08-11 14:41:44 -0400 (Wed, 11 Aug 2010)
New Revision: 34647
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-executor/src/test/resources/completedProcessSession.xml
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml
Log:
[JBRULES-2616] parameterizing all bean names
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 18:40:16 UTC (rev 34646)
+++ 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 18:41:44 UTC (rev 34647)
@@ -1,8 +1,6 @@
package org.drools.job.executor.timer;
import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.base.MapGlobalResolver;
import org.drools.command.impl.CommandBasedStatefulKnowledgeSession;
import org.drools.command.impl.KnowledgeCommandContext;
import org.drools.impl.StatefulKnowledgeSessionImpl;
@@ -11,7 +9,6 @@
import org.drools.process.instance.event.SignalManager;
import org.drools.process.instance.timer.TimerInstance;
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;
@@ -19,7 +16,6 @@
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.transaction.PlatformTransactionManager;
public class TimerJobExecutor implements JobExecutor<TimerJob> {
@@ -29,9 +25,15 @@
public void execute(TimerJob job) {
long processInstanceId = job.getProcessId();
- logger.info("executing timer");
+ logger.info("executing timer job");
logger.debug("Process instance to signal: " + processInstanceId);
- StatefulKnowledgeSession ksession = loadSession(job.getSessionId(), job.getKnowledgeStoreServiceBeanName(), getSessionContext());
+ StatefulKnowledgeSession ksession = loadSession(
+ job.getSessionId(),
+ job.getEnvironmentBeanName(),
+ job.getKnowledgeBaseBeanName(),
+ job.getKnowledgeStoreServiceBeanName(),
+ getSessionContext());
+
ProcessInstance processInstance = ksession.getProcessInstance(processInstanceId);
if(null == processInstance){
throw new IllegalArgumentException("unexistent process instance with ID: " + processInstanceId);
@@ -59,17 +61,11 @@
return sessionContext;
}
- private StatefulKnowledgeSession loadSession(int sessionId, String kstoreName, ApplicationContext 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() );
- env.set(EnvironmentName.PROCESS_TIMER_STRATEGY, new MockProcessTimerPersistenceStrategy());
+ private StatefulKnowledgeSession loadSession(int sessionId, String envName, String kbaseName, String kstoreName, ApplicationContext sessionContext) {
+ Environment env = (Environment) sessionContext.getBean(envName);
KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
- KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
+ KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean(kbaseName);
StatefulKnowledgeSession ksession = kstore.loadStatefulKnowledgeSession(sessionId, kbase, null, env);
return ksession;
}
-
}
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 18:40:16 UTC (rev 34646)
+++ 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 18:41:44 UTC (rev 34647)
@@ -5,15 +5,12 @@
import java.util.concurrent.Executors;
import org.drools.KnowledgeBase;
-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;
@@ -62,6 +59,8 @@
String sessionContextLocation = "classpath:/completedProcessSession.xml";
String sessionConfiguratorBeanName = "sessionConfigurator";
String knowledgeStoreServiceBeanName = "kstore";
+ String knowledgeBaseBeanName = "kbase";
+ String environmentBeanName = "env";
//start the executor
AbstractApplicationContext executorContext = createExecutorContext(sessionContextLocation);
@@ -69,7 +68,7 @@
//start process
AbstractApplicationContext sessionContext = new ClassPathXmlApplicationContext(sessionContextLocation);
- final StatefulKnowledgeSession ksession = createSession(knowledgeStoreServiceBeanName, sessionContext);
+ final StatefulKnowledgeSession ksession = createSession(environmentBeanName, knowledgeBaseBeanName, knowledgeStoreServiceBeanName, sessionContext);
int sessionId = ksession.getId();
KnowledgeSessionRuntimeConfigurator sessionConfigurator = (KnowledgeSessionRuntimeConfigurator) sessionContext.getBean(sessionConfiguratorBeanName);
sessionConfigurator.configure(ksession);
@@ -85,11 +84,14 @@
});
ClientProducer producer = (ClientProducer)executorContext.getBean("timerMessageProducer");
+ @SuppressWarnings("unchecked")
HornetQMessageTranslator<TimerJob> timerJobMessageTranslator = (HornetQMessageTranslator<TimerJob>) executorContext.getBean("messageTranslator");
TimerSchedulerSimulator scheduler =
new TimerSchedulerSimulator(timerJobMessageTranslator, producer)
.setKnowledgeSessionRuntimeConfiguratorBeanName(sessionConfiguratorBeanName)
.setKnowledgeStoreServiceBeanName(knowledgeStoreServiceBeanName)
+ .setKnowledgeBaseBeanName(knowledgeBaseBeanName)
+ .setEnvironmentBeanName(environmentBeanName)
.setSessionId(sessionId)
.setProcessId(processId)
.setTimerId(1)
@@ -120,20 +122,22 @@
* @throws InterruptedException
* @throws HornetQException
*/
-
@Test
public void checkTriggerTimer() throws InterruptedException, HornetQException{
String sessionContextLocation = "classpath:/timerProcessSession.xml";
String sessionConfiguratorBeanName = "sessionConfigurator";
String knowledgeStoreServiceBeanName = "kstore";
+ String knowledgeBaseBeanName = "kbase";
+ String environmentBeanName = "env";
+
//start the executor
AbstractApplicationContext executorContext = createExecutorContext(sessionContextLocation);
JobExecutorService<TimerJob> timerJobExecutorService = startJobExecutor(executorContext);
//start process
AbstractApplicationContext sessionContext = new ClassPathXmlApplicationContext(sessionContextLocation);
- StatefulKnowledgeSession ksession = createSession(knowledgeStoreServiceBeanName, sessionContext);
+ StatefulKnowledgeSession ksession = createSession(environmentBeanName, knowledgeBaseBeanName, knowledgeStoreServiceBeanName, sessionContext);
int sessionId = ksession.getId();
KnowledgeSessionRuntimeConfigurator sessionConfigurator = (KnowledgeSessionRuntimeConfigurator) sessionContext.getBean(sessionConfiguratorBeanName);
sessionConfigurator.configure(ksession);
@@ -149,6 +153,8 @@
new TimerSchedulerSimulator(timerJobMessageTranslator, producer)
.setKnowledgeSessionRuntimeConfiguratorBeanName(sessionConfiguratorBeanName)
.setKnowledgeStoreServiceBeanName(knowledgeStoreServiceBeanName)
+ .setKnowledgeBaseBeanName(knowledgeBaseBeanName)
+ .setEnvironmentBeanName(environmentBeanName)
.setSessionId(sessionId)
.setProcessId(processId)
.setTimerId(1)
@@ -157,7 +163,7 @@
scheduler.triggerTimerJob();
Thread.sleep(1000);
- ksession = loadSession(sessionId, knowledgeStoreServiceBeanName, sessionContext);
+ ksession = loadSession(sessionId, environmentBeanName, knowledgeBaseBeanName, knowledgeStoreServiceBeanName, sessionContext);
ProcessInstance processInstance = ksession.getProcessInstance(processId);
Assert.assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
ksession.dispose();
@@ -168,7 +174,7 @@
scheduler.triggerTimerJob();
Thread.sleep(4000);
- ksession = loadSession(sessionId, knowledgeStoreServiceBeanName, sessionContext);
+ ksession = loadSession(sessionId, environmentBeanName, knowledgeBaseBeanName, knowledgeStoreServiceBeanName, sessionContext);
processInstance = ksession.getProcessInstance(processId);
Assert.assertNull(processInstance); // this mean the process was completed elsewhere
@@ -206,32 +212,22 @@
return context;
}
- private StatefulKnowledgeSession createSession(String kstoreName, ApplicationContext sessionContext) {
- Environment env = getEnvironment(sessionContext);
+ private StatefulKnowledgeSession createSession(String envName, String kbaseName, String kstoreName, ApplicationContext sessionContext) {
+ Environment env = (Environment) sessionContext.getBean(envName);
KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
- KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
+ KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean(kbaseName);
StatefulKnowledgeSession ksession = kstore.newStatefulKnowledgeSession(kbase, null, env);
return ksession;
}
- private StatefulKnowledgeSession loadSession(int sessionId, String kstoreName, ApplicationContext sessionContext) {
- Environment env = getEnvironment(sessionContext);
+ private StatefulKnowledgeSession loadSession(int sessionId, String envName, String kbaseName, String kstoreName, ApplicationContext sessionContext) {
+ Environment env = (Environment) sessionContext.getBean(envName);
KnowledgeStoreService kstore = (KnowledgeStoreService) sessionContext.getBean(kstoreName);
- KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean("kbase");
+ KnowledgeBase kbase = (KnowledgeBase) sessionContext.getBean(kbaseName);
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;
@@ -245,6 +241,8 @@
private String knowledgeStoreServiceBeanName;
private String knowledgeSessionRuntimeConfiguratorBeanName;
+ private String knowledgeBaseBeanName;
+ private String environmentBeanName;
public TimerSchedulerSimulator(HornetQMessageTranslator<TimerJob> translator, ClientProducer producer){
this.translator = translator;
@@ -261,6 +259,8 @@
timerJob.setKnowledgeStoreServiceBeanName(getKnowledgeStoreServiceBeanName());
timerJob.setRuntimeSessionConfiguratorBeanName(getKnowledgeSessionRuntimeConfiguratorBeanName());
+ timerJob.setEnvironmentBeanName(getEnvironmentBeanName());
+ timerJob.setKnowledgeBaseBeanName(getKnowledgeBaseBeanName());
getProducer().send(getTranslator().writeMessage(timerJob));
}
@@ -321,10 +321,28 @@
return this;
}
+ public String getKnowledgeBaseBeanName() {
+ return knowledgeBaseBeanName;
+ }
+
+ public TimerSchedulerSimulator setKnowledgeBaseBeanName(String knowledgeBaseBeanName) {
+ this.knowledgeBaseBeanName = knowledgeBaseBeanName;
+ return this;
+ }
+
+ public String getEnvironmentBeanName() {
+ return environmentBeanName;
+ }
+
+ public TimerSchedulerSimulator setEnvironmentBeanName(String environmentBeanName) {
+ this.environmentBeanName = environmentBeanName;
+ return this;
+ }
+
public HornetQMessageTranslator<TimerJob> getTranslator() {
return translator;
}
-
+
public ClientProducer getProducer() {
return producer;
}
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/completedProcessSession.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/completedProcessSession.xml 2010-08-11 18:40:16 UTC (rev 34646)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/completedProcessSession.xml 2010-08-11 18:41:44 UTC (rev 34647)
@@ -4,8 +4,9 @@
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">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
+ http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd">
<!-- drools configuration -->
@@ -31,6 +32,37 @@
</drools:resources>
</drools:kbase>
+ <bean id="env" class="org.drools.container.spring.beans.EnvironmentFactoryBean">
+ <property name="environment">
+ <map>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.ENTITY_MANAGER_FACTORY"/>
+ </key>
+ <ref bean="entityManagerFactory"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.TRANSACTION_MANAGER"/>
+ </key>
+ <ref bean="transactionManager"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.GLOBALS"/>
+ </key>
+ <bean class="org.drools.base.MapGlobalResolver"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.PROCESS_TIMER_STRATEGY"/>
+ </key>
+ <bean class="org.drools.job.executor.timer.MockProcessTimerPersistenceStrategy" />
+ </entry>
+ </map>
+ </property>
+ </bean>
+
<!-- persistence configuration -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
Modified: 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 2010-08-11 18:40:16 UTC (rev 34646)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/timerProcessSession.xml 2010-08-11 18:41:44 UTC (rev 34647)
@@ -4,8 +4,9 @@
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">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
+ http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd">
<!-- drools configuration -->
@@ -31,6 +32,37 @@
</drools:resources>
</drools:kbase>
+ <bean id="env" class="org.drools.container.spring.beans.EnvironmentFactoryBean">
+ <property name="environment">
+ <map>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.ENTITY_MANAGER_FACTORY"/>
+ </key>
+ <ref bean="entityManagerFactory"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.TRANSACTION_MANAGER"/>
+ </key>
+ <ref bean="transactionManager"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.GLOBALS"/>
+ </key>
+ <bean class="org.drools.base.MapGlobalResolver"/>
+ </entry>
+ <entry>
+ <key>
+ <util:constant static-field="org.drools.runtime.EnvironmentName.PROCESS_TIMER_STRATEGY"/>
+ </key>
+ <bean class="org.drools.job.executor.timer.MockProcessTimerPersistenceStrategy" />
+ </entry>
+ </map>
+ </property>
+ </bean>
+
<!-- persistence configuration -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
More information about the jboss-svn-commits
mailing list