[jboss-svn-commits] JBL Code SVN: r33597 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-local/src/main/java/org/drools/grid/local and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 22 11:58:52 EDT 2010


Author: salaboy21
Date: 2010-06-22 11:58:51 -0400 (Tue, 22 Jun 2010)
New Revision: 33597

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
Removed:
   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-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.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-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/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-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.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-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/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-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
Log:
Unifying LocalConnection and RemoteConnection in Grid Connection that uses NodeConnectionType, from the providers to decide the services included in a specific ExecNode 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -15,4 +15,6 @@
 
     GenericConnection getConnection();
 
+    NodeConnectionType getNodeConnectionType();
+
 }

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java (from rev 33584, 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-api/src/main/java/org/drools/grid/GridConnection.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -0,0 +1,173 @@
+/*
+ *  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.ArrayList;
+import java.util.List;
+
+import org.drools.grid.strategies.DirectorySelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
+import org.drools.grid.strategies.NodeSelectionStrategy;
+import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class GridConnection implements GenericConnection { 
+
+    private List<GenericNodeConnector> executionNodeConnectors;
+    private List<GenericDirectoryConnector> directoryNodeConnectors;
+    private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
+
+    public GridConnection() {
+        this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
+        this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
+        this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
+    }
+
+    public void addExecutionNode(GenericNodeConnector execNodeConnector) {
+        this.executionNodeConnectors.add(execNodeConnector);
+    }
+
+    public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
+        this.directoryNodeConnectors.add(directoryNodeConnector);
+
+    }
+
+    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
+        this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
+    }
+
+    /**
+     * @throws ConnectorException 
+     * @throws IllegalStateException if unable to connect to node 
+     */
+    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException {
+        ExecutionNode node = null;
+        GenericNodeConnector connector = null;
+        //if the strategy is null use the default one
+        if (strategy == null) {
+            connector = getBestNode(new StaticIncrementalSelectionStrategy());
+        } else {
+            connector = getBestNode(strategy);
+        }
+        NodeConnectionType type = connector.getNodeConnectionType();
+
+        connector.connect();
+
+        type.setConnector(connector);
+        type.setConnection(this);
+        type.init();
+        node = NodeFactory.newExecutionNode(type);
+
+//        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 DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
+        if (directoryNodeConnectors.isEmpty()) {
+            return null;
+        }
+        GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
+
+        connector.connect();
+
+        DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
+
+        return directoryNode;
+    }
+
+    public DirectoryNodeService getDirectoryNode() throws ConnectorException {
+        return getDirectoryNode(null);
+    }
+
+    public ExecutionNode getExecutionNode() throws ConnectorException {
+        return getExecutionNode(null);
+    }
+
+    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 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);
+//            }
+//        }
+        return executionNodes;
+    }
+
+    public List<DirectoryNodeService> getDirectoryNodes() {
+        throw new UnsupportedOperationException("not Implemented yet!");
+    }
+
+    public List<HumanTaskNodeService> getHumanTaskNodes() {
+        throw new UnsupportedOperationException("not Implemented yet!");
+    }
+
+    public void dispose() throws ConnectorException {
+        for (GenericNodeConnector connector : executionNodeConnectors) {
+            connector.disconnect();
+        }
+        for (GenericDirectoryConnector connector : directoryNodeConnectors) {
+            connector.disconnect();
+        }
+        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);
+    }
+}

Modified: 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	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -28,4 +28,5 @@
     public void setConnection(GenericConnection connection);
     public Set<Class<?>> getServicesKeys();
     public <T> T  getServiceImpl(Class<T> clazz);
+    public void init();
 }

Deleted: 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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -1,144 +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.local;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-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.NodeFactory;
-import org.drools.grid.strategies.DirectorySelectionStrategy;
-import org.drools.grid.strategies.HumanTaskSelectionStrategy;
-import org.drools.grid.strategies.NodeSelectionStrategy;
-
-/**
- *
- * @author salaboy
- */
-public class LocalConnection implements GenericConnection {
-
-    private List<GenericNodeConnector> executionNodeConnectors;
-    private List<GenericDirectoryConnector> directoryNodeConnectors;
-    private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
-
-    public LocalConnection() {
-        this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
-        this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
-        this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
-
-    }
-
-    public void addExecutionNode(GenericNodeConnector execNodeConnector) {
-        this.executionNodeConnectors.add(execNodeConnector);
-    }
-
-    public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
-
-        this.directoryNodeConnectors.add(directoryNodeConnector);
-    }
-
-    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
-        this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
-    }
-
-
-    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);
-        connector.connect();
-        DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
-        return directoryNode;
-    }
-
-    public DirectoryNodeService getDirectoryNode() throws ConnectorException {
-        return getDirectoryNode(null);
-    }
-
-    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
-
-        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;
-    }
-
-    public ExecutionNode getExecutionNode() {
-        return getExecutionNode(null);
-    }
-
-    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 getHumanTaskNode() throws ConnectorException {
-        return getHumanTaskNode(null);
-    }
-
-    public List<ExecutionNode> getExecutionNodes() {
-        List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
-        ExecutionNode node = new ExecutionNode();
-        node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
-        node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
-        node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
-        executionNodes.add(node);
-        return executionNodes;
-    }
-
-    public List<DirectoryNodeService> getDirectoryNodes() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public List<HumanTaskNodeService> getHumanTaskNodes() {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-
-    public void dispose() throws ConnectorException {
-         for (GenericNodeConnector connector : executionNodeConnectors) {
-            connector.disconnect();
-        }
-        for (GenericDirectoryConnector connector : directoryNodeConnectors) {
-            connector.disconnect();
-        }
-        for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
-            connector.disconnect();
-        }
-    }
-}

Modified: 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	2010-06-22 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -41,6 +41,7 @@
         services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
     }
 
+    
 
     public Set<Class<?>> getServicesKeys() {
         return services.keySet(); 
@@ -51,11 +52,15 @@
     }
 
     public void setConnector(GenericNodeConnector connector) {
-        throw new UnsupportedOperationException("Not supported yet.");
+        //do nothing, we don't need a connector here
     }
 
     public void setConnection(GenericConnection connection) {
-        throw new UnsupportedOperationException("Not supported yet.");
+        // do nothing, we don't need a connection here
     }
 
+    public void init() {
+        // do nothing
+    }
+
 }

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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -21,6 +21,7 @@
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GridConnection;
 
 /**
  *
@@ -28,7 +29,7 @@
  */
 public class LocalDirectoryConnector implements GenericDirectoryConnector{
     private DirectoryNodeService directoryNode;
-    private static LocalConnection connection = new LocalConnection();
+    private static GridConnection connection = new GridConnection();
 
     public LocalDirectoryConnector(DirectoryNodeService directoryNode) {
         this.directoryNode = directoryNode;

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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -17,10 +17,11 @@
 
 package org.drools.grid.local;
 
-import java.util.UUID;
 import org.drools.grid.ConnectorException;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.NodeConnectionType;
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageResponseHandler;
 
@@ -30,10 +31,10 @@
  */
 public class LocalNodeConnector implements GenericNodeConnector {
 
-    private LocalConnection connection;
+    private GridConnection connection;
     public LocalNodeConnector() {
         
-        this.connection = new LocalConnection();
+        this.connection = new GridConnection();
     }
 
     public void connect() throws ConnectorException {
@@ -58,4 +59,8 @@
     public GenericConnection getConnection(){
         return this.connection;
     }
+
+   public NodeConnectionType getNodeConnectionType() {
+        return new LocalConnectionNode();
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -31,7 +31,6 @@
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.builder.ResourceType;
-import org.drools.grid.local.LocalConnection;
 import org.drools.io.ResourceFactory;
 import org.drools.persistence.jpa.grid.JPAKnowledgeProviderLocalClient;
 import org.drools.runtime.Environment;
@@ -43,6 +42,8 @@
 
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.resource.jdbc.PoolingDataSource;
+import org.drools.grid.local.LocalNodeConnector;
+import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
 
 /**
  *
@@ -82,8 +83,9 @@
     @Before
     public void configureNode() throws ConnectorException {
         
-        connection = new LocalConnection();
-        node = connection.getExecutionNode();
+        connection = new GridConnection();
+        connection.addExecutionNode(new LocalNodeConnector());
+        node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
         node.set(JPAKnowledgeFactoryService.class, new JPAKnowledgeProviderLocalClient());
     }
     

Deleted: 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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -1,179 +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.remote;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-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.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;
-
-/**
- *
- * @author salaboy
- */
-public class RemoteConnection implements GenericConnection {
-
-    private List<GenericNodeConnector> executionNodeConnectors;
-    private List<GenericDirectoryConnector> directoryNodeConnectors;
-    private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
-
-    public RemoteConnection() {
-        this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
-        this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
-        this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
-    }
-
-    public void addExecutionNode(GenericNodeConnector execNodeConnector) {
-        this.executionNodeConnectors.add(execNodeConnector);
-    }
-
-    public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
-        this.directoryNodeConnectors.add(directoryNodeConnector);
-
-    }
-
-    public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
-        this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
-    }
-
-    /**
-     * @throws ConnectorException 
-     * @throws IllegalStateException if unable to connect to node 
-     */
-    public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException {
-        ExecutionNode node = null;
-        GenericNodeConnector connector = null;
-        //if the strategy is null use the default one
-        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 DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
-        if (directoryNodeConnectors.isEmpty()) {
-            return null;
-        }
-        GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
-
-        connector.connect();
-
-        DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
-
-        return directoryNode;
-    }
-
-    public DirectoryNodeService getDirectoryNode() throws ConnectorException {
-        return getDirectoryNode(null);
-    }
-
-    public ExecutionNode getExecutionNode() throws ConnectorException {
-        return getExecutionNode(null);
-    }
-
-    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 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);
-            }
-        }
-        return executionNodes;
-    }
-
-    public List<DirectoryNodeService> getDirectoryNodes() {
-        throw new UnsupportedOperationException("not Implemented yet!");
-    }
-
-    public List<HumanTaskNodeService> getHumanTaskNodes() {
-        throw new UnsupportedOperationException("not Implemented yet!");
-    }
-
-    public void dispose() throws ConnectorException {
-        for (GenericNodeConnector connector : executionNodeConnectors) {
-            connector.disconnect();
-        }
-        for (GenericDirectoryConnector connector : directoryNodeConnectors) {
-            connector.disconnect();
-        }
-        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);
-    }
-}

Modified: 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	2010-06-22 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -36,9 +36,19 @@
     private GenericNodeConnector connector;
     private GenericConnection connection;
 
+    public RemoteConnectionNode() {
+        
+    }
+
+    
     public RemoteConnectionNode(GenericNodeConnector connector, GenericConnection connection) {
+        
         this.connector = connector;
         this.connection = connection;
+        
+    }
+
+    public void init(){
         services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
         services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
         services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, connection));

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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -35,7 +35,7 @@
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
 import org.drools.grid.remote.mina.MinaIoHandler;
 
 /**
@@ -43,7 +43,7 @@
  * @author salaboy
  */
 public class MinaRemoteDirectoryConnector implements GenericDirectoryConnector{
-    private RemoteConnection connection;
+    private GridConnection connection;
     private String providerName;
     private SystemEventListener eventListener;
     protected IoSession session;
@@ -65,7 +65,7 @@
         this.eventListener = systemEventListener;
         this.address = new InetSocketAddress(providerAddress, providerPort);
         this.connector = minaconnector;
-        this.connection = new RemoteConnection();
+        this.connection = new GridConnection();
 
     }
 

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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -16,10 +16,12 @@
 import org.drools.grid.ConnectorException;
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
 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.GridConnection;
+import org.drools.grid.remote.RemoteConnectionNode;
 
 public class MinaRemoteNodeConnector
         implements
@@ -31,7 +33,7 @@
     protected SocketConnector connector;
     protected SocketAddress address;
     protected SystemEventListener eventListener;
-    protected RemoteConnection connection;
+    protected GridConnection connection;
 
     public MinaRemoteNodeConnector(String name,
             String providerAddress, Integer providerPort,
@@ -47,7 +49,7 @@
         this.address = new InetSocketAddress(providerAddress, providerPort);
         this.connector = minaconnector;
         this.eventListener = eventListener;
-        this.connection = new RemoteConnection();
+        this.connection = new GridConnection();
     }
 
     public void connect() throws ConnectorException {
@@ -126,4 +128,9 @@
     public GenericConnection getConnection() {
         return this.connection;
     }
+
+
+    public NodeConnectionType getNodeConnectionType() {
+        return new RemoteConnectionNode();
+    }
 }

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 15:16:03 UTC (rev 33596)
+++ 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 15:58:51 UTC (rev 33597)
@@ -18,19 +18,14 @@
 package org.drools.grid;
 
 import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.Iterator;
 
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
 import org.drools.grid.internal.GenericMessageHandlerImpl;
 import org.drools.grid.internal.NodeData;
 import org.drools.grid.local.DirectoryNodeLocalImpl;
 import org.drools.grid.local.LocalDirectoryConnector;
-import org.drools.grid.remote.RemoteConnection;
 import org.drools.grid.remote.mina.MinaAcceptor;
 import org.drools.grid.remote.mina.MinaIoHandler;
 import org.drools.grid.remote.mina.MinaRemoteNodeConnector;
@@ -76,7 +71,7 @@
 
 
         //Client configuration
-        connection = new RemoteConnection();
+        connection = new GridConnection();
         GenericDirectoryConnector localDirectory = new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
         connection.addDirectoryNode(localDirectory);
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -21,7 +21,7 @@
 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.GridConnection;
 import org.drools.grid.remote.mina.MinaIoHandler;
 
 public class MinaRemoteHumanTaskConnector
@@ -34,7 +34,7 @@
     protected SocketConnector connector;
     protected SocketAddress address;
     protected SystemEventListener eventListener;
-    protected RemoteConnection connection;
+    protected GridConnection connection;
 
     public MinaRemoteHumanTaskConnector(String name,
             String providerAddress, Integer providerPort,
@@ -50,7 +50,7 @@
         this.address = new InetSocketAddress(providerAddress, providerPort);
         this.connector = minaconnector;
         this.eventListener = eventListener;
-        this.connection = new RemoteConnection();
+        this.connection = new GridConnection();
     }
 
     public void connect() throws ConnectorException {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -16,7 +16,7 @@
 import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.impl.WorkItemImpl;
 import org.drools.grid.ExecutionNode;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
 import org.drools.grid.task.responseHandlers.BlockingGetContentMessageResponseHandler;
 import org.drools.grid.task.responseHandlers.BlockingGetTaskMessageResponseHandler;
 import org.drools.grid.task.responseHandlers.BlockingTaskOperationMessageResponseHandler;
@@ -44,7 +44,7 @@
     protected Map<String, User> users;
     protected Map<String, Group> groups;
     protected ExecutionNode node;
-    protected RemoteConnection connection = new RemoteConnection();
+    protected GridConnection connection = new GridConnection();
 
     @Test
     public void testTask() throws Exception {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java	2010-06-22 15:58:51 UTC (rev 33597)
@@ -22,6 +22,7 @@
 import org.drools.grid.internal.NodeData;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.internal.GenericMessageHandlerImpl;
+import org.drools.grid.remote.RemoteConnectionNode;
 import org.drools.grid.remote.mina.MinaAcceptor;
 import org.drools.grid.remote.mina.MinaRemoteNodeConnector;
 import org.drools.grid.remote.mina.MinaIoHandler;



More information about the jboss-svn-commits mailing list