[jboss-svn-commits] JBL Code SVN: r34718 - in labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src: main/java/org/drools/timer/scheduler/job and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Aug 14 13:53:53 EDT 2010
Author: diegoll
Date: 2010-08-14 13:53:53 -0400 (Sat, 14 Aug 2010)
New Revision: 34718
Added:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/datasource.properties
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerServiceTest.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/HornetQMessageTranslator.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/SerializedMessageTranslator.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/datasource.properties
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/schedulerContextTest.xml
Removed:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerTest.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/contextTest.xml
Modified:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerSchedulerHornetQService.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/job/TimerExecutorJob.java
Log:
[JBRULES-2616] new scheduler test. Removing old one
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerSchedulerHornetQService.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerSchedulerHornetQService.java 2010-08-14 17:52:29 UTC (rev 34717)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerSchedulerHornetQService.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -27,6 +27,7 @@
while (running.get()) {
ClientMessage clientMessage = getConsumer().receive();
if (clientMessage != null) {
+ logger.debug("Message received in scheduler");
TimerMessage message = (TimerMessage) readMessage(clientMessage);
timerScheduler.process(message);
}
@@ -41,6 +42,7 @@
break;
}
} catch (Exception e) {
+ logger.error("Server exception", e);
throw new RuntimeException("Server Exception with class " + getClass());
}finally{
running.set(false);
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/job/TimerExecutorJob.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/job/TimerExecutorJob.java 2010-08-14 17:52:29 UTC (rev 34717)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/job/TimerExecutorJob.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -15,9 +15,13 @@
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.SimpleTrigger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class TimerExecutorJob implements Job {
+ private final static Logger logger = LoggerFactory.getLogger(TimerExecutorJob.class);
+
public static final String PROCESS_INSTANCE_ID = "processInstanceId";
public static final String SESSION_CONFIGURATION = "runtimeSessionConfiguratorBeanName";
public static final String KSTORE = "knowledgeStoreServiceBeanName";
@@ -30,6 +34,8 @@
public static final String TIMER_EXECUTOR_SESSION = "timerExecutorSession";
public void execute(JobExecutionContext context) throws JobExecutionException {
+ logger.debug("Executing scheduled timer");
+
long period = ((SimpleTrigger)context.getTrigger()).getRepeatInterval();
JobDataMap data = context.getJobDetail().getJobDataMap();
long processInstanceId = data.getLong(PROCESS_INSTANCE_ID);
@@ -44,7 +50,7 @@
ClientSession session = (ClientSession) data.get(TIMER_EXECUTOR_SESSION);
write(session, timerId, producer, processInstanceId, sessionId, period, runtimeSessionConfiguratorBeanName,
knowledgeStoreServiceBeanName, knowledgeBaseBeanName, environmentBeanName);
- System.out.println("Process Instance ID: " + processInstanceId + " executed at " + new Date());
+ logger.debug("Process Instance ID: " + processInstanceId + " executed at " + new Date());
}
private void write(ClientSession session, long timerId, ClientProducer producer, long processInstanceId, int sessionId,
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/datasource.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/datasource.properties (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/datasource.properties 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,4 @@
+datasource.driverClassName=org.h2.Driver
+datasource.url=jdbc:h2:tcp://localhost/schedulerService
+datasource.username=sa
+datasource.password=sasa
\ No newline at end of file
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/datasource.properties
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerServiceTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerServiceTest.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerServiceTest.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,90 @@
+package org.drools.timer.scheduler;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import javax.persistence.EntityManagerFactory;
+
+import org.drools.timer.message.TimerJob;
+import org.drools.timer.message.impl.InsertScheduledTimerMessage;
+import org.drools.timer.scheduler.utils.HornetQMessageTranslator;
+import org.h2.tools.DeleteDbFiles;
+import org.h2.tools.Server;
+import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.client.ClientConsumer;
+import org.hornetq.api.core.client.ClientProducer;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class TimerSchedulerServiceTest {
+
+ //private static final Logger logger = LoggerFactory.getLogger(TimerSchedulerServiceTest.class);
+ private static final String H2_DB_NAME = "schedulerService";
+ private static Server h2Server;
+
+ @BeforeClass
+ public static void startH2Database() throws Exception {
+ DeleteDbFiles.execute("", H2_DB_NAME, true);
+ h2Server = Server.createTcpServer(new String[0]);
+ h2Server.start();
+ }
+
+ @AfterClass
+ public static void stopH2Database() throws Exception {
+ h2Server.stop();
+ DeleteDbFiles.execute( "", H2_DB_NAME, true );
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void scheduleAndTriggerJob() throws InterruptedException, HornetQException{
+ AbstractApplicationContext schedulerContext = createExecutorContext();
+ TimerSchedulerHornetQService schedulerService = startSchedulerService(schedulerContext);
+
+ ClientProducer schedulerProducer = (ClientProducer) schedulerContext.getBean("schedulerProducer");
+ ClientConsumer timerJobsConsumer = (ClientConsumer) schedulerContext.getBean("timerJobsConsumer");
+ EntityManagerFactory entityManagerFactoryForTest = (EntityManagerFactory) schedulerContext.getBean("entityManagerFactoryForTest");
+
+ HornetQMessageTranslator<InsertScheduledTimerMessage> schedulerTranslator = (HornetQMessageTranslator<InsertScheduledTimerMessage>) schedulerContext.getBean("messageTranslator");
+ HornetQMessageTranslator<TimerJob> executorTranslator = (HornetQMessageTranslator<TimerJob>) schedulerContext.getBean("messageTranslator");
+
+ long scheduledPeriod = 1000;
+ scheduleJob(schedulerProducer, schedulerTranslator, scheduledPeriod);
+ Thread.sleep(2000);
+
+ TimerJob timerJob = executorTranslator.readMessage(timerJobsConsumer.receive());
+ Assert.assertEquals(scheduledPeriod, timerJob.getPeriod());
+
+ //close everything
+ schedulerService.cancel();
+ schedulerContext.close();
+ }
+
+ private void scheduleJob(ClientProducer schedulerProducer, HornetQMessageTranslator<InsertScheduledTimerMessage> schedulerTranslator, long period) throws HornetQException {
+ InsertScheduledTimerMessage scheduleTimerMessage = new InsertScheduledTimerMessage();
+ scheduleTimerMessage.setPeriod(period);
+ scheduleTimerMessage.setProcessInstanceId(1L);
+ schedulerProducer.send(schedulerTranslator.writeMessage(scheduleTimerMessage));
+ }
+
+ private TimerSchedulerHornetQService startSchedulerService(AbstractApplicationContext schedulerContext) throws InterruptedException {
+ TimerSchedulerHornetQService schedulerService = (TimerSchedulerHornetQService) schedulerContext.getBean("schedulerService");
+ ExecutorService executor = Executors.newSingleThreadExecutor();
+ executor.execute(schedulerService);
+ Thread.sleep(1500); // executor doesn't guarantee you it'll run immediately
+ Assert.assertTrue(schedulerService.isRunning());
+ return schedulerService;
+ }
+
+ private AbstractApplicationContext createExecutorContext() {
+ return new ClassPathXmlApplicationContext(new String[]{
+ "classpath:/schedulerContext.xml",
+ "classpath:/schedulerContextTest.xml"
+ });
+ }
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerServiceTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerTest.java 2010-08-14 17:52:29 UTC (rev 34717)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerSchedulerTest.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -1,29 +0,0 @@
-package org.drools.timer.scheduler;
-
-import junit.framework.Assert;
-
-import org.drools.timer.message.impl.InsertScheduledTimerMessage;
-import org.junit.Test;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public class TimerSchedulerTest {
-
- @Test
- public void simple() throws InterruptedException {
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("contextTest.xml");
- TimerSchedulerHornetQServer timerMessageServer = (TimerSchedulerHornetQServer) context.getBean("timerSchedulerHornetQServer");
- Assert.assertNotNull(timerMessageServer);
-
- TimerMessageHornetQClient client = (TimerMessageHornetQClient) context.getBean("timerMessageHornetQClient");
- Assert.assertNotNull(client);
-
- InsertScheduledTimerMessage message = new InsertScheduledTimerMessage();
- message.setProcessInstanceId(12L);
- message.setPeriod(3000);
- message.setDelay(1000);
- client.write(message);
-
- Thread.sleep(10000);
- }
-
-}
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/HornetQMessageTranslator.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/HornetQMessageTranslator.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/HornetQMessageTranslator.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,11 @@
+package org.drools.timer.scheduler.utils;
+
+import org.hornetq.api.core.client.ClientMessage;
+
+public interface HornetQMessageTranslator<T> {
+
+ T readMessage(ClientMessage clientMessage);
+
+ ClientMessage writeMessage(T object);
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/HornetQMessageTranslator.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/SerializedMessageTranslator.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/SerializedMessageTranslator.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/SerializedMessageTranslator.java 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,48 @@
+package org.drools.timer.scheduler.utils;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.hornetq.api.core.client.ClientMessage;
+import org.hornetq.api.core.client.ClientSession;
+
+public class SerializedMessageTranslator<T> implements HornetQMessageTranslator<T> {
+
+ private ClientSession session;
+
+ public T readMessage(ClientMessage clientMessage) {
+ int bodySize = clientMessage.getBodySize();
+ byte[] message = new byte[bodySize];
+ clientMessage.getBodyBuffer().readBytes(message);
+ ByteArrayInputStream bais = new ByteArrayInputStream(message);
+ try {
+ ObjectInputStream ois = new ObjectInputStream(bais);
+ return (T) ois.readObject();
+ } catch (IOException e) {
+ throw new IllegalArgumentException("Error reading message");
+ } catch (ClassNotFoundException e) {
+ throw new IllegalArgumentException("Error creating TimerJob");
+ }
+ }
+
+ public ClientMessage writeMessage(T object){
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oout;
+ try {
+ oout = new ObjectOutputStream(baos);
+ oout.writeObject(object);
+ ClientMessage clientMessage = session.createMessage(true);
+ clientMessage.getBodyBuffer().writeBytes(baos.toByteArray());
+ return clientMessage;
+ } catch (IOException e) {
+ throw new RuntimeException("Error creating message", e);
+ }
+ }
+
+ public void setSession(ClientSession session) {
+ this.session = session;
+ }
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/utils/SerializedMessageTranslator.java
___________________________________________________________________
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/contextTest.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/contextTest.xml 2010-08-14 17:52:29 UTC (rev 34717)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/contextTest.xml 2010-08-14 17:53:53 UTC (rev 34718)
@@ -1,168 +0,0 @@
-<?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"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd" >
-
- <bean id="dataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource" init-method="init" destroy-method="close">
- <property name="className" value="org.h2.jdbcx.JdbcDataSource" />
- <property name="uniqueName" value="jdbc/timersDS" />
- <property name="minPoolSize" value="0" />
- <property name="maxPoolSize" value="3" />
- <property name="allowLocalTransactions" value="true" />
- <property name="driverProperties">
- <props>
- <prop key="user">sa</prop>
- <prop key="password">sasa</prop>
- <prop key="URL">jdbc:h2:mem:mydb</prop>
- </props>
- </property>
- </bean>
-
- <!-- Bitronix Transaction Manager embedded configuration -->
- <bean id="btmConfig" factory-method="getConfiguration" class="bitronix.tm.TransactionManagerServices">
- <property name="serverId" value="spring-btm" />
- </bean>
-
- <!-- create BTM transaction manager -->
- <bean id="bitronixTransactionManager" factory-method="getTransactionManager" class="bitronix.tm.TransactionManagerServices" depends-on="btmConfig, dataSource" destroy-method="shutdown" />
-
- <!-- Spring JtaTransactionManager -->
- <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
- <property name="transactionManager" ref="bitronixTransactionManager" />
- <property name="userTransaction" ref="bitronixTransactionManager" />
- </bean>
-
- <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" depends-on="transactionManager">
- <property name="persistenceUnitName" value="org.drools.timer.persistence.jpa"/>
- </bean>
-
- <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
-
- <bean id="timerSchedulerHornetQServer" class="org.drools.timer.scheduler.TimerSchedulerHornetQServer" init-method="start" destroy-method="stop">
- <property name="consumer" ref="timerMessageConsumer"/>
- <property name="timerScheduler" ref="timerScheduler"/>
- </bean>
-
- <bean id="timerScheduler" class="org.drools.timer.scheduler.TimerScheduler">
- <property name="scheduler" ref="scheduler" />
- <property name="timerPersistence" ref="jpaTimerPersistence" />
- <property name="session" ref="clientSession" />
- <property name="timerExecutorConnector" ref="timerMessageProducer" />
- </bean>
-
- <bean id="jpaTimerPersistence" class="org.drools.timer.persistence.JPATimerPersistence" >
- <property name="transactionManager" ref="transactionManager" />
- </bean>
-
- <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
- <property name="autoStartup"><value>true</value></property>
- <property name="applicationContextSchedulerContextKey"><value>applicationContext</value></property>
- <property name="waitForJobsToCompleteOnShutdown"><value>true</value></property>
- <property name="quartzProperties">
- <props>
- <!-- ThreadPool -->
- <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
- <prop key="org.quartz.threadPool.threadCount">5</prop>
- <prop key="org.quartz.threadPool.threadPriority">5</prop>
- <!-- Plugins -->
- <prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop>
- <prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop>
- <prop key="org.quartz.plugin.triggHistory.class">org.quartz.plugins.history.LoggingTriggerHistoryPlugin</prop>
- <prop key="org.quartz.plugin.triggHistory.triggerFiredMessage">Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}</prop>
- <prop key="org.quartz.plugin.triggHistory.triggerCompleteMessage">Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}</prop>
- </props>
- </property>
- </bean>
-
- <!-- Test Bean -->
- <bean id="timerMessageHornetQClient" class="org.drools.timer.scheduler.TimerMessageHornetQClient">
- <property name="session" ref="clientSession" />
- <property name="producer" ref="timerMessageProducer" />
- </bean>
-
- <!-- Test Bean -->
- <bean id="timerMessageProducer" factory-bean="clientSession" factory-method="createProducer" destroy-method="close">
- <constructor-arg value="timerServiceMessages" />
- </bean>
-
- <bean id="timerMessageConsumer" factory-bean="clientSession" factory-method="createConsumer" destroy-method="close">
- <constructor-arg value="timerServiceMessages"/>
- </bean>
-
- <bean id="executorMessageProducer" factory-bean="clientSession" factory-method="createProducer" destroy-method="close">
- <constructor-arg value="executorServiceMessages" />
- </bean>
-
- <bean id="clientSession" factory-bean="clientSessionFactory" factory-method="createSession" init-method="start"/>
-
- <!-- client connection with the HornetQ server -->
- <bean id="clientSessionFactory" class="org.hornetq.api.core.client.HornetQClient" factory-method="createClientSessionFactory" depends-on="hornetQServer" >
- <constructor-arg>
- <bean class="org.hornetq.api.core.TransportConfiguration">
- <constructor-arg>
- <value>org.hornetq.integration.transports.netty.NettyConnectorFactory</value>
- </constructor-arg>
- <constructor-arg>
- <map>
- <entry>
- <key><util:constant static-field="org.hornetq.integration.transports.netty.TransportConstants.PORT_PROP_NAME"/></key>
- <value>5446</value>
- </entry>
- </map>
- </constructor-arg>
- </bean>
- </constructor-arg>
- </bean>
-
- <!-- HornetQ server starting queue named messageBoardQueue -->
- <bean id="hornetQServer" class="org.hornetq.core.server.HornetQServers" factory-method="newHornetQServer" init-method="start" destroy-method="stop">
- <constructor-arg>
- <bean class="org.hornetq.core.config.impl.ConfigurationImpl">
- <property name="persistenceEnabled" value="false"/>
- <property name="securityEnabled" value="false"/>
- <property name="clustered" value="false"/>
- <property name="queueConfigurations">
- <list>
- <bean class="org.hornetq.core.server.cluster.QueueConfiguration">
- <constructor-arg name="address" value="timerServiceMessages"/>
- <constructor-arg name="name" value="timerServiceMessages"/>
- <constructor-arg name="filterString"><null/></constructor-arg>
- <constructor-arg name="durable" value="true"/>
- </bean>
- <bean class="org.hornetq.core.server.cluster.QueueConfiguration">
- <constructor-arg name="address" value="executorServiceMessages"/>
- <constructor-arg name="name" value="executorServiceMessages"/>
- <constructor-arg name="filterString"><null/></constructor-arg>
- <constructor-arg name="durable" value="true"/>
- </bean>
- </list>
- </property>
- <property name="acceptorConfigurations">
- <set>
- <bean class="org.hornetq.api.core.TransportConfiguration">
- <constructor-arg>
- <value>org.hornetq.integration.transports.netty.NettyAcceptorFactory</value>
- </constructor-arg>
- <constructor-arg>
- <map>
- <entry>
- <key>
- <util:constant static-field="org.hornetq.integration.transports.netty.TransportConstants.PORT_PROP_NAME"/>
- </key>
- <value>5446</value>
- </entry>
- </map>
- </constructor-arg>
- </bean>
- </set>
- </property>
- </bean>
- </constructor-arg>
- </bean>
-
-</beans>
\ No newline at end of file
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/datasource.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/datasource.properties (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/datasource.properties 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,4 @@
+datasource.driverClassName=org.h2.Driver
+datasource.url=jdbc:h2:tcp://localhost/schedulerService
+datasource.username=sa
+datasource.password=sasa
\ No newline at end of file
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/datasource.properties
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/schedulerContextTest.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/schedulerContextTest.xml (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/schedulerContextTest.xml 2010-08-14 17:53:53 UTC (rev 34718)
@@ -0,0 +1,92 @@
+<?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"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd" >
+
+ <bean id="schedulerProducer" factory-bean="clientSession" factory-method="createProducer" destroy-method="close">
+ <constructor-arg value="timerServiceMessages" />
+ </bean>
+
+ <bean id="timerJobsConsumer" factory-bean="clientSession" factory-method="createConsumer" destroy-method="close">
+ <constructor-arg value="executeTimerMessages" />
+ </bean>
+
+ <bean id="messageTranslator" class="org.drools.timer.scheduler.utils.SerializedMessageTranslator">
+ <property name="session" ref="clientSession" />
+ </bean>
+
+ <!-- persistence configuration -->
+ <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <property name="driverClassName" value="${datasource.driverClassName}" />
+ <property name="url" value="${datasource.url}" />
+ <property name="username" value="${datasource.username}" />
+ <property name="password" value="${datasource.password}" />
+ </bean>
+
+ <bean id="entityManagerFactoryForTest" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="dataSource" ref="dataSource" />
+ <property name="persistenceUnitName" value="org.drools.timer.scheduler.test" />
+ </bean>
+
+ <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+ <property name="entityManagerFactory" ref="entityManagerFactory" />
+ </bean>
+
+ <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <property name="location" value="classpath:datasource.properties"/>
+ </bean>
+
+
+ <!-- start HornetQ server -->
+ <bean id="hornetQServer" class="org.hornetq.core.server.HornetQServers" factory-method="newHornetQServer"
+ init-method="start" destroy-method="stop">
+ <constructor-arg>
+ <bean class="org.hornetq.core.config.impl.ConfigurationImpl">
+ <property name="persistenceEnabled" value="false" />
+ <property name="securityEnabled" value="false" />
+ <property name="clustered" value="false" />
+ <property name="queueConfigurations">
+ <list>
+ <bean class="org.hornetq.core.server.cluster.QueueConfiguration">
+ <constructor-arg name="address" value="executeTimerMessages" />
+ <constructor-arg name="name" value="executeTimerMessages" />
+ <constructor-arg name="filterString"><null/></constructor-arg>
+ <constructor-arg name="durable" value="true" />
+ </bean>
+ <bean class="org.hornetq.core.server.cluster.QueueConfiguration">
+ <constructor-arg name="address" value="timerServiceMessages"/>
+ <constructor-arg name="name" value="timerServiceMessages"/>
+ <constructor-arg name="filterString"><null/></constructor-arg>
+ <constructor-arg name="durable" value="true"/>
+ </bean>
+ </list>
+ </property>
+ <property name="acceptorConfigurations">
+ <set>
+ <bean class="org.hornetq.api.core.TransportConfiguration">
+ <constructor-arg>
+ <value>org.hornetq.integration.transports.netty.NettyAcceptorFactory</value>
+ </constructor-arg>
+ <constructor-arg>
+ <map>
+ <entry>
+ <key>
+ <util:constant static-field="org.hornetq.integration.transports.netty.TransportConstants.PORT_PROP_NAME" />
+ </key>
+ <value>5446</value>
+ </entry>
+ </map>
+ </constructor-arg>
+ </bean>
+ </set>
+ </property>
+ </bean>
+ </constructor-arg>
+ </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-scheduler/src/test/resources/schedulerContextTest.xml
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list