[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