[jboss-svn-commits] JBL Code SVN: r34563 - in labs/jbossrules/trunk/drools-grid: drools-grid-distributed-api/src/main/java/org/drools/grid/distributed and 13 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 5 23:12:55 EDT 2010
Author: salaboy21
Date: 2010-08-05 23:12:52 -0400 (Thu, 05 Aug 2010)
New Revision: 34563
Added:
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceConfiguration.java
Removed:
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedRioNodeConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ExecutionNodeBaseTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceView.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentView.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceView.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyView.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceView.java
Modified:
labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBuilderProviderGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/pom.xml
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GenericProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/LocalProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/MinaProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/RioProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/ExecutionEnvironmentFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerBuilder.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerFactoryHelper.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GridTopologyFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/TaskServerInstanceFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ITGridExecutionTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
Log:
JBRULES-2615: Drools Grid Services remove unnessary dependencies
- removing not needed deps + little refactors to improve the usability, still need comments
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -54,7 +54,7 @@
public GenericNodeConnector lookup(String executorId) throws ConnectorException, RemoteException {
String nodeConnectorId = (String) executorsMap.get(executorId);
- return GenericConnectorFactory.newNodeConnector(nodeConnectorId);
+ return GenericConnectorFactory.newConnector(nodeConnectorId);
}
public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -18,7 +18,6 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.drools.SystemEventListener;
@@ -30,199 +29,316 @@
*/
public class GenericConnectorFactory {
- public static GenericNodeConnector newNodeConnector(String connectorString) {
-
- if(connectorString == null || connectorString.equals("")){
- return null;
+ private static final String SEPARATOR = ":";
+ private static final String LOCAL_NODE_CONNECTOR_CLASS = "org.drools.grid.local.LocalNodeConnector";
+ private static final String LOCAL_DIRECTORY_CONNECTOR_CLASS = "org.drools.grid.local.LocalDirectoryConnector";
+ private static final String REMOTE_MINA_NODE_CONNECTOR_CLASS = "org.drools.grid.remote.mina.RemoteMinaNodeConnector";
+ private static final String REMOTE_MINA_DIRECTORY_CONNECTOR_CLASS = "org.drools.grid.remote.directory.RemoteMinaDirectoryConnector";
+ private static final String REMOTE_MINA_TASK_CONNECTOR_CLASS = "org.drools.grid.task.RemoteMinaHumanTaskConnector";
+ private static final String REMOTE_HORNETQ_NODE_CONNECTOR_CLASS = "";
+ private static final String REMOTE_HORNETQ_DIRECTORY_CONNECTOR_CLASS = "";
+ private static final String REMOTE_HORNETQ_TASK_CONNECTOR_CLASS = "";
+ private static final String DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS = "org.drools.grid.distributed.impl.DistributedRioNodeConnector";
+ private static final String DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS = "org.drools.distributed.directory.impl.DistributedRioDirectoryConnector";
+ private static final String DISTRIBUTED_RIO_TASK_CONNECTOR_CLASS = "";
+
+ /* connectorString format:
+ * [0] -> Environment Type: Local, Remote, Distributed
+ * [1] -> Implementation: Local, Mina, HornetQ, Rio
+ * [2] -> Connector Type: Node, Directory, Task
+ * [3] -> Connector Id: <ID of the Execution, Directory or Task node>,
+ * The connector ID let us create the connector to a specific,
+ * usually remote/distributed node,directory or taskserver.
+ *
+ * examples:
+ * Local Directory Connector String: Local:Local:Directory
+ * Remote Mina Node Connector String: Remote:Mina:Node:127.0.0.1:9123
+ * Distributed Rio Directory Connector String: Distributed:Rio:Directory:<ID>
+ */
+ public static GenericNodeConnector newConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ String environmentType = connectorDetails[0];
+ if (environmentType.equals("Local")) {
+ connector = newLocalConnector(connectorString);
}
- String[] connectorDetails = connectorString.split(":");
+ if (environmentType.equals("Remote")) {
+ connector = newRemoteConnector(connectorString);
+ }
+ if (environmentType.equals("Distributed")) {
+ connector = newDistributedConnector(connectorString);
+ }
- String connectorType = connectorDetails[0];
+ return connector;
+ }
+ private static GenericNodeConnector newLocalConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ if (connectorDetails[1].equals("Local") && connectorDetails[2].equals("Node")) {
+ //TODO: add ID to the local connector (connectorString)
+ connector = newLocalNodeConnector();
+ }
+ if (connectorDetails[1].equals("Local") && connectorDetails[2].equals("Directory")) {
+ connector = newLocalDirectoryConnector();
+ }
+ if (connectorDetails[1].equals("Local") && connectorDetails[2].equals("Task")) {
+ throw new UnsupportedOperationException("We don't have a Local Task implementation! Sorry!");
+ }
- if (connectorType.equals("Distributed")) {
- String connectorBehavior = connectorDetails[1];
- String connectorId = connectorDetails[2];
- GenericNodeConnector connector = null;
+ return connector;
+ }
+ private static GenericNodeConnector newLocalNodeConnector() {
+ GenericNodeConnector connector = null;
+ try {
+ Class clazz = Class.forName(LOCAL_NODE_CONNECTOR_CLASS);
+ connector = (GenericNodeConnector) clazz.newInstance();
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return connector;
+ }
+ private static GenericNodeConnector newLocalDirectoryConnector() {
+ GenericNodeConnector connector = null;
+ try {
+ Class clazz = Class.forName(LOCAL_DIRECTORY_CONNECTOR_CLASS);
+ connector = (GenericNodeConnector) clazz.newInstance();
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return connector;
+ }
- try {
- Class clazzLocator = Class.forName("org.drools.grid.distributed.util.RioResourceLocator");
- Method locate = clazzLocator.getMethod("locateResource", String.class);
- ExecutionNodeService execNode = (ExecutionNodeService)locate.invoke(clazzLocator, connectorString);
+ private static GenericNodeConnector newRemoteConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ if (connectorDetails[1].equals("Mina") && connectorDetails[2].equals("Node")) {
+ connector = newRemoteMinaNodeConnector(connectorString);
+ }
+ if (connectorDetails[1].equals("Mina") && connectorDetails[2].equals("Directory")) {
+ connector = newRemoteMinaDirectoryConnector(connectorString);
+ }
+ if (connectorDetails[1].equals("Mina") && connectorDetails[2].equals("Task")) {
+ connector = newRemoteMinaTaskConnector(connectorString);
+ }
- Class clazz = Class.forName("org.drools.grid.distributed.DistributedRioNodeConnector");
- Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class, ExecutionNodeService.class);
- connector = (GenericNodeConnector) constructor.newInstance("node1", SystemEventListenerFactory.getSystemEventListener(),
- execNode);
+ if (connectorDetails[1].equals("HornetQ") && connectorDetails[2].equals("Node")) {
+ connector = newRemoteHornetQNodeConnector(connectorString);
+ }
+ if (connectorDetails[1].equals("HornetQ") && connectorDetails[2].equals("Directory")) {
+ connector = newRemoteHornetQDirectoryConnector(connectorString);
+ }
+ if (connectorDetails[1].equals("HornetQ") && connectorDetails[2].equals("Task")) {
+ connector = newRemoteHornetQTaskConnector(connectorString);
+ }
-
- } catch (InstantiationException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InvocationTargetException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (NoSuchMethodException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (SecurityException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- }
+ return connector;
+ }
- return connector;
+ private static GenericNodeConnector newDistributedConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ if (connectorDetails[1].equals("Rio") && connectorDetails[2].equals("Node")) {
+ connector = newDistributedRioNodeConnector(connectorString);
}
+ if (connectorDetails[1].equals("Rio") && connectorDetails[2].equals("Directory")) {
+ connector = newDistributedRioDirectoryConnector(connectorString);
+ }
+ if (connectorDetails[1].equals("Rio") && connectorDetails[2].equals("Task")) {
+ throw new UnsupportedOperationException("Not Implemented yet, we are working on it!");
+ }
+ return connector;
+ }
- if (connectorType.equals("Mina")) {
- String connectorName = connectorDetails[1];
- String connectorAddress = connectorDetails[2];
- String connectorPort = connectorDetails[3];
- GenericNodeConnector connector = null;
- try {
- Class clazz = Class.forName("org.drools.grid.remote.mina.RemoteMinaNodeConnector");
- Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
- connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
- Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+ private static GenericNodeConnector newRemoteMinaNodeConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ try {
- //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
- // Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
- } catch (InstantiationException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InvocationTargetException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (NoSuchMethodException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (SecurityException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- }
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ Class clazz = Class.forName(REMOTE_MINA_NODE_CONNECTOR_CLASS);
+ Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ connectorDetails[3],
+ Integer.valueOf(connectorDetails[4]),
+ SystemEventListenerFactory.getSystemEventListener());
- return connector;
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalArgumentException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InvocationTargetException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (NoSuchMethodException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SecurityException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
}
+ return connector;
+ }
+ private static GenericNodeConnector newRemoteMinaDirectoryConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ try {
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ Class clazz = Class.forName(REMOTE_MINA_DIRECTORY_CONNECTOR_CLASS);
+ Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ connectorDetails[3],
+ Integer.valueOf(connectorDetails[4]),
+ SystemEventListenerFactory.getSystemEventListener());
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalArgumentException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InvocationTargetException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (NoSuchMethodException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SecurityException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return connector;
+ }
- if (connectorType.equals("Local")) {
- GenericNodeConnector connector = null;
- try {
- Class clazz = Class.forName("org.drools.grid.local.LocalNodeConnector");
- connector = (GenericNodeConnector) clazz.newInstance();
- } catch (InstantiationException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (SecurityException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- }
+ private static GenericNodeConnector newRemoteMinaTaskConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ try {
- return connector;
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ Class clazz = Class.forName(REMOTE_MINA_TASK_CONNECTOR_CLASS);
+ Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ connectorDetails[3],
+ Integer.valueOf(connectorDetails[4]),
+ SystemEventListenerFactory.getSystemEventListener());
- //return new LocalNodeConnector();
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalArgumentException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InvocationTargetException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (NoSuchMethodException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SecurityException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
}
+ return connector;
+ }
- return null;
+ private static String[] getConnectorDetails(String connectorString) {
+ return connectorString.split(SEPARATOR);
}
- public static GenericNodeConnector newDirectoryConnector(String connectorString) {
- String[] connectorDetails = connectorString.split(":");
- String connectorType = connectorDetails[0];
+ private static GenericNodeConnector newRemoteHornetQNodeConnector(String connectorString) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+ private static GenericNodeConnector newRemoteHornetQDirectoryConnector(String connectorString) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+ private static GenericNodeConnector newRemoteHornetQTaskConnector(String connectorString) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
- if (connectorType.equals("Mina")) {
+ private static GenericNodeConnector newDistributedRioNodeConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ try {
- String connectorName = connectorDetails[1];
- String connectorAddress = connectorDetails[2];
- String connectorPort = connectorDetails[3];
- GenericNodeConnector connector = null;
- try {
- Class clazz = Class.forName("org.drools.grid.remote.directory.RemoteMinaDirectoryConnector");
- Constructor constructor = clazz.getConstructor(String.class, String.class, Integer.class, SystemEventListener.class);
- connector = (GenericNodeConnector) constructor.newInstance(connectorName, connectorAddress,
- Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ Class clazz = Class.forName(DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS);
+ if(!"".equals(connectorDetails[3])){
+ Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class, String.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ SystemEventListenerFactory.getSystemEventListener(),
+ connectorString);
+ }else{
+ Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ SystemEventListenerFactory.getSystemEventListener());
- //return new MinaRemoteNodeConnector(connectorName, connectorAddress,
- // Integer.valueOf(connectorPort), SystemEventListenerFactory.getSystemEventListener());
- } catch (InstantiationException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InvocationTargetException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (NoSuchMethodException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (SecurityException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
}
- return connector;
- }
- if (connectorType.equals("Local")) {
- GenericNodeConnector connector = null;
- try {
- Class clazz = Class.forName("org.drools.grid.local.LocalDirectoryConnector");
- Class clazzDirectoryNodeServiceImpl = Class.forName("org.drools.grid.local.DirectoryNodeLocalImpl");
- Constructor constructor = clazz.getConstructor(DirectoryNodeService.class);
- connector = (GenericNodeConnector) constructor.newInstance(
- (DirectoryNodeService) clazzDirectoryNodeServiceImpl.newInstance());
-
- } catch (InstantiationException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IllegalArgumentException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InvocationTargetException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (NoSuchMethodException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (SecurityException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
- }
-
- return connector;
-
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalArgumentException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InvocationTargetException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (NoSuchMethodException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SecurityException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
}
-
- return null;
+ return connector;
}
- public static GenericNodeConnector newTaskConnector(String connectorString) {
- String[] connectorDetails = connectorString.split(":");
- String connectorType = connectorDetails[0];
- String connectorName = connectorDetails[1];
- String connectorAddress = connectorDetails[2];
- String connectorPort = connectorDetails[3];
+ private static GenericNodeConnector newDistributedRioDirectoryConnector(String connectorString) {
+ GenericNodeConnector connector = null;
+ try {
+ String[] connectorDetails = getConnectorDetails(connectorString);
+ Class clazz = Class.forName(DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS);
+ if(!"".equals(connectorDetails[3])){
+ Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class, String.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ SystemEventListenerFactory.getSystemEventListener(),
+ connectorString);
+ }else{
+ Constructor constructor = clazz.getConstructor(String.class, SystemEventListener.class);
+ connector = (GenericNodeConnector) constructor.newInstance(connectorString,
+ SystemEventListenerFactory.getSystemEventListener());
+ }
-
- return null;
+ } catch (InstantiationException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalArgumentException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InvocationTargetException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (NoSuchMethodException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SecurityException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(GenericConnectorFactory.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return connector;
}
-
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DirectoryLookupProviderGridClient.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -36,7 +36,6 @@
import org.drools.grid.internal.commands.LookupCommand;
import org.drools.grid.internal.commands.RegisterCommand;
import org.drools.grid.GenericConnectorFactory;
-import org.drools.grid.NodeService.ServiceType;
/**
*
@@ -67,10 +66,11 @@
throw new IllegalArgumentException("Type is not supported for registration");
}
Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new RegisterCommand(identifier, ((StatefulKnowledgeSessionGridClient) executor).getInstanceId(), type), null, null, null, null));
-
+
for (DirectoryNode directory : connection.getDirectoryNodes()) {
try {
try {
+
directory.get(DirectoryNodeService.class).register(identifier, currentConnector.getId());
} catch (RemoteException ex) {
Logger.getLogger(DirectoryLookupProviderGridClient.class.getName()).log(Level.SEVERE, null, ex);
@@ -99,34 +99,28 @@
try {
String commandId = "client.lookup" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(),
+ Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(),
false, new KnowledgeContextResolveFromContextCommand(
- new LookupCommand(identifier, commandId), null, null, null, kresultsId));
-
+ new LookupCommand(identifier, commandId), null, null, null, kresultsId));
+
//First I need to get the correct client ExecutionNodeService with the identifier
//Look in all the DirectoryNodes
-
+
for (DirectoryNode directory : connection.getDirectoryNodes()) {
try {
-
- if(directory.get(DirectoryNodeService.class).getServiceType() == ServiceType.DISTRIBUTED){
-
- String connectorString = directory.get(DirectoryNodeService.class).lookupId(identifier);
-
- currentConnector = GenericConnectorFactory.newNodeConnector(connectorString);
-
-
- }else{
- String connectorString = directory.get(DirectoryNodeService.class).lookupId(identifier);
-
- currentConnector = GenericConnectorFactory.newNodeConnector(connectorString);
- currentConnector.connect();
+
+ String connectorString = directory.get(DirectoryNodeService.class).lookupId(identifier);
+
+ currentConnector = GenericConnectorFactory.newConnector(connectorString);
+
+ currentConnector.connect();
+
+
+ if (currentConnector != null) {
+ break;
}
- if(currentConnector != null){
- break;
- }
} catch (RemoteException ex) {
Logger.getLogger(DirectoryLookupProviderGridClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (ConnectorException ex) {
@@ -160,21 +154,8 @@
}
return executor;
}
-// public Map<String, Map<String, String>> getDirectoryMap(){
-// Map<String, Map<String, String>> directoryMap = new HashMap<String,Map<String, String>>();
-// for (DirectoryNodeService directory : gridClient.getDirectories()) {
-// try {
-// directoryMap.put(directory.getId(), directory.getDirectoryMap());
-// } catch (RemoteException ex) {
-// Logger.getLogger(DirectoryLookupProviderGridClient.class.getName()).log(Level.SEVERE, null, ex);
-// }
-//
-//
-// }
-// return directoryMap;
-//
-// }
+
public Map<String, String> getDirectoryMap() {
throw new UnsupportedOperationException("Not supported yet.");
}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedRioNodeConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedRioNodeConnector.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedRioNodeConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,120 +0,0 @@
-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.GenericConnection;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.GridConnection;
-
-public class DistributedRioNodeConnector
- implements GenericNodeConnector {
-
- protected final String name;
- protected AtomicInteger counter;
- protected ExecutionNodeService executionNodeService;
- protected SocketAddress address;
- protected SystemEventListener eventListener;
- protected GenericConnection connection;
-
- public DistributedRioNodeConnector(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;
- this.connection = new GridConnection();
-
- }
-
- public DistributedRioNodeConnector(String name,
- SystemEventListener eventListener,
- ExecutionNodeService executionNodeService) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.executionNodeService = executionNodeService;
- this.connection = new GridConnection();
-
- }
-
-
- public Message write(Message msg) throws ConnectorException, RemoteException {
- if (executionNodeService != null) {
-
-
- Message returnMessage = this.executionNodeService.write(msg);
- return returnMessage;
-
-
- }
- throw new IllegalStateException("executionNode should not be null");
- }
-
- public void write(Message msg,
- MessageResponseHandler responseHandler) {
- throw new UnsupportedOperationException();
- }
-
- public String getId() throws ConnectorException, RemoteException {
-
- return executionNodeService.getId();
-
-
- }
-
- public void setExecutionNodeService(ExecutionNodeService executionNode) {
- this.executionNodeService = executionNode;
-
-
- }
-
- public ExecutionNodeService getExecutionNodeService() {
- return executionNodeService;
- }
-
-
-
- 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 this.connection;
- }
-
- 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/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,7 +1,6 @@
package org.drools.grid.distributed;
-import org.drools.grid.ExecutionNodeService;
import java.util.Properties;
import java.util.UUID;
@@ -9,7 +8,6 @@
import org.drools.KnowledgeBaseConfiguration;
import org.drools.KnowledgeBaseFactory;
import org.drools.KnowledgeBaseFactoryService;
-import org.drools.SystemEventListenerFactory;
import org.drools.command.FinishedCommand;
import org.drools.command.NewKnowledgeBaseCommand;
@@ -35,8 +33,9 @@
this.connection = connection;
this.messageSession = new MessageSession();
- this.connector = new DistributedRioNodeConnector("client 1", SystemEventListenerFactory.getSystemEventListener(),
- ((DistributedRioNodeConnector)connector).getExecutionNodeService());
+ //this.connector = new DistributedRioNodeConnector("client 1", SystemEventListenerFactory.getSystemEventListener(),
+ // ((DistributedRioNodeConnector)connector).getExecutionNodeService());
+ this.connector = connector;
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBuilderProviderGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBuilderProviderGridClient.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBuilderProviderGridClient.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -6,12 +6,10 @@
import com.sun.tools.xjc.Options;
import org.drools.builder.JaxbConfiguration;
-import org.drools.grid.ExecutionNodeService;
import java.util.Properties;
import java.util.UUID;
import org.drools.KnowledgeBase;
-import org.drools.SystemEventListenerFactory;
import org.drools.builder.DecisionTableConfiguration;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderConfiguration;
@@ -30,14 +28,15 @@
KnowledgeBuilderFactoryService {
private MessageSession messageSession;
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
public KnowledgeBuilderProviderGridClient(GenericNodeConnector connector, GenericConnection connection) {
this.messageSession = new MessageSession();
- client = new DistributedRioNodeConnector("client 1", SystemEventListenerFactory.getSystemEventListener(),
- ((DistributedRioNodeConnector)connector).getExecutionNodeService());
+ //client = new DistributedRioNodeConnector("client 1", SystemEventListenerFactory.getSystemEventListener(),
+ // ((DistributedRioNodeConnector)connector).getExecutionNodeService());
+ this.connector = connector;
}
@@ -57,7 +56,7 @@
new NewKnowledgeBuilderCommand( null ) ) );
try {
- Object object = client.write( msg ).getPayload();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
@@ -69,7 +68,7 @@
}
return new KnowledgeBuilderGridClient( localId,
- client, messageSession );
+ connector, messageSession );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -8,6 +8,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
+import java.util.UUID;
import org.drools.KnowledgeBase;
import org.drools.command.KnowledgeContextResolveFromContextCommand;
import org.drools.command.runtime.GetKnowledgeBaseCommand;
@@ -31,7 +32,7 @@
public DirectoryNodeServiceImpl() {
executionNodes = new ArrayList<ExecutionNodeService>();
- this.id = "Distributed:Directory";
+ this.id = "Distributed:Rio:Directory"+UUID.randomUUID().toString();
}
@Override
@@ -65,7 +66,7 @@
}
}
- return GenericConnectorFactory.newNodeConnector(nodeService.getId());
+ return GenericConnectorFactory.newConnector(nodeService.getId());
}
public void setExecutionNodes(Iterable<ExecutionNodeService> executionNodes) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,9 +1,12 @@
package org.drools.distributed.directory.impl;
+import java.io.IOException;
import java.net.SocketAddress;
import java.rmi.RemoteException;
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.SystemEventListener;
@@ -16,6 +19,7 @@
import org.drools.grid.internal.MessageResponseHandler;
import org.drools.grid.GenericNodeConnector;
import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.util.RioResourceLocator;
public class DistributedRioDirectoryConnector
implements GenericNodeConnector, DirectoryNodeService {
@@ -26,6 +30,8 @@
protected SocketAddress address;
protected SystemEventListener eventListener;
protected GenericConnection connection;
+ private String directoryNodeServiceId;
+
public DistributedRioDirectoryConnector(String name,
SystemEventListener eventListener) {
if (name == null) {
@@ -48,10 +54,23 @@
this.counter = new AtomicInteger();
this.eventListener = eventListener;
this.directoryNodeService = directoryNode;
- this.connection = new GridConnection();
+ this.connection = new GridConnection();
}
+ public DistributedRioDirectoryConnector(String name,
+ SystemEventListener eventListener, String directoryNodeServiceId) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.directoryNodeServiceId = directoryNodeServiceId;
+ this.connection = new GridConnection();
+
+ }
+
@Override
public Message write(Message msg) throws ConnectorException, RemoteException {
// if (directoryNodeService != null) {
@@ -90,10 +109,24 @@
return directoryNodeService;
}
-
-
public void connect() throws ConnectorException {
- //do nothing, here we use auto discover
+ if(this.directoryNodeService == null && !"".equals(this.directoryNodeServiceId)){
+ try {
+ this.directoryNodeService = RioResourceLocator.locateDirectoryNodeById(this.directoryNodeServiceId);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }else{
+ try {
+ this.directoryNodeService = RioResourceLocator.locateDirectoryNodes().get(0);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
}
public void disconnect() throws ConnectorException {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -18,12 +18,15 @@
package org.drools.grid.distributed.util;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import net.jini.core.lookup.ServiceItem;
import net.jini.core.lookup.ServiceTemplate;
import net.jini.discovery.LookupDiscoveryManager;
import net.jini.lease.LeaseRenewalManager;
import net.jini.lookup.ServiceDiscoveryManager;
+import org.drools.grid.DirectoryNodeService;
import org.drools.grid.ExecutionNodeService;
/**
@@ -31,7 +34,7 @@
* @author salaboy
*/
public class RioResourceLocator {
- public static ExecutionNodeService locateResource(String id) throws IOException, InterruptedException{
+ public static ExecutionNodeService locateExecutionNodeById(String id) throws IOException, InterruptedException{
IDEntry[] ids = new IDEntry[]{new IDEntry(id)};
Class[] classes = new Class[]{ExecutionNodeService.class};
ServiceTemplate tmpl = new ServiceTemplate(null, classes, ids);
@@ -42,10 +45,84 @@
ServiceDiscoveryManager sdm =
new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
/* Wait no more then 10 seconds to discover the service */
- ServiceItem item = sdm.lookup(tmpl, null, 10000);
-
+ ServiceItem item = sdm.lookup(tmpl, null, 30000);
+ if(item == null){
+ throw new IllegalStateException("No Execution Node Found");
+ }
ExecutionNodeService executionNode = (ExecutionNodeService) item.service;
return executionNode;
}
+
+ public static DirectoryNodeService locateDirectoryNodeById(String id) throws IOException, InterruptedException{
+ IDEntry[] ids = new IDEntry[]{new IDEntry(id)};
+ Class[] classes = new Class[]{DirectoryNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, ids);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem item = sdm.lookup(tmpl, null, 30000);
+ if(item == null){
+ throw new IllegalStateException("No Directory Node Found");
+ }
+ DirectoryNodeService directoryNode = (DirectoryNodeService) item.service;
+
+ return directoryNode;
+ }
+
+
+
+ public static List<ExecutionNodeService> locateExecutionNodes() throws IOException, InterruptedException{
+ List<ExecutionNodeService> executionNodes = new ArrayList<ExecutionNodeService>();
+ Class[] classes = new Class[]{ExecutionNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ System.out.println("Discovering ExecutionNodeService services ...");
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
+
+
+ for (int i = 0; i < items.length; i++) {
+ if (items[i].service instanceof ExecutionNodeService) {
+ executionNodes.add((ExecutionNodeService) items[i].service);
+ }
+ }
+ return executionNodes;
+
+ }
+
+ public static List<DirectoryNodeService> locateDirectoryNodes() throws IOException, InterruptedException{
+ List<DirectoryNodeService> directoryNodes = new ArrayList<DirectoryNodeService>();
+ Class[] classes = new Class[]{DirectoryNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ System.out.println("Discovering DirectoryNodeService services ...");
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
+
+
+ for (int i = 0; i < items.length; i++) {
+
+ if (items[i].service instanceof DirectoryNodeService) {
+ directoryNodes.add((DirectoryNodeService) items[i].service);
+ }
+ }
+ return directoryNodes;
+
+ }
+
}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ExecutionNodeBaseTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ExecutionNodeBaseTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,55 +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.distributed.directory;
-
-
-import java.rmi.RemoteException;
-import junit.framework.Assert;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNode;
-import org.drools.grid.GridConnection;
-import org.junit.Test;
-/**
- *
- * @author salaboy
- */
-
-public abstract class ExecutionNodeBaseTest {
-
- protected DirectoryNodeService directory;
- protected ExecutionNode node;
- protected GridConnection connection = new GridConnection();
- public ExecutionNodeBaseTest() {
-
- }
-
-
- @Test
- public void directoryTest() throws ConnectorException, RemoteException{
- directory.register("blah","blash");
-
- Assert.assertEquals("blash", directory.lookupId("blah"));
-
-
- }
-
-
-
-
-}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/java/org/drools/distributed/directory/ITGridExecutionTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,70 +0,0 @@
-package org.drools.distributed.directory;
-
-import org.drools.grid.ConnectorException;
-import org.drools.grid.AcceptorService;
-import junit.framework.Assert;
-import net.jini.core.lookup.ServiceItem;
-import org.drools.SystemEventListenerFactory;
-import org.drools.distributed.directory.impl.DistributedRioDirectoryConnector;
-
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.distributed.DistributedRioNodeConnector;
-import org.junit.After;
-
-
-
-
-import org.junit.Before;
-import org.junit.runner.RunWith;
-import org.rioproject.test.RioTestRunner;
-import org.rioproject.test.SetTestManager;
-import org.rioproject.test.TestManager;
-
- at RunWith(RioTestRunner.class)
-public class ITGridExecutionTest extends ExecutionNodeBaseTest {
-
- AcceptorService server;
- @SetTestManager
- static TestManager testManager;
-
- @Before
- public void setUp() throws Exception {
-
- Assert.assertNotNull(testManager);
-
-//
- DirectoryNodeService directoryService = (DirectoryNodeService) testManager.waitForService(DirectoryNodeService.class);
- Assert.assertNotNull(directoryService);
-
-
- connection.addDirectoryNode(new DistributedRioDirectoryConnector("directory1",
- SystemEventListenerFactory.getSystemEventListener(),
- directoryService));
-
- ExecutionNodeService executionNode = (ExecutionNodeService) testManager.waitForService(ExecutionNodeService.class);
- ServiceItem[] nodeServiceItems = testManager.getServiceItems(ExecutionNodeService.class);
- System.out.println("ExecutionNodes Items =" + nodeServiceItems.length);
-
- for (int i = 0; i < nodeServiceItems.length; i++) {
- if (nodeServiceItems[i].service instanceof ExecutionNodeService) {
- connection.addExecutionNode(new DistributedRioNodeConnector("node"+i,
- SystemEventListenerFactory.getSystemEventListener(),
- (ExecutionNodeService) nodeServiceItems[i].service));
- }
- }
-
- //Get an execution node using the default/round robin strategy
- node = connection.getExecutionNode();
- System.out.println("ExecutionNode = "+ node);
-
- directory = connection.getDirectoryNode().get(DirectoryNodeService.class);
- System.out.println("Directory Node = "+directory);
-
-
- }
- @After
- public void tearDown() throws ConnectorException {
- connection.dispose();
- }
-}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java (from rev 34544, labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedRioNodeConnector.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,162 @@
+package org.drools.grid.distributed.impl;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.SystemEventListener;
+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.internal.MessageResponseHandler;
+import org.drools.grid.ExecutionNodeService;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.DistributedConnectionNode;
+import org.drools.grid.distributed.util.RioResourceLocator;
+
+public class DistributedRioNodeConnector
+ implements GenericNodeConnector {
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected ExecutionNodeService executionNodeService;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+ protected GenericConnection connection;
+ protected String executionNodeId;
+
+ public DistributedRioNodeConnector(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;
+ this.connection = new GridConnection();
+
+ }
+
+
+
+ public DistributedRioNodeConnector(String name,
+ SystemEventListener eventListener,
+ ExecutionNodeService executionNodeService) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.executionNodeService = executionNodeService;
+ this.connection = new GridConnection();
+
+ }
+
+ public DistributedRioNodeConnector(String name,
+ SystemEventListener eventListener,
+ String executionNodeId) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.connection = new GridConnection();
+ this.executionNodeId = executionNodeId;
+
+ }
+
+
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ if (executionNodeService != null) {
+
+
+ Message returnMessage = this.executionNodeService.write(msg);
+ return returnMessage;
+
+
+ }
+ throw new IllegalStateException("executionNode should not be null");
+ }
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getId() throws ConnectorException, RemoteException {
+
+ return executionNodeService.getId();
+
+
+ }
+
+ public void setExecutionNodeService(ExecutionNodeService executionNode) {
+ this.executionNodeService = executionNode;
+
+
+ }
+
+ public ExecutionNodeService getExecutionNodeService() {
+ return executionNodeService;
+ }
+
+
+
+ public void connect() throws ConnectorException {
+ if(this.executionNodeService != null){
+ return;
+ }
+ if( !this.executionNodeId.equals("")){
+ try {
+ this.executionNodeService = RioResourceLocator.locateExecutionNodeById(this.executionNodeId);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }else{
+ try {
+ this.executionNodeService = RioResourceLocator.locateExecutionNodes().get(0);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ }
+
+ public void disconnect() throws ConnectorException {
+ //I don't need to be disconected
+ }
+
+ public GenericConnection getConnection() {
+ return this.connection;
+ }
+
+ 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/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/ExecutionNodeServiceImpl.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -48,7 +48,7 @@
private Long instanceID;
public ExecutionNodeServiceImpl() {
- this.id = "Distributed:Node:" + UUID.randomUUID().toString();
+ this.id = "Distributed:Rio:Node:" + UUID.randomUUID().toString();
handler = new GenericMessageGridHandlerImpl(new NodeData(), SystemEventListenerFactory.getSystemEventListener());
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/util/RioResourceLocator.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -18,12 +18,16 @@
package org.drools.grid.distributed.util;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import net.jini.core.lookup.ServiceItem;
import net.jini.core.lookup.ServiceTemplate;
import net.jini.discovery.LookupDiscoveryManager;
import net.jini.lease.LeaseRenewalManager;
import net.jini.lookup.ServiceDiscoveryManager;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.DirectoryNodeService;
import org.drools.grid.ExecutionNodeService;
/**
@@ -31,7 +35,7 @@
* @author salaboy
*/
public class RioResourceLocator {
- public static ExecutionNodeService locateResource(String id) throws IOException, InterruptedException{
+ public static ExecutionNodeService locateExecutionNodeById(String id) throws IOException, InterruptedException{
IDEntry[] ids = new IDEntry[]{new IDEntry(id)};
Class[] classes = new Class[]{ExecutionNodeService.class};
ServiceTemplate tmpl = new ServiceTemplate(null, classes, ids);
@@ -42,10 +46,85 @@
ServiceDiscoveryManager sdm =
new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
/* Wait no more then 10 seconds to discover the service */
- ServiceItem item = sdm.lookup(tmpl, null, 10000);
-
+ ServiceItem item = sdm.lookup(tmpl, null, 30000);
+ if(item == null){
+ throw new IllegalStateException("No Execution Node Found");
+ }
ExecutionNodeService executionNode = (ExecutionNodeService) item.service;
return executionNode;
}
+
+ public static DirectoryNodeService locateDirectoryNodeById(String id) throws IOException, InterruptedException{
+ IDEntry[] ids = new IDEntry[]{new IDEntry(id)};
+ Class[] classes = new Class[]{DirectoryNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, ids);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem item = sdm.lookup(tmpl, null, 30000);
+ if(item == null){
+ throw new IllegalStateException("No Execution Node Found");
+ }
+ DirectoryNodeService directoryNode = (DirectoryNodeService) item.service;
+
+ return directoryNode;
+ }
+
+
+
+ public static List<ExecutionNodeService> locateExecutionNodes() throws IOException, InterruptedException, ConnectorException{
+ List<ExecutionNodeService> executionNodes = new ArrayList<ExecutionNodeService>();
+ Class[] classes = new Class[]{ExecutionNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ System.out.println("Discovering ExecutionNodeService services ...");
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
+ System.out.println("Service items.lenght"+items.length);
+
+ for (int i = 0; i < items.length; i++) {
+ if (items[i].service instanceof ExecutionNodeService) {
+ System.out.println("(ExecutionNodeService) items[i].service ->"+((ExecutionNodeService) items[i].service).getId());
+ executionNodes.add((ExecutionNodeService) items[i].service);
+ }
+ }
+ return executionNodes;
+
+ }
+
+ public static List<DirectoryNodeService> locateDirectoryNodes() throws IOException, InterruptedException{
+ List<DirectoryNodeService> directoryNodes = new ArrayList<DirectoryNodeService>();
+ Class[] classes = new Class[]{DirectoryNodeService.class};
+ ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
+ LookupDiscoveryManager ldm =
+ new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
+ null,
+ null);
+ System.out.println("Discovering DirectoryNodeService services ...");
+ ServiceDiscoveryManager sdm =
+ new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
+ /* Wait no more then 10 seconds to discover the service */
+ ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
+ System.out.println("Service items.lenght"+items.length);
+
+ for (int i = 0; i < items.length; i++) {
+
+ if (items[i].service instanceof DirectoryNodeService) {
+ directoryNodes.add((DirectoryNodeService) items[i].service);
+ }
+ }
+ return directoryNodes;
+
+ }
+
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -11,6 +11,7 @@
import org.drools.SystemEventListenerFactory;
import org.drools.distributed.directory.impl.DistributedRioDirectoryConnector;
import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.distributed.impl.DistributedRioNodeConnector;
import org.junit.After;
@@ -55,7 +56,7 @@
if (nodeServiceItems[i].service instanceof ExecutionNodeService) {
connection.addExecutionNode(new DistributedRioNodeConnector("node"+i,
SystemEventListenerFactory.getSystemEventListener(),
- (ExecutionNodeService) nodeServiceItems[i].service));
+ ((ExecutionNodeService) nodeServiceItems[i].service).getId()));
}
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -49,7 +49,7 @@
}
public String getId() throws ConnectorException {
- return "Local:Directory";
+ return "Local:Local:Directory";
}
// public DirectoryNodeService getDirectoryNodeService(){
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -53,7 +53,7 @@
}
public String getId() throws ConnectorException {
- return "Local:";
+ return "Local:Local:Node";
}
public void write(Message msg, MessageResponseHandler responseHandler) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -118,7 +118,7 @@
Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
}
- client = GenericConnectorFactory.newNodeConnector(connectorString);
+ client = GenericConnectorFactory.newConnector(connectorString);
try {
client.connect();
} catch (RemoteException ex) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -77,7 +77,7 @@
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- return GenericConnectorFactory.newNodeConnector((String)resultcmd.getArguments().get(0));
+ return GenericConnectorFactory.newConnector((String)resultcmd.getArguments().get(0));
}
public void registerKBase(String kbaseId, String resourceId) throws ConnectorException {
@@ -99,14 +99,14 @@
write(msg, handler);
SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
String connectorString = (String)resultcmd.getArguments().get(0);
- GenericNodeConnector connector = GenericConnectorFactory.newNodeConnector(connectorString);
+ GenericNodeConnector currentConnector = GenericConnectorFactory.newConnector(connectorString);
try {
- connector.connect();
+ currentConnector.connect();
} catch (RemoteException ex) {
Logger.getLogger(DirectoryNodeRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
}
- return new KnowledgeBaseRemoteClient(kbaseId, connector, new MessageSession() );
+ return new KnowledgeBaseRemoteClient(kbaseId, currentConnector, new MessageSession() );
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,7 +1,6 @@
package org.drools.grid.remote.directory;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/RemoteMinaDirectoryConnector.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -109,7 +109,7 @@
public String getId() {
String hostName = ((InetSocketAddress)this.address).getHostName();
int hostPort = ((InetSocketAddress)this.address).getPort();
- return "Mina:"+this.providerName+":"+hostName+":"+hostPort;
+ return "Remote:Mina:Directory:"+hostName+":"+hostPort;
}
public int getSessionId() {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/pom.xml 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/pom.xml 2010-08-06 03:12:52 UTC (rev 34563)
@@ -22,35 +22,25 @@
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-api</artifactId>
- <version>5.2.0.SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-local</artifactId>
- <version>5.2.0.SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-remote-api</artifactId>
- <version>5.2.0.SNAPSHOT</version>
<type>jar</type>
</dependency>
+
<dependency>
<groupId>org.drools</groupId>
- <artifactId>drools-grid-remote-dir-mina</artifactId>
- <version>5.2.0.SNAPSHOT</version>
- <type>jar</type>
- </dependency>
-
- <dependency>
- <groupId>org.drools</groupId>
<artifactId>drools-grid-task</artifactId>
- <version>5.2.0.SNAPSHOT</version>
<type>jar</type>
</dependency>
@@ -58,22 +48,8 @@
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-distributed-api</artifactId>
- <version>5.2.0.SNAPSHOT</version>
<type>jar</type>
</dependency>
- <!-- Rio Dependencies -->
- <!--dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-grid-distributed-rio</artifactId>
- <version>5.2.0.SNAPSHOT</version>
- <type>jar</type>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-grid-distributed-dir-rio</artifactId>
- <version>5.2.0.SNAPSHOT</version>
- <type>jar</type>
- </dependency-->
<!-- Test deps -->
<!-- HSQLDB -->
@@ -86,9 +62,15 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.6</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-grid-remote-dir-mina</artifactId>
+ <type>jar</type>
+ <scope>test</scope>
+ </dependency>
<!-- RIO Test framework -->
<!--dependency>
<groupId>org.rioproject</groupId>
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceConfiguration.java (from rev 34502, labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceView.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceConfiguration.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,14 @@
+package org.drools.grid.services.configuration;
+
+
+public class DirectoryInstanceConfiguration extends GridResourceConfiguration {
+
+ public DirectoryInstanceConfiguration() {
+ super();
+ }
+
+ public DirectoryInstanceConfiguration(String name, GenericProvider provider) {
+ super(name, provider);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceView.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceView.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/DirectoryInstanceView.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,14 +0,0 @@
-package org.drools.grid.services.configuration;
-
-
-public class DirectoryInstanceView extends GridResourceView {
-
- public DirectoryInstanceView() {
- super();
- }
-
- public DirectoryInstanceView(String name, GenericProvider provider) {
- super(name, provider);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentConfiguration.java (from rev 34502, labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentView.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentConfiguration.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,15 @@
+package org.drools.grid.services.configuration;
+
+
+
+public class ExecutionEnvironmentConfiguration extends GridResourceConfiguration {
+
+ public ExecutionEnvironmentConfiguration() {
+ super();
+ }
+
+ public ExecutionEnvironmentConfiguration(String name, GenericProvider provider) {
+ super(name, provider);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentView.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentView.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/ExecutionEnvironmentView.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,15 +0,0 @@
-package org.drools.grid.services.configuration;
-
-
-
-public class ExecutionEnvironmentView extends GridResourceView {
-
- public ExecutionEnvironmentView() {
- super();
- }
-
- public ExecutionEnvironmentView(String name, GenericProvider provider) {
- super(name, provider);
- }
-
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GenericProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GenericProvider.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GenericProvider.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,15 +1,20 @@
package org.drools.grid.services.configuration;
import java.io.Serializable;
+import org.drools.grid.GenericNodeConnector;
/**
* @author salaboy
*/
-public abstract class GenericProvider implements Serializable{
- public abstract ProviderType getProviderType();
+public interface GenericProvider<T> extends Serializable{
- public abstract String getId();
+ ProviderType getProviderType();
+
+ GenericNodeConnector getConnector(String connectorString);
+
+ String getId();
+
}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceConfiguration.java (from rev 34502, labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceView.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceConfiguration.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,33 @@
+package org.drools.grid.services.configuration;
+
+import java.io.Serializable;
+
+
+public abstract class GridResourceConfiguration implements Serializable{
+
+ private String name;
+ private GenericProvider provider;
+
+ public GridResourceConfiguration() { }
+
+ public GridResourceConfiguration(String name, GenericProvider provider) {
+ this.name = name;
+ this.provider = provider;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setProvider(GenericProvider provider) {
+ this.provider = provider;
+ }
+
+ public GenericProvider getProvider() {
+ return provider;
+ }
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceView.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceView.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridResourceView.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,33 +0,0 @@
-package org.drools.grid.services.configuration;
-
-import java.io.Serializable;
-
-
-public abstract class GridResourceView implements Serializable{
-
- private String name;
- private GenericProvider provider;
-
- public GridResourceView() { }
-
- public GridResourceView(String name, GenericProvider provider) {
- this.name = name;
- this.provider = provider;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setProvider(GenericProvider provider) {
- this.provider = provider;
- }
-
- public GenericProvider getProvider() {
- return provider;
- }
-}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyConfiguration.java (from rev 34502, labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyView.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyConfiguration.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,84 @@
+package org.drools.grid.services.configuration;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+public class GridTopologyConfiguration implements Serializable{
+
+ private String name;
+ private Map<String, ExecutionEnvironmentConfiguration> executionEnvironments = new HashMap<String, ExecutionEnvironmentConfiguration>();
+ private Map<String, DirectoryInstanceConfiguration> directoryInstances = new HashMap<String, DirectoryInstanceConfiguration>();
+ private Map<String, TaskServerInstanceConfiguration> taskServerInstances = new HashMap<String, TaskServerInstanceConfiguration>();
+
+ public GridTopologyConfiguration() { }
+
+ public GridTopologyConfiguration(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Collection<ExecutionEnvironmentConfiguration> getExecutionEnvironments() {
+ return Collections.unmodifiableCollection(executionEnvironments.values());
+ }
+
+ public Collection<DirectoryInstanceConfiguration> getDirectoryInstances() {
+ return Collections.unmodifiableCollection(directoryInstances.values());
+ }
+
+ public Collection<TaskServerInstanceConfiguration> getTaskServers(){
+ return Collections.unmodifiableCollection(taskServerInstances.values());
+ }
+
+ public void addExecutionEnvironment(ExecutionEnvironmentConfiguration newExecutionEnvironment) {
+ String newGridResourceName = newExecutionEnvironment.getName();
+ checkUniqueName(newGridResourceName, directoryInstances, taskServerInstances);
+ executionEnvironments.put(newGridResourceName, newExecutionEnvironment);
+ }
+
+ public void addDirectoryInstance(DirectoryInstanceConfiguration newDirectoryInstance){
+ String newGridResourceName = newDirectoryInstance.getName();
+ checkUniqueName(newGridResourceName, executionEnvironments, taskServerInstances);
+ directoryInstances.put(newGridResourceName, newDirectoryInstance);
+ }
+
+ public void addTaskServerInstance(TaskServerInstanceConfiguration newTaskServerInstance){
+ String newGridResourceName = newTaskServerInstance.getName();
+ checkUniqueName(newGridResourceName, executionEnvironments, directoryInstances);
+ taskServerInstances.put(newGridResourceName, newTaskServerInstance);
+ }
+
+ public ExecutionEnvironmentConfiguration getExecutionEnvironment(String name){
+ return executionEnvironments.get(name);
+ }
+
+ public DirectoryInstanceConfiguration getDirectoryInstance(String name){
+ return directoryInstances.get(name);
+ }
+
+ public TaskServerInstanceConfiguration getTaskServerInstance(String name) {
+ return taskServerInstances.get(name);
+ }
+
+ public void removeResource(String name){
+ boolean removed = executionEnvironments.remove(name) != null;
+ removed |= directoryInstances.remove(name) != null;
+ removed |= taskServerInstances.remove(name) != null;
+ }
+
+ private void checkUniqueName(String newGridResourceName,
+ Map<String, ? extends GridResourceConfiguration> firstResources,
+ Map<String, ? extends GridResourceConfiguration> secondResources) {
+ if(null != firstResources.get(newGridResourceName) || null != secondResources.get(newGridResourceName))
+ throw new IllegalArgumentException("Existing resource with name: " + newGridResourceName);
+ }
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyView.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyView.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/GridTopologyView.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,84 +0,0 @@
-package org.drools.grid.services.configuration;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-public class GridTopologyView implements Serializable{
-
- private String name;
- private Map<String, ExecutionEnvironmentView> executionEnvironments = new HashMap<String, ExecutionEnvironmentView>();
- private Map<String, DirectoryInstanceView> directoryInstances = new HashMap<String, DirectoryInstanceView>();
- private Map<String, TaskServerInstanceView> taskServerInstances = new HashMap<String, TaskServerInstanceView>();
-
- public GridTopologyView() { }
-
- public GridTopologyView(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Collection<ExecutionEnvironmentView> getExecutionEnvironments() {
- return Collections.unmodifiableCollection(executionEnvironments.values());
- }
-
- public Collection<DirectoryInstanceView> getDirectoryInstances() {
- return Collections.unmodifiableCollection(directoryInstances.values());
- }
-
- public Collection<TaskServerInstanceView> getTaskServers(){
- return Collections.unmodifiableCollection(taskServerInstances.values());
- }
-
- public void addExecutionEnvironment(ExecutionEnvironmentView newExecutionEnvironment) {
- String newGridResourceName = newExecutionEnvironment.getName();
- checkUniqueName(newGridResourceName, directoryInstances, taskServerInstances);
- executionEnvironments.put(newGridResourceName, newExecutionEnvironment);
- }
-
- public void addDirectoryInstance(DirectoryInstanceView newDirectoryInstance){
- String newGridResourceName = newDirectoryInstance.getName();
- checkUniqueName(newGridResourceName, executionEnvironments, taskServerInstances);
- directoryInstances.put(newGridResourceName, newDirectoryInstance);
- }
-
- public void addTaskServerInstance(TaskServerInstanceView newTaskServerInstance){
- String newGridResourceName = newTaskServerInstance.getName();
- checkUniqueName(newGridResourceName, executionEnvironments, directoryInstances);
- taskServerInstances.put(newGridResourceName, newTaskServerInstance);
- }
-
- public ExecutionEnvironmentView getExecutionEnvironment(String name){
- return executionEnvironments.get(name);
- }
-
- public DirectoryInstanceView getDirectoryInstance(String name){
- return directoryInstances.get(name);
- }
-
- public TaskServerInstanceView getTaskServerInstance(String name) {
- return taskServerInstances.get(name);
- }
-
- public void removeResource(String name){
- boolean removed = executionEnvironments.remove(name) != null;
- removed |= directoryInstances.remove(name) != null;
- removed |= taskServerInstances.remove(name) != null;
- }
-
- private void checkUniqueName(String newGridResourceName,
- Map<String, ? extends GridResourceView> firstResources,
- Map<String, ? extends GridResourceView> secondResources) {
- if(null != firstResources.get(newGridResourceName) || null != secondResources.get(newGridResourceName))
- throw new IllegalArgumentException("Existing resource with name: " + newGridResourceName);
- }
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/LocalProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/LocalProvider.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/LocalProvider.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -16,23 +16,30 @@
*/
package org.drools.grid.services.configuration;
+import org.drools.grid.GenericConnectorFactory;
+import org.drools.grid.GenericNodeConnector;
/**
*
* @author salaboy
*/
-public class LocalProvider extends GenericProvider {
+public class LocalProvider implements GenericProvider {
+
+
public LocalProvider() {
}
- @Override
public String getId() {
return "LocalProvider:";
}
- @Override
public ProviderType getProviderType() {
return ProviderType.Local;
}
+
+ public GenericNodeConnector getConnector(String connectorString) {
+ return GenericConnectorFactory.newConnector(connectorString);
+
+ }
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/MinaProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/MinaProvider.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/MinaProvider.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,18 +1,19 @@
package org.drools.grid.services.configuration;
+import org.drools.grid.GenericConnectorFactory;
+import org.drools.grid.GenericNodeConnector;
-
-
/**
* @author salaboy
*/
-public class MinaProvider extends GenericProvider {
-
+public class MinaProvider implements GenericProvider {
+
private String providerAddress;
private int providerPort;
- public MinaProvider() { }
-
+ public MinaProvider() {
+ }
+
public MinaProvider(String providerAddress, int providerPort) {
this.providerAddress = providerAddress;
this.providerPort = providerPort;
@@ -26,21 +27,26 @@
return providerPort;
}
- public void setProviderAddress(String providerAddress) {
- this.providerAddress = providerAddress;
- }
+ public void setProviderAddress(String providerAddress) {
+ this.providerAddress = providerAddress;
+ }
- public void setProviderPort(int providerPort) {
- this.providerPort = providerPort;
- }
+ public void setProviderPort(int providerPort) {
+ this.providerPort = providerPort;
+ }
- @Override
- public String getId() {
- return "MinaProvider:"+providerAddress+":"+providerPort;
- }
-
- @Override
- public ProviderType getProviderType() {
- return ProviderType.RemoteMina;
- }
+ public String getId() {
+ return "MinaProvider:" + providerAddress + ":" + providerPort;
+ }
+
+ public ProviderType getProviderType() {
+ return ProviderType.RemoteMina;
+ }
+
+ public GenericNodeConnector getConnector(String connectorString){
+ return GenericConnectorFactory
+ .newConnector(connectorString+":"+this.getProviderAddress()+":"+this.getProviderPort());
+
+
+ }
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/RioProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/RioProvider.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/RioProvider.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -17,6 +17,8 @@
package org.drools.grid.services.configuration;
import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
//import net.jini.core.lookup.ServiceItem;
@@ -24,43 +26,48 @@
//import net.jini.discovery.LookupDiscoveryManager;
//import net.jini.lease.LeaseRenewalManager;
//import net.jini.lookup.ServiceDiscoveryManager;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.ExecutionNodeService;
+import org.drools.grid.GenericConnectorFactory;
+import org.drools.grid.GenericNodeConnector;
/**
*
* @author salaboy
*/
-public class RioProvider extends GenericProvider {
+public class RioProvider implements GenericProvider {
private List<ExecutionNodeService> executionNodes;
private List<DirectoryNodeService> directoryNodes;
- public RioProvider(List<ExecutionNodeService> executionNodes, List<DirectoryNodeService> directoryNodes) {
- this.executionNodes = executionNodes;
- this.directoryNodes = directoryNodes;
- }
+
public RioProvider() {
this.executionNodes = new ArrayList<ExecutionNodeService>();
this.directoryNodes = new ArrayList<DirectoryNodeService>();
}
- @Override
+
public String getId() {
return "RioProvider:";
}
- @Override
+
public ProviderType getProviderType() {
return ProviderType.DistributedRio;
}
public ExecutionNodeService getExecutionNode() {
+ //Need a strategy
return executionNodes.get(0);
}
public DirectoryNodeService getDirectoryNode() {
+ //Need a strategy
return directoryNodes.get(0);
}
@@ -72,49 +79,15 @@
return directoryNodes;
}
- public void lookupExecutionNodeServices() throws IOException, InterruptedException {
- throw new UnsupportedOperationException("Uncomment RIO DEPS and this method!");
-// Class[] classes = new Class[]{ExecutionNodeService.class};
-// ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
-// LookupDiscoveryManager ldm =
-// new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
-// null,
-// null);
-// System.out.println("Discovering ExecutionNodeService services ...");
-// ServiceDiscoveryManager sdm =
-// new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
-// /* Wait no more then 10 seconds to discover the service */
-// ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
-// System.out.println("Service items.lenght"+items.length);
-//
-// for (int i = 0; i < items.length; i++) {
-// if (items[i].service instanceof ExecutionNodeService) {
-// executionNodes.add((ExecutionNodeService) items[i].service);
-// }
-// }
- }
- public void lookupDirectoryNodeServices() throws IOException, InterruptedException {
- throw new UnsupportedOperationException("Uncomment RIO DEPS and this method!");
-// Class[] classes = new Class[]{DirectoryNodeService.class};
-// ServiceTemplate tmpl = new ServiceTemplate(null, classes, null);
-// LookupDiscoveryManager ldm =
-// new LookupDiscoveryManager(LookupDiscoveryManager.ALL_GROUPS,
-// null,
-// null);
-// System.out.println("Discovering DirectoryNodeService services ...");
-// ServiceDiscoveryManager sdm =
-// new ServiceDiscoveryManager(ldm, new LeaseRenewalManager());
-// /* Wait no more then 10 seconds to discover the service */
-// ServiceItem[] items = sdm.lookup(tmpl, 1,100, null, 30000);
-// System.out.println("Service items.lenght"+items.length);
-//
-// for (int i = 0; i < items.length; i++) {
-//
-// if (items[i].service instanceof DirectoryNodeService) {
-// directoryNodes.add((DirectoryNodeService) items[i].service);
-// }
-// }
+
+
+ public GenericNodeConnector getConnector(String connectorString) {
+
+ return GenericConnectorFactory
+ .newConnector(connectorString);
+
+
}
}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceConfiguration.java (from rev 34502, labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceView.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceConfiguration.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -0,0 +1,14 @@
+package org.drools.grid.services.configuration;
+
+
+public class TaskServerInstanceConfiguration extends GridResourceConfiguration {
+
+ public TaskServerInstanceConfiguration() {
+ super();
+ }
+
+ public TaskServerInstanceConfiguration(String name, GenericProvider provider) {
+ super(name, provider);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceView.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceView.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/configuration/TaskServerInstanceView.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,14 +0,0 @@
-package org.drools.grid.services.configuration;
-
-
-public class TaskServerInstanceView extends GridResourceView {
-
- public TaskServerInstanceView() {
- super();
- }
-
- public TaskServerInstanceView(String name, GenericProvider provider) {
- super(name, provider);
- }
-
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/DirectoryInstanceFactory.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -16,16 +16,10 @@
*/
package org.drools.grid.services.factory;
-import java.io.IOException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.SystemEventListenerFactory;
-//import org.drools.distributed.directory.impl.DistributedRioDirectoryConnector;
-import org.drools.grid.local.LocalDirectoryConnector;
-import org.drools.grid.remote.directory.RemoteMinaDirectoryConnector;
import org.drools.grid.services.DirectoryInstance;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
@@ -46,32 +40,22 @@
this.name = directoryInstanceName;
}
- public DirectoryInstance onLocalProvider() {
- return new DirectoryInstance(name, new LocalDirectoryConnector());
+ public DirectoryInstance onLocalProvider(LocalProvider provider) {
+ return new DirectoryInstance(name,
+ //provider.getConnector("org.drools.grid.local.LocalDirectoryConnector"));
+ provider.getConnector("Local:Local:Directory"));
}
public DirectoryInstance onMinaProvider(MinaProvider provider) {
return new DirectoryInstance(name,
- new RemoteMinaDirectoryConnector(name,
- ((MinaProvider) provider).getProviderAddress(),
- ((MinaProvider) provider).getProviderPort(),
- SystemEventListenerFactory.getSystemEventListener()));
+ //provider.getConnector("org.drools.grid.remote.directory.RemoteMinaDirectoryConnector"));
+ provider.getConnector("Remote:Mina:Directory"));
}
- public DirectoryInstance onRioProvider(RioProvider rioProvider) {
- throw new UnsupportedOperationException("Uncomment RIO DEPS and this method!");
-// try {
-// rioProvider.lookupDirectoryNodeServices();
-// } catch (IOException ex) {
-// Logger.getLogger(ExecutionEnvironmentFactory.class.getName()).log(Level.SEVERE, null, ex);
-// } catch (InterruptedException ex) {
-// Logger.getLogger(ExecutionEnvironmentFactory.class.getName()).log(Level.SEVERE, null, ex);
-// }
-// return new DirectoryInstance(name,
-// new DistributedRioDirectoryConnector(name,
-// SystemEventListenerFactory.getSystemEventListener(),
-// rioProvider.getDirectoryNode()));
-
+ public DirectoryInstance onRioProvider(RioProvider provider) {
+ return new DirectoryInstance(name,
+ //provider.getConnector("org.drools.distributed.directory.impl.DistributedRioDirectoryConnector"));
+ provider.getConnector("Distributed:Rio:Directory"));
}
public DirectoryInstance onHornetQProvider() {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/ExecutionEnvironmentFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/ExecutionEnvironmentFactory.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/ExecutionEnvironmentFactory.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -19,12 +19,11 @@
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
-import org.drools.SystemEventListenerFactory;
-import org.drools.grid.distributed.DistributedRioNodeConnector;
-import org.drools.grid.local.LocalNodeConnector;
-import org.drools.grid.remote.mina.RemoteMinaNodeConnector;
+
+
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
@@ -45,30 +44,23 @@
this.name = executionEnvironmentName;
}
- public ExecutionEnvironment onLocalProvider() {
- return new ExecutionEnvironment(name, new LocalNodeConnector());
+ public ExecutionEnvironment onLocalProvider(LocalProvider provider) {
+ return new ExecutionEnvironment(name,
+ //provider.getConnector("org.drools.grid.local.LocalNodeConnector"));
+ provider.getConnector("Local:Local:Node"));
}
public ExecutionEnvironment onMinaProvider(MinaProvider provider) {
return new ExecutionEnvironment(name,
- new RemoteMinaNodeConnector(name,
- provider.getProviderAddress(),
- provider.getProviderPort(),
- SystemEventListenerFactory.getSystemEventListener()));
+ //provider.getConnector("org.drools.grid.remote.mina.RemoteMinaNodeConnector"));
+ provider.getConnector("Remote:Mina:Node"));
}
- public ExecutionEnvironment onRioProvider(RioProvider rioProvider) {
- try {
- rioProvider.lookupExecutionNodeServices();
- } catch (IOException ex) {
- Logger.getLogger(ExecutionEnvironmentFactory.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(ExecutionEnvironmentFactory.class.getName()).log(Level.SEVERE, null, ex);
- }
+ public ExecutionEnvironment onRioProvider(RioProvider provider) {
+
return new ExecutionEnvironment(name,
- new DistributedRioNodeConnector(name,
- SystemEventListenerFactory.getSystemEventListener(),
- rioProvider.getExecutionNode()));
+ //provider.getConnector("org.drools.grid.distributed.DistributedRioNodeConnector"));
+ provider.getConnector("Distributed:Rio:Node"));
}
public ExecutionEnvironment onHornetQProvider() {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerBuilder.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerBuilder.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,11 +1,12 @@
package org.drools.grid.services.factory;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
public interface GenericProviderContainerBuilder<T> {
- T onLocalProvider();
+ T onLocalProvider(LocalProvider provider);
T onMinaProvider(MinaProvider provider);
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerFactoryHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerFactoryHelper.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GenericProviderContainerFactoryHelper.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,6 +1,7 @@
package org.drools.grid.services.factory;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
@@ -9,7 +10,7 @@
public static <T> T doOnGenericProvider(GenericProvider provider, GenericProviderContainerBuilder<T> builder){
switch (provider.getProviderType()){
case Local: {
- return builder.onLocalProvider();
+ return builder.onLocalProvider((LocalProvider)provider);
}
case RemoteMina: {
return builder.onMinaProvider((MinaProvider)provider);
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GridTopologyFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GridTopologyFactory.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/GridTopologyFactory.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -1,22 +1,22 @@
package org.drools.grid.services.factory;
import org.drools.grid.services.GridTopology;
-import org.drools.grid.services.configuration.DirectoryInstanceView;
-import org.drools.grid.services.configuration.ExecutionEnvironmentView;
-import org.drools.grid.services.configuration.GridTopologyView;
-import org.drools.grid.services.configuration.TaskServerInstanceView;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
+import org.drools.grid.services.configuration.TaskServerInstanceConfiguration;
public class GridTopologyFactory {
- public static GridTopology build(GridTopologyView gridConfiguration){
+ public static GridTopology build(GridTopologyConfiguration gridConfiguration){
GridTopology topology = new GridTopology(gridConfiguration.getName());
- for (DirectoryInstanceView directoryInstanceView : gridConfiguration.getDirectoryInstances()) {
+ for (DirectoryInstanceConfiguration directoryInstanceView : gridConfiguration.getDirectoryInstances()) {
topology.registerDirectoryInstance(directoryInstanceView.getName(), directoryInstanceView.getProvider());
}
- for (ExecutionEnvironmentView executionEnvironmentView : gridConfiguration.getExecutionEnvironments()) {
+ for (ExecutionEnvironmentConfiguration executionEnvironmentView : gridConfiguration.getExecutionEnvironments()) {
topology.registerExecutionEnvironment(executionEnvironmentView.getName(), executionEnvironmentView.getProvider());
}
- for (TaskServerInstanceView taskServerInstanceView : gridConfiguration.getTaskServers()) {
+ for (TaskServerInstanceConfiguration taskServerInstanceView : gridConfiguration.getTaskServers()) {
topology.registerTaskServerInstance(taskServerInstanceView.getName(), taskServerInstanceView.getProvider());
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/TaskServerInstanceFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/TaskServerInstanceFactory.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/factory/TaskServerInstanceFactory.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -19,6 +19,7 @@
import org.drools.SystemEventListenerFactory;
import org.drools.grid.services.TaskServerInstance;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
import org.drools.grid.task.RemoteMinaHumanTaskConnector;
@@ -41,7 +42,7 @@
throw new UnsupportedOperationException("We don't have a HortnetQ implementation for the Task Service. Yet!");
}
- public TaskServerInstance onLocalProvider() {
+ public TaskServerInstance onLocalProvider(LocalProvider provider) {
throw new UnsupportedOperationException("We don't have a local implementation for the Task Service. Yet!");
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -12,20 +12,23 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.SystemEventListenerFactory;
-import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.builder.ResourceType;
import org.drools.grid.ConnectorException;
import org.drools.grid.ExecutionNode;
-import org.drools.grid.GenericNodeConnector;
import org.drools.grid.internal.GenericMessageHandlerImpl;
import org.drools.grid.internal.NodeData;
import org.drools.grid.remote.mina.MinaAcceptor;
import org.drools.grid.remote.mina.MinaIoHandler;
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.drools.grid.services.strategies.RandomEnvironmentSelectionStrategy;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
@@ -94,19 +97,14 @@
@Test
public void singleMinaProvider() throws ConnectorException, RemoteException, RemoteException, RemoteException, RemoteException {
- //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
- //will be used for a specific situation/use case.
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addExecutionEnvironment(
+ new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv1",new MinaProvider("127.0.0.1", 9123)));
- //The Execution Environment Topology will contain the Runtime state, persistent in time to be able to restore the
- //topology in case of failure or restarting
- grid = new GridTopology("MyCompanyTopology");
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
- //Create the provider
- MinaProvider provider = new MinaProvider("127.0.0.1", 9123);
- //Register the provider into the topology
- grid.registerExecutionEnvironment("MyMinaExecutionEnv1", provider);
-
+ Assert.assertNotNull(grid);
+
//Then we can get the registered Execution Environments by Name
ExecutionEnvironment ee = grid.getExecutionEnvironment("MyMinaExecutionEnv1");
@@ -168,27 +166,16 @@
@Test
public void multiMinaProvider() throws ConnectorException {
- //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
- //will be used for a specific situation/use case.
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addExecutionEnvironment(
+ new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv1",new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration.addExecutionEnvironment(
+ new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv2",new MinaProvider("127.0.0.1", 9124)));
- //The Execution Environment Topology will contain the Runtime state, persistent in time to be able to restore the
- //topology in case of failure or restarting
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
- grid = new GridTopology("MyCompanyTopology");
+ Assert.assertNotNull(grid);
-
- //Create the provider
- MinaProvider provider1 = new MinaProvider("127.0.0.1", 9123);
- //Register the provider into the topology
- grid.registerExecutionEnvironment("MyMinaExecutionEnv1", provider1);
-
-
- //Create the provider
- MinaProvider provider2 = new MinaProvider("127.0.0.1", 9124);
- //Register the provider into the topology
- grid.registerExecutionEnvironment("MyMinaExecutionEnv2", provider2);
-
//Then we can get the registered Execution Environments by Name
ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new RandomEnvironmentSelectionStrategy());
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ITGridExecutionTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ITGridExecutionTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -14,40 +14,25 @@
* limitations under the License.
* under the License.
*/
-
package org.drools.services;
import java.io.IOException;
import org.junit.Assert;
-import org.drools.grid.services.configuration.GenericProvider;
import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.List;
-import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.builder.ResourceType;
-import org.drools.grid.AcceptorService;
import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNode;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
-import org.drools.grid.services.configuration.LocalProvider;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
import org.drools.grid.services.configuration.RioProvider;
-import org.drools.grid.services.strategies.ExecutionEnvByPrioritySelectionStrategy;
-import org.drools.io.ResourceFactory;
-import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.junit.runner.RunWith;
//import net.jini.core.lookup.ServiceItem;
//import org.rioproject.gnostic.Gnostic;
//import org.rioproject.sla.RuleMap;
@@ -62,13 +47,14 @@
// @RunWith(RioTestRunner.class)
public class ITGridExecutionTest {
+ private GridTopology grid;
// AcceptorService server;
// @SetTestManager
// static TestManager testManager;
// private GridTopology grid;
// private List<ExecutionNodeService> executionNodes = new ArrayList<ExecutionNodeService>();
// private List<DirectoryNodeService> directoryNodes = new ArrayList<DirectoryNodeService>();
-
+
public ITGridExecutionTest() {
}
@@ -105,7 +91,6 @@
// executionNodes.add((ExecutionNodeService) nodeServiceItems[i].service);
// }
// }
-
}
@After
@@ -113,25 +98,29 @@
// System.out.println("Disconecting all clients");
// grid.dispose();
//
-
}
+
@Test
- public void doNothing(){}
-
- @Test
- public void rioProviderTest() throws ConnectorException, RemoteException {
-// grid = new GridTopology("MyBusinessUnit");
+ public void doNothing() {
+ }
+
+ @Test
+ public void rioProviderTest() throws ConnectorException, RemoteException {
+
+// GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+// gridTopologyConfiguration.addExecutionEnvironment(
+// new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv1", new RioProvider()));
+// gridTopologyConfiguration.addDirectoryInstance(
+// new DirectoryInstanceConfiguration("MyMinaExecutionEnv2", new RioProvider()));
//
+// grid = GridTopologyFactory.build(gridTopologyConfiguration);
//
-// GenericProvider rioProvider = new RioProvider();
-// GenericProvider rioDirProvider = new RioProvider();
+// Assert.assertNotNull(grid);
+
+
//
//
-// grid.registerExecutionEnvironment("MyRioEnv", rioProvider);
-// grid.registerDirectoryInstance("MyRioDir", rioDirProvider);
//
-//
-//
// ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
// Assert.assertNotNull(ee);
// System.out.println("EE Name = "+ee.getName());
@@ -183,8 +172,7 @@
- }
-
+ }
// private void waitForRule(Gnostic g, String rule) {
// Throwable thrown = null;
// long t0 = System.currentTimeMillis();
@@ -218,5 +206,4 @@
//
// }
// }
-
-}
\ No newline at end of file
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -14,13 +14,11 @@
* limitations under the License.
* under the License.
*/
-
package org.drools.services;
import java.rmi.RemoteException;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.builder.ResourceType;
@@ -30,8 +28,13 @@
import org.drools.grid.services.DirectoryInstance;
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
import org.drools.grid.services.configuration.LocalProvider;
+import org.drools.grid.services.configuration.MinaProvider;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
import org.drools.grid.services.strategies.ExecutionEnvByPrioritySelectionStrategy;
import org.drools.io.ResourceFactory;
@@ -48,6 +51,8 @@
*/
public class RegisterDirectoryTest {
+ private GridTopology grid;
+
public RegisterDirectoryTest() {
}
@@ -67,93 +72,107 @@
public void tearDown() {
}
-
- @Test
- public void directoryLocalTest() throws ConnectorException, RemoteException {
- System.out.println("First Test!!");
- GridTopology grid = new GridTopology("MyBusinessUnit");
- GenericProvider localDirProvider = new LocalProvider();
- GenericProvider localEnvProvider = new LocalProvider();
+ @Test
+ public void directoryLocalTest() throws ConnectorException, RemoteException {
- grid.registerDirectoryInstance("MyLocalDir", localDirProvider);
- grid.registerExecutionEnvironment("MyLocalEnv", localEnvProvider);
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+ Assert.assertNotNull(grid);
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull("Directory Instance null", directory);
- DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);;
+ DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);
+
Assert.assertNotNull("Dir Null", dir);
Assert.assertEquals(2, dir.getExecutorsMap().size());
grid.dispose();
- }
+ }
- @Test
- public void multiDirectoryLocalTest() throws ConnectorException, RemoteException {
-
- GridTopology grid = new GridTopology("MyBusinessUnit");
- GenericProvider localDirProvider = new LocalProvider();
- GenericProvider localDirProvider2 = new LocalProvider();
- GenericProvider localEnvProvider = new LocalProvider();
- GenericProvider localEnvProvider2 = new LocalProvider();
+ @Test
+ public void multiDirectoryLocalTest() throws ConnectorException, RemoteException {
- grid.registerDirectoryInstance("MyLocalDir", localDirProvider);
- grid.registerDirectoryInstance("MyLocalDir2", localDirProvider2);
- grid.registerExecutionEnvironment("MyLocalEnv", localEnvProvider);
- grid.registerExecutionEnvironment("MyLocalEnv2", localEnvProvider2);
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir2", new LocalProvider()));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv2", new LocalProvider()));
+
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+
+
+ Assert.assertNotNull(grid);
+
+
+
+
//DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
DirectoryInstance directory = grid.getDirectoryInstance("MyLocalDir");
- Assert.assertNotNull("DirInstance is null!",directory);
+ Assert.assertNotNull("DirInstance is null!", directory);
- DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);;
- Assert.assertNotNull("Dir is null!",dir);
+ DirectoryNodeService dir = directory.getDirectoryService().get(DirectoryNodeService.class);
+ ;
+ Assert.assertNotNull("Dir is null!", dir);
//This assertion is not deterministic
//Assert.assertEquals(4, dir.getExecutorsMap().size());
DirectoryInstance directory2 = grid.getDirectoryInstance("MyLocalDir2");
- Assert.assertNotNull("DirInstance 2 is null!",directory2);
+ Assert.assertNotNull("DirInstance 2 is null!", directory2);
- DirectoryNodeService dir2 = directory2.getDirectoryService().get(DirectoryNodeService.class);;
+ 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());
// the only thing that is for sure is
- System.out.println("dir1 exec map"+dir.getExecutorsMap());
- System.out.println("dir2 exec map"+dir2.getExecutorsMap());
- Assert.assertTrue( (dir2.getExecutorsMap().size() + dir.getExecutorsMap().size()) > 4 );
+ System.out.println("dir1 exec map" + dir.getExecutorsMap());
+ System.out.println("dir2 exec map" + dir2.getExecutorsMap());
+ Assert.assertTrue((dir2.getExecutorsMap().size() + dir.getExecutorsMap().size()) > 4);
grid.dispose();
- }
+ }
- @Test
- public void registerKbaseInLocalDirectoryTest() throws ConnectorException, RemoteException {
-
- GridTopology grid = new GridTopology("MyBusinessUnit");
- GenericProvider localDirProvider = new LocalProvider();
- GenericProvider localEnvProvider = new LocalProvider();
+ @Test
+ public void registerKbaseInLocalDirectoryTest() throws ConnectorException, RemoteException {
- grid.registerDirectoryInstance("MyLocalDir", localDirProvider);
- grid.registerExecutionEnvironment("MyLocalEnv", localEnvProvider);
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
-
- ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+
+
+
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+
+
+ Assert.assertNotNull(grid);
+
+
+
+
+
+
+ ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
Assert.assertNotNull(ee);
- System.out.println("EE Name = "+ee.getName());
+ System.out.println("EE Name = " + ee.getName());
ExecutionNode node = ee.getExecutionNode();
Assert.assertNotNull(node);
- // Do a basic Runtime Test that register a ksession and fire some rules.
+ // Do a basic Runtime Test that register a ksession and fire some rules.
String str = "";
str += "package org.drools \n";
str += "global java.util.List list \n";
@@ -186,17 +205,16 @@
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
- DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
+ DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull("Directory Instance null", directory);
- DirectoryNodeService dirService = directory.getDirectoryService().get(DirectoryNodeService.class);;
- kbase = dirService.lookupKBase("DoctorsKBase");
- Assert.assertNotNull(kbase);
+ DirectoryNodeService dirService = directory.getDirectoryService().get(DirectoryNodeService.class);
- grid.dispose();
-
+ kbase = dirService.lookupKBase("DoctorsKBase");
+ Assert.assertNotNull(kbase);
- }
-
+ grid.dispose();
-}
\ No newline at end of file
+
+ }
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -41,9 +41,12 @@
import org.drools.grid.services.DirectoryInstance;
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
-import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
@@ -117,6 +120,8 @@
grid.dispose();
+ Thread.sleep(5000);
+
Assert.assertEquals(0, serverDir.getCurrentSessions());
serverDir.stop();
System.out.println("Dir Server Stopped!");
@@ -130,18 +135,20 @@
@Test
public void directoryRemoteTest() throws ConnectorException, RemoteException {
- grid = new GridTopology("MyBusinessUnit");
- GenericProvider remoteDirProvider = new MinaProvider("127.0.0.1", 9123);
- GenericProvider localEnvProvider = new LocalProvider();
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyMinaDir", new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyRemoteEnv", new MinaProvider("127.0.0.1", 9124)));
- MinaProvider remoteEnvProvider = new MinaProvider("127.0.0.1", 9124);
- grid.registerDirectoryInstance("MyMinaDir", remoteDirProvider);
- grid.registerExecutionEnvironment("MyLocalEnv", localEnvProvider);
- grid.registerExecutionEnvironment("MyRemoteEnv", remoteEnvProvider);
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+ Assert.assertNotNull(grid);
+
+
+
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull(directory);
@@ -224,22 +231,19 @@
@Test
public void directoryInstanceRetriveKSessionFromEE() throws ConnectorException, RemoteException {
- //This APIs are used to create the Execution Environment Topology that will define which logical set of nodes
- //will be used for a specific situation/use case.
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyMinaDir", new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv1", new MinaProvider("127.0.0.1", 9124)));
- //The Execution Environment Topology will contain the Runtime state, persistent in time to be able to restore the
- //topology in case of failure or restarting
- grid = new GridTopology("MyCompanyTopology");
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
- //Create the provider
- MinaProvider provider = new MinaProvider("127.0.0.1", 9124);
- GenericProvider remoteDirProvider = new MinaProvider("127.0.0.1", 9123);
- //Register the provider into the topology
-
- grid.registerDirectoryInstance("MyMinaDir", remoteDirProvider);
- grid.registerExecutionEnvironment("MyMinaExecutionEnv1", provider);
+ Assert.assertNotNull(grid);
+
+
+
+
//Then we can get the registered Execution Environments by Name
ExecutionEnvironment ee = grid.getExecutionEnvironment("MyMinaExecutionEnv1");
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -45,8 +45,13 @@
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
import org.drools.grid.services.TaskServerInstance;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
import org.drools.grid.services.configuration.GenericProvider;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
+import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
+import org.drools.grid.services.configuration.TaskServerInstanceConfiguration;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.drools.grid.task.CommandBasedServicesWSHumanTaskHandler;
import org.drools.grid.task.HumanTaskService;
import org.drools.grid.task.TaskServerMessageHandlerImpl;
@@ -82,6 +87,7 @@
* @author salaboy
*/
public class RegisterTaskTest {
+
private GridTopology grid;
private MinaAcceptor serverTask;
private MinaAcceptor serverNode;
@@ -95,6 +101,7 @@
protected static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
protected static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
protected CommandBasedServicesWSHumanTaskHandler handler;
+
public RegisterTaskTest() {
}
@@ -147,7 +154,7 @@
}
- // Human task Server configuration
+ // Human task Server configuration
SocketAddress htAddress = new InetSocketAddress("127.0.0.1", 9123);
SocketAcceptor htAcceptor = new NioSocketAcceptor();
@@ -161,7 +168,7 @@
//Execution Node related stuff
- System.out.println("Server 1 Starting!");
+ System.out.println("Server 1 Starting!");
// the servers should be started in a different machine (jvm or physical) or in another thread
SocketAddress address = new InetSocketAddress("127.0.0.1", 9124);
NodeData nodeData = new NodeData();
@@ -184,8 +191,8 @@
grid.dispose();
-
-
+
+
handler.dispose();
Assert.assertEquals(0, serverNode.getCurrentSessions());
serverNode.stop();
@@ -193,37 +200,40 @@
Assert.assertEquals(0, serverTask.getCurrentSessions());
serverTask.stop();
System.out.println("Task Server Stopped!");
-
+
taskSession.dispose();
emf.close();
-
-
+
+
}
@Test
public void MinaTaskTest() throws InterruptedException, ConnectorException {
- grid = new GridTopology("MyBusinessUnit");
- GenericProvider remoteTaskProvider = new MinaProvider("127.0.0.1", 9123);
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addTaskServerInstance(new TaskServerInstanceConfiguration("MyMinaTask", new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyMinaExecutionEnv1", new MinaProvider("127.0.0.1", 9124)));
- grid.registerTaskServerInstance("MyMinaTask", remoteTaskProvider);
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+
+
+ Assert.assertNotNull(grid);
+
+
TaskServerInstance taskServer = grid.getTaskServerInstance("MyMinaTask");
- //Create the provider
- MinaProvider provider = new MinaProvider("127.0.0.1", 9124);
- //Register the provider into the topology
- grid.registerExecutionEnvironment("MyMinaExecutionEnv1", provider);
+
Assert.assertNotNull(taskServer);
client = (HumanTaskService) taskServer.getTaskClient();
Assert.assertNotNull(client);
-
+
//Create a task to test the HT client. For that we need to have a ksession with a workitem that creates it
ExecutionEnvironment ee = grid.getExecutionEnvironment("MyMinaExecutionEnv1");
Assert.assertNotNull(ee);
@@ -233,7 +243,7 @@
ExecutionNode node = ee.getExecutionNode();
Assert.assertNotNull(node);
- KnowledgeBuilder kbuilder =
+ KnowledgeBuilder kbuilder =
node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
@@ -256,7 +266,7 @@
workItem.setParameter("Comment", "Comment");
workItem.setParameter("Priority", "10");
workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
+ handler.executeWorkItem(workItem, manager);
Thread.sleep(500);
@@ -319,92 +329,86 @@
vars.put("now", new Date());
return MVEL.executeExpression(compiler.compile(context), vars);
}
-
-
-
}
class TestWorkItemManager implements WorkItemManager {
- private volatile boolean completed;
- private volatile boolean aborted;
- private volatile Map<String, Object> results;
+ private volatile boolean completed;
+ private volatile boolean aborted;
+ private volatile Map<String, Object> results;
- public synchronized boolean waitTillCompleted(long time) {
- if (!isCompleted()) {
- try {
- wait(time);
- } catch (InterruptedException e) {
- // swallow and return state of completed
- }
+ public synchronized boolean waitTillCompleted(long time) {
+ if (!isCompleted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of completed
}
-
- return isCompleted();
}
- public synchronized boolean waitTillAborted(long time) {
- if (!isAborted()) {
- try {
- wait(time);
- } catch (InterruptedException e) {
- // swallow and return state of aborted
- }
+ return isCompleted();
+ }
+
+ public synchronized boolean waitTillAborted(long time) {
+ if (!isAborted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of aborted
}
-
- return isAborted();
}
- public void abortWorkItem(long id) {
- setAborted(true);
- }
+ return isAborted();
+ }
- public synchronized boolean isAborted() {
- return aborted;
- }
+ public void abortWorkItem(long id) {
+ setAborted(true);
+ }
- private synchronized void setAborted(boolean aborted) {
- this.aborted = aborted;
- notifyAll();
- }
+ public synchronized boolean isAborted() {
+ return aborted;
+ }
- public void completeWorkItem(long id, Map<String, Object> results) {
- this.results = results;
- setCompleted(true);
- }
+ private synchronized void setAborted(boolean aborted) {
+ this.aborted = aborted;
+ notifyAll();
+ }
- private synchronized void setCompleted(boolean completed) {
- this.completed = completed;
- notifyAll();
- }
+ public void completeWorkItem(long id, Map<String, Object> results) {
+ this.results = results;
+ setCompleted(true);
+ }
- public synchronized boolean isCompleted() {
- return completed;
- }
+ private synchronized void setCompleted(boolean completed) {
+ this.completed = completed;
+ notifyAll();
+ }
- public WorkItem getWorkItem(long id) {
- return null;
- }
+ public synchronized boolean isCompleted() {
+ return completed;
+ }
- public Set<WorkItem> getWorkItems() {
- return null;
- }
+ public WorkItem getWorkItem(long id) {
+ return null;
+ }
- public Map<String, Object> getResults() {
- return results;
- }
+ public Set<WorkItem> getWorkItems() {
+ return null;
+ }
- public void internalAbortWorkItem(long id) {
- }
+ public Map<String, Object> getResults() {
+ return results;
+ }
- public void internalAddWorkItem(WorkItem workItem) {
- }
+ public void internalAbortWorkItem(long id) {
+ }
- public void internalExecuteWorkItem(WorkItem workItem) {
- }
+ public void internalAddWorkItem(WorkItem workItem) {
+ }
- public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
- }
+ public void internalExecuteWorkItem(WorkItem workItem) {
+ }
-
-
+ public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
}
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-08-05 23:21:53 UTC (rev 34562)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-08-06 03:12:52 UTC (rev 34563)
@@ -42,6 +42,10 @@
import org.drools.grid.remote.mina.MinaIoHandler;
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
+import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
+import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
+import org.drools.grid.services.configuration.GridTopologyConfiguration;
+import org.drools.grid.services.factory.GridTopologyFactory;
import org.drools.grid.services.strategies.ExecutionEnvByPrioritySelectionStrategy;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
@@ -99,16 +103,20 @@
@Test
- public void mixedTopologyMinaAndLocal() throws ConnectorException {
- grid = new GridTopology("MyBusinessUnit");
-
- GenericProvider minaProvider = new MinaProvider("127.0.0.1", 9123 );
- GenericProvider localProvider = new LocalProvider();
+ public void mixedTopologyMinaAndLocal() throws ConnectorException, RemoteException {
- grid.registerExecutionEnvironment("MyMinaEnv", minaProvider);
+ GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyMinaEnv", new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
- grid.registerExecutionEnvironment("MyLocalEnv", localProvider);
+ grid = GridTopologyFactory.build(gridTopologyConfiguration);
+
+
+ Assert.assertNotNull(grid);
+
+
+
ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
Assert.assertNotNull(ee);
System.out.println("EE Name = "+ee.getName());
@@ -156,9 +164,9 @@
Assert.assertEquals(2, fired);
+ grid.dispose();
-
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list