[jboss-svn-commits] JBL Code SVN: r34621 - in labs/jbossrules/branches/5_1_20100802_esteban_diega: drools-process/drools-persistent-timer and 28 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 10 10:29:28 EDT 2010


Author: lucazamador
Date: 2010-08-10 10:29:27 -0400 (Tue, 10 Aug 2010)
New Revision: 34621

Added:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/pom.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/TimerPersistence.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/TimerState.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/META-INF/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/META-INF/persistence.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jndi.properties
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/pom.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/IntegrationTest.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/JPAPersistentTimerTest.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/QuartzDBStructureInit.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/TimerMessageHornetQClient.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/persistence.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/TimerProcess.rf
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/contextTest.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jdbc.properties
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jndi.properties
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/tables_h2.sql
Removed:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/tables_mysql_innodb.sql
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jdbc.properties
Modified:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/pom.xml
   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/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/main/resources/context.xml
   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/pom.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml
Log:
JBRULES-2616: Process persistent timers
	- Timers JPA persistence. Quartz jobs persistence. Initial tests created.

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/pom.xml	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-core/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -22,7 +22,11 @@
   	  <groupId>org.drools</groupId>
   	  <artifactId>drools-timer-messages</artifactId>
   	</dependency>
-  
+  	<dependency>
+  	  <groupId>org.drools</groupId>
+  	  <artifactId>drools-timer-persistence</artifactId>
+  	</dependency>
+
   	<!-- HornetQ dependencies -->
     <dependency>
       <groupId>org.hornetq</groupId>
@@ -39,7 +43,7 @@
       <artifactId>netty</artifactId>
       <version>${netty.version}</version>
     </dependency>
-    
+
     <!-- Spring Dependencies -->
     <dependency>
       <groupId>org.springframework</groupId>

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-10 12:03:17 UTC (rev 34620)
+++ 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-10 14:29:27 UTC (rev 34621)
@@ -5,23 +5,36 @@
 import org.drools.time.impl.IntervalTrigger;
 import org.drools.time.impl.ProcessJobHandle;
 import org.drools.timer.core.connector.SchedulerConnector;
+import org.drools.timer.persistence.JPATimerPersistence;
+import org.drools.timer.persistence.TimerPersistence;
+import org.drools.timer.persistence.model.TimerState;
 
 public class ProcessTimerQuartzPersistenceStrategy implements ProcessTimerPersistenceStrategy {
 
 	private final SchedulerConnector connector;
+	private final TimerPersistence timerPersistence;
 
 	public ProcessTimerQuartzPersistenceStrategy(SchedulerConnector connector) throws Exception {
+		this(connector, new JPATimerPersistence());
+	}
+
+	public ProcessTimerQuartzPersistenceStrategy(SchedulerConnector connector, TimerPersistence timerPersistence) throws Exception {
 		this.connector = connector;
 		this.connector.connect();
+		this.timerPersistence = timerPersistence;
 	}
 
 	public void save(ProcessJobContext processContext, IntervalTrigger intervalTrigger) {
 		connector.save(processContext);
-		// Create record in DB
+		TimerState timerState = new TimerState();
+		timerState.setProcessInstanceId(processContext.getProcessInstanceId());
+		timerPersistence.save(timerState);
 	}
 
 	public boolean remove(ProcessJobHandle jobHandle) {
 		connector.remove(jobHandle);
+		timerPersistence.remove(jobHandle.getProcessId());
 		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/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-10 12:03:17 UTC (rev 34620)
+++ 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-10 14:29:27 UTC (rev 34621)
@@ -47,7 +47,7 @@
 	}
 	
 	/**
-	 * Create a HornetQ connector with the Timer Scheduler
+	 * Create a HornetQ connector to the Timer Scheduler
 	 * @param address Timer Scheduler address
 	 * @param port Timer Scheduler port
 	 * @param timersMessageQueue Must be configured if was changed in the Timer Scheduler configuration.


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence
___________________________________________________________________
Name: svn:ignore
   + .settings
target
.classpath
.project


Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/pom.xml	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>drools-persistent-timer</artifactId>
+    <groupId>org.drools</groupId>
+    <version>5.1.0</version>
+  </parent>
+  <artifactId>drools-timer-persistence</artifactId>
+  <packaging>jar</packaging>
+  <name>Drools :: Timers :: Persistence</name>
+  
+  <dependencies>
+  
+  	<!-- Hibernate -->
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-entitymanager</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-annotations</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-commons-annotations</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-tx</artifactId>
+      <version>${springframework-version}</version>
+    </dependency>
+
+    <!-- HSQLDB -->
+   	<dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+   	<dependency>
+      <groupId>javax.persistence</groupId>
+      <artifactId>persistence-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.transaction</groupId>
+      <artifactId>jta</artifactId>
+    </dependency>
+
+    <dependency>
+	  <groupId>org.codehaus.btm</groupId>
+	  <artifactId>btm</artifactId>
+	  <scope>test</scope>
+    </dependency>
+    
+    <!-- SL4J dependencies -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.8</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>1.4.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    
+  </dependencies>
+
+</project>


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/pom.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,59 @@
+package org.drools.timer.persistence;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.drools.timer.persistence.model.TimerState;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallback;
+import org.springframework.transaction.support.TransactionTemplate;
+
+public class JPATimerPersistence implements TimerPersistence {
+
+	@PersistenceContext
+	private EntityManager em;
+	private PlatformTransactionManager transactionManager;
+
+	public void save(final TimerState object) {
+		TransactionTemplate txTemplate = new TransactionTemplate(transactionManager);
+		txTemplate.execute(new TransactionCallback() {
+			public Object doInTransaction(TransactionStatus status) {
+				em.persist(object);
+				return object;
+			}
+		});
+	}
+
+	public boolean isExecutable(final long processInstanceId) {
+		TransactionTemplate txTemplate = new TransactionTemplate(transactionManager);
+		txTemplate.execute(new TransactionCallback() {
+			public Object doInTransaction(TransactionStatus status) {
+				TimerState timerState = (TimerState) em.createQuery("SELECT t FROM TimerState t WHERE t.processInstanceId=:processInstanceId")
+				.setParameter("processInstanceId", processInstanceId).getSingleResult();
+				return timerState.isExecuted();
+			}
+		});
+		return false;
+	}
+
+	public TimerState load(long processInstanceId) {
+		TimerState timerState = (TimerState) em.createQuery("SELECT t FROM TimerState t WHERE t.processInstanceId=:processInstanceId")
+		.setParameter("processInstanceId", processInstanceId).getSingleResult();
+		return timerState;
+	}
+
+	public void remove(long processInstanceId) {
+		em.createQuery("DELETE t FROM TimerState t WHERE t.processInstanceId=:processInstanceId")
+		.setParameter("processInstanceId", processInstanceId).executeUpdate();
+	}
+
+	public void setTransactionManager(PlatformTransactionManager transactionManager) {
+		this.transactionManager = transactionManager;
+	}
+
+	public PlatformTransactionManager getTransactionManager() {
+		return transactionManager;
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/TimerPersistence.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/TimerPersistence.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/TimerPersistence.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,15 @@
+package org.drools.timer.persistence;
+
+import org.drools.timer.persistence.model.TimerState;
+
+public interface TimerPersistence {
+
+	public void save(TimerState object);
+
+	public TimerState load(long processInstanceId);
+
+	public boolean isExecutable(long processInstanceId);
+
+	public void remove(long processInstanceId);
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/TimerPersistence.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/TimerState.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/TimerState.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/TimerState.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,35 @@
+package org.drools.timer.persistence.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+ at Entity
+public class TimerState {
+
+	private Integer id;
+	private Long processInstanceId;
+	private boolean executed;
+
+	@Id
+	@GeneratedValue
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Long getProcessInstanceId() {
+		return processInstanceId;
+	}
+	public void setProcessInstanceId(Long processInstanceId) {
+		this.processInstanceId = processInstanceId;
+	}
+	public boolean isExecuted() {
+		return executed;
+	}
+	public void setExecuted(boolean executed) {
+		this.executed = executed;
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/model/TimerState.java
___________________________________________________________________
Name: svn:eol-style
   + native

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-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -17,6 +17,11 @@
       <artifactId>drools-timer-messages</artifactId>
     </dependency>
     
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-timer-persistence</artifactId>
+    </dependency>
+    
     <!-- HornetQ dependencies -->
     <dependency>
       <groupId>org.hornetq</groupId>
@@ -57,8 +62,32 @@
       <artifactId>spring-tx</artifactId>
       <version>${springframework-version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-orm</artifactId>
+      <version>${springframework-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-jdbc</artifactId>
+    </dependency>
 
+    <!-- HSQLDB -->
+   	<dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <scope>test</scope>
+    </dependency>
+    
+    <!-- Bixtronix -->
     <dependency>
+	  <groupId>org.codehaus.btm</groupId>
+	  <artifactId>btm</artifactId>
+	  <scope>test</scope>
+    </dependency>
+
+	<!-- Quartz -->
+    <dependency>
       <groupId>org.opensymphony.quartz</groupId>
       <artifactId>quartz</artifactId>
       <version>1.6.1</version>
@@ -75,12 +104,6 @@
       <artifactId>commons-dbcp</artifactId>
       <version>1.2.2</version>
     </dependency>
-    
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>5.1.13</version>
-    </dependency>
 
     <!-- SL4J dependencies -->
     <dependency>

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-10 12:03:17 UTC (rev 34620)
+++ 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-10 14:29:27 UTC (rev 34621)
@@ -3,6 +3,8 @@
 import org.drools.timer.message.TimerMessage;
 import org.drools.timer.message.impl.InsertScheduledTimerMessage;
 import org.drools.timer.message.impl.RemoveScheduledTimerMessage;
+import org.drools.timer.persistence.TimerPersistence;
+import org.drools.timer.persistence.model.TimerState;
 import org.drools.timer.scheduler.job.TimerExecutorJob;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
@@ -15,24 +17,37 @@
 
 	private static final Logger logger = LoggerFactory.getLogger(TimerScheduler.class);
 
+	private TimerPersistence timerPersistence;
 	private Scheduler scheduler;
 
 	private void process(InsertScheduledTimerMessage message) {
 		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());
+		SimpleTrigger trigger = new SimpleTrigger(createUniqueTimerJobId(message), 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");
+		TimerState timerState = new TimerState();
+		timerState.setProcessInstanceId(message.getProcessInstanceId());
+		timerPersistence.save(timerState);
+		timerPersistence.isExecutable(message.getProcessInstanceId());
 	}
 
 	private void process(RemoveScheduledTimerMessage message) {
-		System.out.println("process RemoveScheduledTimerMessage");
+		try {
+			scheduler.deleteJob(createUniqueTimerJobId(message), Scheduler.DEFAULT_GROUP);
+		} catch (SchedulerException e) {
+			logger.error("Error deleting scheduled timer " + message.getProcessInstanceId(), e);
+		}
 	}
 
+	private String createUniqueTimerJobId(TimerMessage message) {
+		return "trigger" + message.getProcessInstanceId().toString();
+	}
+
 	public void process(TimerMessage message) {
 		if (message instanceof InsertScheduledTimerMessage) {
 			process((InsertScheduledTimerMessage)message);
@@ -45,6 +60,14 @@
 		}
 	}
 
+	public void setTimerPersistence(TimerPersistence timerPersistence) {
+		this.timerPersistence = timerPersistence;
+	}
+
+	public TimerPersistence getTimerPersistence() {
+		return timerPersistence;
+	}
+
 	public void setScheduler(Scheduler scheduler) {
 		this.scheduler = scheduler;
 	}

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/context.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/context.xml	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/context.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -14,6 +14,29 @@
     </property>
   </bean>
 
+  <bean id="dataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource" init-method="init" destroy-method="close">
+    <property name="className" value="" />
+    <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"></prop>
+        <prop key="password"></prop>
+        <prop key="URL"></prop>
+	  </props>
+    </property>
+  </bean>
+
+  <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
+
+  <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" depends-on="dataSource"/>
+
+  <bean class="org.springframework.orm.jpa.JpaTransactionManager">
+    <property name="entityManagerFactory" ref="entityManagerFactory" />
+  </bean>
+
   <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"/>

Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/tables_mysql_innodb.sql
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/tables_mysql_innodb.sql	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/tables_mysql_innodb.sql	2010-08-10 14:29:27 UTC (rev 34621)
@@ -1,154 +0,0 @@
-#
-# In your Quartz properties file, you'll need to set 
-# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-#
-#
-# By: Ron Cordell - roncordell
-#  I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM.
-
-DROP TABLE IF EXISTS QRTZ_JOB_LISTENERS;
-DROP TABLE IF EXISTS QRTZ_TRIGGER_LISTENERS;
-DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
-DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
-DROP TABLE IF EXISTS QRTZ_LOCKS;
-DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
-DROP TABLE IF EXISTS QRTZ_CALENDARS;
-CREATE TABLE QRTZ_JOB_DETAILS(
-JOB_NAME VARCHAR(200) NOT NULL,
-JOB_GROUP VARCHAR(200) NOT NULL,
-DESCRIPTION VARCHAR(250) NULL,
-JOB_CLASS_NAME VARCHAR(250) NOT NULL,
-IS_DURABLE VARCHAR(1) NOT NULL,
-IS_VOLATILE VARCHAR(1) NOT NULL,
-IS_STATEFUL VARCHAR(1) NOT NULL,
-REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
-JOB_DATA BLOB NULL,
-PRIMARY KEY (JOB_NAME,JOB_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_JOB_LISTENERS (
-JOB_NAME VARCHAR(200) NOT NULL,
-JOB_GROUP VARCHAR(200) NOT NULL,
-JOB_LISTENER VARCHAR(200) NOT NULL,
-PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
-INDEX (JOB_NAME, JOB_GROUP),
-FOREIGN KEY (JOB_NAME,JOB_GROUP)
-REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_TRIGGERS (
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-JOB_NAME VARCHAR(200) NOT NULL,
-JOB_GROUP VARCHAR(200) NOT NULL,
-IS_VOLATILE VARCHAR(1) NOT NULL,
-DESCRIPTION VARCHAR(250) NULL,
-NEXT_FIRE_TIME BIGINT(13) NULL,
-PREV_FIRE_TIME BIGINT(13) NULL,
-PRIORITY INTEGER NULL,
-TRIGGER_STATE VARCHAR(16) NOT NULL,
-TRIGGER_TYPE VARCHAR(8) NOT NULL,
-START_TIME BIGINT(13) NOT NULL,
-END_TIME BIGINT(13) NULL,
-CALENDAR_NAME VARCHAR(200) NULL,
-MISFIRE_INSTR SMALLINT(2) NULL,
-JOB_DATA BLOB NULL,
-PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
-INDEX (JOB_NAME, JOB_GROUP),
-FOREIGN KEY (JOB_NAME,JOB_GROUP)
-REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-REPEAT_COUNT BIGINT(7) NOT NULL,
-REPEAT_INTERVAL BIGINT(12) NOT NULL,
-TIMES_TRIGGERED BIGINT(10) NOT NULL,
-PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
-INDEX (TRIGGER_NAME, TRIGGER_GROUP),
-FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_CRON_TRIGGERS (
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-CRON_EXPRESSION VARCHAR(120) NOT NULL,
-TIME_ZONE_ID VARCHAR(80),
-PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
-INDEX (TRIGGER_NAME, TRIGGER_GROUP),
-FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_BLOB_TRIGGERS (
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-BLOB_DATA BLOB NULL,
-PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
-INDEX (TRIGGER_NAME, TRIGGER_GROUP),
-FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_TRIGGER_LISTENERS (
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-TRIGGER_LISTENER VARCHAR(200) NOT NULL,
-PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
-INDEX (TRIGGER_NAME, TRIGGER_GROUP),
-FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_CALENDARS (
-CALENDAR_NAME VARCHAR(200) NOT NULL,
-CALENDAR BLOB NOT NULL,
-PRIMARY KEY (CALENDAR_NAME))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-PRIMARY KEY (TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_FIRED_TRIGGERS (
-ENTRY_ID VARCHAR(95) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-IS_VOLATILE VARCHAR(1) NOT NULL,
-INSTANCE_NAME VARCHAR(200) NOT NULL,
-FIRED_TIME BIGINT(13) NOT NULL,
-PRIORITY INTEGER NOT NULL,
-STATE VARCHAR(16) NOT NULL,
-JOB_NAME VARCHAR(200) NULL,
-JOB_GROUP VARCHAR(200) NULL,
-IS_STATEFUL VARCHAR(1) NULL,
-REQUESTS_RECOVERY VARCHAR(1) NULL,
-PRIMARY KEY (ENTRY_ID))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_SCHEDULER_STATE (
-INSTANCE_NAME VARCHAR(200) NOT NULL,
-LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
-CHECKIN_INTERVAL BIGINT(13) NOT NULL,
-PRIMARY KEY (INSTANCE_NAME))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_LOCKS (
-LOCK_NAME VARCHAR(40) NOT NULL,
-PRIMARY KEY (LOCK_NAME))
-ENGINE=InnoDB;
-
-INSERT INTO QRTZ_LOCKS values('TRIGGER_ACCESS');
-INSERT INTO QRTZ_LOCKS values('JOB_ACCESS');
-INSERT INTO QRTZ_LOCKS values('CALENDAR_ACCESS');
-INSERT INTO QRTZ_LOCKS values('STATE_ACCESS');
-INSERT INTO QRTZ_LOCKS values('MISFIRE_ACCESS');
-commit; 

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/META-INF/persistence.xml	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/META-INF/persistence.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence       http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd    http://java.sun.com/xml/ns/persistence/orm     http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
+  <persistence-unit name="org.drools.timer.persistence.jpa" transaction-type="JTA">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <jta-data-source>jdbc/timersDS</jta-data-source>        
+    <class>org.drools.timer.persistence.model.TimerState</class>
+    <properties>
+      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>	        
+	  <property name="hibernate.max_fetch_depth" value="3"/>
+	  <property name="hibernate.hbm2ddl.auto" value="update" />
+      <property name="hibernate.show_sql" value="true" />	
+      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup" />
+	</properties>        
+  </persistence-unit>
+</persistence>
\ 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/META-INF/persistence.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: 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-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/contextTest.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -8,26 +8,57 @@
                       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 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
-    <property name="locations">
-      <value>classpath:jdbc.properties</value>
+  <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" />
   </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">
-    <!-- Create a  datasource and remove the quartz datasource properties -->
-    <!-- <property name="dataSource">-->
-    <!--   <ref bean="DBDataSource"/>-->
-    <!-- </property>-->
     <property name="autoStartup"><value>true</value></property>
     <property name="applicationContextSchedulerContextKey"><value>applicationContext</value></property> 
     <property name="waitForJobsToCompleteOnShutdown"><value>true</value></property> 
@@ -37,21 +68,6 @@
         <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>
-        <!-- Job store -->
-        <prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
-        <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
-        <prop key="org.quartz.jobStore.driverDelegateClass">${jdbc.quartz.delegateClassName}</prop>
-        <prop key="org.quartz.jobStore.useProperties">false</prop>
-        <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">10000</prop>
-        <prop key="org.quartz.jobStore.dataSource">quartzDS</prop> 
-        <!-- DataSource -->
-        <prop key="org.quartz.dataSource.quartzDS.driver">${jdbc.driverClassName}</prop>
-        <prop key="org.quartz.dataSource.quartzDS.URL">${jdbc.url}</prop>
-        <prop key="org.quartz.dataSource.quartzDS.user">${jdbc.username}</prop>
-        <prop key="org.quartz.dataSource.quartzDS.password">${jdbc.password}</prop>
-        <prop key="org.quartz.dataSource.quartzDS.maxConnections">5</prop>
-        <!-- <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?</prop>-->
         <!-- Plugins -->
         <prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop>
         <prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop>

Deleted: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jdbc.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jdbc.properties	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jdbc.properties	2010-08-10 14:29:27 UTC (rev 34621)
@@ -1,5 +0,0 @@
-jdbc.quartz.delegateClassName=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://localhost:3306/persistent_timers
-jdbc.username=quartz
-jdbc.password=quartz
\ 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/jndi.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jndi.properties	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/resources/jndi.properties	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1 @@
+java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
\ 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/jndi.properties
___________________________________________________________________
Name: svn:eol-style
   + native


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests
___________________________________________________________________
Name: svn:ignore
   + .settings
.classpath
.project
target


Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/pom.xml	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>drools-persistent-timer</artifactId>
+    <groupId>org.drools</groupId>
+    <version>5.1.0</version>
+  </parent>
+
+  <artifactId>drools-timer-tests</artifactId>
+  <packaging>jar</packaging>
+  <name>Drools :: Timers :: Tests</name>
+  
+  <dependencies>
+  <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-compiler</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-persistence-jpa</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-timer-core</artifactId>
+    </dependency>
+  	<dependency>
+  	  <groupId>org.drools</groupId>
+  	  <artifactId>drools-timer-persistence</artifactId>
+  	</dependency>
+  	<dependency>
+  	  <groupId>org.drools</groupId>
+  	  <artifactId>drools-timer-messages</artifactId>
+  	</dependency>
+  	<dependency>
+  	  <groupId>org.drools</groupId>
+  	  <artifactId>drools-timer-scheduler</artifactId>
+  	</dependency>
+  	
+  	<!-- HornetQ/Quartz/Spring dependencies that should be resolved automatically by maven -->
+    <dependency>
+      <groupId>org.hornetq</groupId>
+      <artifactId>hornetq-core</artifactId>
+      <version>${hornetq.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hornetq</groupId>
+      <artifactId>hornetq-transports</artifactId>
+      <version>${hornetq.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.netty</groupId>
+      <artifactId>netty</artifactId>
+      <version>${netty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context-support</artifactId>
+      <version>${springframework-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-orm</artifactId>
+      <version>${springframework-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-jdbc</artifactId>
+    </dependency>
+
+	<!-- Quartz -->
+    <dependency>
+      <groupId>org.opensymphony.quartz</groupId>
+      <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>
+      <artifactId>commons-dbcp</artifactId>
+      <version>1.2.2</version>
+    </dependency>
+
+    <!-- HSQLDB -->
+   	<dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <scope>test</scope>
+    </dependency>
+    
+    <!-- Bixtronix -->
+    <dependency>
+	  <groupId>org.codehaus.btm</groupId>
+	  <artifactId>btm</artifactId>
+	  <scope>test</scope>
+    </dependency>
+
+    <!-- SL4J dependencies -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.8</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>1.4.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    
+  </dependencies>
+  
+</project>


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/pom.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/IntegrationTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/IntegrationTest.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/IntegrationTest.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,34 @@
+package org.drools.timer.test;
+
+import java.util.Calendar;
+
+import junit.framework.Assert;
+
+import org.drools.timer.message.impl.InsertScheduledTimerMessage;
+import org.drools.timer.scheduler.TimerSchedulerHornetQServer;
+import org.drools.timer.test.helper.TimerMessageHornetQClient;
+import org.junit.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class IntegrationTest {
+
+	@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);
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.SECOND, 5);
+		message.setActivationTime(calendar.getTime());
+		client.write(message);
+		
+		Thread.sleep(10000);
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/IntegrationTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/JPAPersistentTimerTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/JPAPersistentTimerTest.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/JPAPersistentTimerTest.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,59 @@
+package org.drools.timer.test;
+
+import javax.persistence.EntityManagerFactory;
+
+import junit.framework.TestCase;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.base.MapGlobalResolver;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.persistence.jpa.JPAKnowledgeService;
+import org.drools.runtime.Environment;
+import org.drools.runtime.EnvironmentName;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.timer.core.ProcessTimerQuartzPersistenceStrategy;
+import org.drools.timer.core.connector.impl.HornetQSchedulerConnector;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import bitronix.tm.TransactionManagerServices;
+
+public class JPAPersistentTimerTest extends TestCase {
+
+	public void testPersistenceTimer() throws Exception {
+		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("contextTest.xml");
+
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+		kbuilder.add(new ClassPathResource("TimerProcess.rf"), ResourceType.DRF);
+		KnowledgeBase kbase = kbuilder.newKnowledgeBase();
+
+		EntityManagerFactory emf = (EntityManagerFactory) context.getBean("entityManagerFactory");
+
+		Environment env = KnowledgeBaseFactory.newEnvironment();
+		env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );
+		env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
+		env.set(EnvironmentName.PROCESS_TIMER_STRATEGY, new ProcessTimerQuartzPersistenceStrategy(new HornetQSchedulerConnector("127.0.0.1", 5446)));
+		env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager());
+
+		StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env );
+		int id = ksession.getId();
+		ksession.dispose();
+
+		ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env );
+		ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" );
+		ksession.dispose();
+
+//		assertNotNull(TestWorkItemHandler.getInstance().getWorkItem());
+
+		Thread.sleep(5000);
+
+		ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env );
+		processInstance = ksession.getProcessInstance( processInstance.getId() );
+		assertNull( processInstance );
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/JPAPersistentTimerTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/QuartzDBStructureInit.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/QuartzDBStructureInit.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/QuartzDBStructureInit.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,90 @@
+package org.drools.timer.test.helper;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class QuartzDBStructureInit {
+	
+	private static final Logger logger = LoggerFactory.getLogger(QuartzDBStructureInit.class);
+
+	private Connection connection;
+	private String dataSource;
+	private String sqlFile;
+
+	public void connect() throws SQLException, NamingException, IOException {
+		logger.info("Initializing initial Quartz Database Structure");
+		Context ctx = new InitialContext();
+		DataSource ds = (DataSource) ctx.lookup(dataSource);
+		connection = ds.getConnection();
+		Statement statement = connection.createStatement();
+		statement.execute(readSQLStatementsFile());
+		statement.close();
+		logger.info("Quartz Database Structure created.");
+	}
+
+	private String readSQLStatementsFile() throws IOException {
+		InputStream inputStream = QuartzDBStructureInit.class.getResourceAsStream(sqlFile);
+		StringBuilder sqlStatement = new StringBuilder();
+		BufferedInputStream bis = new BufferedInputStream(inputStream);
+		BufferedReader br = new BufferedReader(new InputStreamReader(bis));
+		String line;
+		while ((line = br.readLine()) != null)   {
+			sqlStatement.append(line);
+			sqlStatement.append(System.getProperty("line.separator"));
+		}
+		br.close();
+		inputStream.close();
+		return sqlStatement.toString();
+	}
+
+	public void disconnect() throws SQLException {
+		connection.close();
+	}
+
+	public void setDataSource(String dataSource) {
+		this.dataSource = dataSource;
+	}
+
+	public String getDataSource() {
+		return dataSource;
+	}
+
+	public void setSqlFile(String sqlFile) {
+		this.sqlFile = sqlFile;
+	}
+
+	public String getSqlFile() {
+		return sqlFile;
+	}
+
+	public static void main(String[] args) throws IOException {
+		InputStream inputStream = QuartzDBStructureInit.class.getResourceAsStream("/tables_h2.sql");
+		StringBuilder contents = new StringBuilder();
+		BufferedInputStream bis = new BufferedInputStream(inputStream);
+		BufferedReader br = new BufferedReader(new InputStreamReader(bis));
+		String line;
+		while ((line = br.readLine()) != null)   {
+			contents.append(line);
+			contents.append(System.getProperty("line.separator"));
+		}
+		//Close the input stream
+		br.close();
+		inputStream.close();
+		System.out.println(contents);
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/QuartzDBStructureInit.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/TimerMessageHornetQClient.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/TimerMessageHornetQClient.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/TimerMessageHornetQClient.java	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,49 @@
+package org.drools.timer.test.helper;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+
+import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.client.ClientMessage;
+import org.hornetq.api.core.client.ClientProducer;
+import org.hornetq.api.core.client.ClientSession;
+
+public class TimerMessageHornetQClient {
+
+	private ClientSession session;
+	private ClientProducer producer;
+
+	public void write(Object message) {
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		ObjectOutputStream oout;
+		try {
+			oout = new ObjectOutputStream(baos);
+			oout.writeObject(message);
+			ClientMessage clientMessage = session.createMessage(true);
+			clientMessage.getBodyBuffer().writeBytes(baos.toByteArray());
+			producer.send(clientMessage);
+		} catch (IOException e) {
+			throw new RuntimeException("Error creating message", e);
+		} catch (HornetQException e) {
+			throw new RuntimeException("Error writing message", e);
+		}
+	}
+
+	public void setSession(ClientSession session) {
+		this.session = session;
+	}
+
+	public ClientSession getSession() {
+		return session;
+	}
+
+	public void setProducer(ClientProducer producer) {
+		this.producer = producer;
+	}
+
+	public ClientProducer getProducer() {
+		return producer;
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/java/org/drools/timer/test/helper/TimerMessageHornetQClient.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/persistence.xml	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/persistence.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence       http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd    http://java.sun.com/xml/ns/persistence/orm     http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
+  <persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <jta-data-source>jdbc/timersDS</jta-data-source>        
+    <class>org.drools.persistence.session.SessionInfo</class>
+    <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
+    <class>org.drools.persistence.processinstance.variabletypes.JPAPersistedVariable</class>
+    <class>org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo</class>
+    <class>org.drools.persistence.processinstance.variabletypes.SerializablePersistedVariable</class>
+    <class>org.drools.persistence.processinstance.WorkItemInfo</class>
+    <class>org.drools.timer.persistence.model.TimerState</class>
+
+    <properties>
+      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>	        
+	  <property name="hibernate.max_fetch_depth" value="3"/>
+	  <property name="hibernate.hbm2ddl.auto" value="update" />
+      <property name="hibernate.show_sql" value="true" />	
+      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup" />
+	</properties>        
+
+  </persistence-unit>
+</persistence>
\ No newline at end of file


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/META-INF/persistence.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/TimerProcess.rf
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/TimerProcess.rf	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/TimerProcess.rf	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<process xmlns="http://drools.org/drools-5.0/process"
+         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+         xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
+         type="RuleFlow" name="ruleflow" id="org.drools.test.TestProcess" package-name="org.drools.test" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <start id="1" name="Start" />
+    <humanTask id="2" name="User Task" >
+      <work name="Human Task" >
+      </work>
+      <timers>
+        <timer id="1" delay="1000" >
+        <action type="expression" dialect="java" >System.out.println("Timer triggered");
+((org.drools.process.instance.ProcessInstance) kcontext.getProcessInstance()).setState(org.drools.runtime.process.ProcessInstance.STATE_ABORTED);</action>
+        </timer>
+      </timers>
+    </humanTask>
+    <end id="3" name="End" />
+  </nodes>
+
+  <connections>
+    <connection from="1" to="2" />
+    <connection from="2" to="3" />
+  </connections>
+
+</process>
\ No newline at end of file


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/TimerProcess.rf
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/contextTest.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/contextTest.xml	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/contextTest.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,175 @@
+<?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.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" />
+  </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" depends-on="quartzDBStructureInit" >
+    <!-- Quartz Persistence -->
+     <property name="dataSource">
+       <ref bean="dataSource"/>
+     </property>
+    <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>
+        <!-- Job store -->
+        <prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
+        <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
+        <prop key="org.quartz.jobStore.useProperties">false</prop>
+        <prop key="org.quartz.jobStore.isClustered">true</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">10000</prop>
+        <prop key="org.quartz.jobStore.dataSource">quartzDS</prop> 
+        <!-- DataSource -->
+        <!-- <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?</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>
+
+  <bean id="quartzDBStructureInit" class="org.drools.timer.test.helper.QuartzDBStructureInit" init-method="connect" destroy-method="disconnect">
+  	<property name="dataSource" value="jdbc/timersDS" /> 
+  	<property name="sqlFile" value="/tables_h2.sql" />
+  </bean>
+
+  <!-- Test Bean -->
+  <bean id="timerMessageHornetQClient" class="org.drools.timer.test.helper.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>
+
+  <!-- HornetQ session for queue messageBoardQueue -->
+  <bean id="timerMessageConsumer" factory-bean="clientSession" factory-method="createConsumer" destroy-method="close">
+    <constructor-arg value="timerServiceMessages"/>
+  </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>
+          </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-tests/src/test/resources/contextTest.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jdbc.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jdbc.properties	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jdbc.properties	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,5 @@
+jdbc.quartz.delegateClassName=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+jdbc.driverClassName=com.mysql.jdbc.Driver
+jdbc.url=jdbc:mysql://localhost:3306/persistent_timers
+jdbc.username=quartz
+jdbc.password=quartz
\ No newline at end of file


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jdbc.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jndi.properties
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jndi.properties	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jndi.properties	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1 @@
+java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
\ No newline at end of file


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/jndi.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/tables_h2.sql
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/tables_h2.sql	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/tables_h2.sql	2010-08-10 14:29:27 UTC (rev 34621)
@@ -0,0 +1,238 @@
+-- Thanks to Amir Kibbar and Peter Rietzler for contributing the schema for H2 database, 
+-- and verifying that it works with Quartz's StdJDBCDelegate
+--
+-- Note, Quartz depends on row-level locking which means you must use the MVCC=TRUE 
+-- setting on your H2 database, or you will experience dead-locks
+--
+--
+-- In your Quartz properties file, you'll need to set 
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+
+CREATE TABLE QRTZ_CALENDARS (
+  CALENDAR_NAME VARCHAR (200)  NOT NULL ,
+  CALENDAR IMAGE NOT NULL
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  CRON_EXPRESSION VARCHAR (120)  NOT NULL ,
+  TIME_ZONE_ID VARCHAR (80) 
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+  ENTRY_ID VARCHAR (95)  NOT NULL ,
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  IS_VOLATILE BOOLEAN  NOT NULL ,
+  INSTANCE_NAME VARCHAR (200)  NOT NULL ,
+  FIRED_TIME BIGINT NOT NULL ,
+  PRIORITY INTEGER NOT NULL ,
+  STATE VARCHAR (16)  NOT NULL,
+  JOB_NAME VARCHAR (200)  NULL ,
+  JOB_GROUP VARCHAR (200)  NULL ,
+  IS_STATEFUL BOOLEAN  NULL ,
+  REQUESTS_RECOVERY BOOLEAN  NULL 
+);
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL 
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+  INSTANCE_NAME VARCHAR (200)  NOT NULL ,
+  LAST_CHECKIN_TIME BIGINT NOT NULL ,
+  CHECKIN_INTERVAL BIGINT NOT NULL
+);
+
+CREATE TABLE QRTZ_LOCKS (
+  LOCK_NAME VARCHAR (40)  NOT NULL 
+);
+
+CREATE TABLE QRTZ_JOB_DETAILS (
+  JOB_NAME VARCHAR (200)  NOT NULL ,
+  JOB_GROUP VARCHAR (200)  NOT NULL ,
+  DESCRIPTION VARCHAR (250) NULL ,
+  JOB_CLASS_NAME VARCHAR (250)  NOT NULL ,
+  IS_DURABLE BOOLEAN  NOT NULL ,
+  IS_VOLATILE BOOLEAN  NOT NULL ,
+  IS_STATEFUL BOOLEAN  NOT NULL ,
+  REQUESTS_RECOVERY BOOLEAN  NOT NULL ,
+  JOB_DATA IMAGE NULL
+);
+
+CREATE TABLE QRTZ_JOB_LISTENERS (
+  JOB_NAME VARCHAR (200)  NOT NULL ,
+  JOB_GROUP VARCHAR (200)  NOT NULL ,
+  JOB_LISTENER VARCHAR (200)  NOT NULL
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  REPEAT_COUNT BIGINT NOT NULL ,
+  REPEAT_INTERVAL BIGINT NOT NULL ,
+  TIMES_TRIGGERED BIGINT NOT NULL
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  BLOB_DATA IMAGE NULL
+);
+
+CREATE TABLE QRTZ_TRIGGER_LISTENERS (
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  TRIGGER_LISTENER VARCHAR (200)  NOT NULL
+);
+
+CREATE TABLE QRTZ_TRIGGERS (
+  TRIGGER_NAME VARCHAR (200)  NOT NULL ,
+  TRIGGER_GROUP VARCHAR (200)  NOT NULL ,
+  JOB_NAME VARCHAR (200)  NOT NULL ,
+  JOB_GROUP VARCHAR (200)  NOT NULL ,
+  IS_VOLATILE BOOLEAN  NOT NULL ,
+  DESCRIPTION VARCHAR (250) NULL ,
+  NEXT_FIRE_TIME BIGINT NULL ,
+  PREV_FIRE_TIME BIGINT NULL ,
+  PRIORITY INTEGER NULL ,
+  TRIGGER_STATE VARCHAR (16)  NOT NULL ,
+  TRIGGER_TYPE VARCHAR (8)  NOT NULL ,
+  START_TIME BIGINT NOT NULL ,
+  END_TIME BIGINT NULL ,
+  CALENDAR_NAME VARCHAR (200)  NULL ,
+  MISFIRE_INSTR SMALLINT NULL ,
+  JOB_DATA IMAGE NULL
+);
+
+ALTER TABLE QRTZ_CALENDARS  ADD
+  CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY  
+  (
+    CALENDAR_NAME
+  );
+
+ALTER TABLE QRTZ_CRON_TRIGGERS  ADD
+  CONSTRAINT PK_QRTZ_CRON_TRIGGERS PRIMARY KEY  
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  );
+
+ALTER TABLE QRTZ_FIRED_TRIGGERS  ADD
+  CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY  
+  (
+    ENTRY_ID
+  );
+
+ALTER TABLE QRTZ_PAUSED_TRIGGER_GRPS  ADD
+  CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY  
+  (
+    TRIGGER_GROUP
+  );
+
+ALTER TABLE QRTZ_SCHEDULER_STATE  ADD
+  CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY  
+  (
+    INSTANCE_NAME
+  );
+
+ALTER TABLE QRTZ_LOCKS  ADD
+  CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY  
+  (
+    LOCK_NAME
+  );
+
+ALTER TABLE QRTZ_JOB_DETAILS  ADD
+  CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY  
+  (
+    JOB_NAME,
+    JOB_GROUP
+  );
+
+ALTER TABLE QRTZ_JOB_LISTENERS  ADD
+  CONSTRAINT PK_QRTZ_JOB_LISTENERS PRIMARY KEY  
+  (
+    JOB_NAME,
+    JOB_GROUP,
+    JOB_LISTENER
+  );
+
+ALTER TABLE QRTZ_SIMPLE_TRIGGERS  ADD
+  CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY  
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  );
+
+ALTER TABLE QRTZ_TRIGGER_LISTENERS  ADD
+  CONSTRAINT PK_QRTZ_TRIGGER_LISTENERS PRIMARY KEY  
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP,
+    TRIGGER_LISTENER
+  );
+
+ALTER TABLE QRTZ_TRIGGERS  ADD
+  CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY  
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  );
+
+ALTER TABLE QRTZ_CRON_TRIGGERS ADD
+  CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) REFERENCES QRTZ_TRIGGERS (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) ON DELETE CASCADE;
+
+ALTER TABLE QRTZ_JOB_LISTENERS ADD
+  CONSTRAINT FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS FOREIGN KEY
+  (
+    JOB_NAME,
+    JOB_GROUP
+  ) REFERENCES QRTZ_JOB_DETAILS (
+    JOB_NAME,
+    JOB_GROUP
+  ) ON DELETE CASCADE;
+
+ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD
+  CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) REFERENCES QRTZ_TRIGGERS (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) ON DELETE CASCADE;
+
+ALTER TABLE QRTZ_TRIGGER_LISTENERS ADD
+  CONSTRAINT FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS FOREIGN KEY
+  (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) REFERENCES QRTZ_TRIGGERS (
+    TRIGGER_NAME,
+    TRIGGER_GROUP
+  ) ON DELETE CASCADE;
+
+ALTER TABLE QRTZ_TRIGGERS ADD
+  CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS FOREIGN KEY
+  (
+    JOB_NAME,
+    JOB_GROUP
+  ) REFERENCES QRTZ_JOB_DETAILS (
+    JOB_NAME,
+    JOB_GROUP
+  );
+
+INSERT INTO QRTZ_LOCKS VALUES('TRIGGER_ACCESS');
+INSERT INTO QRTZ_LOCKS VALUES('JOB_ACCESS');
+INSERT INTO QRTZ_LOCKS VALUES('CALENDAR_ACCESS');
+INSERT INTO QRTZ_LOCKS VALUES('STATE_ACCESS');
+INSERT INTO QRTZ_LOCKS VALUES('MISFIRE_ACCESS');
+COMMIT;


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-tests/src/test/resources/tables_h2.sql
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -13,9 +13,11 @@
 
   <modules>
     <module>drools-timer-core</module>
+    <module>drools-timer-persistence</module>
     <module>drools-timer-messages</module>
     <module>drools-timer-scheduler</module>
     <module>drools-timer-executor</module>
+    <module>drools-timer-tests</module>
   </modules>
 
   <properties>

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml	2010-08-10 12:03:17 UTC (rev 34620)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml	2010-08-10 14:29:27 UTC (rev 34621)
@@ -1035,6 +1035,11 @@
          </dependency>
          <dependency>
             <groupId>org.drools</groupId>
+            <artifactId>drools-timer-persistence</artifactId>
+            <version>${project.version}</version>
+         </dependency>
+         <dependency>
+            <groupId>org.drools</groupId>
             <artifactId>drools-timer-messages</artifactId>
             <version>${project.version}</version>
          </dependency>



More information about the jboss-svn-commits mailing list