[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