[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