[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