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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 20 09:51:48 EDT 2010


Author: salaboy21
Date: 2010-07-20 09:51:46 -0400 (Tue, 20 Jul 2010)
New Revision: 34064

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
Removed:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/ExecutionNodeService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.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/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/DirectoryLookupProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.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/GridTopology.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java
Log:
adding support for local implementation, working as a static provider

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java	2010-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -37,8 +37,8 @@
     private Map<String, String> executorsMap = new HashMap<String, String>();
     private Map<String, String> kbasesMap = new HashMap<String, String>();
     private Map<String, KnowledgeBase> kbasesInstancesMap = new HashMap<String, KnowledgeBase>();
-    private List<GenericNodeConnector> services = new ArrayList<GenericNodeConnector>();
     
+    
     public DirectoryNodeLocalImpl() {
        
     }
@@ -56,23 +56,14 @@
      public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
         System.out.println("Registering: " + executorId + " -- " + resourceConnector.getId());
         executorsMap.put(executorId, resourceConnector.getId());
-        services.add(resourceConnector);
+        
 
     }
 
     public GenericNodeConnector lookup(String executorId) throws ConnectorException, RemoteException {
-        GenericNodeConnector nodeConnector = null;
-        String sessionServiceId = (String) executorsMap.get(executorId);
-        System.out.println("Registry = " + executorsMap.toString());
-        System.out.println("Nodes Services = " + services);
-        for (GenericNodeConnector ss : services) {
-            System.out.println("Session Service id = " + ss.getId() + "needs to match with =" + sessionServiceId);
-            if (ss.getId().equals(sessionServiceId)) {
-                nodeConnector = ss;
-            }
-        }
-
-        return nodeConnector;
+        String nodeConnectorId = (String) executorsMap.get(executorId);
+        System.out.println("NodeConnectorID = "+nodeConnectorId);
+        return GenericConnectorFactory.newNodeConnector(nodeConnectorId);
     }
     public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
         this.kbasesMap.put(kbaseId, "local");

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/ExecutionNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/ExecutionNodeService.java	2010-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/ExecutionNodeService.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -16,7 +16,7 @@
     public Message write(Message msg) throws ConnectorException, RemoteException;
     double getLoad() throws ConnectorException;
     void setLoad(double load) throws ConnectorException;
-    double getKsessionCounter() throws ConnectorException;
-    void incrementKsessionCounter() throws ConnectorException;
+    double getKsessionCounter() throws ConnectorException, RemoteException;
+    void incrementKsessionCounter() throws ConnectorException, RemoteException;
     
 }

Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java (from rev 33963, 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-api/src/main/java/org/drools/grid/GenericConnectorFactory.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -0,0 +1,228 @@
+/*
+ *  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.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
+
+/**
+ *
+ * @author salaboy
+ */
+public class GenericConnectorFactory {
+
+    public static GenericNodeConnector newNodeConnector(String connectorString) {
+        System.out.println("Creating a connector for: " + connectorString);
+        if(connectorString == null || connectorString.equals("")){
+          return null;
+        }
+        String[] connectorDetails = connectorString.split(":");
+
+        String connectorType = connectorDetails[0];
+
+
+        if (connectorType.equals("Distributed")) {
+            String connectorBehavior = connectorDetails[1];
+            String connectorId = connectorDetails[2];
+            GenericNodeConnector connector = null;
+
+
+
+            try {
+                Class clazzLocator = Class.forName("org.drools.grid.distributed.util.RioResourceLocator");
+                Method locate = clazzLocator.getMethod("locateResource", String.class);
+                ExecutionNodeService execNode = (ExecutionNodeService)locate.invoke(clazzLocator, connectorString);
+
+                Class clazz = Class.forName("org.drools.grid.distributed.RioNodeConnector");
+                Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class, ExecutionNodeService.class);
+                connector = (GenericNodeConnector) constructor.newInstance("node1", SystemEventListenerFactory.getSystemEventListener(),
+                                            execNode);
+
+              
+            } catch (InstantiationException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalAccessException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalArgumentException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InvocationTargetException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (NoSuchMethodException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (SecurityException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+            return connector;
+        }
+
+
+        if (connectorType.equals("Mina")) {
+            String connectorName = connectorDetails[1];
+            String connectorAddress = connectorDetails[2];
+            String connectorPort = connectorDetails[3];
+
+            GenericNodeConnector connector = null;
+            try {
+                Class clazz = Class.forName("org.drools.grid.remote.mina.RemoteMinaNodeConnector");
+                Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
+                connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
+                        Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+
+                //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
+                //         Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+            } catch (InstantiationException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalAccessException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalArgumentException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InvocationTargetException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (NoSuchMethodException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (SecurityException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+            return connector;
+        }
+
+
+
+
+        if (connectorType.equals("Local")) {
+            GenericNodeConnector connector = null;
+            try {
+                Class clazz = Class.forName("org.drools.grid.local.LocalNodeConnector");
+                connector = (GenericNodeConnector) clazz.newInstance();
+            } catch (InstantiationException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalAccessException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalArgumentException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (SecurityException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+            return connector;
+
+            //return new LocalNodeConnector();
+        }
+
+        return null;
+    }
+
+    public static GenericNodeConnector newDirectoryConnector(String connectorString) {
+        String[] connectorDetails = connectorString.split(":");
+        String connectorType = connectorDetails[0];
+
+
+
+        if (connectorType.equals("Mina")) {
+
+            String connectorName = connectorDetails[1];
+            String connectorAddress = connectorDetails[2];
+            String connectorPort = connectorDetails[3];
+            GenericNodeConnector connector = null;
+            try {
+                Class clazz = Class.forName("org.drools.grid.remote.directory.RemoteMinaDirectoryConnector");
+                Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
+                connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
+                        Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+
+                //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
+                //         Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+            } catch (InstantiationException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalAccessException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalArgumentException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InvocationTargetException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (NoSuchMethodException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (SecurityException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+            return connector;
+        }
+
+        if (connectorType.equals("Local")) {
+            GenericNodeConnector connector = null;
+            try {
+                Class clazz = Class.forName("org.drools.grid.local.LocalDirectoryConnector");
+                Class clazzDirectoryNodeServiceImpl = Class.forName("org.drools.grid.local.DirectoryNodeLocalImpl");
+                Constructor constructor = clazz.getConstructor(DirectoryNodeService.class);
+                connector = (GenericNodeConnector) constructor.newInstance(
+                        (DirectoryNodeService) clazzDirectoryNodeServiceImpl.newInstance());
+
+            } catch (InstantiationException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalAccessException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (IllegalArgumentException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (InvocationTargetException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (NoSuchMethodException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (SecurityException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+            return connector;
+            
+        }
+
+        return null;
+    }
+
+    public static GenericNodeConnector newTaskConnector(String connectorString) {
+        String[] connectorDetails = connectorString.split(":");
+        String connectorType = connectorDetails[0];
+        String connectorName = connectorDetails[1];
+        String connectorAddress = connectorDetails[2];
+        String connectorPort = connectorDetails[3];
+
+
+
+
+
+        return null;
+    }
+
+
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -79,6 +79,7 @@
 
             type.setConnector(connector);
             type.setConnection(this);
+            
             node = NodeFactory.newExecutionNode(type);
         } catch (RemoteException ex) {
             Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
@@ -172,7 +173,6 @@
 
                 type.setConnector(connector);
                 type.setConnection(this);
-                type.init();
                 executionNodes.add(NodeFactory.newExecutionNode(type));
             } catch (RemoteException ex) {
                 Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
@@ -182,23 +182,22 @@
     }
 
     public List<DirectoryNode> getDirectoryNodes() throws ConnectorException {
-//        List<DirectoryNodeService> directories = new ArrayList<DirectoryNodeService>();
-//        if (directoryNodeConnectors.isEmpty()) {
-//
-//            DirectoryNodeService localDirectory = new DirectoryNodeLocalImpl();
-//            addDirectoryNode(localDirectory);
-//
-//        }
-//        for (GenericDirectoryConnector connector : directoryNodeConnectors) {
-//            try {
-//                connector.connect();
-//                directories.add(connector.getDirectoryNodeService());
-//            } catch (RemoteException ex) {
-//                Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
-//            }
-//        }
-//        return directories;
-        return null;
+         List<DirectoryNode> directoryNodes = new ArrayList<DirectoryNode>();
+        for (GenericNodeConnector connector : directoryNodeConnectors) {
+            NodeConnectionType type;
+            try {
+                type = connector.getNodeConnectionType();
+                System.out.println(">>>>>>>> Type = " + type);
+                connector.connect();
+                type.setConnector(connector);
+                type.setConnection(this);
+                directoryNodes.add(NodeFactory.newDirectoryNode(type));
+            } catch (RemoteException ex) {
+                Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }
+        return directoryNodes;
+        
     }
 
     public List<HumanTaskNodeService> getHumanTaskNodes() {

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/DirectoryLookupProviderLocalClient.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -16,9 +16,16 @@
  */
 package org.drools.grid.local;
 
+import java.rmi.RemoteException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
 import org.drools.runtime.CommandExecutor;
 
 /**
@@ -27,12 +34,24 @@
  */
 public class DirectoryLookupProviderLocalClient implements DirectoryLookupFactoryService {
 
-    private Map<String, CommandExecutor> services = new HashMap<String, CommandExecutor>();
+    private static Map<String, CommandExecutor> services = new HashMap<String, CommandExecutor>();
+    private GenericConnection connection;
+    private GenericNodeConnector client;
 
-    public DirectoryLookupProviderLocalClient() {
+    public DirectoryLookupProviderLocalClient(GenericNodeConnector client, GenericConnection connection) {
+        this.connection = connection;
+        this.client = client;
     }
 
     public void register(String key, CommandExecutor executor) {
+            try {
+                DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
+                directoryNode.register(key, client.getId());
+            } catch (ConnectorException ex) {
+                Logger.getLogger(DirectoryLookupProviderLocalClient.class.getName()).log(Level.SEVERE, null, ex);
+            } catch (RemoteException ex) {
+                Logger.getLogger(DirectoryLookupProviderLocalClient.class.getName()).log(Level.SEVERE, null, ex);
+            }
         services.put(key, executor);
     }
 

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -35,11 +35,11 @@
  */
 public class LocalConnectionNode implements NodeConnectionType {
     private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
-    
-    public LocalConnectionNode(GenericNodeConnector nodeConnector) {
-        services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
-        services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient(nodeConnector));
-        services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+    private GenericNodeConnector nodeConnector;
+    private GenericConnection connection;
+    public LocalConnectionNode(GenericNodeConnector nodeConnector, GenericConnection connection) {
+        this.nodeConnector = nodeConnector;
+        this.connection = connection;
     }
 
     
@@ -53,15 +53,17 @@
     }
 
     public void setConnector(GenericNodeConnector connector) {
-        //do nothing, we don't need a connector here
+        this.nodeConnector = connector;
     }
 
     public void setConnection(GenericConnection connection) {
-        // do nothing, we don't need a connection here
+        this.connection = connection;
     }
 
     public void init() {
-        // do nothing
+        services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
+        services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient(nodeConnector));
+        services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient(nodeConnector, connection));
     }
 
     public ConnectorType getConnectorType() {

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -35,11 +35,10 @@
  */
 public class LocalDirectoryConnector implements GenericNodeConnector{
     private DirectoryNodeService directoryNode;
-    private GridConnection connection = new GridConnection();
+    private GenericConnection connection;
 
-    public LocalDirectoryConnector(DirectoryNodeService directoryNode) {
-        this.directoryNode = directoryNode;
-        
+    public LocalDirectoryConnector() {
+        this.connection = new GridConnection();
     }
 
     public void connect() throws ConnectorException {

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -33,12 +33,11 @@
  */
 public class LocalNodeConnector implements GenericNodeConnector {
 
-    private GridConnection connection;
-    private NodeConnectionType connectionNode;
+    private GridConnection connection = new GridConnection();;
+    private NodeConnectionType connectionNode = new LocalConnectionNode(this, connection);
     public LocalNodeConnector() {
         
-        this.connection = new GridConnection();
-        this.connectionNode = new LocalConnectionNode(this);
+        
     }
 
     public void connect() throws ConnectorException {

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -42,6 +42,7 @@
 
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.resource.jdbc.PoolingDataSource;
+import org.drools.grid.local.LocalDirectoryConnector;
 import org.drools.grid.local.LocalNodeConnector;
 import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
 
@@ -85,6 +86,7 @@
         
         connection = new GridConnection();
         connection.addExecutionNode(new LocalNodeConnector());
+        connection.addDirectoryNode(new LocalDirectoryConnector());
         node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
         node.set(JPAKnowledgeFactoryService.class, new JPAKnowledgeProviderLocalClient());
     }

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -16,6 +16,7 @@
  */
 package org.drools.grid.remote;
 
+import org.drools.grid.GenericConnectorFactory;
 import java.rmi.RemoteException;
 import java.util.Map;
 import java.util.logging.Level;

Deleted: 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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -1,228 +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.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.SystemEventListener;
-import org.drools.SystemEventListenerFactory;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.GenericNodeConnector;
-
-/**
- *
- * @author salaboy
- */
-public class GenericConnectorFactory {
-
-    public static GenericNodeConnector newNodeConnector(String connectorString) {
-        System.out.println("Creating a connector for: " + connectorString);
-        String[] connectorDetails = connectorString.split(":");
-
-        String connectorType = connectorDetails[0];
-
-
-        if (connectorType.equals("Distributed")) {
-            String connectorBehavior = connectorDetails[1];
-            String connectorId = connectorDetails[2];
-            GenericNodeConnector connector = null;
-
-
-
-            try {
-                Class clazzLocator = Class.forName("org.drools.grid.distributed.util.RioResourceLocator");
-                Method locate = clazzLocator.getMethod("locateResource", String.class);
-                ExecutionNodeService execNode = (ExecutionNodeService)locate.invoke(clazzLocator, connectorString);
-
-                Class clazz = Class.forName("org.drools.grid.distributed.RioNodeConnector");
-                Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class, ExecutionNodeService.class);
-                connector = (GenericNodeConnector) constructor.newInstance("node1", SystemEventListenerFactory.getSystemEventListener(),
-                                            execNode);
-
-              
-            } catch (InstantiationException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalAccessException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalArgumentException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InvocationTargetException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (NoSuchMethodException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (SecurityException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (ClassNotFoundException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            }
-
-            return connector;
-        }
-
-
-        if (connectorType.equals("Mina")) {
-            String connectorName = connectorDetails[1];
-            String connectorAddress = connectorDetails[2];
-            String connectorPort = connectorDetails[3];
-
-            GenericNodeConnector connector = null;
-            try {
-                Class clazz = Class.forName("org.drools.grid.remote.mina.RemoteMinaNodeConnector");
-                Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
-                connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
-                        Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
-
-                //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
-                //         Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
-            } catch (InstantiationException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalAccessException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalArgumentException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InvocationTargetException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (NoSuchMethodException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (SecurityException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (ClassNotFoundException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            }
-
-            return connector;
-        }
-
-
-
-
-        if (connectorType.equals("Local")) {
-            GenericNodeConnector connector = null;
-            try {
-                Class clazz = Class.forName("org.drools.grid.local.LocalNodeConnector");
-                connector = (GenericNodeConnector) clazz.newInstance();
-            } catch (InstantiationException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalAccessException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalArgumentException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (SecurityException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (ClassNotFoundException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            }
-
-            return connector;
-
-            //return new LocalNodeConnector();
-        }
-
-        return null;
-    }
-
-    public static GenericNodeConnector newDirectoryConnector(String connectorString) {
-        String[] connectorDetails = connectorString.split(":");
-        String connectorType = connectorDetails[0];
-
-
-
-        if (connectorType.equals("Mina")) {
-
-            String connectorName = connectorDetails[1];
-            String connectorAddress = connectorDetails[2];
-            String connectorPort = connectorDetails[3];
-            GenericNodeConnector connector = null;
-            try {
-                Class clazz = Class.forName("org.drools.grid.remote.directory.RemoteMinaDirectoryConnector");
-                Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
-                connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
-                        Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
-
-                //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
-                //         Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
-            } catch (InstantiationException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalAccessException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalArgumentException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InvocationTargetException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (NoSuchMethodException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (SecurityException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (ClassNotFoundException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            }
-
-            return connector;
-        }
-
-        if (connectorType.equals("Local")) {
-            GenericNodeConnector connector = null;
-            try {
-                Class clazz = Class.forName("org.drools.grid.local.LocalDirectoryConnector");
-                Class clazzDirectoryNodeServiceImpl = Class.forName("org.drools.grid.local.DirectoryNodeLocalImpl");
-                Constructor constructor = clazz.getConstructor(DirectoryNodeService.class);
-                connector = (GenericNodeConnector) constructor.newInstance(
-                        (DirectoryNodeService) clazzDirectoryNodeServiceImpl.newInstance());
-
-            } catch (InstantiationException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalAccessException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (IllegalArgumentException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (InvocationTargetException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (NoSuchMethodException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (SecurityException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (ClassNotFoundException ex) {
-                Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
-            }
-
-            return connector;
-            
-        }
-
-        return null;
-    }
-
-    public static GenericNodeConnector newTaskConnector(String connectorString) {
-        String[] connectorDetails = connectorString.split(":");
-        String connectorType = connectorDetails[0];
-        String connectorName = connectorDetails[1];
-        String connectorAddress = connectorDetails[2];
-        String connectorPort = connectorDetails[3];
-
-
-
-
-
-        return null;
-    }
-
-
-}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java	2010-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -37,7 +37,7 @@
 import org.drools.grid.internal.commands.SimpleCommandName;
 import org.drools.grid.internal.responsehandlers.BlockingMessageDirectoryMapRequestResponseHandler;
 import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
-import org.drools.grid.remote.GenericConnectorFactory;
+import org.drools.grid.GenericConnectorFactory;
 import org.drools.grid.remote.mina.MinaIoHandler;
 
 /**

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -71,7 +71,7 @@
 
         //Client configuration
         connection = new GridConnection();
-        GenericNodeConnector localDirectory = new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
+        GenericNodeConnector localDirectory = new LocalDirectoryConnector();
         connection.addDirectoryNode(localDirectory);
 
         // setup Client

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-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -29,7 +29,7 @@
 
     private String topologyName;
     private Map<String, ExecutionEnvironment> executionEnvironments = new HashMap<String, ExecutionEnvironment>();
-    private Map<String, ExecutionEnvironment> executionEnvironmentsByConnectorId = new HashMap<String, ExecutionEnvironment>();
+    private Map<String, String> executionEnvironmentsByConnectorId = new HashMap<String, String>();
     private Map<String, DirectoryInstance> directories = new HashMap<String, DirectoryInstance>();
     private Map<String, TaskServerInstance> taskServerInstance = new HashMap<String, TaskServerInstance>();
     private final ExecutionEnvironmentSelectionStrategy DEFAULT_EXECTUTION_STRATEGY = new ExecutionEnvByPrioritySelectionStrategy();
@@ -68,7 +68,7 @@
         //Adding the env to the local cache
         executionEnvironments.put(name, environment);
         try {
-            executionEnvironmentsByConnectorId.put(connector.getId(), environment);
+            executionEnvironmentsByConnectorId.put(connector.getId(), environment.getName());
         } catch (ConnectorException ex) {
             Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, ex);
         } catch (RemoteException ex) {
@@ -95,7 +95,8 @@
     public ExecutionEnvironment getExecutionEnvironment(GenericNodeConnector connector){
         ExecutionEnvironment ee = null;
         try {
-             ee = executionEnvironmentsByConnectorId.get(connector.getId());
+             String eeName = executionEnvironmentsByConnectorId.get(connector.getId());
+             ee = executionEnvironments.get(eeName);
         } catch (ConnectorException ex) {
             Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, ex);
         } catch (RemoteException ex) {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java	2010-07-20 13:51:20 UTC (rev 34063)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java	2010-07-20 13:51:46 UTC (rev 34064)
@@ -44,7 +44,7 @@
 
         @Override
         public DirectoryInstance onLocalProvider() {
-            return new DirectoryInstance(name, new LocalDirectoryConnector(new DirectoryNodeLocalImpl()));
+            return new DirectoryInstance(name, new LocalDirectoryConnector());
         }
 
         @Override



More information about the jboss-svn-commits mailing list