[jboss-svn-commits] JBL Code SVN: r34585 - in labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer: drools-timer-executor/src/main/java/org/drools/job/executor/timer and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Aug 6 17:08:32 EDT 2010


Author: diegoll
Date: 2010-08-06 17:08:31 -0400 (Fri, 06 Aug 2010)
New Revision: 34585

Removed:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/JobExecutorsRunner.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/JobExecutorsRunnerMock.java
Modified:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/pom.xml
   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/utils/SerializedMessageTranslator.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/resources/executorContext.xml
   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/executorContextTest.xml
   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:
completed test with timer executor workflow

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/pom.xml	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/pom.xml	2010-08-06 21:08:31 UTC (rev 34585)
@@ -39,17 +39,14 @@
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-core</artifactId>
-      <version>${spring.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-beans</artifactId>
-      <version>${spring.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
-      <version>${spring.version}</version>
     </dependency>
     
     <!-- SL4J dependencies -->

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-06 17:49:05 UTC (rev 34584)
+++ 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-06 21:08:31 UTC (rev 34585)
@@ -2,10 +2,14 @@
 
 import org.drools.job.executor.JobExecutor;
 import org.drools.timer.message.TimerJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TimerJobExecutor implements JobExecutor<TimerJob> {
 
+	private static Logger logger = LoggerFactory.getLogger(TimerJobExecutor.class);
+	
 	public void execute(TimerJob job) {
-		
+		logger.info("executing timer");
 	}
 }

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/utils/SerializedMessageTranslator.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/utils/SerializedMessageTranslator.java	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/java/org/drools/job/executor/utils/SerializedMessageTranslator.java	2010-08-06 21:08:31 UTC (rev 34585)
@@ -1,13 +1,19 @@
 package org.drools.job.executor.utils;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 
 import org.drools.job.executor.HornetQMessageTranslator;
+import org.hornetq.api.core.HornetQException;
 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();
@@ -23,4 +29,22 @@
 			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;
+	}
 }

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/resources/executorContext.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/resources/executorContext.xml	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/main/resources/executorContext.xml	2010-08-06 21:08:31 UTC (rev 34585)
@@ -14,13 +14,16 @@
         <constructor-arg value="executeTimerMessages"/>
       </bean>
   	</property>
-  	<property name="translator">
-  		<bean class="org.drools.job.executor.utils.SerializedMessageTranslator"/>
-  	</property>
+  	<property name="translator" ref="messageTranslator"/>
   	<property name="executor">
   		<bean class="org.drools.job.executor.timer.TimerJobExecutor"/>
   	</property>
   </bean>
+  
+  <bean id="messageTranslator" class="org.drools.job.executor.utils.SerializedMessageTranslator">
+    <property name="session" ref="clientSession"/>
+  </bean>
+  
 
   
   <!-- client connection with the HornetQ server -->

Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/JobExecutorsRunner.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/JobExecutorsRunner.java	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/JobExecutorsRunner.java	2010-08-06 21:08:31 UTC (rev 34585)
@@ -1,7 +0,0 @@
-package org.drools.job.executor.timer;
-
-public interface JobExecutorsRunner {
-
-	public abstract void runExecutor();
-
-}
\ No newline at end of file

Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/JobExecutorsRunnerMock.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/JobExecutorsRunnerMock.java	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/java/org/drools/job/executor/timer/JobExecutorsRunnerMock.java	2010-08-06 21:08:31 UTC (rev 34585)
@@ -1,35 +0,0 @@
-package org.drools.job.executor.timer;
-
-import java.util.List;
-import java.util.TimerTask;
-
-import org.springframework.core.task.TaskExecutor;
-
-public class JobExecutorsRunnerMock implements JobExecutorsRunner {
-
-	private TaskExecutor executor;
-	private List<TimerTask> jobExecutors;
-	
-	/* (non-Javadoc)
-	 * @see org.drools.job.executor.timer.JobExecutorsRunner#runExecutor()
-	 */
-	public void runExecutor(){
-		for (TimerTask task : getJobExecutors()) {
-			getExecutor().execute(task);
-		}
-	}
-	
-	public TaskExecutor getExecutor() {
-		return executor;
-	}
-	public void setExecutor(TaskExecutor executor) {
-		this.executor = executor;
-	}
-	public List<TimerTask> getJobExecutors() {
-		return jobExecutors;
-	}
-	public void setJobExecutors(List<TimerTask> executors) {
-		this.jobExecutors = executors;
-	}
-	
-}

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-06 17:49:05 UTC (rev 34584)
+++ 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-06 21:08:31 UTC (rev 34585)
@@ -1,10 +1,19 @@
 package org.drools.job.executor.timer;
 
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.drools.job.executor.JobExecutorService;
+import org.drools.job.executor.utils.SerializedMessageTranslator;
+import org.drools.timer.message.TimerJob;
+import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.client.ClientProducer;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.core.task.TaskExecutor;
 
 public class TimerExecutorServiceTest {
 	
@@ -12,13 +21,28 @@
 	
 	@BeforeClass
 	public static void loadContext(){
-		context = new ClassPathXmlApplicationContext("classpath:/executorContext.xml", 
-													"classpath:/executorContextTest.xml");
+		context = new ClassPathXmlApplicationContext(new String[]{
+													"classpath:/executorContext.xml", 
+													"classpath:/executorContextTest.xml",
+													});
 	}
 	
 	@Test
-	public void triggerTimerJob(){
-		JobExecutorsRunner jobExecutorsRunner = (JobExecutorsRunner) context.getBean("jobExecutorsRunner");
-		Assert.assertNotNull(jobExecutorsRunner);
+	@SuppressWarnings("unchecked")
+	public void triggerTimerJob() throws HornetQException, InterruptedException{
+		//start task service
+		JobExecutorService<TimerJob> timerJobExecutorService = (JobExecutorService<TimerJob>) context.getBean("timerJobExecutorService");
+		ExecutorService executor = Executors.newSingleThreadExecutor();
+		executor.execute(timerJobExecutorService);
+		Thread.sleep(500);
+		Assert.assertTrue(timerJobExecutorService.isRunning());
+		
+		//create timer job to consume
+		TimerJob timerJob = new TimerJob();
+		ClientProducer producer = (ClientProducer)context.getBean("timerMessageProducer");
+		SerializedMessageTranslator<TimerJob> timerJobMessageTranslator = (SerializedMessageTranslator<TimerJob>) context.getBean("messageTranslator");
+		producer.send(timerJobMessageTranslator.writeMessage(timerJob));
+		
+		//check timer succesfully executed
 	}
 }

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/executorContextTest.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/executorContextTest.xml	2010-08-06 17:49:05 UTC (rev 34584)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-executor/src/test/resources/executorContextTest.xml	2010-08-06 21:08:31 UTC (rev 34585)
@@ -8,14 +8,7 @@
                       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="jobExecutorsRunner" class="org.drools.job.executor.timer.JobExecutorsRunnerMock">
-  	<property name="executor">
-	  <bean class="org.springframework.core.task.SyncTaskExecutor"/>
-  	</property>
-    <property name="jobExecutors">
-      <list>
-        <ref bean="timerJobExecutorService"/>
-      </list>
-  	</property>
-  </bean> 
+  <bean id="timerMessageProducer" factory-bean="clientSession" factory-method="createProducer" destroy-method="close">
+    <constructor-arg value="executeTimerMessages" />
+  </bean>
 </beans>
\ No newline at end of file

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-06 17:49:05 UTC (rev 34584)
+++ 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-06 21:08:31 UTC (rev 34585)
@@ -1,5 +1,7 @@
 package org.drools.timer.message;
 
-public class TimerJob {
+import java.io.Serializable;
 
+public class TimerJob implements Serializable{
+
 }



More information about the jboss-svn-commits mailing list