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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 4 21:41:37 EDT 2010


Author: lucazamador
Date: 2010-08-04 21:41:36 -0400 (Wed, 04 Aug 2010)
New Revision: 34528

Added:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerMessageProcessor.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
   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/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerCommunicationTest.java
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/pom.xml
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/ProcessTimerQuartzPersistenceStrategy.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/connector/impl/HornetQSchedulerConnector.java
   labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml
Log:
pom dependencies fixed. strategy & connector integration refactored

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 00:55:20 UTC (rev 34527)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/pom.xml	2010-08-05 01:41:36 UTC (rev 34528)
@@ -14,8 +14,11 @@
   <dependencies>
     <dependency>
       <groupId>org.drools</groupId>
+      <artifactId>drools-timer-messages</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
       <artifactId>drools-timer-communication</artifactId>
-      <version>5.1.0</version>
     </dependency>
     
     <!-- Spring Dependencies -->

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerMessageProcessor.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/java/org/drools/timer/scheduler/TimerMessageProcessor.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/TimerMessageProcessor.java	2010-08-05 01:41:36 UTC (rev 34528)
@@ -0,0 +1,16 @@
+package org.drools.timer.scheduler;
+
+import org.drools.timer.message.impl.InsertScheduledTimerMessage;
+import org.drools.timer.message.impl.RemoveScheduledTimerMessage;
+
+public class TimerMessageProcessor {
+
+	public void process(InsertScheduledTimerMessage message) {
+		System.out.println("process InsertScheduledTimerMessage");
+	}
+
+	public void process(RemoveScheduledTimerMessage message) {
+		System.out.println("process RemoveScheduledTimerMessage");
+	}
+
+}


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/TimerMessageProcessor.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: 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	                        (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/TimerScheduler.java	2010-08-05 01:41:36 UTC (rev 34528)
@@ -0,0 +1,5 @@
+package org.drools.timer.scheduler;
+
+public class TimerScheduler {
+	
+}


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/TimerScheduler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/main/resources/context.xml	2010-08-05 01:41:36 UTC (rev 34528)
@@ -0,0 +1,84 @@
+<?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="timerMessageHornetQServer" class="org.drools.timer.communication.impl.TimerMessageHornetQServer" init-method="start" destroy-method="stop">
+    <property name="consumer" ref="timerMessageConsumer"/>
+  </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-scheduler/src/main/resources/context.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerCommunicationTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerCommunicationTest.java	                        (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerCommunicationTest.java	2010-08-05 01:41:36 UTC (rev 34528)
@@ -0,0 +1,17 @@
+package org.drools.timer.scheduler;
+
+import org.drools.timer.communication.impl.TimerMessageHornetQServer;
+import org.junit.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.util.Assert;
+
+public class TimerCommunicationTest {
+
+	@Test
+	public void simple() throws InterruptedException {
+		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
+		TimerMessageHornetQServer timerMessageServer = (TimerMessageHornetQServer) context.getBean("timerMessageHornetQServer");
+		Assert.notNull(timerMessageServer);
+	}
+
+}


Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-scheduler/src/test/java/org/drools/timer/scheduler/TimerCommunicationTest.java
___________________________________________________________________
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-05 00:55:20 UTC (rev 34527)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml	2010-08-05 01:41:36 UTC (rev 34528)
@@ -2,7 +2,7 @@
 <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</artifactId>
+    <artifactId>drools-process</artifactId>
     <groupId>org.drools</groupId>
     <version>5.1.0</version>
   </parent>

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/ProcessTimerQuartzPersistenceStrategy.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/ProcessTimerQuartzPersistenceStrategy.java	2010-08-05 00:55:20 UTC (rev 34527)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/ProcessTimerQuartzPersistenceStrategy.java	2010-08-05 01:41:36 UTC (rev 34528)
@@ -5,15 +5,14 @@
 import org.drools.time.impl.IntervalTrigger;
 import org.drools.time.impl.ProcessJobHandle;
 import org.drools.time.strategy.connector.SchedulerConnector;
-import org.drools.time.strategy.connector.impl.HornetQSchedulerConnector;
 
 public class ProcessTimerQuartzPersistenceStrategy implements ProcessTimerPersistenceStrategy {
 
 	private final SchedulerConnector connector;
 
-	public ProcessTimerQuartzPersistenceStrategy(String address, Integer port) throws Exception {
-		connector = new HornetQSchedulerConnector(address, port);
-		connector.connect();
+	public ProcessTimerQuartzPersistenceStrategy(SchedulerConnector connector) throws Exception {
+		this.connector = connector;
+		this.connector.connect();
 	}
 
 	public void save(ProcessJobContext processContext, IntervalTrigger intervalTrigger) {

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/connector/impl/HornetQSchedulerConnector.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/connector/impl/HornetQSchedulerConnector.java	2010-08-05 00:55:20 UTC (rev 34527)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-process-task/src/main/java/org/drools/time/strategy/connector/impl/HornetQSchedulerConnector.java	2010-08-05 01:41:36 UTC (rev 34528)
@@ -7,7 +7,6 @@
 import java.util.Map;
 
 import org.drools.process.instance.timer.TimerManager.ProcessJobContext;
-import org.drools.task.service.hornetq.HornetQTaskServer;
 import org.drools.time.strategy.connector.SchedulerConnector;
 import org.drools.timer.message.impl.InsertScheduledTimerMessage;
 import org.hornetq.api.core.HornetQException;
@@ -22,11 +21,19 @@
 
 public class HornetQSchedulerConnector implements SchedulerConnector {
 
+	private String DEFAULT_TIMER_MESSAGES_QUEUE = "timerServiceMessages";
+
 	private ClientSession session;
 	private ClientProducer producer;
 	private Integer port;
 	private String address;
+	private boolean connected;
 
+	/**
+	 * Create a HornetQ connector with the Timer Scheduler
+	 * @param address Timer Scheduler address
+	 * @param port Timer Scheduler port
+	 */
 	public HornetQSchedulerConnector(String address, Integer port) {
 		if (address==null) {
 			throw new IllegalArgumentException("address is a required argument");
@@ -37,16 +44,38 @@
 		this.address = address;
 		this.port = port;
 	}
+	
+	/**
+	 * Create a HornetQ connector with 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.
+	 * 							 Default value: timerServiceMessages
+	 */
+	public HornetQSchedulerConnector(String address, Integer port, String timersMessageQueue) {
+		this(address, port);
+		if (timersMessageQueue==null) {
+			throw new IllegalArgumentException("TimersMessageQueue is a required argument");
+		}
+		this.DEFAULT_TIMER_MESSAGES_QUEUE = timersMessageQueue;
+	}
 
+	/**
+	 * Create the connection with the Timer Scheduler.
+	 */
 	public void connect() throws HornetQException {
+		if (connected) {
+			return;
+		}
 		Map<String, Object> connectionParams = new HashMap<String, Object>();
 		connectionParams.put(TransportConstants.PORT_PROP_NAME, port);
 		connectionParams.put(TransportConstants.HOST_PROP_NAME, address);
 		TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getCanonicalName(), connectionParams);
 		ClientSessionFactory factory = HornetQClient.createClientSessionFactory(transportConfiguration);
 		session = factory.createSession();
-		producer = session.createProducer(HornetQTaskServer.SERVER_TASK_COMMANDS_QUEUE);
+		producer = session.createProducer(DEFAULT_TIMER_MESSAGES_QUEUE);
 		session.start();
+		connected = true;
 	}
 
 	public void disconnect() throws Exception {

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml	2010-08-05 00:55:20 UTC (rev 34527)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/pom.xml	2010-08-05 01:41:36 UTC (rev 34528)
@@ -910,6 +910,11 @@
          </dependency>
          <dependency>
             <groupId>org.drools</groupId>
+            <artifactId>drools-process</artifactId>
+            <version>${project.version}</version>
+         </dependency>
+         <dependency>
+            <groupId>org.drools</groupId>
             <artifactId>drools-process-task</artifactId>
             <version>${project.version}</version>
          </dependency>
@@ -1030,12 +1035,12 @@
          </dependency>
          <dependency>
             <groupId>org.drools</groupId>
-            <artifactId>drools-timer-scheduler</artifactId>
+            <artifactId>drools-timer-communication</artifactId>
             <version>${project.version}</version>
          </dependency>
          <dependency>
             <groupId>org.drools</groupId>
-            <artifactId>drools-timer-communication</artifactId>
+            <artifactId>drools-timer-scheduler</artifactId>
             <version>${project.version}</version>
          </dependency>
          



More information about the jboss-svn-commits mailing list