[jboss-svn-commits] JBL Code SVN: r33584 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation: drools-api/src/main/java/org/drools/builder and 12 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 21 21:54:35 EDT 2010


Author: salaboy21
Date: 2010-06-21 21:54:34 -0400 (Mon, 21 Jun 2010)
New Revision: 33584

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/MinaHumanTaskProvider.java
Removed:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectoryServiceSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/META-INF/MANIFEST.MF
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/builder/DirectoryLookupFactoryService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/NodeSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryLookupProviderLocalClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryNodeLocalImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
Log:
huge refactoring.. tasks is not working.. I need to review the tests

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/META-INF/MANIFEST.MF	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/META-INF/MANIFEST.MF	2010-06-22 01:54:34 UTC (rev 33584)
@@ -1,6 +1,66 @@
 Manifest-Version: 1.0
+Export-Package: org.drools.event.io;uses:="org.drools";version="5.1.0.
+ SNAPSHOT",org.drools.marshalling;uses:="org.drools.runtime,org.drools
+ ";version="5.1.0.SNAPSHOT",org.drools.runtime;uses:="org.drools.comma
+ nd,org.drools.time,org.drools.runtime.process,org.drools.event,org.dr
+ ools.runtime.rule,org.drools,org.drools.runtime.conf";version="5.1.0.
+ SNAPSHOT",org.drools.event;uses:="org.drools.runtime,org.drools.event
+ .process,org.drools.event.rule";version="5.1.0.SNAPSHOT",org.drools.c
+ onf;uses:="org.drools.runtime.rule";version="5.1.0.SNAPSHOT",org.droo
+ ls.event.knowledgebase;uses:="org.drools.definition.rule,org.drools.d
+ efinition,org.drools";version="5.1.0.SNAPSHOT",org.drools;uses:="org.
+ drools.io,org.drools.runtime,org.drools.definition.type,org.drools.ev
+ ent.knowledgebase,org.drools.definition.process,org.drools.definition
+ ,org.drools.definition.rule,org.drools.conf,org.drools.util";version=
+ "5.1.0.SNAPSHOT",org.drools.definition.process;uses:="org.drools.defi
+ nition";version="5.1.0.SNAPSHOT",org.drools.util;uses:="org.drools,or
+ g.drools.io,org.drools.builder";version="5.1.0.SNAPSHOT",org.drools.b
+ uilder;uses:="org.drools.runtime,org.drools,org.drools.io,org.drools.
+ definition,org.drools.builder.conf,org.drools.util";version="5.1.0.SN
+ APSHOT",org.drools.builder.conf;uses:="org.drools.runtime.rule,org.dr
+ ools.conf";version="5.1.0.SNAPSHOT",org.drools.logger;uses:="org.droo
+ ls.event";version="5.1.0.SNAPSHOT",org.drools.runtime.process;uses:="
+ org.drools.runtime";version="5.1.0.SNAPSHOT",org.drools.runtime.conf;
+ uses:="org.drools.conf";version="5.1.0.SNAPSHOT",org.drools.runtime.h
+ elp;uses:="com.thoughtworks.xstream,org.quartz,org.drools.time";versi
+ on="5.1.0.SNAPSHOT",org.drools.time;version="5.1.0.SNAPSHOT",org.droo
+ ls.event.rule;uses:="org.drools.event,org.drools.runtime.rule";versio
+ n="5.1.0.SNAPSHOT",org.drools.definition.rule;uses:="org.drools.defin
+ ition";version="5.1.0.SNAPSHOT",org.drools.osgi.api;uses:="org.osgi.f
+ ramework,org.osgi.util.tracker,org.drools,org.drools.util";version="5
+ .1.0.SNAPSHOT",org.drools.runtime.rule;uses:="org.drools.definition.r
+ ule,org.drools.runtime";version="5.1.0.SNAPSHOT",org.drools.event.pro
+ cess;uses:="org.drools.runtime.process,org.drools.event";version="5.1
+ .0.SNAPSHOT",org.drools.definition;uses:="org.drools.definition.proce
+ ss,org.drools.definition.rule";version="5.1.0.SNAPSHOT",org.drools.vs
+ m;uses:="org.drools.command,org.drools.runtime,org.drools,org.drools.
+ agent,org.drools.builder,org.drools.persistence.jpa";version="5.1.0.S
+ NAPSHOT",org.drools.grid;uses:="org.drools.command";version="5.1.0.SN
+ APSHOT",org.drools.builder.help;uses:="com.sun.tools.xjc,org.drools.i
+ o,org.drools,org.drools.builder,javax.xml.bind";version="5.1.0.SNAPSH
+ OT",org.drools.definition.type;version="5.1.0.SNAPSHOT",org.drools.io
+ ;uses:="org.drools,org.drools.event.io,org.drools.util";version="5.1.
+ 0.SNAPSHOT",org.drools.runtime.pipeline;uses:="org.drools.runtime,jav
+ ax.xml.bind,net.sf.jxls.reader,org.milyn,com.thoughtworks.xstream";ve
+ rsion="5.1.0.SNAPSHOT",org.drools.agent;uses:="org.drools.runtime,org
+ .drools.io,org.drools";version="5.1.0.SNAPSHOT",org.drools.command;us
+ es:="org.drools.runtime,org.drools.runtime.rule";version="5.1.0.SNAPS
+ HOT",org.drools.task.service;version="5.1.0.SNAPSHOT",org.drools.pers
+ istence.jpa;uses:="org.drools.runtime,org.drools";version="5.1.0.SNAP
+ SHOT",org.drools.management;uses:="javax.management";version="5.1.0.S
+ NAPSHOT",org.drools.command.impl;uses:="org.drools.command";version="
+ 5.1.0.SNAPSHOT"
+Private-Package: .;version="5.1.0.SNAPSHOT"
+Tool: Bnd-0.0.357
+Bundle-Name: Drools :: API
+Created-By: 1.6.0_20 (Apple Inc.)
+Bundle-Vendor: JBoss Inc.
+DynamicImport-Package: *
+Bundle-Version: 5.1.0.SNAPSHOT
+Bnd-LastModified: 1277166738245
 Bundle-Activator: org.drools.osgi.api.Activator
-Created-By: 1.5.0_21 (Sun Microsystems Inc.)
+Bundle-ManifestVersion: 2
+Bundle-Description: A rule production system
 Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
 Import-Package: com.sun.tools.xjc;resolution:=optional,com.thoughtwork
  s.xstream;resolution:=optional,javax.management;resolution:=optional,
@@ -8,64 +68,6 @@
  tional,org.milyn;resolution:=optional,org.osgi.framework;resolution:=
  optional;version="1.5",org.osgi.util.tracker;resolution:=optional;ver
  sion="1.4",org.quartz;resolution:=optional
-Bnd-LastModified: 1267407372231
-Export-Package: org.drools.logger;uses:="org.drools.event";version="5.
- 1.0.SNAPSHOT",org.drools.runtime;uses:="org.drools.command,org.drools
- .time,org.drools.event,org.drools,org.drools.runtime.process,org.droo
- ls.runtime.rule,org.drools.runtime.conf";version="5.1.0.SNAPSHOT",org
- .drools.task.service;version="5.1.0.SNAPSHOT",org.drools.marshalling;
- uses:="org.drools.runtime,org.drools";version="5.1.0.SNAPSHOT",org.dr
- ools.runtime.rule;uses:="org.drools.definition.rule,org.drools.runtim
- e";version="5.1.0.SNAPSHOT",org.drools.command;uses:="org.drools.runt
- ime,org.drools.runtime.rule";version="5.1.0.SNAPSHOT",org.drools.time
- ;version="5.1.0.SNAPSHOT",org.drools.management;uses:="javax.manageme
- nt";version="5.1.0.SNAPSHOT",org.drools.event.process;uses:="org.droo
- ls.event,org.drools.runtime.process";version="5.1.0.SNAPSHOT",org.dro
- ols.event.io;uses:="org.drools";version="5.1.0.SNAPSHOT",org.drools.c
- onf;uses:="org.drools.runtime.rule";version="5.1.0.SNAPSHOT",org.droo
- ls.osgi.api;uses:="org.osgi.framework,org.drools,org.drools.util,org.
- osgi.util.tracker";version="5.1.0.SNAPSHOT",org.drools;uses:="org.dro
- ols.io,org.drools.event.knowledgebase,org.drools.runtime,org.drools.d
- efinition,org.drools.definition.type,org.drools.definition.rule,org.d
- rools.definition.process,org.drools.conf,org.drools.util";version="5.
- 1.0.SNAPSHOT",org.drools.runtime.conf;uses:="org.drools.conf";version
- ="5.1.0.SNAPSHOT",org.drools.runtime.process;uses:="org.drools.runtim
- e";version="5.1.0.SNAPSHOT",org.drools.event.rule;uses:="org.drools.e
- vent,org.drools.runtime.rule";version="5.1.0.SNAPSHOT",org.drools.bui
- lder.help;uses:="com.sun.tools.xjc,org.drools.builder,org.drools.io,o
- rg.drools,javax.xml.bind";version="5.1.0.SNAPSHOT",org.drools.vsm;use
- s:="org.drools.command,org.drools.runtime,org.drools.persistence.jpa,
- org.drools.builder,org.drools,org.drools.agent";version="5.1.0.SNAPSH
- OT",org.drools.builder.conf;uses:="org.drools.runtime.rule,org.drools
- .conf";version="5.1.0.SNAPSHOT",org.drools.definition;uses:="org.droo
- ls.definition.rule,org.drools.definition.process";version="5.1.0.SNAP
- SHOT",org.drools.definition.rule;uses:="org.drools.definition";versio
- n="5.1.0.SNAPSHOT",org.drools.runtime.pipeline;uses:="org.drools.runt
- ime,javax.xml.bind,net.sf.jxls.reader,org.milyn,com.thoughtworks.xstr
- eam";version="5.1.0.SNAPSHOT",org.drools.runtime.help;uses:="com.thou
- ghtworks.xstream,org.drools.time,org.quartz";version="5.1.0.SNAPSHOT"
- ,org.drools.event.knowledgebase;uses:="org.drools.definition.rule,org
- .drools.definition,org.drools";version="5.1.0.SNAPSHOT",org.drools.ev
- ent;uses:="org.drools.runtime,org.drools.event.rule,org.drools.event.
- process";version="5.1.0.SNAPSHOT",org.drools.persistence.jpa;uses:="o
- rg.drools.runtime,org.drools";version="5.1.0.SNAPSHOT",org.drools.bui
- lder;uses:="org.drools.io,org.drools,org.drools.definition,org.drools
- .builder.conf,org.drools.util";version="5.1.0.SNAPSHOT",org.drools.io
- ;uses:="org.drools,org.drools.event.io,org.drools.util";version="5.1.
- 0.SNAPSHOT",org.drools.util;uses:="org.drools,org.drools.builder,org.
- drools.io";version="5.1.0.SNAPSHOT",org.drools.command.impl;uses:="or
- g.drools.command";version="5.1.0.SNAPSHOT",org.drools.definition.type
- ;version="5.1.0.SNAPSHOT",org.drools.definition.process;uses:="org.dr
- ools.definition";version="5.1.0.SNAPSHOT",org.drools.agent;uses:="org
- .drools.runtime,org.drools,org.drools.io";version="5.1.0.SNAPSHOT"
-Bundle-Version: 5.1.0.SNAPSHOT
-Bundle-Name: Drools :: API
-Bundle-Description: A rule production system
-Private-Package: .;version="5.1.0.SNAPSHOT"
+Bundle-SymbolicName: org.drools.api;singleton:=true
 Bundle-DocURL: http://www.jboss.org/
-Bundle-Vendor: JBoss Inc.
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.drools.api;singleton:=true
-Tool: Bnd-0.0.357
-DynamicImport-Package: *
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/builder/DirectoryLookupFactoryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/builder/DirectoryLookupFactoryService.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/builder/DirectoryLookupFactoryService.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -27,5 +27,5 @@
 public interface DirectoryLookupFactoryService {
     public void register(String key, CommandExecutor value);
     public CommandExecutor lookup(String key);
-    public Map<String, Map<String, String>> getDirectoryMap();
+    public Map<String, String> getDirectoryMap();
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -15,7 +15,7 @@
  * @author salaboy
  */
 
-public interface DirectoryNodeService extends GenericDirectoryConnector {
+public interface DirectoryNodeService  {
 
     public void register(String executorId, String resourceId) throws ConnectorException;
     public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException;
@@ -25,4 +25,6 @@
     public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException;
     public void addService(GenericNodeConnector service);
     public Map<String, String> getDirectoryMap() throws ConnectorException;
+    public void dispose() throws ConnectorException;
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -18,8 +18,8 @@
 
 import java.util.List;
 import org.drools.grid.strategies.NodeSelectionStrategy;
-import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
-import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.strategies.DirectorySelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
 
 
 /**
@@ -28,39 +28,36 @@
  */
 public interface GenericConnection {
 
+    //Add Connectors to get new Connections
     public void addExecutionNode(GenericNodeConnector execNodeConnector);
 
     public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector);
 
-    public void addHumanTaskNode(GenericNodeConnector humanTaskNodeConnector);
+    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector);
 
-    public List<GenericNodeConnector> getNodeConnectors();
-
-    public List<GenericDirectoryConnector> getDirectoryConnectors();
-
-    public List<GenericNodeConnector> getTaskConnectors();
-
-    public List<DirectoryNodeService> getDirectories();
-
+    //Get ExecutionNode(s) with live connections
     public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException;
 
     public ExecutionNode getExecutionNode() throws ConnectorException;
 
     public List<ExecutionNode> getExecutionNodes() throws ConnectorException;
 
-    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) throws ConnectorException;
+    //Get DirectoryNode(s) with live connections
+    public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException;
 
     public DirectoryNodeService getDirectoryNode() throws ConnectorException;
 
-    public List<DirectoryNodeService> getDirectoryNodes();
+    public List<DirectoryNodeService> getDirectoryNodes() throws ConnectorException;
 
-    public HumanTaskNodeService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy);
+    //Get HumanTaskNode(s) with live connections
+    public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException;
 
-    public HumanTaskNodeService getTaskService();
+    public HumanTaskNodeService getHumanTaskNode() throws ConnectorException;
 
-    public List<HumanTaskNodeService> getTaskServices();
+    public List<HumanTaskNodeService> getHumanTaskNodes() throws ConnectorException;
 
-    public void disconnectAllConnectors() throws ConnectorException;
+    // Dispose all the live connections
+    public void dispose() throws ConnectorException;
 
 
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -14,13 +14,23 @@
  *  limitations under the License.
  *  under the License.
  */
-
 package org.drools.grid;
 
 /**
  *
  * @author salaboy
  */
-public interface GenericDirectoryConnector extends GenericNodeConnector{
-    public DirectoryNodeService getDirectoryNodeService();
+public interface GenericDirectoryConnector {
+
+    public String getId() throws ConnectorException;
+
+    void connect() throws ConnectorException;
+
+    void disconnect() throws ConnectorException;
+
+    public DirectoryNodeService getDirectoryNodeService() throws ConnectorException;
+
+    public GenericConnection getConnection();
+
+
 }

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,40 @@
+/*
+ *  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.grid;
+
+import org.drools.grid.internal.GenericIoWriter;
+import org.drools.grid.internal.Message;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface GenericHumanTaskConnector extends GenericIoWriter{
+
+    public String getId() throws ConnectorException;
+
+    void connect() throws ConnectorException;
+
+    void disconnect() throws ConnectorException;
+
+    public HumanTaskNodeService getHumanTaskNodeService() throws ConnectorException;
+
+    public GenericConnection getConnection();
+
+    Message write(Message msg) throws ConnectorException;
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -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.grid;
+
+import java.util.Set;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface NodeConnectionType {
+    public void setConnector(GenericNodeConnector connector);
+    public void setConnection(GenericConnection connection);
+    public Set<Class<?>> getServicesKeys();
+    public <T> T  getServiceImpl(Class<T> clazz);
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,32 @@
+/*
+ *  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.grid;
+
+/**
+ *
+ * @author salaboy
+ */
+public class NodeFactory {
+    public static ExecutionNode newExecutionNode(NodeConnectionType type){
+        ExecutionNode node = new ExecutionNode();
+        for(Class serviceClass : type.getServicesKeys()){
+            node.set(serviceClass, type.getServiceImpl(serviceClass));
+        }
+        return node;
+    }
+}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java (from rev 33555, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectoryServiceSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,29 @@
+/*
+ *  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.grid.strategies;
+
+import java.util.List;
+import org.drools.grid.GenericDirectoryConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface DirectorySelectionStrategy {
+    public GenericDirectoryConnector getBestDirectory(List<GenericDirectoryConnector> connectors);
+}

Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectoryServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectoryServiceSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectoryServiceSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -1,26 +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.grid.strategies;
-
-/**
- *
- * @author salaboy
- */
-public class DirectoryServiceSelectionStrategy {
-
-}

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskSelectionStrategy.java (from rev 33555, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,29 @@
+/*
+ *  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.grid.strategies;
+
+import java.util.List;
+import org.drools.grid.GenericHumanTaskConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface HumanTaskSelectionStrategy {
+    public GenericHumanTaskConnector getBestHumanTask(List<GenericHumanTaskConnector> connectors);
+}

Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -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.grid.strategies;
-
-import org.drools.grid.HumanTaskNodeService;
-
-/**
- *
- * @author salaboy
- */
-public interface HumanTaskServiceSelectionStrategy {
-    public HumanTaskNodeService getBestHumanTaskService();
-   
-}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/NodeSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/NodeSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/NodeSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -17,7 +17,7 @@
 
 package org.drools.grid.strategies;
 
-import org.drools.grid.GenericConnection;
+import java.util.List;
 import org.drools.grid.GenericNodeConnector;
 
 /**
@@ -26,7 +26,6 @@
  */
 public interface NodeSelectionStrategy {
 
-    public GenericNodeConnector getBestNode();
-    public void setConnection(GenericConnection connection);
-
+    public GenericNodeConnector getBestNode(List<GenericNodeConnector> connectors);
+    
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -14,29 +14,19 @@
  *  limitations under the License.
  *  under the License.
  */
-
 package org.drools.grid.strategies;
 
-import org.drools.grid.GenericConnection;
+import java.util.List;
 import org.drools.grid.GenericNodeConnector;
 
 /**
  *
  * @author salaboy
  */
-public class ReturnAlwaysTheFirstSelectionStrategy implements NodeSelectionStrategy{
+public class ReturnAlwaysTheFirstSelectionStrategy implements NodeSelectionStrategy {
 
-    private GenericConnection connection;
-    public ReturnAlwaysTheFirstSelectionStrategy(GenericConnection connection) {
-        this.connection = connection;
-    }
-    public GenericNodeConnector getBestNode() {
-        return this.connection.getNodeConnectors().get(0);
-    }
+    public GenericNodeConnector getBestNode(List<GenericNodeConnector> connectors) {
 
-    public void setConnection(GenericConnection connection) {
-        this.connection = connection;
+        return connectors.get(0);
     }
-
-
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -14,37 +14,24 @@
  *  limitations under the License.
  *  under the License.
  */
-
 package org.drools.grid.strategies;
 
-
-import org.drools.grid.GenericConnection;
+import java.util.List;
 import org.drools.grid.GenericNodeConnector;
- 
 
 /**
  *
  * @author salaboy
  */
-public class StaticIncrementalSelectionStrategy implements NodeSelectionStrategy{
+public class StaticIncrementalSelectionStrategy implements NodeSelectionStrategy {
+
     public static int counter = 0;
-    private GenericConnection connection;
-    public StaticIncrementalSelectionStrategy(GenericConnection connection) {
-        this.connection = connection;
-    }
 
+    public GenericNodeConnector getBestNode(List<GenericNodeConnector> connectors) {
 
-    //@Override
-    public GenericNodeConnector getBestNode() {
-        
-        GenericNodeConnector service = connection.getNodeConnectors().get(counter);
-        StaticIncrementalSelectionStrategy.counter = counter +1;
+        GenericNodeConnector service = connectors.get(counter);
+        StaticIncrementalSelectionStrategy.counter = counter + 1;
         return service;
+        
     }
-
-    public void setConnection(GenericConnection connection) {
-        this.connection = connection;
-    }
-    
-
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryLookupProviderLocalClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryLookupProviderLocalClient.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryLookupProviderLocalClient.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -14,7 +14,6 @@
  *  limitations under the License.
  *  under the License.
  */
-
 package org.drools.grid.local;
 
 import java.util.HashMap;
@@ -28,24 +27,26 @@
  */
 public class DirectoryLookupProviderLocalClient implements DirectoryLookupFactoryService {
 
-    
     private Map<String, CommandExecutor> services = new HashMap<String, CommandExecutor>();
 
     public DirectoryLookupProviderLocalClient() {
-        
     }
 
-
     public void register(String key, CommandExecutor executor) {
-            services.put(key, executor);
+        services.put(key, executor);
     }
 
     public CommandExecutor lookup(String key) {
-            return  services.get(key);
+        return services.get(key);
     }
 
-    public Map<String, Map<String, String>> getDirectoryMap() {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public Map<String, String> getDirectoryMap() {
+        Map<String, String> directory = new HashMap<String, String>();
+        for (String key : services.keySet()) {
+            directory.put(key, services.get(key).toString());
+
+        }
+        return directory;
+
     }
-
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryNodeLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryNodeLocalImpl.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryNodeLocalImpl.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -25,10 +25,7 @@
 import org.drools.KnowledgeBase;
 import org.drools.grid.ConnectorException;
 import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
 
 /**
  *
@@ -41,9 +38,7 @@
     private List<GenericNodeConnector> services = new ArrayList<GenericNodeConnector>();
     
     public DirectoryNodeLocalImpl() {
-        this.id = UUID.randomUUID().toString();
-        
-        
+        this.id = UUID.randomUUID().toString();  
     }
 
     public String getId() throws ConnectorException {
@@ -94,32 +89,14 @@
         return this.directoryMap;
     }
 
-    public DirectoryNodeService getDirectoryNodeService() {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public String lookupId(String resourceId) {
+        return this.directoryMap.get(resourceId);
     }
 
-    public void connect() throws ConnectorException {
-        //do nothing
+    public void dispose() throws ConnectorException {
+        //do nothing, it's local.
     }
 
-    public void disconnect() throws ConnectorException {
-        //do nothing
-    }
 
-    public Message write(Message msg) throws ConnectorException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
 
-    public GenericConnection getConnection() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public void write(Message msg, MessageResponseHandler responseHandler) {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public String lookupId(String resourceId) {
-        return this.directoryMap.get(resourceId);
-    }
-
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -27,10 +27,12 @@
 import org.drools.grid.ExecutionNode;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.HumanTaskNodeService;
-import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
-import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.NodeFactory;
+import org.drools.grid.strategies.DirectorySelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
 import org.drools.grid.strategies.NodeSelectionStrategy;
 
 /**
@@ -39,15 +41,14 @@
  */
 public class LocalConnection implements GenericConnection {
 
-    //Cached NodeConnectors
     private List<GenericNodeConnector> executionNodeConnectors;
     private List<GenericDirectoryConnector> directoryNodeConnectors;
-    private List<GenericNodeConnector> humanTaskNodeConnectors;
+    private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
 
     public LocalConnection() {
         this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
         this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
-        this.humanTaskNodeConnectors = new ArrayList<GenericNodeConnector>();
+        this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
 
     }
 
@@ -60,31 +61,19 @@
         this.directoryNodeConnectors.add(directoryNodeConnector);
     }
 
-    public void addHumanTaskNode(GenericNodeConnector humanTaskNodeConnector) {
+    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
         this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
     }
 
-    public List<GenericNodeConnector> getNodeConnectors() {
-        return this.executionNodeConnectors;
-    }
 
-    public List<DirectoryNodeService> getDirectories() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
-        //Analyze if we will need more than one node connector for local usage in the same JVM
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) throws ConnectorException {
-        if (directoryNodeConnectors.size() == 0) {
-            return null;
+    public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
+        if (directoryNodeConnectors.isEmpty()) {
+            //I can use a local impl by default, if I have no registered connectors
+            return new DirectoryNodeLocalImpl();
         }
         GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
-        DirectoryNodeService directoryNode = null;
         connector.connect();
-        directoryNode = connector.getDirectoryNodeService();
+        DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
         return directoryNode;
     }
 
@@ -94,10 +83,11 @@
 
     public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
 
-        ExecutionNode node = new ExecutionNode();
-        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
-        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
-        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+        ExecutionNode node = NodeFactory.newExecutionNode(new LocalConnectionNode());
+//                new ExecutionNode();
+//        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
+//        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
+//        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
 
         return node;
     }
@@ -106,12 +96,19 @@
         return getExecutionNode(null);
     }
 
-    public HumanTaskNodeService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy) {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException {
+        if (humanTaskNodeConnectors.isEmpty()) {
+            //there is no default/local implementation for ht, so we need to register at least one ht connector
+            return null;
+        }
+        GenericHumanTaskConnector connector = humanTaskNodeConnectors.get(0);
+        connector.connect();
+        HumanTaskNodeService humanTaskNode = connector.getHumanTaskNodeService();
+        return humanTaskNode;
     }
 
-    public HumanTaskNodeService getTaskService() {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public HumanTaskNodeService getHumanTaskNode() throws ConnectorException {
+        return getHumanTaskNode(null);
     }
 
     public List<ExecutionNode> getExecutionNodes() {
@@ -128,28 +125,20 @@
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
-    public List<HumanTaskNodeService> getTaskServices() {
+    public List<HumanTaskNodeService> getHumanTaskNodes() {
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
-    public List<GenericDirectoryConnector> getDirectoryConnectors() {
-        return this.directoryNodeConnectors;
-    }
 
-    public List<GenericNodeConnector> getTaskConnectors() {
-        return this.humanTaskNodeConnectors;
-    }
-
-    public void disconnectAllConnectors() throws ConnectorException {
-        for (GenericNodeConnector connector : executionNodeConnectors) {
+    public void dispose() throws ConnectorException {
+         for (GenericNodeConnector connector : executionNodeConnectors) {
             connector.disconnect();
         }
         for (GenericDirectoryConnector connector : directoryNodeConnectors) {
             connector.disconnect();
         }
-        for (GenericNodeConnector connector : humanTaskNodeConnectors) {
+        for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
             connector.disconnect();
         }
-
     }
 }

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,61 @@
+/*
+ *  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.grid.local;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
+
+/**
+ *
+ * @author salaboy 
+ */
+public class LocalConnectionNode implements NodeConnectionType {
+    private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+    
+    public LocalConnectionNode() {
+        services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
+        services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
+        services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+    }
+
+
+    public Set<Class<?>> getServicesKeys() {
+        return services.keySet(); 
+    }
+
+    public <T> T getServiceImpl(Class<T> clazz) {
+        return (T) services.get(clazz);
+    }
+
+    public void setConnector(GenericNodeConnector connector) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void setConnection(GenericConnection connection) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -21,8 +21,6 @@
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
 
 /**
  *
@@ -30,42 +28,31 @@
  */
 public class LocalDirectoryConnector implements GenericDirectoryConnector{
     private DirectoryNodeService directoryNode;
-    private static LocalConnection connection;
+    private static LocalConnection connection = new LocalConnection();
 
     public LocalDirectoryConnector(DirectoryNodeService directoryNode) {
         this.directoryNode = directoryNode;
+        
     }
 
-
     public void connect() throws ConnectorException {
         //do nothing
     }
 
     public void disconnect() throws ConnectorException {
-        //do nothing
+        connection.dispose();
     }
 
-    public Message write(Message msg) throws ConnectorException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
     public String getId() throws ConnectorException {
         return "Local:";
     }
 
-    public GenericConnection getConnection() {
-        if(connection == null){
-            connection = new LocalConnection();
-        }
-       return connection;
-    }
-
-    public void write(Message msg, MessageResponseHandler responseHandler) {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
     public DirectoryNodeService getDirectoryNodeService(){
         return directoryNode;
     }
 
+    public GenericConnection getConnection() {
+        return connection;
+    }
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -30,7 +30,6 @@
  */
 public class LocalNodeConnector implements GenericNodeConnector {
 
-    private String id;
     private LocalConnection connection;
     public LocalNodeConnector() {
         
@@ -50,10 +49,7 @@
     }
 
     public String getId() throws ConnectorException {
-
-
         return "Local:";
-        //return this.id;
     }
 
     public void write(Message msg, MessageResponseHandler responseHandler) {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -40,7 +40,6 @@
  */
 public class DirectoryLookupProviderRemoteClient implements DirectoryLookupFactoryService {
 
-    
     private GenericNodeConnector client;
     private GenericConnection connection;
     private MessageSession messageSession;
@@ -62,18 +61,18 @@
             } else {
                 throw new IllegalArgumentException("Type is not supported for registration");
             }
-            
+
             DirectoryNodeService directoryNode = connection.getDirectoryNode();
             directoryNode.register(identifier, client.getId());
-            
 
+
             Message msg = new Message(messageSession.getSessionId(),
-                            messageSession.getCounter().incrementAndGet(),
-                            false,
-                            new KnowledgeContextResolveFromContextCommand(
-                                new RegisterCommand(identifier,
-                                    ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(), type),
-                                    null, null, null, null));
+                    messageSession.getCounter().incrementAndGet(),
+                    false,
+                    new KnowledgeContextResolveFromContextCommand(
+                    new RegisterCommand(identifier,
+                    ((StatefulKnowledgeSessionRemoteClient) executor).getInstanceId(), type),
+                    null, null, null, null));
 
 
             try {
@@ -84,9 +83,9 @@
             } catch (Exception e) {
                 throw new RuntimeException("Unable to execute message", e);
             }
-            
-            directoryNode.disconnect();
 
+            directoryNode.dispose();
+
         } catch (ConnectorException ex) {
             Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
         }
@@ -101,12 +100,12 @@
             Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new LookupCommand(identifier, commandId), null, null, null, kresultsId));
             DirectoryNodeService directoryNode = connection.getDirectoryNode();
             String connectorString = directoryNode.lookupId(identifier);
-            directoryNode.disconnect();
+            directoryNode.dispose();
             client = GenericConnectorFactory.newNodeConnector(connectorString);
             client.connect();
             //I need to add the new Connector to the connection to be able to clean it up/disconect it!
             connection.addExecutionNode(client);
-            
+
             try {
                 Object object = client.write(msg).getPayload();
                 if (object == null) {
@@ -124,7 +123,7 @@
                     default: {
                     }
                 }
-                
+
                 return executor;
             } catch (Exception e) {
                 throw new RuntimeException("Unable to execute message", e);
@@ -135,8 +134,15 @@
         return null;
     }
 
-    public Map<String, Map<String, String>> getDirectoryMap() {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public Map<String, String> getDirectoryMap() {
+        Map<String, String> directory = null;
+        try {
+            DirectoryNodeService directoryNode = connection.getDirectoryNode();
+            directory = directoryNode.getDirectoryMap();
+        } catch (ConnectorException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        return directory;
     }
 
     public void registerId(String key, String value) {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -94,7 +94,7 @@
         return null;
     }
 
-    public static GenericNodeConnector newDirectoryConnector(String connectorString) {
+    public static GenericDirectoryConnector newDirectoryConnector(String connectorString) {
         String[] connectorDetails = connectorString.split(":");
         String connectorType = connectorDetails[0];
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -16,7 +16,6 @@
  */
 package org.drools.grid.remote;
 
-import com.sun.jmx.snmp.tasks.Task;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -28,10 +27,12 @@
 import org.drools.grid.ExecutionNode;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.HumanTaskNodeService;
-import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
-import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.NodeFactory;
+import org.drools.grid.strategies.DirectorySelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
 import org.drools.grid.strategies.NodeSelectionStrategy;
 import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
 
@@ -40,26 +41,19 @@
  * @author salaboy
  */
 public class RemoteConnection implements GenericConnection {
-    //Cached Services
 
     private List<GenericNodeConnector> executionNodeConnectors;
-    //Cached Directories
     private List<GenericDirectoryConnector> directoryNodeConnectors;
-    private List<GenericNodeConnector> humanTaskNodeConnectors;
+    private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
 
     public RemoteConnection() {
         this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
         this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
-        this.humanTaskNodeConnectors = new ArrayList<GenericNodeConnector>();
+        this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
     }
 
     public void addExecutionNode(GenericNodeConnector execNodeConnector) {
-        //register the service to all the DirectoryServices
-//        for (DirectoryNodeService directory : directoryServices) {
-//            directory.addService(execNodeConnector);
-//        }
         this.executionNodeConnectors.add(execNodeConnector);
-
     }
 
     public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
@@ -67,15 +61,10 @@
 
     }
 
-    public void addHumanTaskNode(GenericNodeConnector humanTaskNodeConnector) {
+    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
         this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
     }
 
-    // In real scenarios this method will be in charge of populating
-    // all the ExecutionNodeService and DirectoryServices
-    public void connect() {
-    }
-
     /**
      * @throws ConnectorException 
      * @throws IllegalStateException if unable to connect to node 
@@ -84,58 +73,31 @@
         ExecutionNode node = null;
         GenericNodeConnector connector = null;
         //if the strategy is null use the default one
-		if (strategy == null) {
-		    connector = getBestNode(new StaticIncrementalSelectionStrategy(this));
-		} else {
-		    strategy.setConnection(this);
-		    connector = getBestNode(strategy);
-		}
-		connector.connect();
-	    node = new ExecutionNode();
-	    node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
-	    node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
-	    node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
+        if (strategy == null) {
+            connector = getBestNode(new StaticIncrementalSelectionStrategy());
+        } else {
+            connector = getBestNode(strategy);
+        }
+        connector.connect();
+        node = NodeFactory.newExecutionNode(new RemoteConnectionNode(connector, this));
+
+//        node = new ExecutionNode();
+//        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
+//        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
+//        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
         return node;
     }
 
-    public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
-        return nodeSelectionStrategy.getBestNode();
-    }
-
-    public List<DirectoryNodeService> getDirectories() {
-        return null;
-    }
-
-    public void setDirectories(List<GenericDirectoryConnector> directories) {
-        this.directoryNodeConnectors = directories;
-    }
-
-    public List<GenericNodeConnector> getNodeConnectors() {
-        return executionNodeConnectors;
-    }
-
-    public List<GenericDirectoryConnector> getDirectoryConnectors() {
-        return directoryNodeConnectors;
-    }
-
-    public List<GenericNodeConnector> getTaskConnectors() {
-        return this.humanTaskNodeConnectors;
-    }
-
-    public void setServices(List<GenericNodeConnector> services) {
-        this.executionNodeConnectors = services;
-    }
-
-    public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) throws ConnectorException {
+    public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
         if (directoryNodeConnectors.isEmpty()) {
             return null;
         }
         GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
-        
+
         connector.connect();
 
         DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
-        
+
         return directoryNode;
     }
 
@@ -147,50 +109,71 @@
         return getExecutionNode(null);
     }
 
-    public HumanTaskNodeService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy) {
-        return humanTaskSelectionStrategy.getBestHumanTaskService();
+    public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException {
+        if (humanTaskNodeConnectors.isEmpty()) {
+            return null;
+        }
+        // humanTaskSelectionStrategy.getBestHumanTask(humanTaskNodeConnectors);
+        GenericHumanTaskConnector connector = humanTaskNodeConnectors.get(0);
+
+        connector.connect();
+
+        HumanTaskNodeService humanTaskNode = connector.getHumanTaskNodeService();
+
+        return humanTaskNode;
+
     }
 
-    public HumanTaskNodeService getTaskService() {
-        return getTaskService(null);
+    public HumanTaskNodeService getHumanTaskNode() throws ConnectorException {
+        return getHumanTaskNode(null);
     }
 
     public List<ExecutionNode> getExecutionNodes() throws ConnectorException {
         List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
         for (GenericNodeConnector connector : executionNodeConnectors) {
             ExecutionNode node = null;
-			connector.connect();
-		    node = new ExecutionNode();
-		    node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
-		    node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
-		    node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
-			if (node != null) {
-			    executionNodes.add(node);
-			}
+            connector.connect();
+            node = new ExecutionNode();
+            node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
+            node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
+            node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
+            if (node != null) {
+                executionNodes.add(node);
+            }
         }
         return executionNodes;
-
-
     }
 
     public List<DirectoryNodeService> getDirectoryNodes() {
         throw new UnsupportedOperationException("not Implemented yet!");
     }
 
-    public List<HumanTaskNodeService> getTaskServices() {
+    public List<HumanTaskNodeService> getHumanTaskNodes() {
         throw new UnsupportedOperationException("not Implemented yet!");
     }
 
-    public void disconnectAllConnectors() throws ConnectorException {
-        for(GenericNodeConnector connector : executionNodeConnectors){
+    public void dispose() throws ConnectorException {
+        for (GenericNodeConnector connector : executionNodeConnectors) {
             connector.disconnect();
         }
-         for(GenericDirectoryConnector connector : directoryNodeConnectors){
+        for (GenericDirectoryConnector connector : directoryNodeConnectors) {
             connector.disconnect();
         }
-          for(GenericNodeConnector connector : humanTaskNodeConnectors){
+        for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
             connector.disconnect();
         }
 
     }
+
+    private GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
+        return nodeSelectionStrategy.getBestNode(this.executionNodeConnectors);
+    }
+
+    private GenericDirectoryConnector getBestDirectory(DirectorySelectionStrategy directorySelectionStrategy) {
+        return directorySelectionStrategy.getBestDirectory(this.directoryNodeConnectors);
+    }
+
+    private GenericHumanTaskConnector getBestHumanTask(HumanTaskSelectionStrategy humanTaskSelectionStrategy) {
+        return humanTaskSelectionStrategy.getBestHumanTask(this.humanTaskNodeConnectors);
+    }
 }

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,64 @@
+/*
+ *  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.grid.remote;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
+
+/**
+ *
+ * @author salaboy 
+ */
+public class RemoteConnectionNode implements NodeConnectionType {
+    private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+    private GenericNodeConnector connector;
+    private GenericConnection connection;
+
+    public RemoteConnectionNode(GenericNodeConnector connector, GenericConnection connection) {
+        this.connector = connector;
+        this.connection = connection;
+        services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
+        services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
+        services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, connection));
+    }
+
+
+    public Set<Class<?>> getServicesKeys() {
+        return services.keySet(); 
+    }
+
+    public <T> T getServiceImpl(Class<T> clazz) {
+        return (T) services.get(clazz);
+    }
+
+    public void setConnector(GenericNodeConnector connector) {
+        this.connector = connector;
+    }
+
+    public void setConnection(GenericConnection connection) {
+        this.connection = connection;
+    }
+
+}


Property changes on: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina
___________________________________________________________________
Name: svn:ignore
   + target


Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -35,9 +35,6 @@
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
 import org.drools.grid.remote.RemoteConnection;
 import org.drools.grid.remote.mina.MinaIoHandler;
 
@@ -122,6 +119,10 @@
         return session;
     }
 
+    public GenericConnection getConnection() {
+        return this.connection;
+    }
+
 }
 
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -1,6 +1,7 @@
 package org.drools.grid.remote.mina;
 
 import java.io.IOException;
+import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 
 import org.apache.mina.core.service.IoAcceptor;
@@ -12,30 +13,39 @@
 import org.drools.grid.AcceptorService;
 
 public class MinaAcceptor
-    implements
-    AcceptorService {
+        implements
+        AcceptorService {
+
     protected SocketAcceptor acceptor;
-    protected SocketAddress  address;
+    protected SocketAddress address;
 
+
     public MinaAcceptor(SocketAcceptor acceptor,
-                        SocketAddress address) {
+            SocketAddress address) {
         this.acceptor = acceptor;
         this.address = address;
-   }
+    }
 
+     public MinaAcceptor(SocketAcceptor acceptor,
+            String address, int port) {
+        this.acceptor = acceptor;
+        this.address = new InetSocketAddress(address, port);
+        ;
+    }
+
     public synchronized void start() throws IOException {
-        acceptor.getFilterChain().addLast( "logger",
-                                           new LoggingFilter() );
-        acceptor.getFilterChain().addLast( "codec",
-                                           new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-        acceptor.getSessionConfig().setReadBufferSize( 2048 );
-        acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
-                                                 10 );
-        acceptor.bind( address );
+        acceptor.getFilterChain().addLast("logger",
+                new LoggingFilter());
+        acceptor.getFilterChain().addLast("codec",
+                new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
+        acceptor.getSessionConfig().setReadBufferSize(2048);
+        acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,
+                10);
+        acceptor.bind(address);
     }
 
     public synchronized void stop() {
-        
+
         acceptor.dispose();
     }
 
@@ -43,8 +53,7 @@
         return acceptor;
     }
 
-    public int getCurrentSessions(){
+    public int getCurrentSessions() {
         return acceptor.getManagedSessionCount();
     }
-
-}
\ No newline at end of file
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -5,7 +5,6 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-
 import org.apache.mina.core.future.ConnectFuture;
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
@@ -17,7 +16,6 @@
 import org.drools.grid.ConnectorException;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.internal.GenericIoWriter;
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageResponseHandler;
 import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
@@ -25,8 +23,7 @@
 
 public class MinaRemoteNodeConnector
         implements
-        GenericNodeConnector,
-        GenericIoWriter {
+        GenericNodeConnector {
 
     protected IoSession session;
     protected final String name;
@@ -37,26 +34,9 @@
     protected RemoteConnection connection;
 
     public MinaRemoteNodeConnector(String name,
-            SocketConnector connector,
-            SocketAddress address,
-            SystemEventListener eventListener) {
-        if (name == null) {
-            throw new IllegalArgumentException("Name can not be null");
-        }
-        this.name = name;
-        this.counter = new AtomicInteger();
-        this.address = address;
-        this.connector = connector;
-        this.eventListener = eventListener;
-        this.connection = new RemoteConnection();
-
-    }
-
-    public MinaRemoteNodeConnector(String name,
             String providerAddress, Integer providerPort,
             SystemEventListener eventListener) {
 
-        
         SocketConnector minaconnector = new NioSocketConnector();
         minaconnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
         if (name == null) {
@@ -70,8 +50,6 @@
         this.connection = new RemoteConnection();
     }
 
-
-  
     public void connect() throws ConnectorException {
         if (session != null && session.isConnected()) {
             throw new IllegalStateException("Already connected. Disconnect first.");
@@ -85,19 +63,18 @@
             future1.await(2000);
             if (!future1.isConnected()) {
                 eventListener.info("unable to connect : " + address + " : " + future1.getException());
-    		Logger.getLogger(MinaRemoteNodeConnector.class.getName()).log(Level.SEVERE, null, "The Node Connection Failed!");
+                Logger.getLogger(MinaRemoteNodeConnector.class.getName()).log(Level.SEVERE, null, "The Node Connection Failed!");
                 throw new ConnectorException("unable to connect : " + address + " : " + future1.getException());
             }
             eventListener.info("connected : " + address);
             this.session = future1.getSession();
         } catch (Exception e) {
-            e.printStackTrace();
             throw new ConnectorException(e);
         }
     }
 
-    
     public void disconnect() throws ConnectorException {
+        connection.dispose();
         if (session != null && session.isConnected()) {
             session.close();
             session.getCloseFuture().join();
@@ -137,18 +114,16 @@
     }
 
     public String getId() {
-        //return String.valueOf(session.getId());
-        String hostName = ((InetSocketAddress)this.address).getHostName();
-        int hostPort = ((InetSocketAddress)this.address).getPort();
-
-        return "Mina:"+this.name+":"+hostName+":"+hostPort;
+        String hostName = ((InetSocketAddress) this.address).getHostName();
+        int hostPort = ((InetSocketAddress) this.address).getPort();
+        return "Mina:" + this.name + ":" + hostName + ":" + hostPort;
     }
 
     public void setSession(Object object) {
         this.session = (IoSession) object;
     }
 
-    public GenericConnection getConnection(){
+    public GenericConnection getConnection() {
         return this.connection;
     }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -59,8 +59,10 @@
         
 
         StaticIncrementalSelectionStrategy.counter = 0;
-        SocketAddress address = new InetSocketAddress( "127.0.0.1", 9123 );
 
+        String address = "127.0.0.1";
+        int port = 9123;
+
         NodeData nodeData = new NodeData();
         // setup Server
         SocketAcceptor acceptor = new NioSocketAcceptor();
@@ -68,7 +70,7 @@
                                                 new GenericMessageHandlerImpl( nodeData,
                                                                                SystemEventListenerFactory.getSystemEventListener() ) ) );
         this.server = new MinaAcceptor( acceptor,
-                                        address );
+                                        address, port );
         this.server.start();
         System.out.println("Server Started!");
 
@@ -79,11 +81,10 @@
         connection.addDirectoryNode(localDirectory);
 
         // setup Client
-        NioSocketConnector clientConnector = new NioSocketConnector();
-        clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
+        
         GenericNodeConnector minaClient = new MinaRemoteNodeConnector( "client 1",
-                                                         clientConnector,
                                                          address,
+                                                         port,
                                                          SystemEventListenerFactory.getSystemEventListener() );
         connection.addExecutionNode(minaClient);
         
@@ -95,16 +96,7 @@
     @After
     public void tearDown() throws ConnectorException {
         System.out.println("Stopping the server and all the clients!");
-        for(Iterator<GenericNodeConnector> iterator = connection.getNodeConnectors().iterator(); iterator.hasNext();){
-            iterator.next().disconnect();
-        }
-        for(Iterator<GenericDirectoryConnector> iterator = connection.getDirectoryConnectors().iterator(); iterator.hasNext();){
-            iterator.next().disconnect();
-        }
-
-        for(Iterator<GenericNodeConnector> iterator = connection.getTaskConnectors().iterator(); iterator.hasNext();){
-            iterator.next().disconnect();
-        }
+        connection.dispose();
        
         this.server.stop();
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -6,7 +6,7 @@
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.grid.strategies.DirectorySelectionStrategy;
 
 /**
  * @author salaboy
@@ -27,14 +27,14 @@
         return connection.getDirectoryNode();
     }
 
-    public DirectoryNodeService getDirectoryService(DirectoryServiceSelectionStrategy strategy) throws ConnectorException {
+    public DirectoryNodeService getDirectoryService(DirectorySelectionStrategy strategy) throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
         return connection.getDirectoryNode(strategy);
     }
 
     public List<DirectoryNodeService> getDirectoryServices() throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
-        return connection.getDirectories();
+        return connection.getDirectoryNodes();
     }
 
      public GenericDirectoryConnector getConnector(){

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -43,7 +43,7 @@
 
     public ExecutionNode getExecutionNode() throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
-        return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
+        return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
     }
 
     public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException {

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,32 @@
+package org.drools.grid.services;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericHumanTaskConnector;
+
+/**
+ * @author salaboy
+ */
+public abstract class GenericHumanTaskProvider {
+    protected Map<String, Object> parameters = new HashMap<String, Object>();
+
+
+    public abstract GenericHumanTaskConnector getHumanTaskConnector();
+
+    
+    
+    public void setParameter(String name, Object value){
+        this.parameters.put(name, value);
+    }
+    public Object getParameter(String name){
+        return this.parameters.get(name);
+    }
+    public Map<String, Object> getParameters(){
+        return this.parameters;
+    }
+
+    public abstract TaskServerInstance getTaskServerInstance(String name);
+
+    public abstract String getId();
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -8,6 +8,7 @@
 import org.drools.grid.ExecutionNode;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
 import org.drools.grid.services.strategies.ExecutionEnvironmentSelectionStrategy;
@@ -85,9 +86,9 @@
         
     }
 
-    public void registerTaskServerInstance(String name, GenericNodeProvider provider) throws ConnectorException{
+    public void registerTaskServerInstance(String name, GenericHumanTaskProvider provider) throws ConnectorException{
         TaskServerInstance taskServer = new TaskServerInstance(name, provider);
-        GenericNodeConnector connector = taskServer.getConnector();
+        GenericHumanTaskConnector connector = taskServer.getConnector();
         GenericConnection connection = connector.getConnection();
         connection.addHumanTaskNode(connector);
         connections.put(name, connection);
@@ -127,7 +128,7 @@
     //@TODO: need to add strategy to get the execution node here!!!
     public ExecutionNode getExecutionNode(ExecutionEnvironment ee) throws ConnectorException {
         GenericConnection connection = connections.get(ee.getName()); 
-        return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
+        return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
     }
 
     public String getTopologyName() {
@@ -141,15 +142,15 @@
     public void disconectAllClients() throws ConnectorException  {
         for (String key : executionEnvironments.keySet()) {
                 executionEnvironments.get(key).getConnector().disconnect();
-                executionEnvironments.get(key).getConnector().getConnection().disconnectAllConnectors();
+                executionEnvironments.get(key).getConnector().getConnection().dispose();
         }
         for (String key : directories.keySet()) {
                 directories.get(key).getConnector().disconnect();
-                directories.get(key).getConnector().getConnection().disconnectAllConnectors();
+                directories.get(key).getConnector().getConnection().dispose();
         }
         for (String key : taskServerInstance.keySet()) {
                 taskServerInstance.get(key).getConnector().disconnect();
-                taskServerInstance.get(key).getConnector().getConnection().disconnectAllConnectors();
+                taskServerInstance.get(key).getConnector().getConnection().dispose();
         }
     }
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -4,8 +4,8 @@
 import org.drools.grid.services.strategies.ReturnFirstHumanTaskServiceSelectionStrategy;
 import org.drools.grid.ConnectorException;
 import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.GenericHumanTaskConnector;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
 import org.drools.grid.task.HumanTaskService;
 /**
  * @author salaboy
@@ -13,23 +13,23 @@
 public class TaskServerInstance {
 
     private String name;
-    private GenericNodeProvider provider;
+    private GenericHumanTaskProvider provider;
 
-    public TaskServerInstance(String name, GenericNodeProvider provider) {
+    public TaskServerInstance(String name, GenericHumanTaskProvider provider) {
         this.name = name;
         this.provider = provider;
     }
 
     public HumanTaskService getTaskClient() throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
-        HumanTaskService htService = (HumanTaskService) connection.getTaskService(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
+        HumanTaskService htService = (HumanTaskService) connection.getHumanTaskNode(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
         htService.connect();
         return htService;
     }
 
-     public HumanTaskService getTaskClient(HumanTaskServiceSelectionStrategy strategy) throws ConnectorException {
+     public HumanTaskService getTaskClient(HumanTaskSelectionStrategy strategy) throws ConnectorException {
         GenericConnection connection = getConnector().getConnection();
-        HumanTaskService htService = (HumanTaskService) connection.getTaskService(strategy);
+        HumanTaskService htService = (HumanTaskService) connection.getHumanTaskNode(strategy);
         htService.connect();
         return htService;
     }
@@ -39,11 +39,11 @@
         return null;
     }
 
-    public GenericNodeConnector getConnector(){
-        return provider.getNodeConnector();
+    public GenericHumanTaskConnector getConnector(){
+        return provider.getHumanTaskConnector();
     }
 
-    public GenericNodeProvider getProvider() {
+    public GenericHumanTaskProvider getProvider() {
         return provider;
     }
 

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/MinaHumanTaskProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/MinaHumanTaskProvider.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/MinaHumanTaskProvider.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -0,0 +1,66 @@
+package org.drools.grid.services.remote;
+
+
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.GenericHumanTaskConnector;
+import org.drools.grid.services.DirectoryInstance;
+import org.drools.grid.services.GenericHumanTaskProvider;
+import org.drools.grid.services.TaskServerInstance;
+import org.drools.grid.task.MinaRemoteHumanTaskConnector;
+/**
+ * @author salaboy
+ */
+public class MinaHumanTaskProvider extends GenericHumanTaskProvider {
+
+    private transient GenericHumanTaskConnector connector;
+    private String providerName;
+    private String providerAddress;
+    private int providerPort;
+
+    public MinaHumanTaskProvider(String providerName, String providerAddress, int providerPort) {
+        this.providerName = providerName;
+        this.providerAddress = providerAddress;
+        this.providerPort = providerPort;
+        initializeConnector();
+    }
+
+   
+    private void initializeConnector(){
+        connector = new MinaRemoteHumanTaskConnector(providerName,providerAddress, providerPort,
+                                    SystemEventListenerFactory.getSystemEventListener());
+    }
+
+
+    @Override
+    public TaskServerInstance getTaskServerInstance(String name) {
+       return new TaskServerInstance(name, this);
+    }
+   
+
+    @Override
+    public GenericHumanTaskConnector getHumanTaskConnector() {
+        return this.connector;
+    }
+
+    public String getProviderAddress() {
+        return providerAddress;
+    }
+
+    public String getProviderName() {
+        return providerName;
+    }
+
+    public int getProviderPort() {
+        return providerPort;
+    }
+
+    @Override
+    public String getId() {
+        return "MinaHumanTaskProvider:"+providerName+":"+providerAddress+":"+providerPort;
+    }
+
+   
+
+
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -17,22 +17,24 @@
 
 package org.drools.grid.services.strategies;
 
+import java.util.List;
+import org.drools.grid.GenericHumanTaskConnector;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.HumanTaskNodeService;
 
-import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
 import org.drools.grid.task.HumanTaskServiceImpl;
 
 /**
  *
  * @author salaboy
  */
-public class ReturnFirstHumanTaskServiceSelectionStrategy implements HumanTaskServiceSelectionStrategy{
+public class ReturnFirstHumanTaskServiceSelectionStrategy implements HumanTaskSelectionStrategy{
     private final int sessionId;
-    private final GenericNodeConnector connector;
+    private final GenericHumanTaskConnector connector;
 
 
-    public ReturnFirstHumanTaskServiceSelectionStrategy(int sessionId, GenericNodeConnector connector) {
+    public ReturnFirstHumanTaskServiceSelectionStrategy(int sessionId, GenericHumanTaskConnector connector) {
         this.sessionId = sessionId;
         this.connector = connector;
 
@@ -42,4 +44,8 @@
         return new HumanTaskServiceImpl(connector, 1);
     }
 
+    public GenericHumanTaskConnector getBestHumanTask(List<GenericHumanTaskConnector> connectors) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	2010-06-22 01:14:05 UTC (rev 33583)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	2010-06-22 01:54:34 UTC (rev 33584)
@@ -42,9 +42,10 @@
 import org.drools.grid.remote.mina.MinaAcceptor;
 import org.drools.grid.remote.mina.MinaIoHandler;
 import org.drools.grid.services.ExecutionEnvironment;
-import org.drools.grid.services.GenericNodeProvider;
+import org.drools.grid.services.GenericHumanTaskProvider;
 import org.drools.grid.services.GridTopology;
 import org.drools.grid.services.TaskServerInstance;
+import org.drools.grid.services.remote.MinaHumanTaskProvider;
 import org.drools.grid.services.remote.MinaNodeProvider;
 import org.drools.grid.task.CommandBasedServicesWSHumanTaskHandler;
 import org.drools.grid.task.HumanTaskService;
@@ -206,7 +207,7 @@
     public void MinaTaskTest() throws InterruptedException, ConnectorException {
         grid = new GridTopology("MyBusinessUnit");
 
-        GenericNodeProvider remoteTaskProvider = new MinaNodeProvider("MyMinaTask", "127.0.0.1", 9123);
+        GenericHumanTaskProvider remoteTaskProvider = new MinaHumanTaskProvider("MyMinaTask", "127.0.0.1", 9123);
 
         grid.registerTaskServerInstance("MyMinaTask", remoteTaskProvider);
 



More information about the jboss-svn-commits mailing list