[jboss-svn-commits] JBL Code SVN: r34559 - in labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer: drools-timer-core/src/main/java/org/drools/timer/core/connector and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 5 14:54:53 EDT 2010
Author: lucazamador
Date: 2010-08-05 14:54:52 -0400 (Thu, 05 Aug 2010)
New Revision: 34559
Added:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/job/
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
Modified:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/ProcessTimerQuartzPersistenceStrategy.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/SchedulerConnector.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/impl/HornetQSchedulerConnector.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerScheduler.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
Log:
timer execution done
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/ProcessTimerQuartzPersistenceStrategy.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/ProcessTimerQuartzPersistenceStrategy.java 2010-08-05 18:34:40 UTC (rev 34558)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/ProcessTimerQuartzPersistenceStrategy.java 2010-08-05 18:54:52 UTC (rev 34559)
@@ -16,11 +16,12 @@
}
public void save(ProcessJobContext processContext, IntervalTrigger intervalTrigger) {
- connector.send(processContext);
+ connector.save(processContext);
// Create record in DB
}
public boolean remove(ProcessJobHandle jobHandle) {
+ connector.remove(jobHandle);
return false;
}
}
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/SchedulerConnector.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/SchedulerConnector.java 2010-08-05 18:34:40 UTC (rev 34558)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/SchedulerConnector.java 2010-08-05 18:54:52 UTC (rev 34559)
@@ -1,11 +1,13 @@
package org.drools.timer.core.connector;
import org.drools.process.instance.timer.TimerManager.ProcessJobContext;
+import org.drools.time.impl.ProcessJobHandle;
public interface SchedulerConnector {
public void connect() throws Exception;
public void disconnect() throws Exception;
- public void send(ProcessJobContext processContext);
+ public void save(ProcessJobContext processContext);
+ public boolean remove(ProcessJobHandle jobHandle);
}
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/impl/HornetQSchedulerConnector.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/impl/HornetQSchedulerConnector.java 2010-08-05 18:34:40 UTC (rev 34558)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/src/main/java/org/drools/timer/core/connector/impl/HornetQSchedulerConnector.java 2010-08-05 18:54:52 UTC (rev 34559)
@@ -7,6 +7,7 @@
import java.util.Map;
import org.drools.process.instance.timer.TimerManager.ProcessJobContext;
+import org.drools.time.impl.ProcessJobHandle;
import org.drools.timer.core.connector.SchedulerConnector;
import org.drools.timer.message.impl.InsertScheduledTimerMessage;
import org.hornetq.api.core.HornetQException;
@@ -85,7 +86,7 @@
}
}
- public void send(ProcessJobContext processContext) {
+ public void save(ProcessJobContext processContext) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oout;
try {
@@ -104,4 +105,9 @@
}
}
+ public boolean remove(ProcessJobHandle jobHandle) {
+ // TODO Auto-generated method stub
+ return true;
+ }
+
}
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml 2010-08-05 18:34:40 UTC (rev 34558)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml 2010-08-05 18:54:52 UTC (rev 34559)
@@ -63,6 +63,12 @@
<artifactId>quartz</artifactId>
<version>1.6.1</version>
</dependency>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.1</version>
+ </dependency>
<dependency>
<groupId>commons-dbcp</groupId>
Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerScheduler.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerScheduler.java 2010-08-05 18:34:40 UTC (rev 34558)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerScheduler.java 2010-08-05 18:54:52 UTC (rev 34559)
@@ -3,14 +3,30 @@
import org.drools.timer.message.TimerMessage;
import org.drools.timer.message.impl.InsertScheduledTimerMessage;
import org.drools.timer.message.impl.RemoveScheduledTimerMessage;
+import org.drools.timer.scheduler.job.TimerExecutorJob;
+import org.quartz.JobDetail;
import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SimpleTrigger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class TimerScheduler {
+ private static final Logger logger = LoggerFactory.getLogger(TimerScheduler.class);
+
private Scheduler scheduler;
private void process(InsertScheduledTimerMessage message) {
- System.out.println("process InsertScheduledTimerMessage");
+ JobDetail job = new JobDetail(message.getProcessInstanceId().toString(), Scheduler.DEFAULT_GROUP, TimerExecutorJob.class);
+ job.getJobDataMap().put(TimerExecutorJob.PROCESS_INSTANCE_ID, message.getProcessInstanceId());
+ SimpleTrigger trigger = new SimpleTrigger("trigger" + message.getProcessInstanceId().toString(), Scheduler.DEFAULT_GROUP, message.getActivationTime());
+ try {
+ scheduler.scheduleJob(job, trigger);
+ } catch (SchedulerException e) {
+ logger.error("Error scheduling timer " + message.getProcessInstanceId(), e);
+ }
+ logger.info("new timer scheduled");
}
private void process(RemoveScheduledTimerMessage message) {
Added: 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 (rev 0)
+++ 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-05 18:54:52 UTC (rev 34559)
@@ -0,0 +1,20 @@
+package org.drools.timer.scheduler.job;
+
+import java.util.Date;
+
+import org.quartz.Job;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+public class TimerExecutorJob implements Job {
+
+ public static final String PROCESS_INSTANCE_ID = "ProcessInstanceId";
+
+ public void execute(JobExecutionContext context) throws JobExecutionException {
+ JobDataMap data = context.getJobDetail().getJobDataMap();
+ Long processInstanceId = (Long) data.get(PROCESS_INSTANCE_ID);
+ System.out.println("Process Instance ID: " + processInstanceId + " says: \"hello world\" at " + new Date());
+ }
+
+}
Property changes on: 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
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: 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-05 18:34:40 UTC (rev 34558)
+++ 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-05 18:54:52 UTC (rev 34559)
@@ -1,5 +1,7 @@
package org.drools.timer.scheduler;
+import java.util.Calendar;
+
import junit.framework.Assert;
import org.drools.timer.message.impl.InsertScheduledTimerMessage;
@@ -9,7 +11,7 @@
public class TimerSchedulerTest {
@Test
- public void simple() {
+ public void simple() throws InterruptedException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("contextTest.xml");
TimerSchedulerHornetQServer timerMessageServer = (TimerSchedulerHornetQServer) context.getBean("timerSchedulerHornetQServer");
Assert.assertNotNull(timerMessageServer);
@@ -17,8 +19,14 @@
TimerMessageHornetQClient client = (TimerMessageHornetQClient) context.getBean("timerMessageHornetQClient");
Assert.assertNotNull(client);
- client.write(new InsertScheduledTimerMessage());
-
+ InsertScheduledTimerMessage message = new InsertScheduledTimerMessage();
+ message.setProcessInstanceId(12L);
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.SECOND, 5);
+ message.setActivationTime(calendar.getTime());
+ client.write(message);
+
+ Thread.sleep(10000);
}
}
More information about the jboss-svn-commits
mailing list