[jboss-svn-commits] JBL Code SVN: r33597 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-local/src/main/java/org/drools/grid/local and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 22 11:58:52 EDT 2010
Author: salaboy21
Date: 2010-06-22 11:58:51 -0400 (Tue, 22 Jun 2010)
New Revision: 33597
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
Removed:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
Modified:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
Log:
Unifying LocalConnection and RemoteConnection in Grid Connection that uses NodeConnectionType, from the providers to decide the services included in a specific ExecNode
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericNodeConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -15,4 +15,6 @@
GenericConnection getConnection();
+ NodeConnectionType getNodeConnectionType();
+
}
Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java (from rev 33584, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2010 salaboy.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+package org.drools.grid;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.grid.strategies.DirectorySelectionStrategy;
+import org.drools.grid.strategies.HumanTaskSelectionStrategy;
+import org.drools.grid.strategies.NodeSelectionStrategy;
+import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class GridConnection implements GenericConnection {
+
+ private List<GenericNodeConnector> executionNodeConnectors;
+ private List<GenericDirectoryConnector> directoryNodeConnectors;
+ private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
+
+ public GridConnection() {
+ this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
+ this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
+ this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
+ }
+
+ public void addExecutionNode(GenericNodeConnector execNodeConnector) {
+ this.executionNodeConnectors.add(execNodeConnector);
+ }
+
+ public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
+ this.directoryNodeConnectors.add(directoryNodeConnector);
+
+ }
+
+ public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
+ this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
+ }
+
+ /**
+ * @throws ConnectorException
+ * @throws IllegalStateException if unable to connect to node
+ */
+ public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException {
+ ExecutionNode node = null;
+ GenericNodeConnector connector = null;
+ //if the strategy is null use the default one
+ if (strategy == null) {
+ connector = getBestNode(new StaticIncrementalSelectionStrategy());
+ } else {
+ connector = getBestNode(strategy);
+ }
+ NodeConnectionType type = connector.getNodeConnectionType();
+
+ connector.connect();
+
+ type.setConnector(connector);
+ type.setConnection(this);
+ type.init();
+ node = NodeFactory.newExecutionNode(type);
+
+// node = new ExecutionNode();
+// node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
+// node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
+// node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
+ return node;
+ }
+
+ public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
+ if (directoryNodeConnectors.isEmpty()) {
+ return null;
+ }
+ GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
+
+ connector.connect();
+
+ DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
+
+ return directoryNode;
+ }
+
+ public DirectoryNodeService getDirectoryNode() throws ConnectorException {
+ return getDirectoryNode(null);
+ }
+
+ public ExecutionNode getExecutionNode() throws ConnectorException {
+ return getExecutionNode(null);
+ }
+
+ public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException {
+ if (humanTaskNodeConnectors.isEmpty()) {
+ return null;
+ }
+ // humanTaskSelectionStrategy.getBestHumanTask(humanTaskNodeConnectors);
+ GenericHumanTaskConnector connector = humanTaskNodeConnectors.get(0);
+
+ connector.connect();
+
+ HumanTaskNodeService humanTaskNode = connector.getHumanTaskNodeService();
+
+ return humanTaskNode;
+
+ }
+
+ public HumanTaskNodeService getHumanTaskNode() throws ConnectorException {
+ return getHumanTaskNode(null);
+ }
+
+ public List<ExecutionNode> getExecutionNodes() throws ConnectorException {
+ List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
+// for (GenericNodeConnector connector : executionNodeConnectors) {
+// ExecutionNode node = null;
+// connector.connect();
+// node = new ExecutionNode();
+// node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
+// node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
+// node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
+// if (node != null) {
+// executionNodes.add(node);
+// }
+// }
+ return executionNodes;
+ }
+
+ public List<DirectoryNodeService> getDirectoryNodes() {
+ throw new UnsupportedOperationException("not Implemented yet!");
+ }
+
+ public List<HumanTaskNodeService> getHumanTaskNodes() {
+ throw new UnsupportedOperationException("not Implemented yet!");
+ }
+
+ public void dispose() throws ConnectorException {
+ for (GenericNodeConnector connector : executionNodeConnectors) {
+ connector.disconnect();
+ }
+ for (GenericDirectoryConnector connector : directoryNodeConnectors) {
+ connector.disconnect();
+ }
+ for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
+ connector.disconnect();
+ }
+
+ }
+
+ private GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
+ return nodeSelectionStrategy.getBestNode(this.executionNodeConnectors);
+ }
+
+ private GenericDirectoryConnector getBestDirectory(DirectorySelectionStrategy directorySelectionStrategy) {
+ return directorySelectionStrategy.getBestDirectory(this.directoryNodeConnectors);
+ }
+
+ private GenericHumanTaskConnector getBestHumanTask(HumanTaskSelectionStrategy humanTaskSelectionStrategy) {
+ return humanTaskSelectionStrategy.getBestHumanTask(this.humanTaskNodeConnectors);
+ }
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/NodeConnectionType.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -28,4 +28,5 @@
public void setConnection(GenericConnection connection);
public Set<Class<?>> getServicesKeys();
public <T> T getServiceImpl(Class<T> clazz);
+ public void init();
}
Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -1,144 +0,0 @@
-/*
- * Copyright 2010 salaboy.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * under the License.
- */
-package org.drools.grid.local;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNode;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.GenericHumanTaskConnector;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.HumanTaskNodeService;
-import org.drools.grid.NodeFactory;
-import org.drools.grid.strategies.DirectorySelectionStrategy;
-import org.drools.grid.strategies.HumanTaskSelectionStrategy;
-import org.drools.grid.strategies.NodeSelectionStrategy;
-
-/**
- *
- * @author salaboy
- */
-public class LocalConnection implements GenericConnection {
-
- private List<GenericNodeConnector> executionNodeConnectors;
- private List<GenericDirectoryConnector> directoryNodeConnectors;
- private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
-
- public LocalConnection() {
- this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
- this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
- this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
-
- }
-
- public void addExecutionNode(GenericNodeConnector execNodeConnector) {
- this.executionNodeConnectors.add(execNodeConnector);
- }
-
- public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
-
- this.directoryNodeConnectors.add(directoryNodeConnector);
- }
-
- public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
- this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
- }
-
-
- public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
- if (directoryNodeConnectors.isEmpty()) {
- //I can use a local impl by default, if I have no registered connectors
- return new DirectoryNodeLocalImpl();
- }
- GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
- connector.connect();
- DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
- return directoryNode;
- }
-
- public DirectoryNodeService getDirectoryNode() throws ConnectorException {
- return getDirectoryNode(null);
- }
-
- public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
-
- ExecutionNode node = NodeFactory.newExecutionNode(new LocalConnectionNode());
-// new ExecutionNode();
-// node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
-// node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
-// node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
-
- return node;
- }
-
- public ExecutionNode getExecutionNode() {
- return getExecutionNode(null);
- }
-
- public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException {
- if (humanTaskNodeConnectors.isEmpty()) {
- //there is no default/local implementation for ht, so we need to register at least one ht connector
- return null;
- }
- GenericHumanTaskConnector connector = humanTaskNodeConnectors.get(0);
- connector.connect();
- HumanTaskNodeService humanTaskNode = connector.getHumanTaskNodeService();
- return humanTaskNode;
- }
-
- public HumanTaskNodeService getHumanTaskNode() throws ConnectorException {
- return getHumanTaskNode(null);
- }
-
- public List<ExecutionNode> getExecutionNodes() {
- List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
- ExecutionNode node = new ExecutionNode();
- node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient());
- node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient());
- node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
- executionNodes.add(node);
- return executionNodes;
- }
-
- public List<DirectoryNodeService> getDirectoryNodes() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public List<HumanTaskNodeService> getHumanTaskNodes() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
-
- public void dispose() throws ConnectorException {
- for (GenericNodeConnector connector : executionNodeConnectors) {
- connector.disconnect();
- }
- for (GenericDirectoryConnector connector : directoryNodeConnectors) {
- connector.disconnect();
- }
- for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
- connector.disconnect();
- }
- }
-}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnectionNode.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -41,6 +41,7 @@
services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
}
+
public Set<Class<?>> getServicesKeys() {
return services.keySet();
@@ -51,11 +52,15 @@
}
public void setConnector(GenericNodeConnector connector) {
- throw new UnsupportedOperationException("Not supported yet.");
+ //do nothing, we don't need a connector here
}
public void setConnection(GenericConnection connection) {
- throw new UnsupportedOperationException("Not supported yet.");
+ // do nothing, we don't need a connection here
}
+ public void init() {
+ // do nothing
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalDirectoryConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -21,6 +21,7 @@
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericDirectoryConnector;
+import org.drools.grid.GridConnection;
/**
*
@@ -28,7 +29,7 @@
*/
public class LocalDirectoryConnector implements GenericDirectoryConnector{
private DirectoryNodeService directoryNode;
- private static LocalConnection connection = new LocalConnection();
+ private static GridConnection connection = new GridConnection();
public LocalDirectoryConnector(DirectoryNodeService directoryNode) {
this.directoryNode = directoryNode;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -17,10 +17,11 @@
package org.drools.grid.local;
-import java.util.UUID;
import org.drools.grid.ConnectorException;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.NodeConnectionType;
import org.drools.grid.internal.Message;
import org.drools.grid.internal.MessageResponseHandler;
@@ -30,10 +31,10 @@
*/
public class LocalNodeConnector implements GenericNodeConnector {
- private LocalConnection connection;
+ private GridConnection connection;
public LocalNodeConnector() {
- this.connection = new LocalConnection();
+ this.connection = new GridConnection();
}
public void connect() throws ConnectorException {
@@ -58,4 +59,8 @@
public GenericConnection getConnection(){
return this.connection;
}
+
+ public NodeConnectionType getNodeConnectionType() {
+ return new LocalConnectionNode();
+ }
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/test/java/org/drools/grid/LocalExecutionNodeTest.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -31,7 +31,6 @@
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.builder.ResourceType;
-import org.drools.grid.local.LocalConnection;
import org.drools.io.ResourceFactory;
import org.drools.persistence.jpa.grid.JPAKnowledgeProviderLocalClient;
import org.drools.runtime.Environment;
@@ -43,6 +42,8 @@
import bitronix.tm.TransactionManagerServices;
import bitronix.tm.resource.jdbc.PoolingDataSource;
+import org.drools.grid.local.LocalNodeConnector;
+import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
/**
*
@@ -82,8 +83,9 @@
@Before
public void configureNode() throws ConnectorException {
- connection = new LocalConnection();
- node = connection.getExecutionNode();
+ connection = new GridConnection();
+ connection.addExecutionNode(new LocalNodeConnector());
+ node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
node.set(JPAKnowledgeFactoryService.class, new JPAKnowledgeProviderLocalClient());
}
Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -1,179 +0,0 @@
-/*
- * Copyright 2010 salaboy.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * under the License.
- */
-package org.drools.grid.remote;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.ExecutionNode;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.GenericHumanTaskConnector;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.HumanTaskNodeService;
-import org.drools.grid.NodeFactory;
-import org.drools.grid.strategies.DirectorySelectionStrategy;
-import org.drools.grid.strategies.HumanTaskSelectionStrategy;
-import org.drools.grid.strategies.NodeSelectionStrategy;
-import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
-
-/**
- *
- * @author salaboy
- */
-public class RemoteConnection implements GenericConnection {
-
- private List<GenericNodeConnector> executionNodeConnectors;
- private List<GenericDirectoryConnector> directoryNodeConnectors;
- private List<GenericHumanTaskConnector> humanTaskNodeConnectors;
-
- public RemoteConnection() {
- this.executionNodeConnectors = new ArrayList<GenericNodeConnector>();
- this.directoryNodeConnectors = new ArrayList<GenericDirectoryConnector>();
- this.humanTaskNodeConnectors = new ArrayList<GenericHumanTaskConnector>();
- }
-
- public void addExecutionNode(GenericNodeConnector execNodeConnector) {
- this.executionNodeConnectors.add(execNodeConnector);
- }
-
- public void addDirectoryNode(GenericDirectoryConnector directoryNodeConnector) {
- this.directoryNodeConnectors.add(directoryNodeConnector);
-
- }
-
- public void addHumanTaskNode(GenericHumanTaskConnector humanTaskNodeConnector) {
- this.humanTaskNodeConnectors.add(humanTaskNodeConnector);
- }
-
- /**
- * @throws ConnectorException
- * @throws IllegalStateException if unable to connect to node
- */
- public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws ConnectorException {
- ExecutionNode node = null;
- GenericNodeConnector connector = null;
- //if the strategy is null use the default one
- if (strategy == null) {
- connector = getBestNode(new StaticIncrementalSelectionStrategy());
- } else {
- connector = getBestNode(strategy);
- }
- connector.connect();
- node = NodeFactory.newExecutionNode(new RemoteConnectionNode(connector, this));
-
-// node = new ExecutionNode();
-// node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
-// node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
-// node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
- return node;
- }
-
- public DirectoryNodeService getDirectoryNode(DirectorySelectionStrategy directorySelectionStrategy) throws ConnectorException {
- if (directoryNodeConnectors.isEmpty()) {
- return null;
- }
- GenericDirectoryConnector connector = directoryNodeConnectors.get(0);
-
- connector.connect();
-
- DirectoryNodeService directoryNode = connector.getDirectoryNodeService();
-
- return directoryNode;
- }
-
- public DirectoryNodeService getDirectoryNode() throws ConnectorException {
- return getDirectoryNode(null);
- }
-
- public ExecutionNode getExecutionNode() throws ConnectorException {
- return getExecutionNode(null);
- }
-
- public HumanTaskNodeService getHumanTaskNode(HumanTaskSelectionStrategy humanTaskSelectionStrategy) throws ConnectorException {
- if (humanTaskNodeConnectors.isEmpty()) {
- return null;
- }
- // humanTaskSelectionStrategy.getBestHumanTask(humanTaskNodeConnectors);
- GenericHumanTaskConnector connector = humanTaskNodeConnectors.get(0);
-
- connector.connect();
-
- HumanTaskNodeService humanTaskNode = connector.getHumanTaskNodeService();
-
- return humanTaskNode;
-
- }
-
- public HumanTaskNodeService getHumanTaskNode() throws ConnectorException {
- return getHumanTaskNode(null);
- }
-
- public List<ExecutionNode> getExecutionNodes() throws ConnectorException {
- List<ExecutionNode> executionNodes = new ArrayList<ExecutionNode>();
- for (GenericNodeConnector connector : executionNodeConnectors) {
- ExecutionNode node = null;
- connector.connect();
- node = new ExecutionNode();
- node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
- node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
- node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, this));
- if (node != null) {
- executionNodes.add(node);
- }
- }
- return executionNodes;
- }
-
- public List<DirectoryNodeService> getDirectoryNodes() {
- throw new UnsupportedOperationException("not Implemented yet!");
- }
-
- public List<HumanTaskNodeService> getHumanTaskNodes() {
- throw new UnsupportedOperationException("not Implemented yet!");
- }
-
- public void dispose() throws ConnectorException {
- for (GenericNodeConnector connector : executionNodeConnectors) {
- connector.disconnect();
- }
- for (GenericDirectoryConnector connector : directoryNodeConnectors) {
- connector.disconnect();
- }
- for (GenericHumanTaskConnector connector : humanTaskNodeConnectors) {
- connector.disconnect();
- }
-
- }
-
- private GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
- return nodeSelectionStrategy.getBestNode(this.executionNodeConnectors);
- }
-
- private GenericDirectoryConnector getBestDirectory(DirectorySelectionStrategy directorySelectionStrategy) {
- return directorySelectionStrategy.getBestDirectory(this.directoryNodeConnectors);
- }
-
- private GenericHumanTaskConnector getBestHumanTask(HumanTaskSelectionStrategy humanTaskSelectionStrategy) {
- return humanTaskSelectionStrategy.getBestHumanTask(this.humanTaskNodeConnectors);
- }
-}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnectionNode.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -36,9 +36,19 @@
private GenericNodeConnector connector;
private GenericConnection connection;
+ public RemoteConnectionNode() {
+
+ }
+
+
public RemoteConnectionNode(GenericNodeConnector connector, GenericConnection connection) {
+
this.connector = connector;
this.connection = connection;
+
+ }
+
+ public void init(){
services.put(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(connector));
services.put(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(connector));
services.put(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(connector, connection));
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaRemoteDirectoryConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -35,7 +35,7 @@
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericDirectoryConnector;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
import org.drools.grid.remote.mina.MinaIoHandler;
/**
@@ -43,7 +43,7 @@
* @author salaboy
*/
public class MinaRemoteDirectoryConnector implements GenericDirectoryConnector{
- private RemoteConnection connection;
+ private GridConnection connection;
private String providerName;
private SystemEventListener eventListener;
protected IoSession session;
@@ -65,7 +65,7 @@
this.eventListener = systemEventListener;
this.address = new InetSocketAddress(providerAddress, providerPort);
this.connector = minaconnector;
- this.connection = new RemoteConnection();
+ this.connection = new GridConnection();
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaRemoteNodeConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -16,10 +16,12 @@
import org.drools.grid.ConnectorException;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.NodeConnectionType;
import org.drools.grid.internal.Message;
import org.drools.grid.internal.MessageResponseHandler;
import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
+import org.drools.grid.remote.RemoteConnectionNode;
public class MinaRemoteNodeConnector
implements
@@ -31,7 +33,7 @@
protected SocketConnector connector;
protected SocketAddress address;
protected SystemEventListener eventListener;
- protected RemoteConnection connection;
+ protected GridConnection connection;
public MinaRemoteNodeConnector(String name,
String providerAddress, Integer providerPort,
@@ -47,7 +49,7 @@
this.address = new InetSocketAddress(providerAddress, providerPort);
this.connector = minaconnector;
this.eventListener = eventListener;
- this.connection = new RemoteConnection();
+ this.connection = new GridConnection();
}
public void connect() throws ConnectorException {
@@ -126,4 +128,9 @@
public GenericConnection getConnection() {
return this.connection;
}
+
+
+ public NodeConnectionType getNodeConnectionType() {
+ return new RemoteConnectionNode();
+ }
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -18,19 +18,14 @@
package org.drools.grid;
import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.Iterator;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
import org.drools.SystemEventListenerFactory;
import org.drools.grid.internal.GenericMessageHandlerImpl;
import org.drools.grid.internal.NodeData;
import org.drools.grid.local.DirectoryNodeLocalImpl;
import org.drools.grid.local.LocalDirectoryConnector;
-import org.drools.grid.remote.RemoteConnection;
import org.drools.grid.remote.mina.MinaAcceptor;
import org.drools.grid.remote.mina.MinaIoHandler;
import org.drools.grid.remote.mina.MinaRemoteNodeConnector;
@@ -76,7 +71,7 @@
//Client configuration
- connection = new RemoteConnection();
+ connection = new GridConnection();
GenericDirectoryConnector localDirectory = new LocalDirectoryConnector(new DirectoryNodeLocalImpl());
connection.addDirectoryNode(localDirectory);
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/MinaRemoteHumanTaskConnector.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -21,7 +21,7 @@
import org.drools.grid.internal.Message;
import org.drools.grid.internal.MessageResponseHandler;
import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
import org.drools.grid.remote.mina.MinaIoHandler;
public class MinaRemoteHumanTaskConnector
@@ -34,7 +34,7 @@
protected SocketConnector connector;
protected SocketAddress address;
protected SystemEventListener eventListener;
- protected RemoteConnection connection;
+ protected GridConnection connection;
public MinaRemoteHumanTaskConnector(String name,
String providerAddress, Integer providerPort,
@@ -50,7 +50,7 @@
this.address = new InetSocketAddress(providerAddress, providerPort);
this.connector = minaconnector;
this.eventListener = eventListener;
- this.connection = new RemoteConnection();
+ this.connection = new GridConnection();
}
public void connect() throws ConnectorException {
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -16,7 +16,7 @@
import org.drools.process.instance.WorkItemManager;
import org.drools.process.instance.impl.WorkItemImpl;
import org.drools.grid.ExecutionNode;
-import org.drools.grid.remote.RemoteConnection;
+import org.drools.grid.GridConnection;
import org.drools.grid.task.responseHandlers.BlockingGetContentMessageResponseHandler;
import org.drools.grid.task.responseHandlers.BlockingGetTaskMessageResponseHandler;
import org.drools.grid.task.responseHandlers.BlockingTaskOperationMessageResponseHandler;
@@ -44,7 +44,7 @@
protected Map<String, User> users;
protected Map<String, Group> groups;
protected ExecutionNode node;
- protected RemoteConnection connection = new RemoteConnection();
+ protected GridConnection connection = new GridConnection();
@Test
public void testTask() throws Exception {
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java 2010-06-22 15:16:03 UTC (rev 33596)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java 2010-06-22 15:58:51 UTC (rev 33597)
@@ -22,6 +22,7 @@
import org.drools.grid.internal.NodeData;
import org.drools.grid.GenericNodeConnector;
import org.drools.grid.internal.GenericMessageHandlerImpl;
+import org.drools.grid.remote.RemoteConnectionNode;
import org.drools.grid.remote.mina.MinaAcceptor;
import org.drools.grid.remote.mina.MinaRemoteNodeConnector;
import org.drools.grid.remote.mina.MinaIoHandler;
More information about the jboss-svn-commits
mailing list