[jboss-svn-commits] JBL Code SVN: r35250 - in labs/jbossrules/trunk/drools-grid: drools-grid-distributed-api/src/main/java/org/drools/grid/distributed and 15 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 23 11:22:06 EDT 2010


Author: salaboy21
Date: 2010-09-23 11:22:05 -0400 (Thu, 23 Sep 2010)
New Revision: 35250

Added:
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/commands/
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java
Removed:
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java
Modified:
   labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
   labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
   labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
   labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
Log:
JBRULES-2618:  Drools Grid Services - Improve and clean tests
	- drools grid rio modifications to better use of the services, clean ups needed
	- move dependencies and little PoC working

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -39,8 +39,8 @@
     private static final String REMOTE_HORNETQ_NODE_CONNECTOR_CLASS       = "";
     private static final String REMOTE_HORNETQ_DIRECTORY_CONNECTOR_CLASS  = "";
     private static final String REMOTE_HORNETQ_TASK_CONNECTOR_CLASS       = "";
-    private static final String DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS      = "org.drools.grid.distributed.impl.DistributedRioNodeConnector";
-    private static final String DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS = "org.drools.distributed.directory.impl.DistributedRioDirectoryConnector";
+    private static final String DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS      = "org.drools.grid.distributed.connectors.DistributedRioNodeConnector";
+    private static final String DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS = "org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector";
     private static final String DISTRIBUTED_RIO_TASK_CONNECTOR_CLASS      = "";
 
     /* connectorString format:
@@ -336,7 +336,7 @@
 
             String[] connectorDetails = getConnectorDetails( connectorString );
             Class clazz = Class.forName( DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS );
-            if ( !"".equals( connectorDetails[3] ) ) {
+            if ( connectorDetails.length < 4 || !"".equals( connectorDetails[3] ) ) {
                 Constructor constructor = clazz.getConstructor( String.class,
                                                                 SystemEventListener.class,
                                                                 String.class );

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -126,7 +126,7 @@
         HumanTaskNode humanTaskNode = null;
         try {
             type = connector.getNodeConnectionType();
-            connector.connect();
+            
             type.setConnector( connector );
             type.setConnection( this );
 

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -47,7 +47,6 @@
 
     public DistributedConnectionNode(GenericNodeConnector connector,
                                      GenericConnection connection) {
-
         this.connector = connector;
         this.connection = connection;
 

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -96,8 +96,33 @@
     }
 
     public KnowledgeBase newKnowledgeBase(String kbaseId) {
-        // TODO Auto-generated method stub
-        return null;
+        
+            this.localId = kbaseId;
+        
+
+        Message msg = new Message( this.messageSession.getSessionId(),
+                                   this.messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new SetVariableCommand( "__TEMP__",
+                                                           this.localId,
+                                                           new NewKnowledgeBaseCommand( null ) ) );
+        try {
+            Object object = this.connector.write( msg ).getPayload();
+
+            //            if ( !(object instanceof FinishedCommand) ) {
+            //                throw new RuntimeException( "Response was not correctly ended" );
+            //            }
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
+        return new KnowledgeBaseGridClient( this.localId,
+                                            this.connector,
+                                            this.messageSession,
+                                            this.connection );
+
     }
 
     public KnowledgeBase newKnowledgeBase(String kbaseId,

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -10,6 +10,8 @@
 import org.drools.command.runtime.GetGlobalCommand;
 import org.drools.command.runtime.SetGlobalCommand;
 import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.common.DefaultFactHandle;
 import org.drools.event.process.ProcessEventListener;
 import org.drools.event.rule.AgendaEventListener;
 import org.drools.event.rule.WorkingMemoryEventListener;
@@ -89,7 +91,7 @@
                 throw new RuntimeException( "Response was not correctly received" );
             }
 
-            return (Integer) ((ExecutionResults) object).getValue( commandId );
+            return (Integer)  object;
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message",
                                         e );
@@ -321,8 +323,33 @@
     }
 
     public FactHandle insert(Object object) {
-        // TODO Auto-generated method stub
-        return null;
+       String commandId = "ksession.insert" + this.messageSession.getNextId();
+        String kresultsId = "kresults_" + this.messageSession.getSessionId();
+
+        Message msg = new Message( this.messageSession.getSessionId(),
+                                   this.messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand( object,
+                                                                                                           true ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  this.instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            
+            Object result = this.connector.write( msg ).getPayload();
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+            DefaultFactHandle handle = (DefaultFactHandle) result;
+
+            
+            return handle;
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
     }
 
     public void retract(FactHandle handle) {

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml	2010-09-23 15:22:05 UTC (rev 35250)
@@ -36,13 +36,11 @@
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-api</artifactId>
-            <version>5.2.0.SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-distributed-api</artifactId>
-            <version>5.2.0.SNAPSHOT</version>
         </dependency>
 
      <!-- RIO Runtime -->
@@ -72,7 +70,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.8.1</version>
+            <version>4.6</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -99,8 +97,10 @@
                         <topclasses>
                             <topclass>org.drools.grid.ExecutionNodeService</topclass>
                             <topclass>org.drools.grid.DirectoryNodeService</topclass>
-                            <topclass>org.drools.grid.distributed.RioNodeConnector</topclass>
+                            <topclass>org.drools.grid.distributed.connectors.DistributedRioNodeConnector</topclass>
+                            <topclass>org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector</topclass>
                             <topclass>org.drools.grid.distributed.util.IDEntry</topclass>
+                            <topclass>org.drools.grid.distributed.directory.commands.GetKnowledgeBaseGridCommand</topclass>
                             <topclass>org.drools.grid.distributed.util.RioResourceLocator</topclass>
                             <topclass>org.drools.grid.distributed.command.NewStatefulKnowledgeSessionGridCommand</topclass>
                             <topclass>org.drools.impl.SystemEventListenerServiceImpl</topclass>

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -17,12 +17,14 @@
 
 package org.drools.distributed.directory.impl;
 
+import org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector;
 import java.rmi.RemoteException;
 import java.util.Map;
 import org.drools.KnowledgeBase;
 import org.drools.grid.ConnectorException;
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericConnectorFactory;
 import org.drools.grid.GenericNodeConnector;
 
 /**
@@ -30,41 +32,60 @@
  * @author salaboy
  */
 public class DirectoryNodeServiceGridClient implements DirectoryNodeService {
-    private DirectoryNodeService client;
     
+    private GenericNodeConnector connector;
+    
     public DirectoryNodeServiceGridClient(GenericNodeConnector connector, GenericConnection connection) {
         
 
-
-        this.client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        this.connector = connector;
+    
     }
 
 
 
     public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
-        
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
         client.register(executorId, resourceId);
+        connector.disconnect();
     }
 
     public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
-        
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
         client.register(executorId, resourceConnector);
+        connector.disconnect();
     }
 
     public void unregister(String executorId) throws ConnectorException, RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        client.unregister(executorId);
+        connector.disconnect();
     }
 
     public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
-        return client.lookup(resourceId);
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        GenericNodeConnector result = GenericConnectorFactory.newConnector(client.lookupId(resourceId));
+        connector.disconnect();
+        return result;
     }
 
     public String lookupId(String resourceId) throws ConnectorException, RemoteException {
-        return client.lookupId(resourceId);
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        String result = client.lookupId(resourceId);
+        connector.disconnect();
+        return result;
     }
 
     public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
         client.registerKBase(kbaseId, resourceId);
+        connector.disconnect();
     }
 
     public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
@@ -76,15 +97,27 @@
     }
 
     public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
-        return client.lookupKBase(kbaseId);
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        KnowledgeBase result = client.lookupKBase(kbaseId);
+        connector.disconnect();
+        return result;
     }
 
     public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
-        return client.getExecutorsMap();
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        Map<String, String>  result = client.getExecutorsMap();
+        connector.disconnect();
+        return result;
     }
 
     public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
-        return client.getKBasesMap();
+        connector.connect();
+        DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+        Map<String, String>  result = client.getKBasesMap();
+        connector.disconnect();
+        return result; 
     }
 
     public void dispose() throws ConnectorException, RemoteException {

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -11,7 +11,7 @@
 import java.util.UUID;
 import org.drools.KnowledgeBase;
 import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.runtime.GetKnowledgeBaseCommand;
+import org.drools.grid.distributed.directory.commands.GetKnowledgeBaseGridCommand;
 import org.drools.grid.ConnectorException;
 import org.drools.grid.internal.Message;
 import org.drools.grid.ExecutionNodeService;
@@ -57,10 +57,11 @@
     @Override
     public GenericNodeConnector lookup(String sessionId) throws ConnectorException, RemoteException {
         ExecutionNodeService nodeService = null;
+        System.out.println("SessionID inside Lookup = "+sessionId);
         String sessionServiceId = (String) directoryMap.get(sessionId);
-        
+        System.out.println("SessionID from directoryMap = "+sessionServiceId);
         for (ExecutionNodeService ss : executionNodes) {
-        
+            System.out.println("NodeService = "+ss.getId() +" must match with = "+sessionServiceId);
             if (ss.getId().equals(sessionServiceId)) {
                 nodeService = ss;
             }
@@ -94,7 +95,7 @@
 
         try {
             //@TODO: This is a bad hack.. I need to improve this a lot
-            Message msg = executionNode.write(new Message(999, 1000, false, new KnowledgeContextResolveFromContextCommand(new GetKnowledgeBaseCommand(), null, kbaseId, null, null)));
+            Message msg = executionNode.write(new Message(999, 1000, false, new KnowledgeContextResolveFromContextCommand(new GetKnowledgeBaseGridCommand(), null, kbaseId, null, null)));
 
             if (msg.getPayload() instanceof KnowledgeBase) {
                 return (KnowledgeBase) msg.getPayload();
@@ -135,7 +136,7 @@
 
     @Override
     public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        return kbaseDirectoryMap;
     }
 
     @Override

Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -1,208 +0,0 @@
-package org.drools.distributed.directory.impl;
-
-import java.io.IOException;
-import java.net.SocketAddress;
-import java.rmi.RemoteException;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.KnowledgeBase;
-
-import org.drools.SystemEventListener;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.ConnectorType;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.GridConnection;
-import org.drools.grid.distributed.util.RioResourceLocator;
-
-public class DistributedRioDirectoryConnector
-        implements GenericNodeConnector, DirectoryNodeService {
-
-    protected final String name;
-    protected AtomicInteger counter;
-    protected DirectoryNodeService directoryNodeService;
-    protected SocketAddress address;
-    protected SystemEventListener eventListener;
-    protected GenericConnection connection;
-    private String directoryNodeServiceId;
-
-    public DistributedRioDirectoryConnector(String name,
-            SystemEventListener eventListener) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.connection = new GridConnection();
-
-    }
-
-    public DistributedRioDirectoryConnector(String name,
-            SystemEventListener eventListener,
-            DirectoryNodeService directoryNode) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.directoryNodeService = directoryNode;
-        this.connection = new GridConnection();
-
-    }
-
-    public DistributedRioDirectoryConnector(String name,
-            SystemEventListener eventListener, String directoryNodeServiceId) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.directoryNodeServiceId = directoryNodeServiceId;
-        this.connection = new GridConnection();
-
-    }
-
-    @Override
-    public Message write(Message msg) throws ConnectorException, RemoteException {
-//        if (directoryNodeService != null) {
-//
-//
-//            Message returnMessage = this.directoryNodeService.write(msg);
-//            return returnMessage;
-//
-//
-//        }
-//        throw new IllegalStateException("directoryService should not be null");
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    @Override
-    public void write(Message msg,
-            MessageResponseHandler responseHandler) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public String getId() throws ConnectorException, RemoteException {
-
-        return directoryNodeService.getId();
-
-
-    }
-
-    public void setDirectoryNodeService(DirectoryNodeService directoryNodeService) {
-        this.directoryNodeService = directoryNodeService;
-
-
-    }
-
-    public DirectoryNodeService getDirectoryNodeService() {
-        return directoryNodeService;
-    }
-
-    public void connect() throws ConnectorException {
-        if(this.directoryNodeService == null && !"".equals(this.directoryNodeServiceId)){
-            try {
-                this.directoryNodeService = RioResourceLocator.locateDirectoryNodeById(this.directoryNodeServiceId);
-            } catch (IOException ex) {
-                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InterruptedException ex) {
-                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
-            }
-        }else{
-            try {
-                this.directoryNodeService = RioResourceLocator.locateDirectoryNodes().get(0);
-            } catch (IOException ex) {
-                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InterruptedException ex) {
-                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
-            }
-        }
-    }
-
-    public void disconnect() throws ConnectorException {
-        //I don't need to be disconected
-    }
-
-    public GenericConnection getConnection() {
-        return this.connection;
-    }
-
-    public NodeConnectionType getNodeConnectionType() throws ConnectorException {
-        return new DistributedConnectionDirectory();
-    }
-
-    public ConnectorType getConnectorType() {
-        return ConnectorType.DISTRIBUTED;
-    }
-
-    public int getSessionId() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public AtomicInteger getCounter() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
-        this.directoryNodeService.register(executorId, resourceId);
-    }
-
-    public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
-        this.directoryNodeService.register(executorId, resourceConnector);
-    }
-
-    public void unregister(String executorId) throws ConnectorException, RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
-        return this.directoryNodeService.lookup(resourceId);
-    }
-
-    public String lookupId(String resourceId) throws ConnectorException, RemoteException {
-        return this.directoryNodeService.lookupId(resourceId);
-    }
-
-    public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
-        this.directoryNodeService.registerKBase(kbaseId, resourceId);
-    }
-
-    public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
-        this.directoryNodeService.registerKBase(kbaseId, kbase);
-    }
-
-    public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
-        return this.directoryNodeService.lookupKBase(kbaseId);
-    }
-
-    public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
-        return this.directoryNodeService.getExecutorsMap();
-    }
-
-    public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
-        return this.directoryNodeService.getKBasesMap();
-    }
-
-    public void dispose() throws ConnectorException, RemoteException {
-        this.directoryNodeService.dispose();
-    }
-
-    @Override
-    public ServiceType getServiceType() throws ConnectorException, RemoteException {
-        return ServiceType.DISTRIBUTED;
-    }
-}

Copied: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java (from rev 35190, labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,209 @@
+package org.drools.grid.distributed.connectors;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.KnowledgeBase;
+
+import org.drools.SystemEventListener;
+import org.drools.distributed.directory.impl.DistributedConnectionDirectory;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.util.RioResourceLocator;
+
+public class DistributedRioDirectoryConnector
+        implements GenericNodeConnector, DirectoryNodeService {
+
+    protected final String name;
+    protected AtomicInteger counter;
+    protected DirectoryNodeService directoryNodeService;
+    protected SocketAddress address;
+    protected SystemEventListener eventListener;
+    protected GenericConnection connection;
+    private String directoryNodeServiceId;
+
+    public DistributedRioDirectoryConnector(String name,
+            SystemEventListener eventListener) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.connection = new GridConnection();
+
+    }
+
+    public DistributedRioDirectoryConnector(String name,
+            SystemEventListener eventListener,
+            DirectoryNodeService directoryNode) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.directoryNodeService = directoryNode;
+        this.connection = new GridConnection();
+
+    }
+
+    public DistributedRioDirectoryConnector(String name,
+            SystemEventListener eventListener, String directoryNodeServiceId) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.directoryNodeServiceId = directoryNodeServiceId;
+        this.connection = new GridConnection();
+
+    }
+
+    @Override
+    public Message write(Message msg) throws ConnectorException, RemoteException {
+//        if (directoryNodeService != null) {
+//
+//
+//            Message returnMessage = this.directoryNodeService.write(msg);
+//            return returnMessage;
+//
+//
+//        }
+//        throw new IllegalStateException("directoryService should not be null");
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public void write(Message msg,
+            MessageResponseHandler responseHandler) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getId() throws ConnectorException, RemoteException {
+
+        return directoryNodeService.getId();
+
+
+    }
+
+    public void setDirectoryNodeService(DirectoryNodeService directoryNodeService) {
+        this.directoryNodeService = directoryNodeService;
+
+
+    }
+
+    public DirectoryNodeService getDirectoryNodeService() {
+        return directoryNodeService;
+    }
+
+    public void connect() throws ConnectorException {
+        if(this.directoryNodeService == null && this.directoryNodeServiceId != null && !"".equals(this.directoryNodeServiceId)){
+            try {
+                this.directoryNodeService = RioResourceLocator.locateDirectoryNodeById(this.directoryNodeServiceId);
+            } catch (IOException ex) {
+                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InterruptedException ex) {
+                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }else{
+            try {
+                this.directoryNodeService = RioResourceLocator.locateDirectoryNodes().get(0);
+            } catch (IOException ex) {
+                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InterruptedException ex) {
+                Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }
+    }
+
+    public void disconnect() throws ConnectorException {
+        //I don't need to be disconected
+    }
+
+    public GenericConnection getConnection() {
+        return this.connection;
+    }
+
+    public NodeConnectionType getNodeConnectionType() throws ConnectorException {
+        return new DistributedConnectionDirectory();
+    }
+
+    public ConnectorType getConnectorType() {
+        return ConnectorType.DISTRIBUTED;
+    }
+
+    public int getSessionId() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public AtomicInteger getCounter() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
+        this.directoryNodeService.register(executorId, resourceId);
+    }
+
+    public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
+        this.directoryNodeService.register(executorId, resourceConnector);
+    }
+
+    public void unregister(String executorId) throws ConnectorException, RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
+        return this.directoryNodeService.lookup(resourceId);
+    }
+
+    public String lookupId(String resourceId) throws ConnectorException, RemoteException {
+        return this.directoryNodeService.lookupId(resourceId);
+    }
+
+    public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+        this.directoryNodeService.registerKBase(kbaseId, resourceId);
+    }
+
+    public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
+        this.directoryNodeService.registerKBase(kbaseId, kbase);
+    }
+
+    public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
+        return this.directoryNodeService.lookupKBase(kbaseId);
+    }
+
+    public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
+        return this.directoryNodeService.getExecutorsMap();
+    }
+
+    public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
+        return this.directoryNodeService.getKBasesMap();
+    }
+
+    public void dispose() throws ConnectorException, RemoteException {
+        this.directoryNodeService.dispose();
+    }
+
+    @Override
+    public ServiceType getServiceType() throws ConnectorException, RemoteException {
+        return ServiceType.DISTRIBUTED;
+    }
+}

Copied: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java (from rev 35190, labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,166 @@
+package org.drools.grid.distributed.connectors;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.SystemEventListener;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.ExecutionNodeService;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.DistributedConnectionNode;
+import org.drools.grid.distributed.util.RioResourceLocator;
+
+public class DistributedRioNodeConnector
+        implements GenericNodeConnector {
+
+    protected final String name;
+    protected AtomicInteger counter;
+    protected ExecutionNodeService executionNodeService;
+    protected SocketAddress address;
+    protected SystemEventListener eventListener;
+    protected GenericConnection connection;
+    protected String executionNodeId;
+
+     public DistributedRioNodeConnector(String name,
+            SystemEventListener eventListener) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.connection = new GridConnection();
+
+    }
+
+
+
+    public DistributedRioNodeConnector(String name,
+            SystemEventListener eventListener,
+            ExecutionNodeService executionNodeService) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.executionNodeService = executionNodeService;
+        this.connection = new GridConnection();
+
+    }
+
+    public DistributedRioNodeConnector(String name,
+            SystemEventListener eventListener,
+            String executionNodeId) {
+        if (name == null) {
+            throw new IllegalArgumentException("Name can not be null");
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.eventListener = eventListener;
+        this.connection = new GridConnection();
+        this.executionNodeId = executionNodeId;
+
+    }
+
+    
+    public Message write(Message msg) throws ConnectorException, RemoteException {
+        if (executionNodeService == null) {
+            connect();
+        }
+
+
+            Message returnMessage = this.executionNodeService.write(msg);
+            return returnMessage;
+
+
+        
+        
+    }
+
+    public void write(Message msg,
+            MessageResponseHandler responseHandler) {
+        throw new UnsupportedOperationException();
+    }
+
+    public String getId() throws ConnectorException, RemoteException {
+        if(executionNodeService == null){
+            connect();
+        }
+        return executionNodeService.getId();
+
+
+    }
+
+    public void setExecutionNodeService(ExecutionNodeService executionNode) {
+        this.executionNodeService = executionNode;
+
+
+    }
+
+    public ExecutionNodeService getExecutionNodeService() {
+        return executionNodeService;
+    }
+
+    
+
+    public void connect() throws ConnectorException {
+        if(this.executionNodeService != null){
+            return;
+        }
+        if( !this.executionNodeId.equals("") && !this.executionNodeId.equals("Distributed:Rio:Node")){
+            try {
+                this.executionNodeService = RioResourceLocator.locateExecutionNodeById(this.executionNodeId);
+            } catch (IOException ex) {
+                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InterruptedException ex) {
+                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }else{
+            try {
+                this.executionNodeService = RioResourceLocator.locateExecutionNodes().get(0);
+            } catch (IOException ex) {
+                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InterruptedException ex) {
+                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }
+
+    }
+
+    public void disconnect() throws ConnectorException {
+        //I don't need to be disconected
+    }
+
+    public GenericConnection getConnection() {
+        return this.connection;
+    }
+
+    public NodeConnectionType getNodeConnectionType() throws ConnectorException {
+        return new DistributedConnectionNode();
+    }
+
+    public ConnectorType getConnectorType() {
+        return ConnectorType.DISTRIBUTED;
+    }
+
+    public int getSessionId() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public AtomicInteger getCounter() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    
+}

Added: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,40 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * 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.
+ */
+
+package org.drools.grid.distributed.directory.commands;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+
+public class GetKnowledgeBaseGridCommand
+    implements
+    GenericCommand<KnowledgeBase> {
+
+    public GetKnowledgeBaseGridCommand() {
+    }
+
+    public KnowledgeBase execute(Context context) {
+         
+        return ((KnowledgeCommandContext) context).getKnowledgeBase();
+    }
+
+    public String toString() {
+        return "context.getRuleBase();";
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy	2010-09-23 15:22:05 UTC (rev 35250)
@@ -5,10 +5,10 @@
 
 deployment(name:'directoryNodeService',  debug: 'true') {
 
-    logging {
-        logger 'org.rioproject.resolver', Level.ALL
-        logger 'org.rioproject.associsations' , Level.ALL
-    }
+   // logging {
+   //     logger 'org.rioproject.resolver', Level.ALL
+   //     logger 'org.rioproject.associsations' , Level.ALL
+   //}
     /* 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 */
@@ -17,16 +17,17 @@
 
     /* Declares the artifacts required for deployment. Note the 'dl'
      * classifier used for the 'download' jar */
+    artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
     artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
     artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
-   // artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
-   // artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.0.SNAPSHOT'
+    artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
+    artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.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: 'DirectoryNodeService') {
+    service(name: 'DirectoryNodeService', fork: 'no') {
         interfaces {
             classes 'org.drools.grid.DirectoryNodeService'
             artifact ref:'service-dir-dl'
@@ -35,10 +36,10 @@
             artifact ref:'service-dir'
         }
 
-        association (name:'ExecutionNodeService', type:'uses', property:'executionNodes')
+        association(name:'ExecutionNodeService', type:'requires', property:'executionNodes', serviceType: 'org.drools.grid.ExecutionNodeService')
 
         maintain 1
     }
 
-
+   
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy	2010-09-23 15:22:05 UTC (rev 35250)
@@ -17,6 +17,7 @@
 
     /* Declares the artifacts required for deployment. Note the 'dl'
      * classifier used for the 'download' jar */
+    artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
     artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
     artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
     artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
@@ -53,5 +54,6 @@
         maintain 1
     }
 
+    
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml	2010-09-23 15:22:05 UTC (rev 35250)
@@ -47,7 +47,6 @@
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-distributed-dir-rio</artifactId>
             <version>5.2.0.SNAPSHOT</version>
-           <scope>test</scope>
         </dependency>
 
      <!-- RIO Runtime -->
@@ -104,7 +103,8 @@
                         <topclasses>
                             <topclass>org.drools.grid.ExecutionNodeService</topclass>
                             <topclass>org.drools.grid.DirectoryNodeService</topclass>
-                            <topclass>org.drools.grid.distributed.RioNodeConnector</topclass>
+                            <topclass>org.drools.grid.distributed.connectors.DistributedRioNodeConnector</topclass>
+                            <topclass>org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector</topclass>
                             <topclass>org.drools.grid.distributed.util.IDEntry</topclass>
                             <topclass>org.drools.grid.distributed.util.RioResourceLocator</topclass>
                             <topclass>org.drools.grid.distributed.command.NewStatefulKnowledgeSessionGridCommand</topclass>

Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -1,163 +0,0 @@
-package org.drools.grid.distributed.impl;
-
-import java.io.IOException;
-import java.net.SocketAddress;
-import java.rmi.RemoteException;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.drools.SystemEventListener;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.ConnectorType;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.GridConnection;
-import org.drools.grid.distributed.DistributedConnectionNode;
-import org.drools.grid.distributed.util.RioResourceLocator;
-
-public class DistributedRioNodeConnector
-        implements GenericNodeConnector {
-
-    protected final String name;
-    protected AtomicInteger counter;
-    protected ExecutionNodeService executionNodeService;
-    protected SocketAddress address;
-    protected SystemEventListener eventListener;
-    protected GenericConnection connection;
-    protected String executionNodeId;
-
-     public DistributedRioNodeConnector(String name,
-            SystemEventListener eventListener) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.connection = new GridConnection();
-
-    }
-
-
-
-    public DistributedRioNodeConnector(String name,
-            SystemEventListener eventListener,
-            ExecutionNodeService executionNodeService) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.executionNodeService = executionNodeService;
-        this.connection = new GridConnection();
-
-    }
-
-    public DistributedRioNodeConnector(String name,
-            SystemEventListener eventListener,
-            String executionNodeId) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.eventListener = eventListener;
-        this.connection = new GridConnection();
-        this.executionNodeId = executionNodeId;
-
-    }
-
-    
-    public Message write(Message msg) throws ConnectorException, RemoteException {
-        connect();
-        if (executionNodeService != null) {
-
-
-            Message returnMessage = this.executionNodeService.write(msg);
-            return returnMessage;
-
-
-        }
-        throw new IllegalStateException("executionNode should not be null");
-    }
-
-    public void write(Message msg,
-            MessageResponseHandler responseHandler) {
-        throw new UnsupportedOperationException();
-    }
-
-    public String getId() throws ConnectorException, RemoteException {
-
-        return executionNodeService.getId();
-
-
-    }
-
-    public void setExecutionNodeService(ExecutionNodeService executionNode) {
-        this.executionNodeService = executionNode;
-
-
-    }
-
-    public ExecutionNodeService getExecutionNodeService() {
-        return executionNodeService;
-    }
-
-    
-
-    public void connect() throws ConnectorException {
-        if(this.executionNodeService != null){
-            return;
-        }
-        if( !this.executionNodeId.equals("")){
-            try {
-                this.executionNodeService = RioResourceLocator.locateExecutionNodeById(this.executionNodeId);
-            } catch (IOException ex) {
-                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InterruptedException ex) {
-                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
-            }
-        }else{
-            try {
-                this.executionNodeService = RioResourceLocator.locateExecutionNodes().get(0);
-            } catch (IOException ex) {
-                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InterruptedException ex) {
-                Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
-            }
-        }
-
-    }
-
-    public void disconnect() throws ConnectorException {
-        //I don't need to be disconected
-    }
-
-    public GenericConnection getConnection() {
-        return this.connection;
-    }
-
-    public NodeConnectionType getNodeConnectionType() throws ConnectorException {
-        return new DistributedConnectionNode();
-    }
-
-    public ConnectorType getConnectorType() {
-        return ConnectorType.DISTRIBUTED;
-    }
-
-    public int getSessionId() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public AtomicInteger getCounter() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    
-}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy	2010-09-23 15:22:05 UTC (rev 35250)
@@ -20,6 +20,7 @@
 
     /* Declares the artifacts required for deployment. Note the 'dl'
      * classifier used for the 'download' jar */
+    artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
     artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
     artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.0.SNAPSHOT'
 
@@ -27,7 +28,7 @@
      * Declare the service to be deployed. The number of instances deployed
      * defaults to 1. If you require > 1 instances change as needed
      */
-    service(name: 'ExecutionNodeService', fork: 'yes') { //fork yes, works only in unix machines
+    service(name: 'ExecutionNodeService', fork: 'no') { //fork yes, works only in unix machines
         interfaces {
             classes 'org.drools.grid.ExecutionNodeService'
             artifact ref:'service-dl'

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -9,9 +9,9 @@
 
 import net.jini.core.lookup.ServiceItem;
 import org.drools.SystemEventListenerFactory;
-import org.drools.distributed.directory.impl.DistributedRioDirectoryConnector;
+import org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector;
 import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.distributed.impl.DistributedRioNodeConnector;
+import org.drools.grid.distributed.connectors.DistributedRioNodeConnector;
 import org.junit.After;
 
 

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy	2010-09-23 15:22:05 UTC (rev 35250)
@@ -19,6 +19,7 @@
 
     /* Declares the artifacts required for deployment. Note the 'dl'
      * classifier used for the 'download' jar */
+    artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
     artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
     artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
     artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-09-23 15:22:05 UTC (rev 35250)
@@ -110,8 +110,10 @@
                                         environment );
 
         try {
+            connector.connect();
             this.executionEnvironmentsByConnectorId.put( connector.getId(),
                                                          environment.getName() );
+            connector.disconnect();
         } catch ( ConnectorException ex ) {
             Logger.getLogger( GridTopology.class.getName() ).log( Level.SEVERE,
                                                                   null,



More information about the jboss-svn-commits mailing list