[jboss-svn-commits] JBL Code SVN: r33963 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation: drools-grid/drools-grid-api/src/main/java/org/drools/grid and 21 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 16 17:47:34 EDT 2010
Author: salaboy21
Date: 2010-07-16 17:47:33 -0400 (Fri, 16 Jul 2010)
New Revision: 33963
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/grid/DirectoryNode.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryNodeServiceGridClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedConnectionDirectory.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/SLAKsessions.drl
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/SLAKsessions.drl
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionDirectory.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaConnectionDirectory.java
Removed:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/GridConnectionOLDDELETE.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/DirectoryNodeService.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.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-api/src/main/java/org/drools/grid/NodeFactory.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalDirectorySelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseGridClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/pom.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/conf/test-config.groovy
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ExecutionNodeBaseTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/KnowledgeBaseProviderLocalClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.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-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.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/test/java/org/drools/services/RegisterDirectoryTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
Log:
adding DirectoryNode, that a is a collection of Services for the directoryInstances. Right now the only service available is DirectoryNodeService
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/grid/DirectoryNode.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/grid/DirectoryNode.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/grid/DirectoryNode.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,71 @@
+/*
+ * 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.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryNode {
+ private String id;
+ private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+
+ public DirectoryNode() {
+ this.id = UUID.randomUUID().toString();
+ }
+
+ public DirectoryNode(String id) {
+ this.id = id;
+ }
+
+ public <T> T get(Class<T> interfaceClass) {
+ synchronized (interfaceClass) {
+ Object service = services.get(interfaceClass);
+ if (service == null) {
+ try {
+ Class<?> implementingClass = Class.forName(interfaceClass.getCanonicalName() + "Impl");
+
+ service = implementingClass.newInstance();
+ services.put(interfaceClass, service);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return interfaceClass.cast(service);
+ }
+ }
+
+ public <T> void set(Class<T> interfaceClass, T provider) {
+ synchronized (interfaceClass) {
+ services.put(interfaceClass, provider);
+ }
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+}
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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -21,8 +21,11 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.KnowledgeBase;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
/**
*
@@ -131,8 +134,32 @@
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
return kbasesMap;
+ }
+
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
}
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ public void write(Message msg, MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -16,18 +16,30 @@
* @author salaboy
*/
-public interface DirectoryNodeService extends GenericDirectoryConnector {
+public interface DirectoryNodeService extends GenericNodeConnector {
public void register(String executorId, String resourceId) throws ConnectorException, RemoteException;
+
+ public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException;
+
public void unregister(String executorId) throws ConnectorException, RemoteException;
- public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException;
+
public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException;
+ // Returns the ID of the GenericNodeConnector found
public String lookupId(String resourceId) throws ConnectorException, RemoteException;
+
public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException;
+
public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException;
+
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException;
+
public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException;
+
public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException;
+
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException;
+
public void dispose() throws ConnectorException, RemoteException;
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -31,7 +31,7 @@
//Add Connectors to get new Connections
public void addExecutionNode(GenericNodeConnector execNodeConnector);
- public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector);
+ public void addDirectoryNode(GenericNodeConnector directoryNodeConnector);
public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector);
@@ -43,11 +43,11 @@
public List<ExecutionNode> getExecutionNodes() throws ConnectorException;
//Get DirectoryNode(s) with live connections
- public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException;
+ public DirectoryNode getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException;
- public DirectoryNodeService getDirectoryNode() throws ConnectorException;
+ public DirectoryNode getDirectoryNode() throws ConnectorException;
- public List<DirectoryNodeService> getDirectoryNodes() throws ConnectorException;
+ public List<DirectoryNode> getDirectoryNodes() throws ConnectorException;
//Get HumanTaskNode(s) with live connections
public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericDirectoryConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -36,5 +36,7 @@
public ConnectorType getConnectorType() ;
+ NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException ;
+
}
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-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -1,6 +1,7 @@
package org.drools.grid;
import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.grid.internal.GenericIoWriter;
import org.drools.grid.internal.Message;
@@ -20,4 +21,10 @@
public ConnectorType getConnectorType() ;
+ public int getSessionId();
+
+ public AtomicInteger getCounter();
+
+
+
}
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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -35,12 +35,12 @@
public class GridConnection implements GenericConnection {
private List<GenericNodeConnector> executionNodeConnectors;
- private List<GenericDirectoryConnector> directoryNodeConnectors;
+ private List<GenericNodeConnector> directoryNodeConnectors;
private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
public GridConnection() {
this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
- this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
+ this.directoryNodeConnectors = new ArrayList<GenericNodeConnector>();
this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
}
@@ -48,7 +48,7 @@
this.executionNodeConnectors.add(execNodeConnector);
}
- public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
+ public void addDirectoryNode(GenericNodeConnector directoryNodeConnector) {
this.directoryNodeConnectors.add(directoryNodeConnector);
}
@@ -79,7 +79,6 @@
type.setConnector(connector);
type.setConnection(this);
- type.init();
node = NodeFactory.newExecutionNode(type);
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
@@ -90,39 +89,52 @@
return node;
}
- public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy strategy) throws ConnectorException {
+ public DirectoryNode getDirectoryNode(DirectorySelectionStrategy strategy) throws ConnectorException {
+
+// if (directoryNodeConnectors.isEmpty()) {
+// //Should I return null or add a local directory?
+// DirectoryNodeService localDirectory = new DirectoryNodeLocalImpl();
+// addDirectoryNode(localDirectory);
+// DirectoryNodeService directoryNodeService = null;
+// try {
+// directoryNodeService = localDirectory.getDirectoryNodeService();
+// } catch (RemoteException ex) {
+// Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
+// }
+// return directoryNodeService;
+// }
+ GenericNodeConnector connector = null;
+ //if the strategy is null use the default one
- if (directoryNodeConnectors.isEmpty()) {
- //Should I return null or add a local directory?
- DirectoryNodeService localDirectory = new DirectoryNodeLocalImpl();
- addDirectoryNode(localDirectory);
- DirectoryNodeService directoryNodeService = null;
- try {
- directoryNodeService = localDirectory.getDirectoryNodeService();
- } catch (RemoteException ex) {
- Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
- }
- return directoryNodeService;
- }
- GenericDirectoryConnector connector = null;
- //if the strategy is null use the default one
- DirectoryNodeService directoryNode = null;
- try {
- if (strategy == null) {
- connector = getBestDirectory(new StaticIncrementalDirectorySelectionStrategy());
- } else {
- connector = getBestDirectory(strategy);
- }
+
+ if (strategy == null) {
+ connector = getBestDirectory(new StaticIncrementalDirectorySelectionStrategy());
+ } else {
+ connector = getBestDirectory(strategy);
+ }
+// connector.connect();
+// directoryNode = connector.getDirectoryNodeService();
+ System.out.println(">>>>>>>> Connector = " + connector);
+ NodeConnectionType type;
+ DirectoryNode directoryNode = null;
+ try {
+ type = connector.getNodeConnectionType();
+ System.out.println(">>>>>>>> Type = " + type);
connector.connect();
- directoryNode = connector.getDirectoryNodeService();
+ type.setConnector(connector);
+ type.setConnection(this);
+
+ directoryNode = NodeFactory.newDirectoryNode(type);
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
+
+
return directoryNode;
}
- public DirectoryNodeService getDirectoryNode() throws ConnectorException {
+ public DirectoryNode getDirectoryNode() throws ConnectorException {
return getDirectoryNode(null);
}
@@ -152,7 +164,7 @@
public List<ExecutionNode> getExecutionNodes() throws ConnectorException {
List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
for (GenericNodeConnector connector : executionNodeConnectors) {
- NodeConnectionType type;
+ NodeConnectionType type;
try {
type = connector.getNodeConnectionType();
System.out.println(">>>>>>>> Type = " + type);
@@ -165,27 +177,28 @@
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
- }
+ }
return executionNodes;
}
- public List<DirectoryNodeService> 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;
+ 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;
}
public List<HumanTaskNodeService> getHumanTaskNodes() {
@@ -200,7 +213,7 @@
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
}
- for (GenericDirectoryConnector connector : directoryNodeConnectors) {
+ for (GenericNodeConnector connector : directoryNodeConnectors) {
try {
connector.disconnect();
} catch (RemoteException ex) {
@@ -217,7 +230,7 @@
return nodeSelectionStrategy.getBestNode(this.executionNodeConnectors);
}
- private GenericDirectoryConnector getBestDirectory(DirectorySelectionStrategy directorySelectionStrategy) {
+ private GenericNodeConnector getBestDirectory(DirectorySelectionStrategy directorySelectionStrategy) {
return directorySelectionStrategy.getBestDirectory(this.directoryNodeConnectors);
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeFactory.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -23,10 +23,20 @@
*/
public class NodeFactory {
public static ExecutionNode newExecutionNode(NodeConnectionType type){
+ type.init();
ExecutionNode node = new ExecutionNode();
for(Class serviceClass : type.getServicesKeys()){
node.set(serviceClass, type.getServiceImpl(serviceClass));
}
return node;
}
+ public static DirectoryNode newDirectoryNode(NodeConnectionType type){
+ type.init();
+ DirectoryNode node = new DirectoryNode();
+ for(Class serviceClass : type.getServicesKeys()){
+ node.set(serviceClass, type.getServiceImpl(serviceClass));
+ }
+ return node;
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/DirectorySelectionStrategy.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -18,12 +18,12 @@
package org.drools.grid.strategies;
import java.util.List;
-import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericNodeConnector;
/**
*
* @author salaboy
*/
public interface DirectorySelectionStrategy {
- public GenericDirectoryConnector getBestDirectory(List<GenericDirectoryConnector> connectors);
+ public GenericNodeConnector getBestDirectory(List<GenericNodeConnector> connectors);
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalDirectorySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalDirectorySelectionStrategy.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/StaticIncrementalDirectorySelectionStrategy.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -17,7 +17,7 @@
package org.drools.grid.strategies;
import java.util.List;
-import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericNodeConnector;
/**
*
@@ -27,11 +27,11 @@
public static int counter = 0;
- public GenericDirectoryConnector getBestDirectory(List<GenericDirectoryConnector> connectors) {
+ public GenericNodeConnector getBestDirectory(List<GenericNodeConnector> connectors) {
if(counter >= connectors.size()){
counter = 0;
}
- GenericDirectoryConnector connector = connectors.get(counter);
+ GenericNodeConnector connector = connectors.get(counter);
StaticIncrementalDirectorySelectionStrategy.counter = counter + 1;
return connector;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -26,13 +26,12 @@
import org.drools.command.FinishedCommand;
import org.drools.command.KnowledgeContextResolveFromContextCommand;
import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNode;
import org.drools.grid.GenericConnection;
import org.drools.runtime.CommandExecutor;
import org.drools.runtime.ExecutionResults;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.NodeFactory;
import org.drools.grid.internal.Message;
import org.drools.grid.internal.MessageSession;
import org.drools.grid.internal.commands.LookupCommand;
@@ -69,10 +68,10 @@
}
Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new RegisterCommand(identifier, ((StatefulKnowledgeSessionGridClient) executor).getInstanceId(), type), null, null, null, null));
//System.out.println("Registering " + identifier + " - - " + currentService.getId());
- for (DirectoryNodeService directory : connection.getDirectoryNodes()) {
+ for (DirectoryNode directory : connection.getDirectoryNodes()) {
try {
try {
- directory.register(identifier, currentConnector.getId());
+ directory.get(DirectoryNodeService.class).register(identifier, currentConnector.getId());
} catch (RemoteException ex) {
Logger.getLogger(DirectoryLookupProviderGridClient.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -105,14 +104,14 @@
//First I need to get the correct client ExecutionNodeService with the identifier
//Look in all the DirectoryNodes
//DirectoryNodeService directory = (DirectoryNodeService) gridClient.getDirectories().iterator().next();
- for (DirectoryNodeService directory : connection.getDirectoryNodes()) {
+ for (DirectoryNode directory : connection.getDirectoryNodes()) {
try {
- if(directory.getConnectorType() == ConnectorType.DISTRIBUTED){
- currentConnector = directory.lookup(identifier);
+ if(directory.get(DirectoryNodeService.class).getConnectorType() == ConnectorType.DISTRIBUTED){
+ currentConnector = directory.get(DirectoryNodeService.class).lookup(identifier);
}else{
- String connectorString = directory.lookupId(identifier);
+ String connectorString = directory.get(DirectoryNodeService.class).lookupId(identifier);
currentConnector = GenericConnectorFactory.newNodeConnector(connectorString);
currentConnector.connect();
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryNodeServiceGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryNodeServiceGridClient.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryNodeServiceGridClient.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,136 @@
+/*
+ * 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.distributed;
+
+import java.rmi.RemoteException;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.drools.KnowledgeBase;
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+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;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryNodeServiceGridClient implements DirectoryNodeService {
+ private GenericNodeConnector client;
+
+ public DirectoryNodeServiceGridClient(GenericNodeConnector connector, GenericConnection connection) {
+
+ this.client = new RioDirectoryConnector("client 1", SystemEventListenerFactory.getSystemEventListener(), (DirectoryNodeService) connector);
+ }
+
+
+
+ public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void unregister(String executorId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public String lookupId(String resourceId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void dispose() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void connect() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void disconnect() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public String getId() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public GenericConnection getConnection() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public ConnectorType getConnectorType() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void write(Message msg, MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+}
Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/GridConnectionOLDDELETE.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/GridConnectionOLDDELETE.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/GridConnectionOLDDELETE.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -1,186 +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.distributed;
-
-/**
- *
- * @author salaboy
- */
-public class GridConnectionOLDDELETE {//implements GenericConnection {
-
-// static {
-// System.setSecurityManager(new RMISecurityManager() {
-//
-// @Override
-// public void checkPermission(Permission perm) {
-// }
-// });
-//
-// }
-// //Cached Services
-// private List<GenericNodeConnector> nodeConnectors;
-// //Cached Directories
-// private List<DirectoryNodeService> directories;
-//
-// public GridConnectionOLDDELETE() {
-// this.nodeConnectors = new ArrayList<GenericNodeConnector>();
-// this.directories = new ArrayList<DirectoryNodeService>();
-// }
-//
-// public void addNodeConnector(GenericNodeConnector service) {
-//
-// this.nodeConnectors.add(service);
-//
-// }
-//
-// public void addDirectoryNode(DirectoryNodeService directory) {
-// this.directories.add(directory);
-// }
-//
-// // In real scenarios this method will be in charge of populating
-// // all the ExecutionNodeService and DirectoryServices
-// public boolean connect() throws IOException, RemoteException, InterruptedException {
-// Logger.getLogger("org.rioproject.associations").setLevel(Level.FINEST);
-// AssociationDescriptor descriptorExecutionNode = AssociationDescriptor.create("ExecutionNodeService",
-// "nodeConnectorsInj",
-// org.drools.grid.ExecutionNodeService.class,
-// DiscoveryGroupManagement.ALL_GROUPS);
-// AssociationDescriptor descriptorDirectoryNode = AssociationDescriptor.create("DirectoryNodeService",
-// "directoriesInj",
-// org.drools.grid.DirectoryNodeService.class,
-// DiscoveryGroupManagement.ALL_GROUPS);
-// /*
-// * Create and configure association management. Make sure to set
-// * the backend, this is the object that has the setter method provided
-// * above. For our case its "this".
-// */
-// AssociationMgmt aMgr = new AssociationMgmt();
-// aMgr.setBackend(this);
-// aMgr.addAssociationDescriptors(descriptorExecutionNode, descriptorDirectoryNode);
-//
-//
-//
-// Iterable<org.drools.grid.ExecutionNodeService> executionNodes = aMgr.getAssociations("ExecutionNodeService", null)[0];
-// for (ExecutionNodeService executionNodeService : executionNodes) {
-// addNodeConnector(executionNodeService);
-// }
-//
-// Iterable<org.drools.grid.DirectoryNodeService> directoryNodes = aMgr.getAssociations("DirectoryNodeService", null)[0];
-// for (DirectoryNodeService directoryNodeService : directoryNodes) {
-// addDirectoryNode(directoryNodeService);
-// }
-//
-// long waited = 0;
-// while (nodeConnectors.size() == 0 && waited < 30000) {
-// Thread.sleep(500);
-// waited += 500;
-// }
-//
-// if (nodeConnectors.size() > 0 && directories.size() > 0) {
-// return true;
-// }
-//
-//
-//
-// return false;
-// }
-//
-// @Override
-// public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
-// ExecutionNode node = null;
-// GenericNodeConnector currentNode = null;
-// try {
-//
-// //if the strategy is null use the default one
-// if (strategy == null) {
-// currentNode = getBestNode(new StaticIncrementalSelectionStrategy(this));
-// } else {
-// strategy.setConnection(this);
-// currentNode = getBestNode(strategy);
-// }
-// if (currentNode.connect()) {
-// node = new ExecutionNode();
-// node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderGridClient(currentNode, this));
-// node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderGridClient(currentNode, this));
-// node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderGridClient(currentNode, this));
-// }
-//
-// } catch (RemoteException ex) {
-// Logger.getLogger(GridConnectionOLDDELETE.class.getName()).log(Level.SEVERE, null, ex);
-// }
-// return node;
-// }
-//
-// public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
-// return nodeSelectionStrategy.getBestNode();
-//
-//
-// }
-//
-// public void setNodeConnectorsInj(Iterable<ExecutionNodeService> nodes) {
-// for (ExecutionNodeService node : nodes) {
-// addNodeConnector(node);
-// }
-//
-//
-// }
-//
-// public void setDirectoriesInj(Iterable<DirectoryNodeService> nodes) {
-// for (DirectoryNodeService node : nodes) {
-// addDirectoryNode(node);
-// }
-//
-//
-// }
-//
-// public List<DirectoryNodeService> getDirectories() {
-// return (List<DirectoryNodeService>) directories;
-//
-//
-// }
-//
-// public void setDirectories(List<DirectoryNodeService> directories) {
-// this.directories = directories;
-//
-//
-// }
-//
-// public List<GenericNodeConnector> getNodeConnectors() {
-// return nodeConnectors;
-//
-//
-// }
-//
-// public void setNodeConnectors(List<GenericNodeConnector> services) {
-// this.nodeConnectors = services;
-//
-//
-// }
-//
-// @Override
-// public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
-// return ((List<DirectoryNodeService>) directories).get(0);
-//
-//
-// }
-//
-// @Override
-// public ExecutionNode getExecutionNode() {
-// return getExecutionNode(null);
-//
-// }
-}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseGridClient.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseGridClient.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -65,7 +65,7 @@
DirectoryNodeService directory = null;
try {
//get best directory????????/
- directory = connection.getDirectoryNode(null);
+ directory = connection.getDirectoryNode().get(DirectoryNodeService.class);
} catch (ConnectorException ex) {
Logger.getLogger(KnowledgeBaseGridClient.class.getName()).log(Level.SEVERE, null, ex);
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioDirectoryConnector.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioDirectoryConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,110 @@
+package org.drools.grid.distributed;
+
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.drools.SystemEventListener;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+
+public class RioDirectoryConnector
+ implements GenericNodeConnector {
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected DirectoryNodeService directoryNode;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+
+ public RioDirectoryConnector(String name,
+ SystemEventListener eventListener) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+
+ }
+
+ public RioDirectoryConnector(String name,
+ SystemEventListener eventListener,
+ DirectoryNodeService directoryNode) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.directoryNode = directoryNode;
+
+
+ }
+
+
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ if (directoryNode != null) {
+
+
+ Message returnMessage = this.directoryNode.write(msg);
+ return returnMessage;
+
+
+ }
+ throw new IllegalStateException("sessionService should not be null");
+ }
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getId() throws ConnectorException, RemoteException {
+
+ return directoryNode.getId();
+
+
+ }
+
+ public void setNodeService(Object object) {
+ this.directoryNode = (DirectoryNodeService) object;
+
+
+ }
+
+ public void connect() throws ConnectorException {
+ //do nothing, here we use auto discover
+ }
+
+ public void disconnect() throws ConnectorException {
+ //I don't need to be disconected
+ }
+
+ public GenericConnection getConnection() {
+ return new GridConnection();
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException {
+ return new DistributedConnectionNode();
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.DISTRIBUTED;
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioNodeConnector.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/RioNodeConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -59,7 +59,7 @@
}
- throw new IllegalStateException("sessionService should not be null");
+ throw new IllegalStateException("executionNode should not be null");
}
public void write(Message msg,
@@ -99,4 +99,12 @@
public ConnectorType getConnectorType() {
return ConnectorType.DISTRIBUTED;
}
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -11,16 +11,19 @@
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.KnowledgeBase;
import org.drools.command.KnowledgeContextResolveFromContextCommand;
import org.drools.command.runtime.GetKnowledgeBaseCommand;
import org.drools.grid.ConnectorException;
import org.drools.grid.ConnectorType;
import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
import org.drools.grid.internal.Message;
import org.drools.grid.ExecutionNodeService;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.MessageResponseHandler;
/**
@@ -141,18 +144,15 @@
@Override
public void connect() throws ConnectorException {
- throw new UnsupportedOperationException("Not supported yet.");
+ // do nothing, we don't need connect in distributed environments
}
@Override
public void disconnect() throws ConnectorException {
- throw new UnsupportedOperationException("Not supported yet.");
+ // do nothing, we don't need disconnect in distributed environments
}
- @Override
- public DirectoryNodeService getDirectoryNodeService() throws ConnectorException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
+
@Override
public GenericConnection getConnection() {
@@ -179,5 +179,35 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ @Override
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ return new DistributedConnectionDirectory();
+ }
+
+ @Override
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void write(Message msg, MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedConnectionDirectory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedConnectionDirectory.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedConnectionDirectory.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,76 @@
+/*
+ * 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.distributed.directory.impl;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.distributed.DirectoryNodeServiceGridClient;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DistributedConnectionDirectory implements NodeConnectionType, Serializable {
+
+ private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+ private GenericNodeConnector connector;
+ private GenericConnection connection;
+
+ public DistributedConnectionDirectory() {
+ }
+
+
+
+
+ public DistributedConnectionDirectory(GenericNodeConnector connector, GenericConnection connection) {
+ this.connector = connector;
+ this.connection = connection;
+ }
+
+
+
+ public void init() {
+ services.put(DirectoryNodeService.class, new DirectoryNodeServiceGridClient(connector, connection) );
+ }
+
+ public Set<Class<?>> getServicesKeys() {
+ return services.keySet();
+ }
+
+ public <T> T getServiceImpl(Class<T> clazz) {
+ return (T) services.get(clazz);
+ }
+
+ public void setConnector(GenericNodeConnector connector) {
+ //not needed
+ }
+
+ public void setConnection(GenericConnection connection) {
+ //not needed
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.DISTRIBUTED;
+ }
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy 2010-07-16 21:47:33 UTC (rev 33963)
@@ -3,7 +3,7 @@
import org.rioproject.resources.servicecore.Service
-deployment(name:'executionNodeService', debug: 'true') {
+deployment(name:'directoryNodeService', debug: 'true') {
logging {
logger 'org.rioproject.resolver', Level.ALL
@@ -24,22 +24,7 @@
* Declare the service to be deployed. The number of instances deployed
* defaults to 1. If you require > 1 instances change as needed
*/
-// service(name: 'ExecutionNodeService') {
-// interfaces {
-// classes 'org.drools.grid.ExecutionNodeService'
-// artifact ref:'service-dl'
-// }
-// implementation(class:'org.drools.grid.distributed.impl.ExecutionNodeServiceImpl') {
-// artifact ref:'service'
-// }
-// /*sla(id:'load', low:10, high: 30) {
-// rule resource: 'ScalingRuleHandler', max:5
-// }*/
-//// sla(id:'ksessionCounter', low:1, high: 4) {
-//// rule resource: 'ScalingRuleHandlerCounter', max:5
-//// }
-// maintain 2
-// }
+
service(name: 'DirectoryNodeService') {
interfaces {
classes 'org.drools.grid.DirectoryNodeService'
@@ -49,32 +34,10 @@
artifact ref:'service'
}
- association (name:'ExecutionNodeService', type:'uses', property:'nodeServices')
+ association (name:'ExecutionNodeService', type:'uses', property:'executionNodes')
maintain 1
}
-// service(name: 'Gnostic') {
-// interfaces {
-// classes 'org.rioproject.gnostic.Gnostic'
-// artifact ref: 'service-dl'
-// }
-// implementation(class: 'org.rioproject.gnostic.GnosticImpl') {
-// artifact ref: 'service'
-// }
-//
-// parameters {
-// parameter name: "create-core-associations", value: "yes"
-// }
-//
-// associations {
-// ['ExecutionNodeService'].each {
-// association name: "$it",
-// type: 'uses', property: 'service',
-// serviceType: Service.name
-// }
-// }
-// maintain 1
-// }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -50,7 +50,7 @@
// node = connection.getExecutionNode();
// System.out.println("ExecutionNode = "+ node);
- directory = connection.getDirectoryNode();
+ directory = connection.getDirectoryNode().get(DirectoryNodeService.class);
System.out.println("Directory Node = "+directory);
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/pom.xml 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/pom.xml 2010-07-16 21:47:33 UTC (rev 33963)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>drools-grid</artifactId>
- <groupId>org.drools</groupId>
- <version>5.1.0.SNAPSHOT</version>
- </parent>
- <artifactId>drools-grid-distributed-rio</artifactId>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>drools-grid</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.1.0.SNAPSHOT</version>
+ </parent>
+ <artifactId>drools-grid-distributed-rio</artifactId>
- <name>Drools :: Grid :: Distributed Node :: Rio</name>
- <packaging>oar</packaging>
+ <name>Drools :: Grid :: Distributed Node :: Rio</name>
+ <packaging>oar</packaging>
- <dependencies>
+ <dependencies>
<!-- Drools Runtime -->
<dependency>
@@ -33,20 +33,27 @@
</dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-grid-api</artifactId>
- <version>5.1.0.SNAPSHOT</version>
- </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-api</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-grid-distributed-api</artifactId>
- <version>5.1.0.SNAPSHOT</version>
- </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-distributed-api</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-distributed-dir-rio</artifactId>
+ <version>5.1.0.SNAPSHOT</version>
+
+ </dependency>
+
<!-- RIO Runtime -->
- <dependency>
+ <dependency>
<groupId>org.rioproject</groupId>
<artifactId>rio</artifactId>
<version>4.1-SNAPSHOT</version>
@@ -69,20 +76,20 @@
</dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>net.jini</groupId>
- <artifactId>jsk-lib</artifactId>
- <version>2.1</version>
- <type>jar</type>
- </dependency>
- </dependencies>
- <build>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.jini</groupId>
+ <artifactId>jsk-lib</artifactId>
+ <version>2.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -98,7 +105,7 @@
</ins>
<topclasses>
<topclass>org.drools.grid.ExecutionNodeService</topclass>
- <!--topclass>org.drools.grid.generic.DirectoryNodeService</topclass-->
+ <topclass>org.drools.grid.generic.DirectoryNodeService</topclass>
<topclass>org.drools.grid.distributed.RioNodeConnector</topclass>
<topclass>org.drools.grid.distributed.util.IDEntry</topclass>
<topclass>org.drools.grid.distributed.command.NewStatefulKnowledgeSessionGridCommand</topclass>
@@ -106,6 +113,7 @@
<!--topclass>org.rioproject.gnostic.Gnostic</topclass-->
</topclasses>
</createJar>
+
</configuration>
</plugin>
<plugin>
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -18,6 +18,7 @@
import java.rmi.RemoteException;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.SystemEventListener;
import org.drools.SystemEventListenerFactory;
@@ -92,6 +93,7 @@
context.getWatchRegistry().register(loadWatch);
context.getWatchRegistry().register(ksessionCounter);
instanceID = context.getServiceBeanConfig().getInstanceID();
+
}
@Override
@@ -175,7 +177,17 @@
return ConnectorType.DISTRIBUTED;
}
+ @Override
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/SLAKsessions.drl
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/SLAKsessions.drl (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/SLAKsessions.drl 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,40 @@
+package org.rioproject.gnostic;
+
+import org.rioproject.system.measurable.cpu.CalculableCPU;
+import org.rioproject.system.measurable.memory.CalculableMemory;
+import org.rioproject.gnostic.test.TestService;
+import org.rioproject.gnostic.test.TestService.Status;
+
+global org.rioproject.gnostic.DeployedServiceContext context;
+
+
+declare Calculable
+ @role(event)
+ @timestamp(when)
+end
+
+declare CalculableCPU
+ @role(event)
+ @timestamp(when)
+end
+
+declare CalculableMemory
+ @role(event)
+ @timestamp(when)
+end
+
+
+rule "1 ksession == scale"
+when
+ // $cpu : Number(doubleValue > 0.02)
+ // from accumulate(CalculableCPU($value : value) over window:time(1m)
+ // from entry-point "calculables-stream", average($value))
+ // $mem : Number(doubleValue > 0.1)
+ // from accumulate(CalculableMemory($value : value) over window:time(1m)
+ // from entry-point "calculables-stream", average($value))
+ Calculable(id == "ksessionCounter", value == 1 ) from entry-point "calculables-stream"
+then
+ System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Scaling!!");
+ // context.increment("ExecutionNodeService", "executionNodeService");
+
+end
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy 2010-07-16 21:47:33 UTC (rev 33963)
@@ -2,6 +2,7 @@
import java.util.logging.Level
import org.rioproject.resources.servicecore.Service
+import org.rioproject.system.SystemWatchID
deployment(name:'executionNodeService', debug: 'true') {
@@ -24,7 +25,7 @@
* Declare the service to be deployed. The number of instances deployed
* defaults to 1. If you require > 1 instances change as needed
*/
- service(name: 'ExecutionNodeService') {
+ service(name: 'ExecutionNodeService', fork: 'yes') { //fork yes, works only in unix machines
interfaces {
classes 'org.drools.grid.ExecutionNodeService'
artifact ref:'service-dl'
@@ -32,49 +33,24 @@
implementation(class:'org.drools.grid.distributed.impl.ExecutionNodeServiceImpl') {
artifact ref:'service'
}
- /*sla(id:'load', low:10, high: 30) {
- rule resource: 'ScalingRuleHandler', max:5
- }*/
-// sla(id:'ksessionCounter', low:1, high: 4) {
-// rule resource: 'ScalingRuleHandlerCounter', max:5
-// }
+
+
+
+
+
maintain 2
}
-// service(name: 'DirectoryNodeService') {
-// interfaces {
-// classes 'org.drools.grid.DirectoryNodeService'
-// artifact ref:'service-dl'
-// }
-// implementation(class:'org.drools.grid.distributed.impl.DirectoryNodeServiceImpl') {
-// artifact ref:'service'
-// }
-//
-// association (name:'ExecutionNodeService', type:'uses', property:'nodeServices')
-//
-// maintain 1
-// }
-// service(name: 'Gnostic') {
-// interfaces {
-// classes 'org.rioproject.gnostic.Gnostic'
-// artifact ref: 'service-dl'
-// }
-// implementation(class: 'org.rioproject.gnostic.GnosticImpl') {
-// artifact ref: 'service'
-// }
-//
-// parameters {
-// parameter name: "create-core-associations", value: "yes"
-// }
-//
-// associations {
-// ['ExecutionNodeService'].each {
-// association name: "$it",
-// type: 'uses', property: 'service',
-// serviceType: Service.name
-// }
-// }
-// maintain 1
-// }
+ rules {
+ rule{
+ resource 'SLAKsessions'
+ ruleClassPath 'org.drools:drools-grid-distributed-rio:5.1.0.SNAPSHOT'
+ serviceFeed(name: "ExecutionNodeService") {
+ watches "ksessionCounter, ${SystemWatchID.SYSTEM_CPU}, ${SystemWatchID.JVM_MEMORY}"
+ }
+ }
+ }
+
+
}
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/conf/test-config.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/conf/test-config.groovy 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/conf/test-config.groovy 2010-07-16 21:47:33 UTC (rev 33963)
@@ -6,7 +6,7 @@
numCybernodes = 1
numMonitors = 1
//numLookups = 1
- opstring = 'src/main/resources/org/drools/executionNodeService.groovy'
+ opstring = 'src/test/resources/org/drools/executionNodeServiceTest.groovy'
autoDeploy = true
//harvest = true
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ExecutionNodeBaseTest.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ExecutionNodeBaseTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -313,7 +313,8 @@
// @Test
// public void scalingUp(){
-// for(int i=1; i<20; i++) {
+// for(int i=1; i<5; i++) {
+//
// List<GenericNodeConnector> services = connection.getNodeConnectors();
// for(GenericNodeConnector serviceConnector : services) {
// if(serviceConnector instanceof ExecutionNodeService){
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -6,6 +6,7 @@
import junit.framework.Assert;
import net.jini.core.lookup.ServiceItem;
+import org.drools.grid.DirectoryNodeService;
import org.junit.After;
@@ -31,11 +32,11 @@
// //setup all the services using the Rio Test Framework
// //In real scenarios all this code will happen inside the connection.connect() method
//
-// DirectoryNodeService directoryService = (DirectoryNodeService) testManager.waitForService(DirectoryNodeService.class);
-// Assert.assertNotNull(directoryService);
+ DirectoryNodeService directoryService = (DirectoryNodeService) testManager.waitForService(DirectoryNodeService.class);
+ Assert.assertNotNull(directoryService);
// Gnostic service = (Gnostic)testManager.waitForService(Gnostic.class);
//
-// connection.addDirectoryNode(directoryService);
+ connection.addDirectoryNode(directoryService);
ExecutionNodeService executionNode = (ExecutionNodeService) testManager.waitForService(ExecutionNodeService.class);
ServiceItem[] nodeServiceItems = testManager.getServiceItems(ExecutionNodeService.class);
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/SLAKsessions.drl
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/SLAKsessions.drl (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/SLAKsessions.drl 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,40 @@
+package org.rioproject.gnostic;
+
+import org.rioproject.system.measurable.cpu.CalculableCPU;
+import org.rioproject.system.measurable.memory.CalculableMemory;
+import org.rioproject.gnostic.test.TestService;
+import org.rioproject.gnostic.test.TestService.Status;
+
+global org.rioproject.gnostic.DeployedServiceContext context;
+
+
+declare Calculable
+ @role(event)
+ @timestamp(when)
+end
+
+declare CalculableCPU
+ @role(event)
+ @timestamp(when)
+end
+
+declare CalculableMemory
+ @role(event)
+ @timestamp(when)
+end
+
+
+rule "1 ksession == scale"
+when
+ // $cpu : Number(doubleValue > 0.02)
+ // from accumulate(CalculableCPU($value : value) over window:time(1m)
+ // from entry-point "calculables-stream", average($value))
+ // $mem : Number(doubleValue > 0.1)
+ // from accumulate(CalculableMemory($value : value) over window:time(1m)
+ // from entry-point "calculables-stream", average($value))
+ Calculable(id == "ksessionCounter", value == 1 ) from entry-point "calculables-stream"
+then
+ System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Scaling!!");
+ // context.increment("ExecutionNodeService", "executionNodeService");
+
+end
\ No newline at end of file
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,70 @@
+import org.rioproject.config.Constants
+import java.util.logging.Level
+
+import org.rioproject.resources.servicecore.Service
+import org.rioproject.system.SystemWatchID
+
+deployment(name:'executionNodeService', debug: 'true') {
+
+ logging {
+ logger 'org.rioproject.resolver', Level.ALL
+ logger 'org.rioproject.associsations' , Level.ALL
+ }
+ /* Configuration for the discovery group that the service should join.
+ * This first checks if the org.rioproject.groups property is set, if not
+ * the user name is used */
+ groups System.getProperty(Constants.GROUPS_PROPERTY_NAME,
+ System.getProperty('user.name'))
+
+ /* Declares the artifacts required for deployment. Note the 'dl'
+ * classifier used for the 'download' jar */
+ artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.1.0.SNAPSHOT'
+ artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.1.0.SNAPSHOT'
+ artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.1.0.SNAPSHOT'
+ artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.1.0.SNAPSHOT'
+
+ /*
+ * Declare the service to be deployed. The number of instances deployed
+ * defaults to 1. If you require > 1 instances change as needed
+ */
+ service(name: 'ExecutionNodeService', fork: 'yes') { //fork yes, works only in unix machines
+ interfaces {
+ classes 'org.drools.grid.ExecutionNodeService'
+ artifact ref:'service-dl'
+ }
+ implementation(class:'org.drools.grid.distributed.impl.ExecutionNodeServiceImpl') {
+ artifact ref:'service'
+ }
+
+
+
+
+
+ maintain 2
+ }
+ service(name: 'DirectoryNodeService') {
+ interfaces {
+ classes 'org.drools.grid.DirectoryNodeService'
+ artifact ref:'service-dir-dl'
+ }
+ implementation(class:'org.drools.distributed.directory.impl.DirectoryNodeServiceImpl') {
+ artifact ref:'service-dir'
+ }
+
+ association (name:'ExecutionNodeService', type:'uses', property:'executionNodes')
+
+ maintain 1
+ }
+
+ rules {
+ rule{
+ resource 'SLAKsessions'
+ ruleClassPath 'org.drools:drools-grid-distributed-rio:5.1.0.SNAPSHOT'
+ serviceFeed(name: "ExecutionNodeService") {
+ watches "ksessionCounter, ${SystemWatchID.SYSTEM_CPU}, ${SystemWatchID.JVM_MEMORY}"
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/KnowledgeBaseProviderLocalClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/KnowledgeBaseProviderLocalClient.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/KnowledgeBaseProviderLocalClient.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -61,7 +61,7 @@
try{
ConnectorType connectorType = nodeConnector.getConnectorType();
- DirectoryNodeService directory = nodeConnector.getConnection().getDirectoryNode();
+ DirectoryNodeService directory = nodeConnector.getConnection().getDirectoryNode().get(DirectoryNodeService.class);
if(connectorType == ConnectorType.LOCAL){
directory.registerKBase(kbaseId, kbase);
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionDirectory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionDirectory.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionDirectory.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,70 @@
+/*
+ * 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.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeLocalImpl;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
+
+/**
+ *
+ * @author salaboy
+ */
+public class LocalConnectionDirectory implements NodeConnectionType {
+ private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+ private static DirectoryNodeService directory = new DirectoryNodeLocalImpl();
+
+ public LocalConnectionDirectory() {
+ services.put(DirectoryNodeService.class, directory);
+
+ }
+
+
+
+ public Set<Class<?>> getServicesKeys() {
+ return services.keySet();
+ }
+
+ public <T> T getServiceImpl(Class<T> clazz) {
+ return (T) services.get(clazz);
+ }
+
+ public void setConnector(GenericNodeConnector connector) {
+ //do nothing, we don't need a connector here
+ }
+
+ public void setConnection(GenericConnection connection) {
+ // do nothing, we don't need a connection here
+ }
+
+ public void init() {
+ // do nothing
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.LOCAL;
+ }
+
+}
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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -18,18 +18,22 @@
package org.drools.grid.local;
import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.grid.ConnectorException;
import org.drools.grid.ConnectorType;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
+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;
/**
*
* @author salaboy
*/
-public class LocalDirectoryConnector implements GenericDirectoryConnector{
+public class LocalDirectoryConnector implements GenericNodeConnector{
private DirectoryNodeService directoryNode;
private GridConnection connection = new GridConnection();
@@ -41,7 +45,6 @@
public void connect() throws ConnectorException {
//do nothing
}
-
public void disconnect() throws ConnectorException {
//do nothing
}
@@ -50,9 +53,9 @@
return "Local:Directory";
}
- public DirectoryNodeService getDirectoryNodeService(){
- return directoryNode;
- }
+// public DirectoryNodeService getDirectoryNodeService(){
+// return directoryNode;
+// }
public GenericConnection getConnection() {
return connection;
@@ -62,4 +65,24 @@
return ConnectorType.LOCAL;
}
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ return new LocalConnectionDirectory();
+ }
+
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void write(Message msg, MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -17,6 +17,7 @@
package org.drools.grid.local;
+import java.util.concurrent.atomic.AtomicInteger;
import org.drools.grid.ConnectorException;
import org.drools.grid.ConnectorType;
import org.drools.grid.GenericConnection;
@@ -70,4 +71,12 @@
public ConnectorType getConnectorType() {
return ConnectorType.LOCAL;
}
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
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-16 21:44:22 UTC (rev 33962)
+++ 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-16 21:47:33 UTC (rev 33963)
@@ -63,7 +63,7 @@
throw new IllegalArgumentException("Type is not supported for registration");
}
- DirectoryNodeService directoryNode = connection.getDirectoryNode();
+ DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
try {
System.out.println("!!!!!!!!>>>>>>>>>>Registering in DirectoryNode the session = "+identifier);
directoryNode.register(identifier, client.getId());
@@ -107,7 +107,7 @@
String commandId = "client.lookup" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new LookupCommand(identifier, commandId), null, null, null, kresultsId));
- DirectoryNodeService directoryNode = connection.getDirectoryNode();
+ DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
String connectorString = "";
try {
connectorString = directoryNode.lookupId(identifier);
@@ -156,7 +156,7 @@
public Map<String, String> getDirectoryMap() {
Map<String, String> directory = null;
try {
- DirectoryNodeService directoryNode = connection.getDirectoryNode();
+ DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
directory = directoryNode.getExecutorsMap();
} catch (RemoteException ex) {
Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/GenericConnectorFactory.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ 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-16 21:47:33 UTC (rev 33963)
@@ -25,7 +25,6 @@
import org.drools.SystemEventListenerFactory;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.GenericDirectoryConnector;
import org.drools.grid.GenericNodeConnector;
/**
@@ -140,7 +139,7 @@
return null;
}
- public static GenericDirectoryConnector newDirectoryConnector(String connectorString) {
+ public static GenericNodeConnector newDirectoryConnector(String connectorString) {
String[] connectorDetails = connectorString.split(":");
String connectorType = connectorDetails[0];
@@ -151,11 +150,11 @@
String connectorName = connectorDetails[1];
String connectorAddress = connectorDetails[2];
String connectorPort = connectorDetails[3];
- GenericDirectoryConnector connector = null;
+ 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 = (GenericDirectoryConnector) constructor.newInstance(connectorName, connectorAddress,
+ connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
//return new MinaRemoteNodeConnector(connectorName, connectorAddress,
@@ -180,12 +179,12 @@
}
if (connectorType.equals("Local")) {
- GenericDirectoryConnector connector = null;
+ 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 = (GenericDirectoryConnector) constructor.newInstance(
+ connector = (GenericNodeConnector) constructor.newInstance(
(DirectoryNodeService) clazzDirectoryNodeServiceImpl.newInstance());
} catch (InstantiationException ex) {
@@ -205,7 +204,7 @@
}
return connector;
- //return new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
+
}
return null;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -99,7 +99,7 @@
localId,
new NewKnowledgeBaseCommand( null ) ) );
try {
- DirectoryNodeService directory = client.getConnection().getDirectoryNode();
+ DirectoryNodeService directory = client.getConnection().getDirectoryNode().get(DirectoryNodeService.class);
directory.registerKBase(kbaseId, client.getId());
directory.dispose();
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-16 21:44:22 UTC (rev 33962)
+++ 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-16 21:47:33 UTC (rev 33963)
@@ -21,12 +21,16 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.drools.KnowledgeBase;
import org.drools.grid.ConnectorException;
import org.drools.grid.ConnectorType;
import org.drools.grid.DirectoryNodeService;
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.commands.SimpleCommand;
@@ -41,9 +45,9 @@
* @author salaboy
*/
public class DirectoryNodeRemoteClient implements DirectoryNodeService {
- private RemoteMinaDirectoryConnector connector;
+ private GenericNodeConnector connector;
- DirectoryNodeRemoteClient(RemoteMinaDirectoryConnector connector) {
+ DirectoryNodeRemoteClient(GenericNodeConnector connector) {
this.connector = connector;
}
@@ -51,8 +55,8 @@
List<Object> args = new ArrayList<Object>(2);
args.add(executorId);
args.add(resourceId);
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RegisterExecutor, args);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RegisterExecutor, args);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
write(msg, handler);
@@ -66,8 +70,8 @@
System.out.println(">>>>>>>>>>>>>>>>Looking for resource = "+resourceId);
List<Object> args = new ArrayList<Object>(1);
args.add(resourceId);
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
@@ -78,8 +82,8 @@
List<Object> args = new ArrayList<Object>(2);
args.add(kbaseId);
args.add(resourceId);
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RegisterKBase, args);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RegisterKBase, args);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
write(msg, handler);
}
@@ -94,8 +98,8 @@
public Map<String, String> getExecutorsMap() throws ConnectorException {
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RequestExecutorsMap, null);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestExecutorsMap, null);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
@@ -105,29 +109,29 @@
- public void dispose() throws ConnectorException {
+ public void dispose() throws ConnectorException, RemoteException {
this.connector.disconnect();
}
public String lookupId(String resourceId) throws ConnectorException {
List<Object> args = new ArrayList<Object>(1);
args.add(resourceId);
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
return (String)resultcmd.getArguments().get(0);
}
- private Message write(Message msg) throws ConnectorException{
+ public Message write(Message msg) throws ConnectorException, RemoteException{
BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
if (responseHandler != null) {
addResponseHandler(msg.getResponseId(),
responseHandler);
}
- this.connector.getSession().write(msg);
+ ((RemoteMinaDirectoryConnector)this.connector).getSession().write(msg);
Message returnMessage = responseHandler.getMessage();
if (responseHandler.getError() != null) {
@@ -137,17 +141,20 @@
return returnMessage;
}
- private void write(Message msg, MessageResponseHandler responseHandler) {
+ public void write(Message msg, MessageResponseHandler responseHandler) {
if (responseHandler != null) {
addResponseHandler(msg.getResponseId(),
responseHandler);
}
- this.connector.getSession().write(msg);
+
+ ((RemoteMinaDirectoryConnector)this.connector).getSession().write(msg);
+
+
}
private void addResponseHandler(int id,
MessageResponseHandler responseHandler) {
- ((MinaIoHandler) this.connector.getSession().getHandler()).addResponseHandler(id,
+ ((MinaIoHandler) ((RemoteMinaDirectoryConnector)this.connector).getSession().getHandler()).addResponseHandler(id,
responseHandler);
}
@@ -179,15 +186,15 @@
public void unregister(String executorId) throws ConnectorException, RemoteException {
List<Object> args = new ArrayList<Object>(2);
args.add(executorId);
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.UnRegisterExecutor, args);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.UnRegisterExecutor, args);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
write(msg, handler);
}
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
- SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.RequestKBasesMap, null);
- Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestKBasesMap, null);
+ Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
@@ -198,4 +205,20 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaConnectionDirectory.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaConnectionDirectory.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaConnectionDirectory.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -0,0 +1,63 @@
+/*
+ * 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.directory;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
+
+/**
+ *
+ * @author salaboy
+ */
+class RemoteMinaConnectionDirectory implements NodeConnectionType {
+
+ private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+ private GenericNodeConnector connector;
+ private GenericConnection connection;
+ public RemoteMinaConnectionDirectory() {
+ }
+
+ public Set<Class<?>> getServicesKeys() {
+ return services.keySet();
+ }
+
+ public <T> T getServiceImpl(Class<T> clazz) {
+ return (T) services.get(clazz);
+ }
+
+ public void setConnector(GenericNodeConnector connector) {
+ this.connector = connector;
+ }
+
+ public void setConnection(GenericConnection connection) {
+ this.connection = connection;
+ }
+
+ public void init() {
+ services.put(DirectoryNodeService.class, new DirectoryNodeRemoteClient(connector));
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.LOCAL;
+ }
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -34,24 +34,26 @@
import org.drools.SystemEventListenerFactory;
import org.drools.grid.ConnectorException;
import org.drools.grid.ConnectorType;
-import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
+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;
import org.drools.grid.remote.mina.MinaIoHandler;
/**
*
* @author salaboy
*/
-public class RemoteMinaDirectoryConnector implements GenericDirectoryConnector{
+public class RemoteMinaDirectoryConnector implements GenericNodeConnector{
private GridConnection connection;
private String providerName;
private SystemEventListener eventListener;
protected IoSession session;
- protected AtomicInteger counter;
- protected SocketConnector connector;
- protected SocketAddress address;
+ private AtomicInteger counter;
+ private SocketConnector connector;
+ private SocketAddress address;
@@ -71,9 +73,9 @@
}
- public DirectoryNodeService getDirectoryNodeService() {
- return new DirectoryNodeRemoteClient(this);
- }
+// public DirectoryNodeService getDirectoryNodeService() {
+// return new DirectoryNodeRemoteClient(this);
+// }
public void connect() throws ConnectorException {
if (session != null && session.isConnected()) {
@@ -128,6 +130,24 @@
return ConnectorType.REMOTE;
}
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException, RemoteException {
+ return new RemoteMinaConnectionDirectory();
+
+ }
+
+ public void write(Message msg, MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ return counter;
+ }
+
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -136,4 +136,12 @@
public ConnectorType getConnectorType() {
return ConnectorType.REMOTE;
}
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -71,7 +71,7 @@
//Client configuration
connection = new GridConnection();
- GenericDirectoryConnector localDirectory = new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
+ GenericNodeConnector localDirectory = new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
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/DirectoryInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -3,9 +3,9 @@
import java.util.List;
import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.DirectoryNode;
import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericNodeConnector;
import org.drools.grid.strategies.DirectorySelectionStrategy;
/**
@@ -13,29 +13,29 @@
*/
public class DirectoryInstance {
private String name;
- private GenericDirectoryConnector connector;
+ private GenericNodeConnector connector;
- public DirectoryInstance(String name, GenericDirectoryConnector connector) {
+ public DirectoryInstance(String name, GenericNodeConnector connector) {
this.name = name;
this.connector = connector;
}
- public DirectoryNodeService getDirectoryService() throws ConnectorException {
+ public DirectoryNode getDirectoryService() throws ConnectorException {
GenericConnection connection = getConnector().getConnection();
return connection.getDirectoryNode();
}
- public DirectoryNodeService getDirectoryService(DirectorySelectionStrategy strategy) throws ConnectorException {
+ public DirectoryNode getDirectoryService(DirectorySelectionStrategy strategy) throws ConnectorException {
GenericConnection connection = getConnector().getConnection();
return connection.getDirectoryNode(strategy);
}
- public List<DirectoryNodeService> getDirectoryServices() throws ConnectorException {
+ public List<DirectoryNode> getDirectoryServices() throws ConnectorException {
GenericConnection connection = getConnector().getConnection();
return connection.getDirectoryNodes();
}
- public GenericDirectoryConnector getConnector(){
+ public GenericNodeConnector getConnector(){
return this.connector;
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -2,7 +2,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GenericNodeConnector;
/**
* @author salaboy
@@ -11,8 +11,8 @@
protected Map<String, Object> parameters = new HashMap<String, Object>();
- public abstract GenericDirectoryConnector getDirectoryConnector();
-
+ public abstract GenericNodeConnector getDirectoryConnector();
+
public void setParameter(String name, Object value){
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-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -9,7 +9,6 @@
import org.drools.grid.ConnectorException;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
import org.drools.grid.GenericHumanTaskConnector;
import org.drools.grid.GenericNodeConnector;
import org.drools.grid.services.configuration.GenericProvider;
@@ -119,7 +118,7 @@
DirectoryInstance directory = DirectoryInstanceFactory.newDirectoryInstance(name, provider);
- GenericDirectoryConnector connector = directory.getConnector();
+ GenericNodeConnector connector = directory.getConnector();
GenericConnection connection = connector.getConnection();
@@ -219,7 +218,7 @@
for (DirectoryInstance directory : directories.values()) {
try {
- DirectoryNodeService directoryNode = directory.getDirectoryService();
+ DirectoryNodeService directoryNode = directory.getDirectoryService().get(DirectoryNodeService.class);
if (directoryNode != null) {
try {
directoryNode.register(name, resourceId);
@@ -242,7 +241,7 @@
for (DirectoryInstance directory : directories.values()) {
try {
- DirectoryNodeService directoryNode = directory.getDirectoryService();
+ DirectoryNodeService directoryNode = directory.getDirectoryService().get(DirectoryNodeService.class);
if (directoryNode != null) {
try {
directoryNode.unregister(name);
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -83,7 +83,7 @@
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull("Directory Instance null", directory);
- DirectoryNodeService dir = directory.getDirectoryService();
+ DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);;
Assert.assertNotNull("Dir Null", dir);
Assert.assertEquals(2, dir.getExecutorsMap().size());
@@ -111,7 +111,7 @@
DirectoryInstance directory = grid.getDirectoryInstance("MyLocalDir");
Assert.assertNotNull("DirInstance is null!",directory);
- DirectoryNodeService dir = directory.getDirectoryService();
+ DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);;
Assert.assertNotNull("Dir is null!",dir);
//This assertion is not deterministic
//Assert.assertEquals(4, dir.getExecutorsMap().size());
@@ -119,7 +119,7 @@
DirectoryInstance directory2 = grid.getDirectoryInstance("MyLocalDir2");
Assert.assertNotNull("DirInstance 2 is null!",directory2);
- DirectoryNodeService dir2 = directory2.getDirectoryService();
+ DirectoryNodeService dir2 = directory2.getDirectoryService().get(DirectoryNodeService.class);;
Assert.assertNotNull("Dir 2 is null!", dir2);
//This assertion is not deterministic
//Assert.assertEquals(3, dir2.getExecutorsMap().size());
@@ -189,7 +189,7 @@
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull("Directory Instance null", directory);
- DirectoryNodeService dirService = directory.getDirectoryService();
+ DirectoryNodeService dirService = directory.getDirectoryService().get(DirectoryNodeService.class);;
kbase = dirService.lookupKBase("DoctorsKBase");
Assert.assertNotNull(kbase);
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-07-16 21:44:22 UTC (rev 33962)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-07-16 21:47:33 UTC (rev 33963)
@@ -145,7 +145,7 @@
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull(directory);
- DirectoryNodeService dir = directory.getDirectoryService();
+ DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);
Assert.assertNotNull(dir);
Assert.assertNotNull("Dir Null", dir.getExecutorsMap());
@@ -290,7 +290,7 @@
node.get(DirectoryLookupFactoryService.class).register("sessionName", ksession);
DirectoryInstance directoryInstance = grid.getDirectoryInstance();
- DirectoryNodeService directory = directoryInstance.getDirectoryService();
+ DirectoryNodeService directory = directoryInstance.getDirectoryService().get(DirectoryNodeService.class);
GenericNodeConnector connector = directory.lookup("sessionName");
directoryInstance.getConnector().disconnect();
More information about the jboss-svn-commits
mailing list