[jboss-svn-commits] JBL Code SVN: r31037 - in labs/jbossrules/branches/salaboy_grid-rio: drools-grid-rio and 17 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 12 14:05:56 EST 2010
Author: salaboy21
Date: 2010-01-12 14:05:56 -0500 (Tue, 12 Jan 2010)
New Revision: 31037
Added:
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/nb-configuration.xml
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/pom.xml
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioConnector.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioServer.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/SessionService.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/service/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/resources/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/conf/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/conf/test-config.groovy
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ITServiceManagerRioRemoteTest.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ServiceManagerTestBase.java
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/drools/
labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/drools/sessionService.groovy
Log:
rio first steps with vsm
Property changes on: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio
___________________________________________________________________
Name: svn:ignore
+ target
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/nb-configuration.xml
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/nb-configuration.xml (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/nb-configuration.xml 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting and the like.
+You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting rules for example).
+Any value defined here will override the pom.xml file value but is only applicable to the current project.
+-->
+ <netbeans.hint.jdkPlatform>JDK_1.6</netbeans.hint.jdkPlatform>
+ </properties>
+</project-shared-configuration>
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/pom.xml (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/pom.xml 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-rio</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ <name>drools-grid-rio</name>
+ <packaging>oar</packaging>
+
+ <url>http://maven.apache.org</url>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.rioproject</groupId>
+ <artifactId>rio</artifactId>
+ <version>4.0-M3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rioproject</groupId>
+ <artifactId>rio-test</artifactId>
+ <version>4.0-M3</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-vsm</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-api</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.6</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-rio-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <opstring>src/test/resources/org/drools/sessionService.groovy</opstring>
+ <createJar>
+ <classifier>dl</classifier>
+ <in>org.drools.vsm.rio</in>
+ <topclasses>
+ <topclass>org.drools.vsm.rio.SessionService</topclass>
+ </topclasses>
+ </createJar>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/*IT*.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ <version>2.4.3-alpha-1</version>
+ <configuration>
+ <forkMode>always</forkMode>
+ <argLine>-DRIO_TEST_ATTACH</argLine>
+ <systemProperties>
+ <property>
+ <name>RIO_HOME</name>
+ <value>/Users/salaboy/projects/rio/distribution/target/rio-4.0-M3/</value>
+ </property>
+ <property>
+ <name>opstring</name>
+ <value>src/test/resources/org/drools/sessionService.groovy</value>
+ </property>
+ <property>
+ <name>org.rioproject.test.config</name>
+ <value>src/test/conf/test-config.groovy</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <repository>
+ <id>rio</id>
+ <url>http://www.rio-project.org/maven2</url>
+ </repository>
+ <repository>
+ <id>elastic-grid</id>
+ <url>http://maven.elastic-grid.com</url>
+ </repository>
+ <repository>
+ <id>jboss-snapshots</id>
+ <url>http://snapshots.jboss.org/maven2</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>rio</id>
+ <url>http://www.rio-project.org/maven2</url>
+ </pluginRepository>
+
+ <pluginRepository>
+
+ <id>elastic-grid</id>
+ <url>http://maven.elastic-grid.com</url>
+
+ </pluginRepository>
+ </pluginRepositories>
+</project>
+
+
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioConnector.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioConnector.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,140 @@
+package org.drools.vsm.rio;
+
+import java.io.IOException;
+import java.rmi.RemoteException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.net.SocketAddress;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import net.jini.core.lookup.ServiceItem;
+import net.jini.core.lookup.ServiceTemplate;
+import net.jini.discovery.LookupDiscoveryManager;
+import net.jini.lease.LeaseRenewalManager;
+import net.jini.lookup.ServiceDiscoveryManager;
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.ClientGenericMessageReceiver;
+import org.drools.vsm.GenericConnector;
+import org.drools.vsm.GenericIoWriter;
+import org.drools.vsm.Message;
+import org.drools.vsm.MessageResponseHandler;
+import org.drools.vsm.mina.ClientGenericMessageReceiverImpl;
+
+public class RioConnector
+ implements
+ GenericConnector,
+ GenericIoWriter {
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected SessionService sessionService;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+ protected ClientGenericMessageReceiver ioHandler;
+
+ public RioConnector(String name,
+ SystemEventListener eventListener,
+ ClientGenericMessageReceiver ioHandler) {
+ if ( name == null ) {
+ throw new IllegalArgumentException( "Name can not be null" );
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.ioHandler = ioHandler;
+ }
+
+ public RioConnector(String name,
+ SystemEventListener eventListener,
+ SessionService sessionService,
+ ClientGenericMessageReceiver ioHandler) {
+ if ( name == null ) {
+ throw new IllegalArgumentException( "Name can not be null" );
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.sessionService = sessionService;
+ this.ioHandler = ioHandler; //new RioIoHandler( this.eventListener );
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.vsm.mina.Messenger#connect()
+ */
+ public boolean connect() {
+ // Class[] classes = new Class[]{org.drools.vsm.rio.SessionService.class};
+ // ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+ //
+ // LookupDiscoveryManager lookupDiscovery = null;
+ // ServiceItem item = null;
+ // try {
+ // lookupDiscovery = new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS, null, null);
+ //
+ //
+ // System.out.println("Discovering Manager service ...");
+ //
+ // ServiceDiscoveryManager serviceDiscovery = new ServiceDiscoveryManager(lookupDiscovery, new LeaseRenewalManager());
+ //
+ // /* Wait no more then 10 seconds to discover the service */
+ // item = serviceDiscovery.lookup(tmpl, null, 10000);
+ //
+ // serviceDiscovery.terminate();
+ // } catch (InterruptedException ex) {
+ // Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+ // } catch (RemoteException ex) {
+ // Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+ // } catch (IOException ex) {
+ // Logger.getLogger(RioConnector.class.getName()).log(Level.SEVERE, null, ex);
+ // }
+ // if (item != null) {
+ // System.out.println("Discovered Account service");
+ // if (item.service instanceof SessionService) {
+ // sessionService = (SessionService) item.service;
+ //
+ // }
+ // return true;
+ // } else {
+ // System.out.println("Session service not discovered, make sure the" +
+ // "service is deployed");
+ // return false;
+ // }
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.vsm.mina.Messenger#disconnect()
+ */
+ public void disconnect() {
+ //I don't need to be disconected
+ }
+
+ public Message write(Message msg) {
+ if ( sessionService != null ) {
+ try {
+
+ Message returnMessage = this.sessionService.write( msg );
+ return returnMessage;
+ // ioHandler.messageReceived( sessionService ,
+ // returnMessage );
+
+ } catch ( RemoteException ex ) {
+ Logger.getLogger( RioConnector.class.getName() ).log( Level.SEVERE,
+ null,
+ ex );
+ } catch ( Exception ex ) {
+ Logger.getLogger( RioConnector.class.getName() ).log( Level.SEVERE,
+ null,
+ ex );
+ }
+ }
+ throw new IllegalStateException( "sessionService should not be null" );
+ }
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+
+}
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioServer.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioServer.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/RioServer.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,48 @@
+package org.drools.vsm.rio;
+
+
+import java.io.File;
+import java.io.IOException;
+
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.vsm.AcceptorService;
+
+
+public class RioServer
+ implements
+ AcceptorService {
+ private SessionService sessionService;
+ private String opstring = "src/test/resources/org/drools/sessionService.groovy";
+
+ public RioServer() {
+
+ }
+
+
+ public synchronized void start() throws IOException {
+// try {
+// StaticCybernode cybernode = new StaticCybernode();
+// Map<String, Object> map = cybernode.activate(new File(opstring));
+// for (Map.Entry<String, Object> entry : map.entrySet()) {
+// String beanName = entry.getKey();
+// Object beanImpl = entry.getValue();
+// if (beanName.equals("SessionService")) {
+// sessionService = (SessionService) beanImpl;
+// }
+// }
+// } catch (Exception ex) {
+// Logger.getLogger(RioServer.class.getName()).log(Level.SEVERE, null, ex);
+// }
+ }
+
+ public synchronized void stop() {
+ //do nothing
+ }
+ public SessionService getSessionService(){
+ return this.sessionService;
+ }
+
+
+}
\ No newline at end of file
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/SessionService.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/SessionService.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/SessionService.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.drools.vsm.rio;
+
+import java.rmi.RemoteException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.vsm.GenericIoWriter;
+import org.drools.vsm.Message;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface SessionService extends GenericIoWriter {
+
+ public Message write(Message msg) throws RemoteException;
+
+}
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/main/java/org/drools/vsm/rio/service/SessionServiceImpl.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2009 salaboy.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+
+package org.drools.vsm.rio.service;
+
+import java.rmi.RemoteException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.BlockingGenericIoWriter;
+import org.drools.vsm.GenericMessageHandler;
+import org.drools.vsm.GenericMessageHandlerImpl;
+import org.drools.vsm.Message;
+import org.drools.vsm.MessageResponseHandler;
+import org.drools.vsm.ServiceManagerData;
+import org.drools.vsm.rio.SessionService;
+
+/**
+ *
+ * @author salaboy
+ */
+public class SessionServiceImpl implements SessionService{
+ private GenericMessageHandler handler;
+
+ public SessionServiceImpl() {
+ handler = new GenericMessageHandlerImpl(new ServiceManagerData(), SystemEventListenerFactory.getSystemEventListener());
+ }
+
+
+ public SessionServiceImpl(ServiceManagerData data,
+ SystemEventListener systemEventListener) {
+ handler = new GenericMessageHandlerImpl( data, systemEventListener );
+ }
+
+
+ public Message write(Message msg) throws RemoteException {
+ BlockingGenericIoWriter blockingWriter = new BlockingGenericIoWriter();
+ try {
+ handler.messageReceived( blockingWriter, msg );
+ } catch ( Exception e ) {
+ throw new RemoteException( e.getMessage() );
+ }
+
+ return blockingWriter.getMessage();
+ }
+
+ public GenericMessageHandler getGenericMessageHandler() {
+ return this.handler;
+ }
+
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+
+}
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/conf/test-config.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/conf/test-config.groovy (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/conf/test-config.groovy 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,13 @@
+/*
+ * Configuration file for integration test cases
+ */
+ITServiceManagerRioRemoteTest {
+ groups = "ITServiceManagerRioRemoteTest"
+ numCybernodes = 1
+ numMonitors = 1
+ //numLookups = 1
+ opstring = 'src/test/resources/org/drools/sessionService.groovy'
+ autoDeploy = true
+ //harvest = true
+}
+
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ITServiceManagerRioRemoteTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ITServiceManagerRioRemoteTest.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ITServiceManagerRioRemoteTest.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,52 @@
+package org.drools.vms;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.vsm.AcceptorService;
+import org.drools.vsm.GenericMessageHandler;
+import org.drools.vsm.ServiceManagerData;
+import org.drools.vsm.mina.ClientGenericMessageReceiverImpl;
+import org.drools.vsm.remote.ServiceManagerRemoteClient;
+import org.drools.vsm.rio.RioConnector;
+import org.drools.vsm.rio.RioServer;
+import org.drools.vsm.rio.SessionService;
+import org.drools.vsm.rio.service.SessionServiceImpl;import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.rioproject.test.RioTestRunner;
+import org.rioproject.test.SetTestManager;
+import org.rioproject.test.TestManager;
+
+ at RunWith(RioTestRunner.class)
+public class ITServiceManagerRioRemoteTest extends ServiceManagerTestBase {
+ AcceptorService server;
+ @SetTestManager
+ static TestManager testManager;
+ @Before
+ public void setUp() throws Exception {
+
+ ServiceManagerData serverData = new ServiceManagerData();
+
+ //setup Server
+ SessionService sessionService = (SessionService) testManager.waitForService(SessionService.class);
+
+ GenericMessageHandler handler = ((SessionServiceImpl)sessionService).getGenericMessageHandler();
+
+ RioConnector connector = new RioConnector( "client 1",
+ SystemEventListenerFactory.getSystemEventListener(),
+ sessionService,
+ new ClientGenericMessageReceiverImpl(handler, SystemEventListenerFactory.getSystemEventListener()));
+
+ // setup Client
+ this.client = new ServiceManagerRemoteClient( "client 1",
+ connector );
+ //this.client.connect();
+
+ }
+ @After
+ public void tearDown() throws Exception {
+
+ ((ServiceManagerRemoteClient) client).disconnect();
+ //this.server.stop();
+ }
+
+}
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ServiceManagerTestBase.java
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ServiceManagerTestBase.java (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/java/org/drools/vms/ServiceManagerTestBase.java 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,187 @@
+package org.drools.vms;
+
+
+
+import junit.framework.Assert;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.vsm.ServiceManager;
+import org.junit.Test;
+
+
+public class ServiceManagerTestBase {
+
+
+
+ protected ServiceManager client;
+
+ @Test
+ public void testFireAllRules() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ int fired = ksession.fireAllRules();
+ Assert.assertEquals( 2,
+ fired );
+
+ }
+ @Test
+ public void testExecute() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ }
+ @Test
+ public void testNamedService() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ this.client.register( "ksession1",
+ ksession );
+
+ ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2,
+ (int) (Integer) results.getValue( "fired" ) );
+ }
+ @Test
+ public void testVsmPipeline() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello1!!!\" ); \n";
+ str += "end \n";
+ str += "rule rule2 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += "then \n";
+ str += " System.out.println( \"hello2!!!\" ); \n";
+ str += "end \n";
+
+ KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+ KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( "Errors: " + kbuilder.getErrors() );
+ }
+
+ KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+ KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ this.client.register( "ksession1",
+ ksession );
+
+ ExecutionResults results = this.client.lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+ Assert.assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+ }
+
+
+}
Added: labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/drools/sessionService.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/drools/sessionService.groovy (rev 0)
+++ labs/jbossrules/branches/salaboy_grid-rio/drools-grid-rio/src/test/resources/org/drools/sessionService.groovy 2010-01-12 19:05:56 UTC (rev 31037)
@@ -0,0 +1,29 @@
+import org.rioproject.config.Constants
+
+deployment(name:'sessionService') {
+ /* Configuration for the discovery group that the service should join.
+ * This first checks if the org.rioproject.groups property is set, if not
+ * the user name is used */
+ groups System.getProperty(Constants.GROUPS_PROPERTY_NAME,
+ System.getProperty('user.name'))
+
+ /* Declares the artifacts required for deployment. Note the 'dl'
+ * classifier used for the 'download' jar */
+ artifact id:'service', 'org.drools:drools-grid-rio:5.1.0.SNAPSHOT'
+ artifact id:'service-dl', 'org.drools:drools-grid-rio:dl:5.1.0.SNAPSHOT'
+
+ /*
+ * Declare the service to be deployed. The number of instances deployed
+ * defaults to 1. If you require > 1 instances change as needed
+ */
+ service(name: 'SessionService') {
+ interfaces {
+ classes 'org.drools.vsm.rio.SessionService'
+ artifact ref:'service-dl'
+ }
+ implementation(class:'org.drools.vsm.rio.service.SessionServiceImpl') {
+ artifact ref:'service'
+ }
+ maintain 1
+ }
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list