[jboss-svn-commits] JBL Code SVN: r34525 - 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 18:11:24 EDT 2010
Author: lucazamador
Date: 2010-08-04 18:11:23 -0400 (Wed, 04 Aug 2010)
New Revision: 34525
Added:
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/pom.xml
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageClient.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageServer.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/TimerMessageHornetQServer.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/log4j.xml
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/TimerCommunicationTest.java
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/resources/
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/resources/context.xml
labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml
Log:
initial structure. server implementation with hornetq
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication
___________________________________________________________________
Name: svn:ignore
+ .settings
target
.classpath
.project
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/pom.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/pom.xml (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/pom.xml 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,77 @@
+<?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</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.1.0</version>
+ </parent>
+ <artifactId>drools-timer-communication</artifactId>
+ <packaging>jar</packaging>
+ <name>Drools :: Timers :: Communication</name>
+
+ <dependencies>
+ <!-- HornetQ dependencies -->
+ <dependency>
+ <groupId>org.hornetq</groupId>
+ <artifactId>hornetq-core</artifactId>
+ <version>${hornetq.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hornetq</groupId>
+ <artifactId>hornetq-transports</artifactId>
+ <version>${hornetq.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.netty</groupId>
+ <artifactId>netty</artifactId>
+ <version>3.1.5.GA</version>
+ </dependency>
+
+ <!-- Spring Dependencies -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ </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>
+
+ <properties>
+ <hornetq.version>2.0.0.GA</hornetq.version>
+ <spring.version>3.0.2.RELEASE</spring.version>
+ </properties>
+
+</project>
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/pom.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageClient.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageClient.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageClient.java 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,11 @@
+package org.drools.timer.communication;
+
+public abstract class TimerMessageClient {
+
+ public abstract void connect();
+ public abstract void connect(String address, int port);
+ public abstract void disconnect() throws Exception;
+
+ public abstract void write(Object message);
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageClient.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageServer.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageServer.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageServer.java 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,8 @@
+package org.drools.timer.communication;
+
+public abstract class TimerMessageServer {
+
+ public abstract void start();
+ public abstract void stop();
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/TimerMessageServer.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/TimerMessageHornetQServer.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/TimerMessageHornetQServer.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/TimerMessageHornetQServer.java 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,84 @@
+package org.drools.timer.communication.impl;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+import org.drools.timer.communication.TimerMessageServer;
+import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.client.ClientConsumer;
+import org.hornetq.api.core.client.ClientMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TimerMessageHornetQServer extends TimerMessageServer {
+
+ private static final Logger logger = LoggerFactory.getLogger(TimerMessageHornetQServer.class);
+
+ private ClientConsumer consumer;
+ private boolean running;
+
+ public void start() {
+ running = true;
+ Thread t_consumer = new Thread(new MessageConsumer());
+ t_consumer.start();
+ logger.info("TimerServer started");
+ }
+
+ public void stop() {
+ running = false;
+ logger.info("TimerServer stopped");
+ }
+
+ private class MessageConsumer implements Runnable {
+ public void run() {
+ running = true;
+ try {
+ while (running) {
+ ClientMessage clientMessage = getConsumer().receive();
+ if (clientMessage!=null) {
+ Object object = readMessage(clientMessage);
+ System.out.println("message received: " + object);
+ }
+ }
+ }
+ catch (HornetQException e) {
+ switch (e.getCode()) {
+ case HornetQException.OBJECT_CLOSED:
+ logger.info(e.getMessage(), e);
+ break;
+ default:
+ logger.error(e.getMessage(), e);
+ break;
+ }
+ }
+ catch (Exception e) {
+ throw new RuntimeException("Server Exception with class " + getClass());
+ }
+ }
+ }
+
+ private Object readMessage(ClientMessage msgReceived) throws IOException {
+ int bodySize = msgReceived.getBodySize();
+ byte[] message = new byte[bodySize];
+ msgReceived.getBodyBuffer().readBytes(message);
+ ByteArrayInputStream bais = new ByteArrayInputStream(message);
+ try {
+ ObjectInputStream ois = new ObjectInputStream(bais);
+ return ois.readObject();
+ } catch (IOException e) {
+ throw new IOException("Error reading message");
+ } catch (ClassNotFoundException e) {
+ throw new IOException("Error creating message");
+ }
+ }
+
+ public void setConsumer(ClientConsumer consumer) {
+ this.consumer = consumer;
+ }
+
+ public ClientConsumer getConsumer() {
+ return consumer;
+ }
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/java/org/drools/timer/communication/impl/TimerMessageHornetQServer.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/log4j.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/log4j.xml (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/log4j.xml 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+<!-- $Id: log4j.xml,v 1.8 2006/04/26 17:29:10 gavin Exp $ -->
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} (%F:%M:%L) \t %m%n"/>
+ </layout>
+ </appender>
+ <logger name="org.drools">
+ <level value="DEBUG"/>
+ </logger>
+ <root>
+ <priority value="ERROR"/>
+ <appender-ref ref="CONSOLE"/>
+ </root>
+</log4j:configuration>
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/main/resources/log4j.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/TimerCommunicationTest.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/TimerCommunicationTest.java (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/TimerCommunicationTest.java 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,15 @@
+package org.drools.timer.communication;
+
+import org.junit.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class TimerCommunicationTest {
+
+ @Test
+ public void simple() throws InterruptedException {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
+ context.start();
+ Thread.sleep(10000);
+ }
+
+}
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/java/org/drools/timer/communication/TimerCommunicationTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/resources/context.xml
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/resources/context.xml (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-communication/src/test/resources/context.xml 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,81 @@
+<?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="timerServiceConsumer"/>
+ </bean>
+
+ <!-- HornetQ session for queue messageBoardQueue -->
+ <bean id="timerServiceConsumer" 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"/>
+
+ <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-communication/src/test/resources/context.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: 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 (rev 0)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml 2010-08-04 22:11:23 UTC (rev 34525)
@@ -0,0 +1,20 @@
+<?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</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.1.0</version>
+ </parent>
+
+ <artifactId>drools-persistent-timer</artifactId>
+ <packaging>pom</packaging>
+ <name>Drools :: Persistent Timer</name>
+
+ <modules>
+ <module>drools-timer-communication</module>
+ <!--module>drools-timer-scheduler</module-->
+ <!--module>drools-timer-executor</module-->
+ </modules>
+
+</project>
Property changes on: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/pom.xml
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list