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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Apr 1 14:16:58 EDT 2010


Author: salaboy21
Date: 2010-04-01 14:16:56 -0400 (Thu, 01 Apr 2010)
New Revision: 32358

Added:
   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/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/DirectoryServiceLocalImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/DirectoryServiceSelectionStrategy.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/main/resources/asd
Removed:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryService.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionNodeService.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridSelectionStrategy.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteNodeConnector.java
Modified:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/pom.xml
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryLookupProviderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/WorkItemManagerGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/command/NewStatefulKnowledgeSessionGridCommand.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioServiceConnector.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/resources/org/drools/executionNodeService.groovy
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandler.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/HumanTaskServiceImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/BaseTaskServiceTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandlerTest.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/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/test/java/org/drools/service/ExecutionNodeBaseTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java
Log:
JBRULES-2446: Drools Services API
	- drools-services-task refactoring names, cleaning code
	- drools-services core refactoring, cleaning code, directory service
	- drools-services-grid refactoring names, cleaning code

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java (from rev 32253, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryService.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,23 @@
+/*
+ * 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;
+}

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java (from rev 32253, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionNodeService.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,20 @@
+/*
+ * 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.services.generic.GenericServiceConnector;
+import org.drools.services.generic.Message;
+
+
+/**
+ *
+ * @author salaboy
+ */
+public interface ExecutionNodeService extends GenericServiceConnector{
+    public String  getId() throws RemoteException;
+    public Message write(Message msg) throws RemoteException;    
+    
+}

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java (from rev 32253, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,31 @@
+/*
+ *  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.services.generic.GenericServiceConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface NodeSelectionStrategy {
+
+    public GenericServiceConnector getBestNode();
+
+
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,118 @@
+/*
+ *  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 java.rmi.RemoteException;
+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.generic.GenericConnection;
+import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.remote.DirectoryLookupProviderRemoteClient;
+import org.drools.services.remote.KnowledgeBaseProviderRemoteClient;
+import org.drools.services.remote.KnowledgeBuilderProviderRemoteClient;
+import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
+
+import org.drools.services.strategies.StaticIncrementalSelectionStrategy;
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
+
+/**
+ *
+ * @author salaboy
+ */
+public class RemoteConnection implements GenericConnection {
+    //Cached Services
+    private List<GenericServiceConnector> services;
+    //Cached Directories
+    private List<DirectoryService> directories;
+
+    public RemoteConnection() {
+        this.services = new ArrayList<GenericServiceConnector>();
+        this.directories = new ArrayList<DirectoryService>();
+    }
+
+    public void addService(GenericServiceConnector service) {
+
+        this.services.add(service);
+
+    }
+    public void addDirectoryService(DirectoryService directory) {
+        this.directories.add(directory);
+    }
+
+    // In real scenarios this method will be in charge of populating
+    // all the ExecutionNodeService and DirectoryServices
+    public void connect() {
+        throw new NotImplementedException();
+    }
+
+
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws RemoteException {
+
+        ExecutionNode node = null;
+        GenericServiceConnector currentService = null;
+        //if the strategy is null use the default one
+        if(strategy == null){
+            currentService = getBestService(
+                new StaticIncrementalSelectionStrategy(this));
+        } else{
+            currentService = getBestService(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));
+            return node;
+        }
+        return null;
+    }
+    public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy) {
+        return nodeSelectionStrategy.getBestNode();
+    }
+
+    public List<DirectoryService> getDirectories() {
+        return directories;
+    }
+
+    public void setDirectories(List<DirectoryService> directories) {
+        this.directories = directories;
+    }
+
+    public List<GenericServiceConnector> getServices() {
+        return services;
+    }
+
+    public void setServices(List<GenericServiceConnector> services) {
+        this.services = services;
+    }
+
+    public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+        return directories.get(0);
+    }
+
+   
+
+
+}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteNodeConnector.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteNodeConnector.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,86 +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 java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.services.generic.GenericServiceConnector;
-import org.drools.services.remote.DirectoryLookupProviderRemoteClient;
-import org.drools.services.remote.KnowledgeBaseProviderRemoteClient;
-import org.drools.services.remote.KnowledgeBuilderProviderRemoteClient;
-
-/**
- *
- * @author salaboy
- */
-public class RemoteNodeConnector implements NodeConnector {
-
-    private String name;
-    public GenericServiceConnector client;
-    public AtomicInteger counter;
-    private int sessionId = -1;
-
-    public RemoteNodeConnector(String name, GenericServiceConnector connector) {
-        this.name = name;
-        this.client = connector;
-        this.counter = new AtomicInteger();
-    }
-
-    public ExecutionNode connect() {
-
-        if (client.connect()) {
-
-            ExecutionNode node = new ExecutionNode();
-            node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(this));
-            node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(this));
-            node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(this));
-            return node;
-        }
-        return null;
-    }
-
-    public void disconnect() {
-        client.disconnect();
-    }
-
-    public GenericServiceConnector getClient() {
-        return client;
-    }
-
-    public void setClient(GenericServiceConnector client) {
-        this.client = client;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getSessionId() {
-        return sessionId;
-    }
-
-    public int getNextId() {
-        return this.counter.incrementAndGet();
-    }
-}

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,38 @@
+/*
+ *  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.generic;
+
+import java.util.List;
+import org.drools.services.DirectoryService;
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
+
+/**
+ *
+ * @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);
+
+
+}

Modified: 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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,15 +1,16 @@
 package org.drools.services.generic;
 
+import java.rmi.RemoteException;
+
 public interface GenericServiceConnector extends GenericIoWriter {
 
-    boolean connect();
+    boolean connect() throws RemoteException;;
 
-    void disconnect();
+    void disconnect() throws RemoteException;;
 
-    Message write(Message msg);
-    
-    //void write(Message msg);
-   String getId();
+    Message write(Message msg) throws RemoteException;;
 
-   void setSession(Object object);
-}
\ No newline at end of file
+    String getId() throws RemoteException;;
+
+   // void setSession(Object object) throws RemoteException;;
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,65 @@
+/*
+ *  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.");
+    }
+
+}

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -17,6 +17,8 @@
 package org.drools.services.remote;
 
 import java.rmi.RemoteException;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import org.drools.builder.DirectoryLookupFactoryService;
@@ -25,9 +27,10 @@
 import org.drools.runtime.CommandExecutor;
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.services.RemoteNodeConnector;
 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.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -37,81 +40,96 @@
  */
 public class DirectoryLookupProviderRemoteClient implements DirectoryLookupFactoryService {
 
-    private RemoteNodeConnector nodeConnection;
+    //The current node connector
+
+    private GenericServiceConnector client;
+   
+   
+    private GenericConnection connection;
+
+
     private MessageSession messageSession;
 
-    public DirectoryLookupProviderRemoteClient(RemoteNodeConnector nodeConnection) {
-        this.nodeConnection = nodeConnection;
+    public DirectoryLookupProviderRemoteClient(GenericServiceConnector client, GenericConnection connection) {
+        this.client = client;
         this.messageSession = new MessageSession();
+        connection = connection;
     }
 
     public void register(String identifier,
-            CommandExecutor executor) {
+            CommandExecutor executor)  {
+        try {
+            String commandId = "client.lookup" + messageSession.getNextId();
+            String kresultsId = "kresults_" + messageSession.getSessionId();
+            int type;
+            if (executor instanceof StatefulKnowledgeSession) {
+                type = 0;
+            } else {
+                throw new IllegalArgumentException("Type is not supported for registration");
+            }
+            Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new RegisterCommand(identifier, ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(), type), null, null, null, null));
 
-        String commandId = "client.lookup" + messageSession.getNextId();
-        String kresultsId = "kresults_" + messageSession.getSessionId();
-        int type;
 
-
-        if (executor instanceof StatefulKnowledgeSession) {
-            type = 0;
-        } else {
-            throw new IllegalArgumentException("Type is not supported for registration");
-        }
-        Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new RegisterCommand(identifier, ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(), type), null, null, null, null));
-        System.out.println("Registering " + identifier + " - - " + nodeConnection.client.getId());
-
-        try {
-            Object object = nodeConnection.client.write(msg).getPayload();
-            if (!(object instanceof FinishedCommand)) {
-                throw new RuntimeException("Response was not correctly ended");
+            System.out.println("Registering " + identifier + " - - " + client.getId());
+            connection.getDirectoryService(null).register(identifier, client.getId());
+            try {
+                Object object = client.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);
             }
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to execute message", e);
+        } catch (RemoteException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
         }
 
     }
 
     public CommandExecutor lookup(String identifier) {
-        String commandId = "client.lookup" + messageSession.getNextId();
-        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);
-
         try {
-            Object object = nodeConnection.client.write(msg).getPayload();
-
-            if (object == null) {
-                throw new RuntimeException("Response was not correctly received");
-            }
-            String value = (String) ((ExecutionResults) object).getValue(commandId);
-            String type = String.valueOf(value.charAt(0));
-            String instanceId = value.substring(2);
-
-            CommandExecutor executor = null;
-            switch (Integer.parseInt(type)) {
-                case 0: {
-                    executor = new StatefulKnowledgeSessionRemoteClient(instanceId, nodeConnection);
-                    break;
+            String commandId = "client.lookup" + messageSession.getNextId();
+            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);
+            try {
+                Object object = client.write(msg).getPayload();
+                if (object == null) {
+                    throw new RuntimeException("Response was not correctly received");
                 }
-                default: {
+                String value = (String) ((ExecutionResults) object).getValue(commandId);
+                String type = String.valueOf(value.charAt(0));
+                String instanceId = value.substring(2);
+                CommandExecutor executor = null;
+                switch (Integer.parseInt(type)) {
+                    case 0:
+                        {
+                            executor = new StatefulKnowledgeSessionRemoteClient(instanceId, client, messageSession);
+                            break;
+                        }
+                    default:
+                        {
+                        }
                 }
-
+                return executor;
+            } catch (Exception e) {
+                throw new RuntimeException("Unable to execute message", e);
             }
-
-            return executor;
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to execute message",
-                    e);
+        } catch (RemoteException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
         }
+        return 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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -11,16 +11,19 @@
 import org.drools.command.SetVariableCommand;
 import org.drools.runtime.Environment;
 import org.drools.runtime.KnowledgeSessionConfiguration;
-import org.drools.services.RemoteNodeConnector;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 public class KnowledgeBaseProviderRemoteClient
     implements
     KnowledgeBaseFactoryService {
-    private RemoteNodeConnector nodeConnection;
-
-    public KnowledgeBaseProviderRemoteClient(RemoteNodeConnector nodeConnection) {
-        this.nodeConnection = nodeConnection;
+    
+    private GenericServiceConnector client;
+    private MessageSession          messageSession;
+    public KnowledgeBaseProviderRemoteClient(GenericServiceConnector client) {
+         this.client = client;
+         this.messageSession = new MessageSession();
     }
 
     public Environment newEnvironment() {
@@ -37,14 +40,14 @@
 
         String localId = UUID.randomUUID().toString();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
                                                            new NewKnowledgeBaseCommand( null ) ) );
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -56,7 +59,7 @@
         }
 
         return new KnowledgeBaseRemoteClient( localId,
-                                              nodeConnection );
+                                              client, 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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -18,29 +18,33 @@
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.StatelessKnowledgeSession;
-import org.drools.services.RemoteNodeConnector;
 import org.drools.services.generic.CollectionClient;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 public class KnowledgeBaseRemoteClient
     implements
     KnowledgeBase {
 
-    private RemoteNodeConnector nodeConnection;
+
+    private GenericServiceConnector       client;
+    private MessageSession              messageSession;
     private String                     instanceId;
 
     public KnowledgeBaseRemoteClient(String instanceId,
-                                     RemoteNodeConnector nodeConnection) {
+                                     GenericServiceConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
-        this.nodeConnection = nodeConnection;
+        this.client = client;
+        this.messageSession = messageSession;
     }
 
     public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
         String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
                                                                                   kuilderInstanceId,
@@ -49,7 +53,7 @@
                                                                                   kresultsId ) );
         
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -95,12 +99,12 @@
 
     public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf,
                                                                 Environment environment) {
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
         String localId = UUID.randomUUID().toString();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
@@ -111,7 +115,7 @@
                                                                                                           kresultsId ) ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
             
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -123,7 +127,7 @@
         }
 
         return new StatefulKnowledgeSessionRemoteClient( localId,
-                                                         nodeConnection );
+                                                         client, messageSession );
     }
 
     public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -14,16 +14,21 @@
 import org.drools.command.FinishedCommand;
 import org.drools.command.SetVariableCommand;
 import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.services.RemoteNodeConnector;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 public class KnowledgeBuilderProviderRemoteClient
     implements
     KnowledgeBuilderFactoryService {
-    private RemoteNodeConnector nodeConnection;
+    
+    private GenericServiceConnector client;
+    private MessageSession messageSession;
+    public KnowledgeBuilderProviderRemoteClient(GenericServiceConnector client) {
+        //this.nodeConnection =  nodeConnection;
+        this.messageSession = new MessageSession();
+        this.client = client;
 
-    public KnowledgeBuilderProviderRemoteClient(RemoteNodeConnector nodeConnection) {
-        this.nodeConnection =  nodeConnection;
     }
 
     public DecisionTableConfiguration newDecisionTableConfiguration() {
@@ -34,15 +39,15 @@
     public KnowledgeBuilder newKnowledgeBuilder() {
         String localId = UUID.randomUUID().toString();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
                                                            new NewKnowledgeBuilderCommand( null ) ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -54,7 +59,7 @@
         }
 
         return new KnowledgeBuilderRemoteClient( localId,
-                                                 nodeConnection );
+                                                 client, messageSession );
     }
 
     public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -15,20 +15,24 @@
 import org.drools.definition.KnowledgePackage;
 import org.drools.io.Resource;
 import org.drools.runtime.ExecutionResults;
-import org.drools.services.RemoteNodeConnector;
 import org.drools.services.generic.CollectionClient;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 public class KnowledgeBuilderRemoteClient
     implements
     KnowledgeBuilder {
-    private RemoteNodeConnector nodeConnection;
+    
     private String                     instanceId;
+    private final GenericServiceConnector client;
+    private final MessageSession messageSession;
 
     public KnowledgeBuilderRemoteClient(String instanceId,
-                                        RemoteNodeConnector nodeConnection) {
+                                        GenericServiceConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
-        this.nodeConnection = nodeConnection;
+        this.client = client;
+        this.messageSession = messageSession;
     }
 
     public void add(Resource resource,
@@ -41,8 +45,8 @@
     public void add(Resource resource,
                     ResourceType resourceType,
                     ResourceConfiguration configuration) {
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
                                                                                                                   resourceType,
@@ -53,7 +57,7 @@
                                                                                   null ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -67,11 +71,11 @@
     }
 
     public KnowledgeBuilderErrors getErrors() {
-        String commandId = "kbuilder.getErrors_" + nodeConnection.getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String commandId = "kbuilder.getErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -80,7 +84,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
@@ -100,11 +104,11 @@
     }
 
     public boolean hasErrors() {
-        String commandId = "kbuilder.hasErrors_" + nodeConnection.getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String commandId = "kbuilder.hasErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.getNextId(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.getNextId(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -113,7 +117,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -28,21 +28,26 @@
 import org.drools.runtime.rule.FactHandle;
 import org.drools.runtime.rule.QueryResults;
 import org.drools.runtime.rule.WorkingMemoryEntryPoint;
-import org.drools.services.RemoteNodeConnector;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.time.SessionClock;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 public class StatefulKnowledgeSessionRemoteClient
     implements
     StatefulKnowledgeSession {
 
-    private RemoteNodeConnector nodeConnection;
-    private String                     instanceId;
 
+    private GenericServiceConnector     client;
+    private MessageSession              messageSession;
+    private String                      instanceId;
+
     public StatefulKnowledgeSessionRemoteClient(String instanceId,
-                                                RemoteNodeConnector nodeConnection) {
+                                                GenericServiceConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
-        this.nodeConnection = nodeConnection;
+        this.client = client;
+        this.messageSession = messageSession;
+        
     }
 
     public String getInstanceId() {
@@ -60,11 +65,11 @@
     }
 
     public int fireAllRules() {
-        String commandId = "ksession.fireAllRules" + nodeConnection.getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String commandId = "ksession.fireAllRules" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
                                                                                   null,
@@ -72,7 +77,7 @@
                                                                                   instanceId,
                                                                                   kresultsId ) );
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
@@ -106,11 +111,11 @@
     }
 
     public ExecutionResults execute(Command command) {
-        String commandId = "ksession.execute" + nodeConnection.getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
                                                                                                       command ),
@@ -120,7 +125,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();if ( object == null ) {
+            Object object = client.write( msg ).getPayload();if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
             }
 
@@ -266,9 +271,9 @@
     }
 
     public WorkItemManager getWorkItemManager() {
-    	 String kresultsId = "kresults_" + nodeConnection.getSessionId();
-         Message msg = new Message( nodeConnection.getSessionId(),
-                                    nodeConnection.counter.incrementAndGet(),
+    	 String kresultsId = "kresults_" + messageSession.getSessionId();
+         Message msg = new Message( messageSession.getSessionId(),
+                                    messageSession.counter.incrementAndGet(),
                                     true,
                                     new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
                                                                                    null,
@@ -276,9 +281,10 @@
                                                                                    instanceId,
                                                                                    kresultsId ) );
          try {
-             Object payload = nodeConnection.client.write( msg ).getPayload();
+             Object payload = client.write( msg ).getPayload();
              WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
-             ((WorkItemManagerRemoteClient)workItemManager).setNodeConnection(nodeConnection);
+             ((WorkItemManagerRemoteClient)workItemManager).setClient(client);
+             ((WorkItemManagerRemoteClient)workItemManager).setMessageSession(messageSession);
              ((WorkItemManagerRemoteClient)workItemManager).setInstanceId(instanceId);
              return workItemManager;
          } catch ( Exception e ) {
@@ -288,10 +294,10 @@
     
     public void registerWorkItemHandler(String name, String workItemHandler){
         
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
                                                                                   null,
@@ -300,7 +306,7 @@
                                                                                   kresultsId ) );
 
         try {
-            nodeConnection.client.write( msg );
+            client.write( msg );
             
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message",
@@ -317,11 +323,11 @@
     }
 
     public ProcessInstance startProcess(String processId) {
-        String commandId = "ksession.execute" + nodeConnection.getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getSessionId();
+        String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
                                                                                   null,
@@ -330,7 +336,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
             }

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -7,8 +7,9 @@
 import org.drools.command.runtime.process.CompleteWorkItemCommand;
 import org.drools.runtime.process.WorkItemHandler;
 import org.drools.runtime.process.WorkItemManager;
-import org.drools.services.RemoteNodeConnector;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 /**
  *
@@ -19,7 +20,8 @@
 
 	private static final long serialVersionUID = 1L;
 	
-	private RemoteNodeConnector nodeConnection;
+	private GenericServiceConnector     client;
+        private MessageSession              messageSession;
 	private String instanceId;
 
 	public void abortWorkItem(long id) {
@@ -27,9 +29,9 @@
 	}
 
 	public void completeWorkItem(long id, Map<String, Object> results) {
-		String kresultsId = "kresults_" + nodeConnection.getSessionId();
-        Message msg = new Message( nodeConnection.getSessionId(),
-                                   nodeConnection.counter.incrementAndGet(),
+		String kresultsId = "kresults_" + messageSession.getSessionId();
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    true,
                                    new KnowledgeContextResolveFromContextCommand( new CompleteWorkItemCommand(id, results),
                                                                                   null,
@@ -37,7 +39,7 @@
                                                                                   instanceId,
                                                                                   kresultsId ) );
         try {
-            nodeConnection.client.write( msg );
+            client.write( msg );
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message", e );
         }
@@ -47,10 +49,16 @@
 		throw new UnsupportedOperationException("Not supported yet.");
 	}
 
-	public void setNodeConnection(RemoteNodeConnector nodeConnection) {
-		this.nodeConnection = nodeConnection;
-	}
+        public void setClient(GenericServiceConnector client) {
+            this.client = client;
+        }
 
+        public void setMessageSession(MessageSession messageSession) {
+            this.messageSession = messageSession;
+        }
+
+	
+
 	public void setInstanceId(String instanceId) {
 		this.instanceId = instanceId;
 	}

Added: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/DirectoryServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/DirectoryServiceSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/DirectoryServiceSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,26 @@
+/*
+ *  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.strategies;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryServiceSelectionStrategy {
+
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,38 @@
+/*
+ *  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.strategies;
+
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.generic.GenericConnection;
+import org.drools.services.generic.GenericServiceConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public class ReturnAlwaysTheFirstSelectionStrategy implements NodeSelectionStrategy{
+
+    private GenericConnection connection;
+    public ReturnAlwaysTheFirstSelectionStrategy(GenericConnection connection) {
+        this.connection = connection;
+    }
+    public GenericServiceConnector getBestNode() {
+        return this.connection.getServices().get(0);
+    }
+
+}

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java (from rev 32253, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -0,0 +1,46 @@
+/*
+ *  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.strategies;
+
+
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.generic.GenericConnection;
+import org.drools.services.generic.GenericServiceConnector;
+
+
+/**
+ *
+ * @author salaboy
+ */
+public class StaticIncrementalSelectionStrategy implements NodeSelectionStrategy{
+    public static int counter = 0;
+    private GenericConnection connection;
+    public StaticIncrementalSelectionStrategy(GenericConnection connection) {
+        this.connection = connection;
+    }
+
+
+    @Override
+    public GenericServiceConnector getBestNode() {
+        System.out.println("!!!!!GET BEST NODE = "+counter);
+        GenericServiceConnector service = connection.getServices().get(counter);
+        StaticIncrementalSelectionStrategy.counter = counter +1;
+        return service;
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/resources/asd
===================================================================

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -29,6 +29,7 @@
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.services.RemoteConnection;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -40,6 +41,7 @@
 public abstract class ExecutionNodeBaseTest {
 
     protected ExecutionNode node;
+    protected RemoteConnection connection = new RemoteConnection();
 
     @Before
     protected abstract void configureNode() throws Exception;

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-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -31,7 +31,7 @@
 import org.drools.services.generic.NodeData;
 import java.net.SocketAddress;
 import java.net.InetSocketAddress;
-import org.drools.services.RemoteNodeConnector;
+import org.drools.services.local.DirectoryServiceLocalImpl;
 import org.junit.After;
 import org.junit.Before;
 
@@ -62,6 +62,8 @@
                                         address );
         this.server.start();
 
+        connection.addDirectoryService(new DirectoryServiceLocalImpl());
+
         // setup Client
         NioSocketConnector clientConnector = new NioSocketConnector();
         clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
@@ -69,14 +71,16 @@
                                                          clientConnector,
                                                          address,
                                                          SystemEventListenerFactory.getSystemEventListener() );
-
-        nodeConnection = new RemoteNodeConnector("client 1", minaClient);
-        node = nodeConnection.connect();
+        connection.addService(minaClient);
+        //nodeConnection = new RemoteNodeConnector("client 1", minaClient);
+        //node = nodeConnection.connect();
+        node = connection.getExecutionNode(null); 
+        
     }
 
     @After
     public void tearDown() {
-        nodeConnection.disconnect();
+       // connection.disconnect();
     }
 
     

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/pom.xml	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/pom.xml	2010-04-01 18:16:56 UTC (rev 32358)
@@ -78,10 +78,9 @@
                         <classifier>dl</classifier>
                         <in>org.drools.services</in>
                         <topclasses>
-                            <topclass>org.drools.services.grid.GridNodeExecutionService</topclass>
-                            <topclass>org.drools.services.grid.DirectoryService</topclass>
+                            <topclass>org.drools.services.ExecutionNodeService</topclass>
+                            <topclass>org.drools.services.DirectoryService</topclass>
                             <topclass>org.drools.services.grid.util.IDEntry</topclass>
-                            <topclass>org.drools.services.generic.GenericIoWriter</topclass>
                             <topclass>org.drools.impl.SystemEventListenerServiceImpl</topclass>
                         </topclasses>
                     </createJar>

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryLookupProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryLookupProviderGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryLookupProviderGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -17,6 +17,8 @@
 
 package org.drools.services.grid;
 
+import org.drools.services.DirectoryService;
+import org.drools.services.ExecutionNodeService;
 import java.rmi.RemoteException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -28,6 +30,7 @@
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.services.command.LookupCommand;
 import org.drools.services.command.RegisterCommand;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 
@@ -38,12 +41,12 @@
 public class DirectoryLookupProviderGridClient implements DirectoryLookupFactoryService {
 
     private GridConnection gridClient;
-    private ExecutionNodeService currentService;
+    private GenericServiceConnector currentService;
     private MessageSession messageSession;
 
   
 
-    public DirectoryLookupProviderGridClient(ExecutionNodeService currentService, GridConnection gridClient) {
+    public DirectoryLookupProviderGridClient(GenericServiceConnector currentService, GridConnection gridClient) {
         this.currentService = currentService;
         this.gridClient = gridClient;
         this.messageSession = new MessageSession();

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryService.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/DirectoryService.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,22 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.drools.services.grid;
-
-import java.rmi.RemoteException;
-import org.drools.KnowledgeBase;
-
-
-/**
- *
- * @author salaboy
- */
-
-public interface DirectoryService {
-    public void register(String executorId, String sessionServiceId) throws RemoteException;
-    public ExecutionNodeService lookup(String executorId) throws RemoteException;
-    public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException;
-    public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
-}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionNodeService.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionNodeService.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,20 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.drools.services.grid;
-
-import java.rmi.RemoteException;
-import org.drools.services.generic.GenericIoWriter;
-import org.drools.services.generic.Message;
-
-
-/**
- *
- * @author salaboy
- */
-public interface ExecutionNodeService extends GenericIoWriter {
-    public String  getId() throws RemoteException;
-    public Message write(Message msg) throws RemoteException;    
-    
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,5 +1,6 @@
 package org.drools.services.grid;
 
+import org.drools.services.DirectoryService;
 import java.io.IOException;
 import java.rmi.RemoteException;
 import java.util.ArrayList;
@@ -34,7 +35,7 @@
         this.systemEventListener = systemEventListener;
         this.data = data;
         
-        Class[] classes = new Class[]{org.drools.services.grid.DirectoryService.class};
+        Class[] classes = new Class[]{org.drools.services.DirectoryService.class};
         ServiceTemplate tmpl = new ServiceTemplate(null, classes,null);
 
         LookupDiscoveryManager lookupDiscovery = null;

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -16,38 +16,44 @@
  */
 package org.drools.services.grid;
 
+import org.drools.services.DirectoryService;
+import org.drools.services.ExecutionNodeService;
 import org.drools.builder.DirectoryLookupFactoryService;
 import java.util.ArrayList;
 import java.util.List;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.services.ExecutionNode;
-import org.drools.services.grid.strategies.StaticIncrementalSelectionStrategy;
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.generic.GenericConnection;
+import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.services.strategies.StaticIncrementalSelectionStrategy;
 import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
 /**
  *
  * @author salaboy
  */
-public class GridConnection {
+public class GridConnection implements GenericConnection {
 
     //Cached Services
-    private List<ExecutionNodeService> services;
+    private List<GenericServiceConnector> services;
     //Cached Directories
     private List<DirectoryService> directories;
 
     public GridConnection() {
-        this.services = new ArrayList<ExecutionNodeService>();
+        this.services = new ArrayList<GenericServiceConnector>();
         this.directories = new ArrayList<DirectoryService>();
     }
 
-    public void addService(ExecutionNodeService service) {
+    public void addService(GenericServiceConnector service) {
 
         this.services.add(service);
 
     }
 
-    public void addDirectory(DirectoryService directory) {
+    public void addDirectoryService(DirectoryService directory) {
         this.directories.add(directory);
     }
 
@@ -58,13 +64,15 @@
     }
 
     
-    public ExecutionNode getExecutionNode(GridSelectionStrategy strategy) {
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
         ExecutionNode node = null;
-        ExecutionNodeService currentService = null;
+        GenericServiceConnector currentService = null;
         //if the strategy is null use the default one
         if(strategy == null){
             currentService = getBestService(
                 new StaticIncrementalSelectionStrategy(this));
+        } else{
+            currentService = getBestService(strategy);
         }
 
         node = new ExecutionNode();
@@ -79,8 +87,9 @@
 
     
 
-    private ExecutionNodeService getBestService(GridSelectionStrategy gridSelectionStrategy) {
-        return gridSelectionStrategy.getBestNode();
+    @Override
+    public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy) {
+        return nodeSelectionStrategy.getBestNode();
     }
 
     public List<DirectoryService> getDirectories() {
@@ -91,11 +100,16 @@
         this.directories = directories;
     }
 
-    public List<ExecutionNodeService> getServices() {
+    public List<GenericServiceConnector> getServices() {
         return services;
     }
 
-    public void setServices(List<ExecutionNodeService> services) {
+    public void setServices(List<GenericServiceConnector> services) {
         this.services = services;
     }
+
+    @Override
+    public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+        return directories.get(0);
+    }
 }

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,274 +0,0 @@
-package org.drools.services.grid;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.agent.KnowledgeAgentProvider;
-import org.drools.builder.DecisionTableConfiguration;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderConfiguration;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.command.Command;
-import org.drools.command.KnowledgeContextResolveFromContextCommand;
-
-import org.drools.persistence.jpa.JPAKnowledgeServiceProvider;
-import org.drools.runtime.CommandExecutor;
-import org.drools.runtime.Environment;
-import org.drools.runtime.ExecutionResults;
-import org.drools.services.ServiceManager;
-import org.drools.services.command.ExecutionNodeClientConnectCommand;
-import org.drools.services.generic.GenericServiceConnector;
-import org.drools.services.generic.Message;
-import org.drools.services.generic.MessageSession;
-
-
-
-
-public class GridExecutionNodeConnection
-    implements
-    ServiceManager {
-
-    private MessageSession messageSession;
-
-
-
-    public GenericServiceConnector client;
-    private GridConnection gridClient;
-    
-
-    public GridExecutionNodeConnection(GenericServiceConnector client, MessageSession messageSession, GridConnection gridClient) {
-    
-    	this.client = client;
-    	this.messageSession =  messageSession;
-        
-        this.gridClient = gridClient;
-        
-    }
-    
-  
-
-     
-
-    public boolean connect() {
-        boolean connected = this.client.connect();
-
-        if ( connected ) {
-            String commandId = "serviceManager.connected" + messageSession.getNextId();
-            String kresultsId = "kresults_" + messageSession.getSessionId();
-
-            Message msg = new Message( -1,
-                                       messageSession.counter.incrementAndGet(),
-                                       false,
-                                       new KnowledgeContextResolveFromContextCommand( new ExecutionNodeClientConnectCommand( commandId ),
-                                                                                      null,
-                                                                                      null,
-                                                                                      null,
-                                                                                      kresultsId ) );
-
-            try {
-                Object object = client.write( msg ).getPayload();
-
-                if ( object == null ) {
-                    throw new RuntimeException( "Response was not correctly received" );
-                }
-
-                messageSession.setSessionId((Integer) ((ExecutionResults) object).getValue( commandId ));
-
-                connected = true;
-            } catch ( Exception e ) {
-                throw new RuntimeException( "Unable to execute message",
-                                            e );
-            }
-        }
-        // Connecting with services
-//        if (this.services != null) {
-//        	for (GenericServiceConnector connector : services){
-//        		boolean serviceConnected = connector.connect();
-//        		if ( serviceConnected ){
-//        			System.out.println("Service Connected");
-//                        }
-//        	}
-//        }
-
-        return connected;
-    }
-
-	public void disconnect() {
-		this.client.disconnect();
-//		if (this.services != null){
-//			for (GenericServiceConnector connector : this.services){
-//				connector.disconnect();
-//                        }
-//                }
-	}
-
-   
-
-    public KnowledgeAgentProvider getKnowledgeAgentFactory() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public JPAKnowledgeServiceProvider JPAKnowledgeService() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Environment getEnvironment() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Collection<String> list() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-   
-    public void release(Object object) {
-        // TODO Auto-generated method stub
-    }
-
-    public void release(String identifier) {
-        // TODO Auto-generated method stub
-    }
-
-    @Override
-    public KnowledgeBuilderFactoryService getKnowledgeBuilderFactoryService() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    @Override
-    public KnowledgeBaseFactoryService getKnowledgeBaseFactoryService() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    @Override
-    public void register(String identifier, CommandExecutor executor) {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    @Override
-    public CommandExecutor lookup(String identifer) {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-//    public HumanTaskServiceProvider getHumanTaskService() {
-//    	//return new HumanTaskServiceGridProviderImpl(this);
-//        //@TODO: create human task service module project
-//        return null;
-//    }
-
-//    @Override
-//    public KnowledgeBuilderFactoryService getKnowledgeBuilderFactoryService() {
-//        return new KnowledgeBuilderProviderGridClient( this, gridClient );
-//    }
-//
-//    @Override
-//    public KnowledgeBaseFactoryService getKnowledgeBaseFactoryService() {
-//        return new KnowledgeBaseProviderGridClient( this, gridClient );
-//    }
-
-    public static class RemoveKnowledgeBuilderProvider implements KnowledgeBuilderFactoryService {
-
-        public DecisionTableConfiguration newDecisionTableConfiguration() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilder newKnowledgeBuilder() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
-                                                    KnowledgeBuilderConfiguration conf) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties,
-                                                                              ClassLoader classLoader) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-    }
-
-//    public int getSessionId() {
-//        return sessionId;
-//    }
-//
-//    public int getNextId() {
-//        return this.counter.incrementAndGet();
-//    }
-
-    public ExecutionResults execute(Command command) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-//	public List<GenericServiceConnector> getServices() {
-//		return services;
-//	}
-//
-//	public String getName() {
-//		return this.name;
-//	}
-
-//    public DirectoryService getRegistryService() {
-//        return directoryService;
-//    }
-//
-//    public void setRegistryService(DirectoryService registryService) {
-//        this.directoryService = registryService;
-//    }
-
-    public void setCurrentSessionService(ExecutionNodeService sessionService){
-        this.client.setSession(sessionService);
-    }
-
-    public MessageSession getMessageSession() {
-        return messageSession;
-    }
-
-    public void setMessageSession(MessageSession messageSession) {
-        this.messageSession = messageSession;
-    }
-    
-//    public List<ExecutionNodeService> getSessionServices(){
-////        List<ExecutionNodeService> sessionServices =
-////        ((RioConnector)this.client).getSessionServices();
-////        List<String> ids = new ArrayList<String>();
-////        for(ExecutionNodeService ss : sessionServices){
-////            try {
-////                ids.add(ss.getId());
-////            } catch (RemoteException ex) {
-////                Logger.getLogger(ServiceManagerGridClient.class.getName()).log(Level.SEVERE, null, ex);
-////            }
-////        }
-////        return ids;
-//        return ((RioConnector)this.client).getNodeServices();
-//    }
-//
-
-    
-}

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridSelectionStrategy.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,29 +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.grid;
-
-/**
- *
- * @author salaboy
- */
-public interface GridSelectionStrategy {
-
-    public ExecutionNodeService getBestNode();
-
-
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,5 +1,6 @@
 package org.drools.services.grid;
 
+import org.drools.services.DirectoryService;
 import java.rmi.RemoteException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -22,7 +23,9 @@
 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.Message;
+import org.drools.services.generic.MessageSession;
 import org.drools.services.grid.command.NewStatefulKnowledgeSessionGridCommand;
 import org.drools.services.grid.rio.RioServiceConnector;
 
@@ -31,23 +34,27 @@
     implements
     KnowledgeBase {
 
-    private GridExecutionNodeConnection nodeConnection;
+
+    private GenericServiceConnector     client;
+    private MessageSession              messageSession;
     private String                      instanceId;
     private GridConnection gridClient;
     
     public KnowledgeBaseGridClient(String instanceId,
-                                     GridExecutionNodeConnection nodeConnection, GridConnection gridClient) {
+                                     GenericServiceConnector client, MessageSession messageSession, GridConnection gridClient) {
         this.instanceId = instanceId;
-        this.nodeConnection = nodeConnection;
-        this.gridClient = gridClient;
+
+        this.client = client;
+        this.messageSession = messageSession;
+        this.gridClient = gridClient; 
     }
 
     public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
-        String kresultsId = "kresults_" + nodeConnection.getMessageSession().getSessionId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
         String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
                                                                                   kuilderInstanceId,
@@ -58,7 +65,7 @@
             //I should register the kbase ID??
             DirectoryService directory = gridClient.getDirectories().iterator().next();
             if(directory != null){
-                directory.registerKBase(instanceId, nodeConnection.client.getId());
+                directory.registerKBase(instanceId, client.getId());
             }
             //nodeConnection.getRegistryService().registerKBase(, );
         } catch (RemoteException ex) {
@@ -66,7 +73,7 @@
         }
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -112,12 +119,12 @@
 
     public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf,
                                                                 Environment environment) {
-        String kresultsId = "kresults_" + nodeConnection.getMessageSession().getSessionId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
         String localId = UUID.randomUUID().toString();
 
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
@@ -128,7 +135,7 @@
                                                                                                           kresultsId ) ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
             
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -140,7 +147,7 @@
         }
 
         return new StatefulKnowledgeSessionGridClient( localId,
-                                                         ((RioServiceConnector)nodeConnection.client).getCurrentNodeService(),nodeConnection.getMessageSession() );
+                                                         client, messageSession );
     }
 
     public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {
@@ -188,10 +195,5 @@
 		// TODO Auto-generated method stub
 	}
 
-   
 
-    public void setServiceManager(GridExecutionNodeConnection serviceManager) {
-        this.nodeConnection = serviceManager;
-    }
-
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,6 +1,7 @@
 package org.drools.services.grid;
 
 
+import org.drools.services.ExecutionNodeService;
 import java.util.Properties;
 import java.util.UUID;
 
@@ -14,6 +15,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.Message;
 import org.drools.services.generic.MessageSession;
 import org.drools.services.grid.rio.RioServiceConnector;
@@ -24,21 +26,16 @@
     KnowledgeBaseFactoryService {
     
     private GridConnection gridClient;
-    private String localId = "";
-    private  GridExecutionNodeConnection nodeConnection;
+    private String localId = "";   
+    private GenericServiceConnector client;
     private MessageSession messageSession;
     
-    public KnowledgeBaseProviderGridClient(ExecutionNodeService currentService, GridConnection gridClient) {
+    public KnowledgeBaseProviderGridClient(GenericServiceConnector currentService, GridConnection gridClient) {
         
         this.gridClient = gridClient;
         this.messageSession = new MessageSession();
-            this.nodeConnection = new GridExecutionNodeConnection(
+        this.client = new RioServiceConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (ExecutionNodeService) currentService);
 
-                                            //I need to specialize this class for include the RIO Connector, and solve the name problem
-                                            new RioServiceConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (ExecutionNodeService) currentService),
-                                            this.messageSession,
-                                            gridClient
-                                  );
     }
 
    
@@ -64,7 +61,7 @@
                                                            localId,
                                                            new NewKnowledgeBaseCommand( null ) ) );
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -76,7 +73,7 @@
         } 
 
         return new KnowledgeBaseGridClient( localId,
-                                              nodeConnection, gridClient);
+                                              client, messageSession, gridClient);
 
     }
 
@@ -120,13 +117,6 @@
         this.localId = localId;
     }
 
-    public GridExecutionNodeConnection getNodeConnection() {
-        return nodeConnection;
-    }
-
-    public void setNodeConnection(GridExecutionNodeConnection nodeConnection) {
-        this.nodeConnection = nodeConnection;
-    }
-
+   
     
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -15,22 +15,28 @@
 import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
 import org.drools.definition.KnowledgePackage;
 import org.drools.io.Resource;
-import org.drools.runtime.Environment;
 import org.drools.runtime.ExecutionResults;
 import org.drools.services.generic.CollectionClient;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageSession;
 
 
 public class KnowledgeBuilderGridClient
     implements
     KnowledgeBuilder {
-    private GridExecutionNodeConnection nodeConnection;
+    //private GridExecutionNodeConnection nodeConnection;
     private String                      instanceId;
+    private GenericServiceConnector     client;
+    private MessageSession              messageSession;
     
     public KnowledgeBuilderGridClient(String instanceId,
-                                        GridExecutionNodeConnection nodeConnection) {
+                                        GenericServiceConnector client, MessageSession messageSession) {
         this.instanceId = instanceId;
-        this.nodeConnection = nodeConnection;
+        //this.nodeConnection = nodeConnection;
+        this.client = client;
+        this.messageSession = messageSession;
+
         
     }
 
@@ -44,8 +50,8 @@
     public void add(Resource resource,
                     ResourceType resourceType,
                     ResourceConfiguration configuration) {
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
                                                                                                                   resourceType,
@@ -56,7 +62,7 @@
                                                                                   null ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -70,11 +76,11 @@
     }
 
     public KnowledgeBuilderErrors getErrors() {
-        String commandId = "kbuilder.getErrors_" + nodeConnection.getMessageSession().getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getMessageSession().getSessionId();
+        String commandId = "kbuilder.getErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().counter.incrementAndGet(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -83,7 +89,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
@@ -103,11 +109,11 @@
     }
 
     public boolean hasErrors() {
-        String commandId = "kbuilder.hasErrors_" + nodeConnection.getMessageSession().getNextId();
-        String kresultsId = "kresults_" + nodeConnection.getMessageSession().getSessionId();
+        String commandId = "kbuilder.hasErrors_" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().getNextId(),
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.getNextId(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -116,7 +122,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -4,6 +4,7 @@
 package org.drools.services.grid;
 
 
+import org.drools.services.ExecutionNodeService;
 import java.rmi.RemoteException;
 import java.util.Properties;
 import java.util.UUID;
@@ -20,7 +21,7 @@
 import org.drools.command.FinishedCommand;
 import org.drools.command.SetVariableCommand;
 import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.runtime.Environment;
+import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageSession;
 import org.drools.services.grid.rio.RioServiceConnector;
@@ -29,24 +30,22 @@
 public class KnowledgeBuilderProviderGridClient
     implements
     KnowledgeBuilderFactoryService {
-    private GridExecutionNodeConnection nodeConnection;
+    //private GridExecutionNodeConnection nodeConnection;
     private MessageSession messageSession;
-    
+    private GenericServiceConnector client;
 
-//    public KnowledgeBuilderProviderGridClient(GridExecutionNodeConnection nodeConnection, Environment env) {
-//        this.nodeConnection = nodeConnection;
-//        this.env = env;
-//    }
 
-    public KnowledgeBuilderProviderGridClient(ExecutionNodeService currentService, GridConnection gridClient) {
+
+    public KnowledgeBuilderProviderGridClient(GenericServiceConnector currentService, GridConnection gridClient) {
             this.messageSession = new MessageSession();
-            this.nodeConnection = new GridExecutionNodeConnection(
-                                            
-                                            //I need to specialize this class for include the RIO Connector, and solve the name problem
-                                            new RioServiceConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (ExecutionNodeService) currentService),
-                                            this.messageSession,
-                                            gridClient
-                                  );
+            client = new RioServiceConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (ExecutionNodeService) currentService);
+//            this.nodeConnection = new GridExecutionNodeConnection(
+//
+//                                            //I need to specialize this class for include the RIO Connector, and solve the name problem
+//                                            new RioServiceConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (ExecutionNodeService) currentService),
+//                                            this.messageSession,
+//                                            gridClient
+//                                  );
         
     }
 
@@ -66,7 +65,7 @@
                                                            new NewKnowledgeBuilderCommand( null ) ) );
 
         try {
-            Object object = nodeConnection.client.write( msg ).getPayload();
+            Object object = client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -78,7 +77,7 @@
         }
 
         return new KnowledgeBuilderGridClient( localId,
-                                                 nodeConnection );
+                                                 client, messageSession );
     }
 
     public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,6 +1,7 @@
 package org.drools.services.grid;
 
 
+import org.drools.services.ExecutionNodeService;
 import java.util.Collection;
 import java.util.Map;
 
@@ -39,7 +40,7 @@
     implements
     StatefulKnowledgeSession {
 
-    private ExecutionNodeService nodeConnection;
+    private GenericServiceConnector     nodeConnection;
     private String                      instanceId;
     private MessageSession              messageSession;
     
@@ -48,7 +49,7 @@
 
     
 
-    StatefulKnowledgeSessionGridClient(String instanceId, ExecutionNodeService currentService, MessageSession messageSession) {
+    public StatefulKnowledgeSessionGridClient(String instanceId, GenericServiceConnector currentService, MessageSession messageSession) {
         this.instanceId = instanceId;
         this.nodeConnection = currentService;
         this.messageSession = messageSession;
@@ -290,7 +291,8 @@
          try {
              Object payload = nodeConnection.write( msg ).getPayload();
              WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
-             //((WorkItemManagerGridClient)workItemManager).setServiceManager(nodeConnection);
+             ((WorkItemManagerGridClient)workItemManager).setClient(nodeConnection);
+             ((WorkItemManagerGridClient)workItemManager).setMessageSession(messageSession);
              ((WorkItemManagerGridClient)workItemManager).setInstanceId(instanceId);
              return workItemManager;
          } catch ( Exception e ) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/WorkItemManagerGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/WorkItemManagerGridClient.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/WorkItemManagerGridClient.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -8,18 +8,23 @@
 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.Message;
+import org.drools.services.generic.MessageSession;
 
 
 /**
  *
  * @author Lucas Amador
+ * @author salaboy: salaboy at gmail.com
  */
 public class WorkItemManagerGridClient implements WorkItemManager, Serializable {
 
 	private static final long serialVersionUID = 1L;
 	
-	private GridExecutionNodeConnection nodeConnection;
+	//private GridExecutionNodeConnection nodeConnection;
+        private GenericServiceConnector client;
+        private MessageSession messageSession;
 	private String instanceId;
 
 	public void abortWorkItem(long id) {
@@ -27,9 +32,9 @@
 	}
 
 	public void completeWorkItem(long id, Map<String, Object> results) {
-		String kresultsId = "kresults_" + nodeConnection.getMessageSession().getSessionId();
-        Message msg = new Message( nodeConnection.getMessageSession().getSessionId(),
-                                   nodeConnection.getMessageSession().counter.incrementAndGet(),
+		String kresultsId = "kresults_" + messageSession.getSessionId();
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
                                    true,
                                    new KnowledgeContextResolveFromContextCommand( new CompleteWorkItemCommand(id, results),
                                                                                   null,
@@ -37,7 +42,7 @@
                                                                                   instanceId,
                                                                                   kresultsId ) );
         try {
-            nodeConnection.client.write( msg );
+            client.write( msg );
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message", e );
         }
@@ -47,10 +52,16 @@
 		throw new UnsupportedOperationException("Not supported yet.");
 	}
 
-	public void setServiceManager(GridExecutionNodeConnection serviceManager) {
-		this.nodeConnection = serviceManager;
-	}
+        public void setClient(GenericServiceConnector client) {
+            this.client = client;
+        }
 
+        public void setMessageSession(MessageSession messageSession) {
+            this.messageSession = messageSession;
+        }
+
+	
+
 	public void setInstanceId(String instanceId) {
 		this.instanceId = instanceId;
 	}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/command/NewStatefulKnowledgeSessionGridCommand.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/command/NewStatefulKnowledgeSessionGridCommand.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/command/NewStatefulKnowledgeSessionGridCommand.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -9,7 +9,7 @@
 import org.drools.command.impl.KnowledgeCommandContext;
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.services.grid.DirectoryService;
+import org.drools.services.DirectoryService;
 
 
 public class NewStatefulKnowledgeSessionGridCommand

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -13,8 +13,9 @@
 import org.drools.command.KnowledgeContextResolveFromContextCommand;
 import org.drools.command.runtime.GetKnowledgeBaseCommand;
 import org.drools.services.generic.Message;
-import org.drools.services.grid.ExecutionNodeService;
-import org.drools.services.grid.DirectoryService;
+import org.drools.services.ExecutionNodeService;
+import org.drools.services.DirectoryService;
+import org.drools.services.generic.GenericServiceConnector;
 
 
 /**
@@ -25,9 +26,9 @@
 
     
 
-    private Map<String, String> registry = new HashMap<String, String>();
+    private Map<String, String> directoryMap = new HashMap<String, String>();
 
-    private Map<String, String> kbaseregistry = new HashMap<String, String>();
+    private Map<String, String> kbaseDirectoryMap = new HashMap<String, String>();
 
     private Iterable<ExecutionNodeService> nodeServices;
 
@@ -40,14 +41,14 @@
     @Override
     public void register(String sessionId, String sessionServiceId) throws RemoteException {
         System.out.println("Registering: "+  sessionId + " -- "+sessionServiceId);
-        registry.put(sessionId, sessionServiceId);
+        directoryMap.put(sessionId, sessionServiceId);
     }
 
     @Override
-    public ExecutionNodeService lookup(String sessionId) throws RemoteException {
+    public GenericServiceConnector lookup(String sessionId) throws RemoteException {
         ExecutionNodeService sessionService = null;
-        String sessionServiceId = (String)registry.get(sessionId);
-        System.out.println("Registry = "+ registry.toString());
+        String sessionServiceId = (String)directoryMap.get(sessionId);
+        System.out.println("Registry = "+ directoryMap.toString());
         System.out.println("Nodes Services = "+nodeServices);
         for(ExecutionNodeService ss : nodeServices){
             System.out.println("Session Service id = "+ss.getId() + "needs to match with ="+sessionServiceId);
@@ -67,14 +68,14 @@
     @Override
     public void registerKBase(String kbaseId, String nodeServiceId) throws RemoteException {
         System.out.println("Registering KnowledgeBase = "+kbaseId +" -in NS=" +nodeServiceId);
-        kbaseregistry.put(kbaseId, nodeServiceId);
+        kbaseDirectoryMap.put(kbaseId, nodeServiceId);
     }
 
     @Override
     public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException{
         ExecutionNodeService nodeService = null;
-        String nodeServiceId = (String)kbaseregistry.get(kbaseId);
-        System.out.println("Kbase Registry = "+ kbaseregistry.toString());
+        String nodeServiceId = (String)kbaseDirectoryMap.get(kbaseId);
+        System.out.println("Kbase Registry = "+ kbaseDirectoryMap.toString());
         System.out.println("Session Services = "+nodeService);
         for(ExecutionNodeService ns : nodeServices){
             System.out.println("Node Service id = "+ns.getId() + "needs to match with ="+nodeServiceId);

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -27,7 +27,7 @@
 import org.drools.services.generic.MessageResponseHandler;
 import org.drools.services.generic.NodeData;
 import org.drools.services.grid.GenericMessageGridHandlerImpl;
-import org.drools.services.grid.ExecutionNodeService;
+import org.drools.services.ExecutionNodeService;
 import org.drools.services.grid.util.IDEntry;
 
 import org.rioproject.core.jsb.ServiceBeanContext;
@@ -85,6 +85,16 @@
         this.id = id;
     }
 
+    @Override
+    public boolean connect() throws RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public void disconnect() throws RemoteException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
    
     
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioServiceConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioServiceConnector.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioServiceConnector.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -12,7 +12,7 @@
 import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.Message;
 import org.drools.services.generic.MessageResponseHandler;
-import org.drools.services.grid.ExecutionNodeService;
+import org.drools.services.ExecutionNodeService;
 
 
 public class RioServiceConnector
@@ -22,7 +22,6 @@
     protected final String                 name;
     protected AtomicInteger                counter;
     protected ExecutionNodeService               nodeService;
-    //protected List<ExecutionNodeService>         nodeServices;
     protected SocketAddress                address;
     protected SystemEventListener          eventListener;
   
@@ -105,14 +104,8 @@
         return null;
     }
 
-    public ExecutionNodeService getCurrentNodeService() {
-        return nodeService;
-    }
+ 
 
-//    public List<ExecutionNodeService> getNodeServices() {
-//        return nodeServices;
-//    }
-
     
 
     

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,44 +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.grid.strategies;
-
-import org.drools.services.grid.GridConnection;
-import org.drools.services.grid.ExecutionNodeService;
-import org.drools.services.grid.GridSelectionStrategy;
-
-/**
- *
- * @author salaboy
- */
-public class StaticIncrementalSelectionStrategy implements GridSelectionStrategy{
-    public static int counter = 0;
-    private GridConnection connection;
-    public StaticIncrementalSelectionStrategy(GridConnection connection) {
-        this.connection = connection;
-    }
-
-
-    @Override
-    public ExecutionNodeService getBestNode() {
-        System.out.println("!!!!!GET BEST NODE = "+counter);
-        ExecutionNodeService service = this.connection.getServices().get(counter);
-        StaticIncrementalSelectionStrategy.counter = counter +1;
-        return service;
-    }
-
-}

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -29,7 +29,7 @@
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.builder.DirectoryLookupFactoryService;
 import org.drools.services.grid.GridConnection;
-import org.drools.services.grid.strategies.StaticIncrementalSelectionStrategy;
+import org.drools.services.strategies.StaticIncrementalSelectionStrategy;
 import org.junit.Assert;
 import org.junit.Test;
 /**

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -3,22 +3,10 @@
 import junit.framework.Assert;
 
 import net.jini.core.lookup.ServiceItem;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.SystemEventListenerFactory;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.impl.EnvironmentImpl;
-import org.drools.runtime.Environment;
-import org.drools.services.generic.NodeData;
-import org.drools.services.grid.GridConnection;
-import org.drools.services.grid.GridExecutionNodeConnection;
-import org.drools.services.grid.ExecutionNodeService;
-import org.drools.services.grid.KnowledgeBaseProviderGridClient;
-import org.drools.services.grid.KnowledgeBuilderProviderGridClient;
-import org.drools.services.grid.DirectoryService;
-import org.drools.services.grid.rio.RioServiceConnector;
 
 
 
+
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.rioproject.test.RioTestRunner;
@@ -44,7 +32,7 @@
         DirectoryService directoryService = (DirectoryService) testManager.waitForService(DirectoryService.class);
         Assert.assertNotNull(directoryService);
 
-        connection.addDirectory(directoryService);
+        connection.addDirectoryService(directoryService);
 
         for (int i = 0; i < nodeServiceItems.length; i++) {
             if (nodeServiceItems[i].service instanceof ExecutionNodeService) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/resources/org/drools/executionNodeService.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/resources/org/drools/executionNodeService.groovy	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/resources/org/drools/executionNodeService.groovy	2010-04-01 18:16:56 UTC (rev 32358)
@@ -24,7 +24,7 @@
      */
     service(name: 'ExecutionNodeService') {
         interfaces {
-            classes 'org.drools.services.grid.ExecutionNodeService'
+            classes 'org.drools.services.ExecutionNodeService'
             artifact ref:'service-dl'
         }
         implementation(class:'org.drools.services.grid.impl.ExecutionNodeServiceImpl') {
@@ -35,7 +35,7 @@
     }
     service(name: 'DirectoryService') {
         interfaces {
-            classes 'org.drools.services.grid.DirectoryService'
+            classes 'org.drools.services.DirectoryService'
             artifact ref:'service-dl'
         }
         implementation(class:'org.drools.services.grid.impl.DirectoryServiceImpl') {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandler.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandler.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -7,10 +7,13 @@
 import java.io.ObjectOutputStream;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
+import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
@@ -72,7 +75,7 @@
         this.address = new InetSocketAddress(ipAddress, port);
     }
 
-    public void connect() {
+    public void connect() throws RemoteException {
         if (connector == null) {
             NioSocketConnector htclientConnector = new NioSocketConnector();
             htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
@@ -90,7 +93,11 @@
     }
 
     public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
-        connect();
+        try {
+            connect();
+        } catch (RemoteException ex) {
+            Logger.getLogger(CommandBasedServicesWSHumanTaskHandler.class.getName()).log(Level.SEVERE, null, ex);
+        }
         Task task = new Task();
         String taskName = (String) workItem.getParameter("TaskName");
         if (taskName != null) {
@@ -195,7 +202,7 @@
         client.addTask(task, content, taskResponseHandler);
     }
 
-    public void dispose() {
+    public void dispose() throws RemoteException {
         if (connector != null) {
             connector.disconnect();
         }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/HumanTaskServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/HumanTaskServiceImpl.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/main/java/org/drools/services/task/HumanTaskServiceImpl.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -1,8 +1,11 @@
 package org.drools.services.task;
 
+import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import org.drools.eventmessaging.EventKey;
 import org.drools.services.generic.GenericServiceConnector;
@@ -28,7 +31,6 @@
 import org.drools.services.task.TaskClientMessageHandlerImpl.TaskSummaryMessageResponseHandler;
 import org.drools.services.task.eventmessaging.EventMessageResponseHandler;
 
-
 /**
  * @author salaboy
  * @author Lucas Amador
@@ -36,374 +38,387 @@
  */
 public class HumanTaskServiceImpl implements HumanTaskService {
 
-	private final GenericServiceConnector client;
-	private final AtomicInteger counter;
-	private int sessionId;
-	private String clientName;
+    private final GenericServiceConnector client;
+    private final AtomicInteger counter;
+    private int sessionId;
+    private String clientName;
 
-	public HumanTaskServiceImpl(GenericServiceConnector client, int sessionId) {
-		this.client = client;
-		this.counter = new AtomicInteger();
-		this.clientName = String.valueOf(sessionId);
-		this.sessionId = sessionId;
-                
-	}
+    public HumanTaskServiceImpl(GenericServiceConnector client, int sessionId) {
+        this.client = client;
+        this.counter = new AtomicInteger();
+        this.clientName = String.valueOf(sessionId);
+        this.sessionId = sessionId;
 
-        public boolean connect(){
+    }
+
+    @Override
+    public boolean connect() {
+        try {
             return this.client.connect();
+        } catch (RemoteException ex) {
+            Logger.getLogger(HumanTaskServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
+            return false;
         }
 
-        public void disconnect(){
+    }
+
+    public void disconnect() {
+        try {
             this.client.disconnect();
+        } catch (RemoteException ex) {
+            Logger.getLogger(HumanTaskServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
         }
+    }
 
-	public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( task );
-		args.add( content );
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddTaskRequest, args );
+    public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(task);
+        args.add(content);
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.AddTaskRequest, args);
 
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public Task getTask(long taskId, GetTaskMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 1 );
-		args.add( taskId );
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.GetTaskRequest, args );
+    public Task getTask(long taskId, GetTaskMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(1);
+        args.add(taskId);
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.GetTaskRequest, args);
 
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
-		client.write(msg, responseHandler);
-		return null;
-	}
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+        client.write(msg, responseHandler);
+        return null;
+    }
 
-	public void addComment(long taskId, Comment comment, AddCommentMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( taskId );
-		args.add( comment );
+    public void addComment(long taskId, Comment comment, AddCommentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(taskId);
+        args.add(comment);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddCommentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.AddCommentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void deleteComment(long taskId, long commentId, DeleteCommentMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( taskId );
-		args.add( commentId );
+    public void deleteComment(long taskId, long commentId, DeleteCommentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(taskId);
+        args.add(commentId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.DeleteCommentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteCommentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void addAttachment(long taskId, Attachment attachment, Content content, AddAttachmentMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( taskId );
-		args.add( attachment );
-		args.add( content );
+    public void addAttachment(long taskId, Attachment attachment, Content content, AddAttachmentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(taskId);
+        args.add(attachment);
+        args.add(content);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddAttachmentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.AddAttachmentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void deleteAttachment(long taskId, long attachmentId, long contentId, DeleteAttachmentMessageResponseHandler responseHandler ) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( taskId );
-		args.add( attachmentId );
-		args.add( contentId );
+    public void deleteAttachment(long taskId, long attachmentId, long contentId, DeleteAttachmentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(taskId);
+        args.add(attachmentId);
+        args.add(contentId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.DeleteAttachmentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteAttachmentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void setDocumentContent(long taskId, Content content, SetDocumentMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( taskId );
-		args.add( content );
+    public void setDocumentContent(long taskId, Content content, SetDocumentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(taskId);
+        args.add(content);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.SetDocumentContentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.SetDocumentContentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getContent(long contentId, GetContentMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 1 );
-		args.add( contentId );
+    public void getContent(long contentId, GetContentMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(1);
+        args.add(contentId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.GetContentRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.GetContentRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void claim(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Claim );
-		args.add( taskId );
-		args.add( userId );
+    public void claim(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Claim);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void start(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Start );
-		args.add( taskId );
-		args.add( userId );
+    public void start(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Start);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void stop(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Stop );
-		args.add( taskId );
-		args.add( userId );
+    public void stop(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Stop);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void release(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Release );
-		args.add( taskId );
-		args.add( userId );
+    public void release(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Release);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void suspend(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Suspend );
-		args.add( taskId );
-		args.add( userId );
+    public void suspend(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Suspend);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void resume(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Resume );
-		args.add( taskId );
-		args.add( userId );
+    public void resume(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Resume);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void skip(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( Operation.Skip );
-		args.add( taskId );
-		args.add( userId );
+    public void skip(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(Operation.Skip);
+        args.add(taskId);
+        args.add(userId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void delegate(long taskId, String userId, String targetUserId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 4 );
-		args.add( Operation.Delegate );
-		args.add( taskId );
-		args.add( userId );
-		args.add( targetUserId );
+    public void delegate(long taskId, String userId, String targetUserId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(4);
+        args.add(Operation.Delegate);
+        args.add(taskId);
+        args.add(userId);
+        args.add(targetUserId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);   
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void forward(long taskId, String userId, String targetEntityId, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 4 );
-		args.add( Operation.Forward );
-		args.add( taskId );
-		args.add( userId );
-		args.add( targetEntityId );
+    public void forward(long taskId, String userId, String targetEntityId, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(4);
+        args.add(Operation.Forward);
+        args.add(taskId);
+        args.add(userId);
+        args.add(targetEntityId);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);    
-	}    
+        client.write(msg, responseHandler);
+    }
 
-	public void complete(long taskId, String userId, ContentData outputData, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 5 );
-		args.add( Operation.Complete );
-		args.add( taskId );
-		args.add( userId );
-		args.add( null );
-		args.add( outputData );
+    public void complete(long taskId, String userId, ContentData outputData, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(5);
+        args.add(Operation.Complete);
+        args.add(taskId);
+        args.add(userId);
+        args.add(null);
+        args.add(outputData);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void fail(long taskId, String userId, FaultData faultData, TaskOperationMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 5 );
-		args.add( Operation.Fail );
-		args.add( taskId );
-		args.add( userId );
-		args.add( null );
-		args.add( faultData );
+    public void fail(long taskId, String userId, FaultData faultData, TaskOperationMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(5);
+        args.add(Operation.Fail);
+        args.add(taskId);
+        args.add(userId);
+        args.add(null);
+        args.add(faultData);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksOwned(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksOwned(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksOwned, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksOwned, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksAssignedAsBusinessAdministrator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksAssignedAsBusinessAdministrator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsBusinessAdministrator, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsBusinessAdministrator, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksAssignedAsExcludedOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksAssignedAsExcludedOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsExcludedOwner, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsExcludedOwner, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksAssignedAsPotentialOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksAssignedAsPotentialOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwner, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwner, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
-	public void getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( groupIds );
-		args.add( language );
+        client.write(msg, responseHandler);
+    }
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwnerWithGroup, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+    public void getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(groupIds);
+        args.add(language);
 
-		client.write(msg, responseHandler);
-	}
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwnerWithGroup, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-	public void getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( parentId );
-		args.add( userId );
-		args.add( language );
+        client.write(msg, responseHandler);
+    }
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QuerySubTasksAssignedAsPotentialOwner, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+    public void getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(parentId);
+        args.add(userId);
+        args.add(language);
 
-		client.write(msg, responseHandler);
-	}
-	public void getSubTasksByParent(long parentId, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( parentId );
-		//@TODO: un hard code this
-		args.add( "en-UK" );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QuerySubTasksAssignedAsPotentialOwner, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryGetSubTasksByParentTaskId, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        client.write(msg, responseHandler);
+    }
 
-		client.write(msg, responseHandler);
-	}
-	public void getTasksAssignedAsRecipient(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getSubTasksByParent(long parentId, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(parentId);
+        //@TODO: un hard code this
+        args.add("en-UK");
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsRecipient, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryGetSubTasksByParentTaskId, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksAssignedAsRecipient(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskInitiator, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsRecipient, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>( 2 );
-		args.add( userId );
-		args.add( language );
+    public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskStakeholder, args );
-		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskInitiator, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
-	public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler) { //@TODO: look for the event stuff
-		List<Object> args = new ArrayList<Object>( 3 );
-		args.add( key );
-		args.add( remove );
-		args.add( clientName );
+    public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+        List<Object> args = new ArrayList<Object>(2);
+        args.add(userId);
+        args.add(language);
 
-		Command cmd = new Command( counter.getAndIncrement(), CommandName.RegisterForEventRequest, args );
-		int responseId = counter.incrementAndGet();
-		Message msg = new Message( sessionId, responseId, false, cmd );
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskStakeholder, args);
+        Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
 
-		client.write(msg, responseHandler);
-	}
+        client.write(msg, responseHandler);
+    }
 
+    public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler) { //@TODO: look for the event stuff
+        List<Object> args = new ArrayList<Object>(3);
+        args.add(key);
+        args.add(remove);
+        args.add(clientName);
+
+        Command cmd = new Command(counter.getAndIncrement(), CommandName.RegisterForEventRequest, args);
+        int responseId = counter.incrementAndGet();
+        Message msg = new Message(sessionId, responseId, false, cmd);
+
+        client.write(msg, responseHandler);
+    }
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/BaseTaskServiceTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/BaseTaskServiceTest.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/BaseTaskServiceTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -15,6 +15,7 @@
 import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.impl.WorkItemImpl;
 import org.drools.services.ExecutionNode;
+import org.drools.services.RemoteConnection;
 import org.drools.services.task.responseHandlers.BlockingGetContentMessageResponseHandler;
 import org.drools.services.task.responseHandlers.BlockingGetTaskMessageResponseHandler;
 import org.drools.services.task.responseHandlers.BlockingTaskOperationMessageResponseHandler;
@@ -42,8 +43,8 @@
     protected Map<String, User> users;
     protected Map<String, Group> groups;
     protected ExecutionNode node;
+    protected RemoteConnection connection = new RemoteConnection();
 
-
     @Test
     public void testTask() throws Exception {
         TestWorkItemManager manager = new TestWorkItemManager();

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-04-01 17:59:48 UTC (rev 32357)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-task/src/test/java/org/drools/services/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-04-01 18:16:56 UTC (rev 32358)
@@ -5,9 +5,8 @@
 import java.io.Reader;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import javax.persistence.EntityManagerFactory;
@@ -23,13 +22,13 @@
 import org.drools.io.impl.ClassPathResource;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.services.NodeConnector;
-import org.drools.services.RemoteNodeConnector;
 import org.drools.services.generic.NodeData;
 import org.drools.services.generic.GenericServiceConnector;
 import org.drools.services.generic.GenericMessageHandlerImpl;
 import org.drools.services.remote.mina.MinaAcceptor;
 import org.drools.services.remote.mina.MinaServiceConnector;
 import org.drools.services.remote.mina.MinaIoHandler;
+import org.drools.services.strategies.ReturnAlwaysTheFirstSelectionStrategy;
 import org.drools.task.Group;
 import org.drools.task.User;
 import org.drools.task.service.SendIcal;
@@ -47,7 +46,7 @@
     
     private MinaAcceptor server;
     private MinaAcceptor humanTaskServer;
-    private NodeConnector nodeConnection;
+    //private NodeConnector nodeConnection;
   
     protected EntityManagerFactory emf;
     
@@ -148,8 +147,11 @@
                 SystemEventListenerFactory.getSystemEventListener());
 
 
-        this.nodeConnection = new RemoteNodeConnector("client Execution Node", minaClient); //new ServiceManagerRemoteClient("client SM", minaClient, services);
-        node =  this.nodeConnection.connect();
+
+        connection.addService(minaClient);
+
+        node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
+        //nodeConnection.connect();
         
         
         
@@ -171,7 +173,11 @@
     @After
     public void tearDown() throws Exception {
         this.humanTaskClient.disconnect();
-        this.nodeConnection.disconnect();
+        Iterator<GenericServiceConnector> iterator = connection.getServices().iterator();
+        while(iterator.hasNext()){
+            iterator.next().disconnect();
+        }
+        //this.nodeConnection.disconnect();
         this.handler.dispose();
         this.server.stop();
         this.humanTaskServer.stop();



More information about the jboss-svn-commits mailing list