[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