[jboss-svn-commits] JBL Code SVN: r32379 - in labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src: main/java/org/drools/services/generic and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Apr 3 14:04:40 EDT 2010


Author: salaboy21
Date: 2010-04-03 14:04:39 -0400 (Sat, 03 Apr 2010)
New Revision: 32379

Added:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java
Removed:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java
Modified:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java
Log:
JBRULES-2446: Drools Services API
	- drools-services local connection implementation, plus name refactoring
	

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java (from rev 32363, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,24 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.drools.services;
+
+import java.rmi.RemoteException;
+import org.drools.KnowledgeBase;
+import org.drools.services.generic.GenericNodeConnector;
+
+
+/**
+ *
+ * @author salaboy
+ */
+
+public interface DirectoryNodeService {
+    public void register(String executorId, String sessionServiceId) throws RemoteException;
+    public GenericNodeConnector lookup(String executorId) throws RemoteException;
+    public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException;
+    public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
+    public void addService(GenericNodeConnector service);
+}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,24 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.drools.services;
-
-import java.rmi.RemoteException;
-import org.drools.KnowledgeBase;
-import org.drools.services.generic.GenericServiceConnector;
-
-
-/**
- *
- * @author salaboy
- */
-
-public interface DirectoryService {
-    public void register(String executorId, String sessionServiceId) throws RemoteException;
-    public GenericServiceConnector lookup(String executorId) throws RemoteException;
-    public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException;
-    public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
-    public void addService(GenericServiceConnector service);
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -5,7 +5,7 @@
 package org.drools.services;
 
 import java.rmi.RemoteException;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 
 
@@ -13,8 +13,10 @@
  *
  * @author salaboy
  */
-public interface ExecutionNodeService extends GenericServiceConnector{
+public interface ExecutionNodeService extends GenericNodeConnector{
     public String  getId() throws RemoteException;
-    public Message write(Message msg) throws RemoteException;    
+    public Message write(Message msg) throws RemoteException;
+    double getLoad() throws RemoteException;
+    void setLoad(double load) throws RemoteException;
     
 }

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,51 +0,0 @@
-/*
- *  Copyright 2010 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.services;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.services.local.DirectoryLookupProviderLocalClient;
-import org.drools.services.local.KnowledgeBaseProviderLocalClient;
-import org.drools.services.local.KnowledgeBuilderProviderLocalClient;
-/**
- *
- * @author salaboy
- */
-public class LocalNodeConnector implements NodeConnector {
-
-    
-
-    public LocalNodeConnector() {
-    }
-
-
-    public ExecutionNode connect() {
-        ExecutionNode node = new ExecutionNode();
-        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient() );
-        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient() );
-        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
-        return node;
-    }
-
-    public void disconnect() {
-        
-    }
-
-    
-
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -18,7 +18,7 @@
 package org.drools.services;
 
 import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 
 /**
  *
@@ -26,7 +26,7 @@
  */
 public interface NodeSelectionStrategy {
 
-    public GenericServiceConnector getBestNode();
+    public GenericNodeConnector getBestNode();
     public void setConnection(GenericConnection connection);
 
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -20,11 +20,13 @@
 import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.builder.DirectoryLookupFactoryService;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.remote.DirectoryLookupProviderRemoteClient;
 import org.drools.services.remote.KnowledgeBaseProviderRemoteClient;
 import org.drools.services.remote.KnowledgeBuilderProviderRemoteClient;
@@ -39,24 +41,24 @@
  */
 public class RemoteConnection implements GenericConnection {
     //Cached Services
-    private List<GenericServiceConnector> services;
+    private List<GenericNodeConnector> nodeConnectors;
     //Cached Directories
-    private List<DirectoryService> directories;
+    private List<DirectoryNodeService> directories;
 
     public RemoteConnection() {
-        this.services = new ArrayList<GenericServiceConnector>();
-        this.directories = new ArrayList<DirectoryService>();
+        this.nodeConnectors = new ArrayList<GenericNodeConnector>();
+        this.directories = new ArrayList<DirectoryNodeService>();
     }
 
-    public void addService(GenericServiceConnector service) {
+    public void addNodeConnector(GenericNodeConnector service) {
         //register the service to all the DirectoryServices
-        for(DirectoryService directory : directories){
+        for(DirectoryNodeService directory : directories){
             directory.addService(service);
         }
-        this.services.add(service);
+        this.nodeConnectors.add(service);
 
     }
-    public void addDirectoryService(DirectoryService directory) {
+    public void addDirectoryNode(DirectoryNodeService directory) {
         this.directories.add(directory);
     }
 
@@ -67,52 +69,52 @@
     }
 
 
-    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws RemoteException {
-
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
         ExecutionNode node = null;
-        GenericServiceConnector currentService = null;
-        //if the strategy is null use the default one
-        if(strategy == null){
-            currentService = getBestService(
-                new StaticIncrementalSelectionStrategy(this));
-        } else{
-            strategy.setConnection(this);
-            currentService = getBestService(strategy);
-        }
+        GenericNodeConnector currentService = null;
+        try {
 
-        if(currentService.connect()){
-            node = new ExecutionNode();
-            node.set(KnowledgeBuilderFactoryService.class,
-                    new KnowledgeBuilderProviderRemoteClient(currentService));
+            //if the strategy is null use the default one
+            if (strategy == null) {
+                currentService = getBestNode(new StaticIncrementalSelectionStrategy(this));
+            } else {
+                strategy.setConnection(this);
+                currentService = getBestNode(strategy);
+            }
+            if (currentService.connect()) {
+                node = new ExecutionNode();
+                node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(currentService));
+                node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(currentService));
+                node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(currentService, this));
 
-            node.set(KnowledgeBaseFactoryService.class,
-                    new KnowledgeBaseProviderRemoteClient(currentService));
-            node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(currentService, this));
-            return node;
+            }
+            
+        } catch (RemoteException ex) {
+            Logger.getLogger(RemoteConnection.class.getName()).log(Level.SEVERE, null, ex);
         }
-        return null;
+        return node;
     }
-    public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy) {
+    public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
         return nodeSelectionStrategy.getBestNode();
     }
 
-    public List<DirectoryService> getDirectories() {
+    public List<DirectoryNodeService> getDirectories() {
         return directories;
     }
 
-    public void setDirectories(List<DirectoryService> directories) {
+    public void setDirectories(List<DirectoryNodeService> directories) {
         this.directories = directories;
     }
 
-    public List<GenericServiceConnector> getServices() {
-        return services;
+    public List<GenericNodeConnector> getNodeConnectors() {
+        return nodeConnectors;
     }
 
-    public void setServices(List<GenericServiceConnector> services) {
-        this.services = services;
+    public void setServices(List<GenericNodeConnector> services) {
+        this.nodeConnectors = services;
     }
 
-    public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
         return directories.get(0);
     }
 

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -18,7 +18,8 @@
 package org.drools.services.generic;
 
 import java.util.List;
-import org.drools.services.DirectoryService;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.ExecutionNode;
 import org.drools.services.NodeSelectionStrategy;
 import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
 
@@ -27,12 +28,14 @@
  * @author salaboy
  */
 public interface GenericConnection { 
-    public void addService(GenericServiceConnector service);
-    public void addDirectoryService(DirectoryService directory);
-    public List<GenericServiceConnector> getServices();
-    public List<DirectoryService> getDirectories();
-    public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy);
-    public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy);
+    public void addNodeConnector(GenericNodeConnector nodeConnector);
+    public void addDirectoryNode(DirectoryNodeService directory);
+    public List<GenericNodeConnector> getNodeConnectors();
+    public List<DirectoryNodeService> getDirectories();
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy);
+    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy);
 
+    
 
+
 }

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java (from rev 32358, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,16 @@
+package org.drools.services.generic;
+
+import java.rmi.RemoteException;
+
+public interface GenericNodeConnector extends GenericIoWriter {
+
+    boolean connect() throws RemoteException;;
+
+    void disconnect() throws RemoteException;;
+
+    Message write(Message msg) throws RemoteException;;
+
+    String getId() throws RemoteException;;
+
+   // void setSession(Object object) throws RemoteException;;
+}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,16 +0,0 @@
-package org.drools.services.generic;
-
-import java.rmi.RemoteException;
-
-public interface GenericServiceConnector extends GenericIoWriter {
-
-    boolean connect() throws RemoteException;;
-
-    void disconnect() throws RemoteException;;
-
-    Message write(Message msg) throws RemoteException;;
-
-    String getId() throws RemoteException;;
-
-   // void setSession(Object object) throws RemoteException;;
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -25,7 +25,7 @@
 import java.util.logging.Logger;
 import org.drools.builder.DirectoryLookupFactoryService;
 import org.drools.runtime.CommandExecutor;
-import org.drools.services.DirectoryService;
+import org.drools.services.DirectoryNodeService;
 
 /**
  *

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java (from rev 32363, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,68 @@
+/*
+ *  Copyright 2010 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.services.local;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.KnowledgeBase;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.generic.GenericNodeConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryNodeLocalImpl implements DirectoryNodeService {
+    private Map<String, String> directoryMap = new HashMap<String, String>();
+    private List<GenericNodeConnector> services = new ArrayList<GenericNodeConnector>();
+
+    public void register(String executorId, String sessionServiceId) throws RemoteException {
+        System.out.println("Registering: "+  executorId + " -- "+sessionServiceId);
+        directoryMap.put(executorId, sessionServiceId);
+    }
+
+    public GenericNodeConnector lookup(String executorId) throws RemoteException {
+        GenericNodeConnector sessionService = null;
+        String sessionServiceId = (String)directoryMap.get(executorId);
+        System.out.println("Registry = "+ directoryMap.toString());
+        System.out.println("Nodes Services = "+services);
+        for(GenericNodeConnector ss : services){
+            System.out.println("Session Service id = "+ss.getId() + "needs to match with ="+sessionServiceId);
+            if(ss.getId().equals(sessionServiceId)){
+                sessionService = ss;
+            }
+        }
+
+        return sessionService;
+    }
+
+    public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+    public void addService(GenericNodeConnector service){
+        services.add(service);
+    }
+
+}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,68 +0,0 @@
-/*
- *  Copyright 2010 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.services.local;
-
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.drools.KnowledgeBase;
-import org.drools.services.DirectoryService;
-import org.drools.services.generic.GenericServiceConnector;
-
-/**
- *
- * @author salaboy
- */
-public class DirectoryServiceLocalImpl implements DirectoryService {
-    private Map<String, String> directoryMap = new HashMap<String, String>();
-    private List<GenericServiceConnector> services = new ArrayList<GenericServiceConnector>();
-
-    public void register(String executorId, String sessionServiceId) throws RemoteException {
-        System.out.println("Registering: "+  executorId + " -- "+sessionServiceId);
-        directoryMap.put(executorId, sessionServiceId);
-    }
-
-    public GenericServiceConnector lookup(String executorId) throws RemoteException {
-        GenericServiceConnector sessionService = null;
-        String sessionServiceId = (String)directoryMap.get(executorId);
-        System.out.println("Registry = "+ directoryMap.toString());
-        System.out.println("Nodes Services = "+services);
-        for(GenericServiceConnector ss : services){
-            System.out.println("Session Service id = "+ss.getId() + "needs to match with ="+sessionServiceId);
-            if(ss.getId().equals(sessionServiceId)){
-                sessionService = ss;
-            }
-        }
-
-        return sessionService;
-    }
-
-    public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-    public void addService(GenericServiceConnector service){
-        services.add(service);
-    }
-
-}

Added: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,82 @@
+/*
+ *  Copyright 2010 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.services.local;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.ExecutionNode;
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.generic.GenericConnection;
+import org.drools.services.generic.GenericNodeConnector;
+import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class LocalConnection implements GenericConnection {
+
+     //Cached NodeConnectors
+    private List<GenericNodeConnector> nodeConnectors;
+
+
+    public LocalConnection() {
+        this.nodeConnectors = new ArrayList<GenericNodeConnector>();
+
+    }
+
+
+    public void addNodeConnector(GenericNodeConnector nodeConnector) {
+        this.nodeConnectors.add(nodeConnector);
+    }
+
+    public void addDirectoryNode(DirectoryNodeService directory) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public List<GenericNodeConnector> getNodeConnectors() {
+        return this.nodeConnectors;
+    }
+
+    public List<DirectoryNodeService> getDirectories() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
+        //Analyze if we will need more than one node connector for local usage in the same JVM
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
+
+        ExecutionNode node = new ExecutionNode();
+        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient() );
+        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient() );
+        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+        return node;
+    }
+
+}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -30,7 +30,7 @@
 import org.drools.services.command.LookupCommand;
 import org.drools.services.command.RegisterCommand;
 import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -42,7 +42,7 @@
 
     //The current node connector
 
-    private GenericServiceConnector client;
+    private GenericNodeConnector client;
    
    
     private GenericConnection connection;
@@ -50,7 +50,7 @@
 
     private MessageSession messageSession;
 
-    public DirectoryLookupProviderRemoteClient(GenericServiceConnector client, GenericConnection connection) {
+    public DirectoryLookupProviderRemoteClient(GenericNodeConnector client, GenericConnection connection) {
         this.client = client;
         this.messageSession = new MessageSession();
         this.connection = connection;
@@ -71,7 +71,7 @@
 
 
             System.out.println("Registering " + identifier + " - - " + client.getId());
-            connection.getDirectoryService(null).register(identifier, client.getId());
+            connection.getDirectoryNode(null).register(identifier, client.getId());
             try {
                 Object object = client.write(msg).getPayload();
                 if (!(object instanceof FinishedCommand)) {
@@ -93,7 +93,7 @@
             String kresultsId = "kresults_" + messageSession.getSessionId();
             Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new LookupCommand(identifier, commandId), null, null, null, kresultsId));
             System.out.println("Looking up the session with identifier = " + identifier);
-            client = connection.getDirectoryService(null).lookup(identifier);
+            client = connection.getDirectoryNode(null).lookup(identifier);
             try {
                 Object object = client.write(msg).getPayload();
                 if (object == null) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -11,7 +11,7 @@
 import org.drools.command.SetVariableCommand;
 import org.drools.runtime.Environment;
 import org.drools.runtime.KnowledgeSessionConfiguration;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -19,9 +19,9 @@
     implements
     KnowledgeBaseFactoryService {
     
-    private GenericServiceConnector client;
+    private GenericNodeConnector client;
     private MessageSession          messageSession;
-    public KnowledgeBaseProviderRemoteClient(GenericServiceConnector client) {
+    public KnowledgeBaseProviderRemoteClient(GenericNodeConnector client) {
          this.client = client;
          this.messageSession = new MessageSession();
     }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,7 +19,7 @@
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.StatelessKnowledgeSession;
 import org.drools.services.generic.CollectionClient;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -28,12 +28,12 @@
     KnowledgeBase {
 
 
-    private GenericServiceConnector       client;
+    private GenericNodeConnector       client;
     private MessageSession              messageSession;
     private String                     instanceId;
 
     public KnowledgeBaseRemoteClient(String instanceId,
-                                     GenericServiceConnector client, MessageSession messageSession) {
+                                     GenericNodeConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
         this.client = client;
         this.messageSession = messageSession;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -14,7 +14,7 @@
 import org.drools.command.FinishedCommand;
 import org.drools.command.SetVariableCommand;
 import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -22,9 +22,9 @@
     implements
     KnowledgeBuilderFactoryService {
     
-    private GenericServiceConnector client;
+    private GenericNodeConnector client;
     private MessageSession messageSession;
-    public KnowledgeBuilderProviderRemoteClient(GenericServiceConnector client) {
+    public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector client) {
         //this.nodeConnection =  nodeConnection;
         this.messageSession = new MessageSession();
         this.client = client;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -16,7 +16,7 @@
 import org.drools.io.Resource;
 import org.drools.runtime.ExecutionResults;
 import org.drools.services.generic.CollectionClient;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -25,11 +25,11 @@
     KnowledgeBuilder {
     
     private String                     instanceId;
-    private final GenericServiceConnector client;
+    private final GenericNodeConnector client;
     private final MessageSession messageSession;
 
     public KnowledgeBuilderRemoteClient(String instanceId,
-                                        GenericServiceConnector client, MessageSession messageSession) {
+                                        GenericNodeConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
         this.client = client;
         this.messageSession = messageSession;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -28,7 +28,7 @@
 import org.drools.runtime.rule.FactHandle;
 import org.drools.runtime.rule.QueryResults;
 import org.drools.runtime.rule.WorkingMemoryEntryPoint;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.time.SessionClock;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
@@ -38,12 +38,12 @@
     StatefulKnowledgeSession {
 
 
-    private GenericServiceConnector     client;
+    private GenericNodeConnector     client;
     private MessageSession              messageSession;
     private String                      instanceId;
 
     public StatefulKnowledgeSessionRemoteClient(String instanceId,
-                                                GenericServiceConnector client, MessageSession messageSession) {
+                                                GenericNodeConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
         this.client = client;
         this.messageSession = messageSession;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -7,7 +7,7 @@
 import org.drools.command.runtime.process.CompleteWorkItemCommand;
 import org.drools.runtime.process.WorkItemHandler;
 import org.drools.runtime.process.WorkItemManager;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -20,7 +20,7 @@
 
 	private static final long serialVersionUID = 1L;
 	
-	private GenericServiceConnector     client;
+	private GenericNodeConnector     client;
         private MessageSession              messageSession;
 	private String instanceId;
 
@@ -49,7 +49,7 @@
 		throw new UnsupportedOperationException("Not supported yet.");
 	}
 
-        public void setClient(GenericServiceConnector client) {
+        public void setClient(GenericNodeConnector client) {
             this.client = client;
         }
 

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java (from rev 32252, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,122 @@
+package org.drools.services.remote.mina;
+
+import java.net.SocketAddress;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.transport.socket.SocketConnector;
+import org.drools.SystemEventListener;
+import org.drools.services.generic.GenericNodeConnector;
+import org.drools.services.generic.GenericIoWriter;
+import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageResponseHandler;
+import org.drools.services.responsehandlers.BlockingMessageResponseHandler;
+
+public class MinaNodeConnector
+    implements
+    GenericNodeConnector,
+    GenericIoWriter {
+
+
+    protected IoSession           session;
+
+    protected final String        name;
+    protected AtomicInteger       counter;
+    protected SocketConnector     connector;
+    protected SocketAddress       address;
+    protected SystemEventListener eventListener;
+
+    public MinaNodeConnector(String name,
+                         SocketConnector connector,
+                         SocketAddress address,
+                         SystemEventListener eventListener) {
+        if ( name == null ) {
+            throw new IllegalArgumentException( "Name can not be null" );
+        }
+        this.name = name;
+        this.counter = new AtomicInteger();
+        this.address = address;
+        this.connector = connector;
+        this.eventListener = eventListener;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.Messenger#connect()
+     */
+    public boolean connect() {
+        if ( session != null && session.isConnected() ) {
+            throw new IllegalStateException( "Already connected. Disconnect first." );
+        }
+
+        try {
+            this.connector.getFilterChain().addLast( "codec",
+                                                     new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+
+            ConnectFuture future1 = this.connector.connect( this.address );
+            future1.await( 2000 );
+            if ( !future1.isConnected() ) {
+                eventListener.info( "unable to connect : " + address + " : " + future1.getException() );
+                return false;
+            }
+            eventListener.info( "connected : " + address );
+            this.session = future1.getSession();
+            return true;
+        } catch ( Exception e ) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.vsm.mina.Messenger#disconnect()
+     */
+    public void disconnect() {
+        if ( session != null && session.isConnected() ) {
+            session.close();
+            session.getCloseFuture().join();
+        }
+    }
+
+    private void addResponseHandler(int id,
+                                    MessageResponseHandler responseHandler) {
+        ((MinaIoHandler) this.connector.getHandler()).addResponseHandler( id,
+                                                                          responseHandler );
+    }
+
+    public void write(Message msg,
+                      MessageResponseHandler responseHandler) {
+        if ( responseHandler != null ) {
+            addResponseHandler( msg.getResponseId(),
+                                responseHandler );
+        }
+        this.session.write( msg );
+    }
+
+    public Message write(Message msg) {
+        BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
+
+        if ( responseHandler != null ) {
+            addResponseHandler( msg.getResponseId(),
+                                responseHandler );
+        }
+        this.session.write( msg );
+
+        Message returnMessage = responseHandler.getMessage();
+        if ( responseHandler.getError() != null ) {
+            throw responseHandler.getError();
+        }
+
+        return returnMessage;
+    }
+
+    public String getId() {
+        return String.valueOf(session.getId());
+    }
+
+    public void setSession(Object object) {
+        this.session = (IoSession) object;
+    }
+}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,122 +0,0 @@
-package org.drools.services.remote.mina;
-
-import java.net.SocketAddress;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.core.future.ConnectFuture;
-import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.transport.socket.SocketConnector;
-import org.drools.SystemEventListener;
-import org.drools.services.generic.GenericServiceConnector;
-import org.drools.services.generic.GenericIoWriter;
-import org.drools.services.generic.Message;
-import org.drools.services.generic.MessageResponseHandler;
-import org.drools.services.responsehandlers.BlockingMessageResponseHandler;
-
-public class MinaServiceConnector
-    implements
-    GenericServiceConnector,
-    GenericIoWriter {
-
-
-    protected IoSession           session;
-
-    protected final String        name;
-    protected AtomicInteger       counter;
-    protected SocketConnector     connector;
-    protected SocketAddress       address;
-    protected SystemEventListener eventListener;
-
-    public MinaServiceConnector(String name,
-                         SocketConnector connector,
-                         SocketAddress address,
-                         SystemEventListener eventListener) {
-        if ( name == null ) {
-            throw new IllegalArgumentException( "Name can not be null" );
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.address = address;
-        this.connector = connector;
-        this.eventListener = eventListener;
-    }
-
-    /* (non-Javadoc)
-     * @see org.drools.vsm.mina.Messenger#connect()
-     */
-    public boolean connect() {
-        if ( session != null && session.isConnected() ) {
-            throw new IllegalStateException( "Already connected. Disconnect first." );
-        }
-
-        try {
-            this.connector.getFilterChain().addLast( "codec",
-                                                     new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
-            ConnectFuture future1 = this.connector.connect( this.address );
-            future1.await( 2000 );
-            if ( !future1.isConnected() ) {
-                eventListener.info( "unable to connect : " + address + " : " + future1.getException() );
-                return false;
-            }
-            eventListener.info( "connected : " + address );
-            this.session = future1.getSession();
-            return true;
-        } catch ( Exception e ) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.drools.vsm.mina.Messenger#disconnect()
-     */
-    public void disconnect() {
-        if ( session != null && session.isConnected() ) {
-            session.close();
-            session.getCloseFuture().join();
-        }
-    }
-
-    private void addResponseHandler(int id,
-                                    MessageResponseHandler responseHandler) {
-        ((MinaIoHandler) this.connector.getHandler()).addResponseHandler( id,
-                                                                          responseHandler );
-    }
-
-    public void write(Message msg,
-                      MessageResponseHandler responseHandler) {
-        if ( responseHandler != null ) {
-            addResponseHandler( msg.getResponseId(),
-                                responseHandler );
-        }
-        this.session.write( msg );
-    }
-
-    public Message write(Message msg) {
-        BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
-
-        if ( responseHandler != null ) {
-            addResponseHandler( msg.getResponseId(),
-                                responseHandler );
-        }
-        this.session.write( msg );
-
-        Message returnMessage = responseHandler.getMessage();
-        if ( responseHandler.getError() != null ) {
-            throw responseHandler.getError();
-        }
-
-        return returnMessage;
-    }
-
-    public String getId() {
-        return String.valueOf(session.getId());
-    }
-
-    public void setSession(Object object) {
-        this.session = (IoSession) object;
-    }
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,7 +19,7 @@
 
 import org.drools.services.NodeSelectionStrategy;
 import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 
 /**
  *
@@ -31,8 +31,8 @@
     public ReturnAlwaysTheFirstSelectionStrategy(GenericConnection connection) {
         this.connection = connection;
     }
-    public GenericServiceConnector getBestNode() {
-        return this.connection.getServices().get(0);
+    public GenericNodeConnector getBestNode() {
+        return this.connection.getNodeConnectors().get(0);
     }
 
     public void setConnection(GenericConnection connection) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -20,7 +20,7 @@
 
 import org.drools.services.NodeSelectionStrategy;
 import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
 
 
 /**
@@ -36,9 +36,9 @@
 
 
     @Override
-    public GenericServiceConnector getBestNode() {
+    public GenericNodeConnector getBestNode() {
         System.out.println("!!!!!GET BEST NODE = "+counter);
-        GenericServiceConnector service = connection.getServices().get(counter);
+        GenericNodeConnector service = connection.getNodeConnectors().get(counter);
         StaticIncrementalSelectionStrategy.counter = counter +1;
         return service;
     }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -30,6 +30,7 @@
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.services.RemoteConnection;
+import org.drools.services.generic.GenericConnection;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -41,7 +42,7 @@
 public abstract class ExecutionNodeBaseTest {
 
     protected ExecutionNode node;
-    protected RemoteConnection connection = new RemoteConnection();
+    protected GenericConnection connection;
 
     @Before
     protected abstract void configureNode() throws Exception;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -17,13 +17,8 @@
 
 package org.drools.service;
 
-import org.drools.services.LocalNodeConnector;
-import org.junit.After;
-import org.junit.AfterClass;
+import org.drools.services.local.LocalConnection;
 import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import static org.junit.Assert.*;
 
 /**
  *
@@ -38,7 +33,8 @@
 
     @Before
     public void configureNode() {
-        node = new LocalNodeConnector().connect();
+        connection = new LocalConnection();
+        node = connection.getExecutionNode(null);
     }
 
    

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java	2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java	2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,8 +19,8 @@
 
 import java.rmi.RemoteException;
 import java.util.Iterator;
-import org.drools.services.remote.mina.MinaServiceConnector;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.remote.mina.MinaNodeConnector;
+import org.drools.services.generic.GenericNodeConnector;
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import java.io.IOException;
 import org.drools.services.remote.mina.MinaAcceptor;
@@ -32,8 +32,9 @@
 import org.drools.services.generic.NodeData;
 import java.net.SocketAddress;
 import java.net.InetSocketAddress;
-import org.drools.services.DirectoryService;
-import org.drools.services.local.DirectoryServiceLocalImpl;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.RemoteConnection;
+import org.drools.services.local.DirectoryNodeLocalImpl;
 import org.drools.services.strategies.StaticIncrementalSelectionStrategy;
 import org.junit.After;
 import org.junit.Before;
@@ -52,6 +53,8 @@
 
     @Before
     public void configureNode() throws IOException {
+        connection = new RemoteConnection();
+
         StaticIncrementalSelectionStrategy.counter = 0;
         SocketAddress address = new InetSocketAddress( "127.0.0.1",
                                                        9123 );
@@ -66,16 +69,16 @@
                                         address );
         this.server.start();
 
-        connection.addDirectoryService(new DirectoryServiceLocalImpl());
+        connection.addDirectoryNode(new DirectoryNodeLocalImpl());
 
         // setup Client
         NioSocketConnector clientConnector = new NioSocketConnector();
         clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
-        GenericServiceConnector minaClient = new MinaServiceConnector( "client 1",
+        GenericNodeConnector minaClient = new MinaNodeConnector( "client 1",
                                                          clientConnector,
                                                          address,
                                                          SystemEventListenerFactory.getSystemEventListener() );
-        connection.addService(minaClient);
+        connection.addNodeConnector(minaClient);
         node = connection.getExecutionNode(null); 
         
     }
@@ -83,7 +86,7 @@
     @After
     public void tearDown() throws RemoteException {
         
-        for(Iterator<GenericServiceConnector> iterator = connection.getServices().iterator(); iterator.hasNext();){
+        for(Iterator<GenericNodeConnector> iterator = connection.getNodeConnectors().iterator(); iterator.hasNext();){
             iterator.next().disconnect();
         }
 



More information about the jboss-svn-commits mailing list