[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