[jboss-svn-commits] JBL Code SVN: r32379 - in labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src: main/java/org/drools/services/generic and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Apr 3 14:04:40 EDT 2010
Author: salaboy21
Date: 2010-04-03 14:04:39 -0400 (Sat, 03 Apr 2010)
New Revision: 32379
Added:
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java
Removed:
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java
Modified:
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java
labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java
Log:
JBRULES-2446: Drools Services API
- drools-services local connection implementation, plus name refactoring
Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java (from rev 32363, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryNodeService.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,24 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.drools.services;
+
+import java.rmi.RemoteException;
+import org.drools.KnowledgeBase;
+import org.drools.services.generic.GenericNodeConnector;
+
+
+/**
+ *
+ * @author salaboy
+ */
+
+public interface DirectoryNodeService {
+ public void register(String executorId, String sessionServiceId) throws RemoteException;
+ public GenericNodeConnector lookup(String executorId) throws RemoteException;
+ public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException;
+ public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
+ public void addService(GenericNodeConnector service);
+}
Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,24 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.drools.services;
-
-import java.rmi.RemoteException;
-import org.drools.KnowledgeBase;
-import org.drools.services.generic.GenericServiceConnector;
-
-
-/**
- *
- * @author salaboy
- */
-
-public interface DirectoryService {
- public void register(String executorId, String sessionServiceId) throws RemoteException;
- public GenericServiceConnector lookup(String executorId) throws RemoteException;
- public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException;
- public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
- public void addService(GenericServiceConnector service);
-}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/ExecutionNodeService.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -5,7 +5,7 @@
package org.drools.services;
import java.rmi.RemoteException;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
@@ -13,8 +13,10 @@
*
* @author salaboy
*/
-public interface ExecutionNodeService extends GenericServiceConnector{
+public interface ExecutionNodeService extends GenericNodeConnector{
public String getId() throws RemoteException;
- public Message write(Message msg) throws RemoteException;
+ public Message write(Message msg) throws RemoteException;
+ double getLoad() throws RemoteException;
+ void setLoad(double load) throws RemoteException;
}
Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,51 +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.services;
-import org.drools.KnowledgeBaseFactoryService;
-import org.drools.builder.DirectoryLookupFactoryService;
-import org.drools.builder.KnowledgeBuilderFactoryService;
-import org.drools.services.local.DirectoryLookupProviderLocalClient;
-import org.drools.services.local.KnowledgeBaseProviderLocalClient;
-import org.drools.services.local.KnowledgeBuilderProviderLocalClient;
-/**
- *
- * @author salaboy
- */
-public class LocalNodeConnector implements NodeConnector {
-
-
-
- public LocalNodeConnector() {
- }
-
-
- public ExecutionNode connect() {
- ExecutionNode node = new ExecutionNode();
- node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient() );
- node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient() );
- node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
- return node;
- }
-
- public void disconnect() {
-
- }
-
-
-
-}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -18,7 +18,7 @@
package org.drools.services;
import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
/**
*
@@ -26,7 +26,7 @@
*/
public interface NodeSelectionStrategy {
- public GenericServiceConnector getBestNode();
+ public GenericNodeConnector getBestNode();
public void setConnection(GenericConnection connection);
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -20,11 +20,13 @@
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.remote.DirectoryLookupProviderRemoteClient;
import org.drools.services.remote.KnowledgeBaseProviderRemoteClient;
import org.drools.services.remote.KnowledgeBuilderProviderRemoteClient;
@@ -39,24 +41,24 @@
*/
public class RemoteConnection implements GenericConnection {
//Cached Services
- private List<GenericServiceConnector> services;
+ private List<GenericNodeConnector> nodeConnectors;
//Cached Directories
- private List<DirectoryService> directories;
+ private List<DirectoryNodeService> directories;
public RemoteConnection() {
- this.services = new ArrayList<GenericServiceConnector>();
- this.directories = new ArrayList<DirectoryService>();
+ this.nodeConnectors = new ArrayList<GenericNodeConnector>();
+ this.directories = new ArrayList<DirectoryNodeService>();
}
- public void addService(GenericServiceConnector service) {
+ public void addNodeConnector(GenericNodeConnector service) {
//register the service to all the DirectoryServices
- for(DirectoryService directory : directories){
+ for(DirectoryNodeService directory : directories){
directory.addService(service);
}
- this.services.add(service);
+ this.nodeConnectors.add(service);
}
- public void addDirectoryService(DirectoryService directory) {
+ public void addDirectoryNode(DirectoryNodeService directory) {
this.directories.add(directory);
}
@@ -67,52 +69,52 @@
}
- public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) throws RemoteException {
-
+ public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
ExecutionNode node = null;
- GenericServiceConnector currentService = null;
- //if the strategy is null use the default one
- if(strategy == null){
- currentService = getBestService(
- new StaticIncrementalSelectionStrategy(this));
- } else{
- strategy.setConnection(this);
- currentService = getBestService(strategy);
- }
+ GenericNodeConnector currentService = null;
+ try {
- if(currentService.connect()){
- node = new ExecutionNode();
- node.set(KnowledgeBuilderFactoryService.class,
- new KnowledgeBuilderProviderRemoteClient(currentService));
+ //if the strategy is null use the default one
+ if (strategy == null) {
+ currentService = getBestNode(new StaticIncrementalSelectionStrategy(this));
+ } else {
+ strategy.setConnection(this);
+ currentService = getBestNode(strategy);
+ }
+ if (currentService.connect()) {
+ node = new ExecutionNode();
+ node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderRemoteClient(currentService));
+ node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderRemoteClient(currentService));
+ node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(currentService, this));
- node.set(KnowledgeBaseFactoryService.class,
- new KnowledgeBaseProviderRemoteClient(currentService));
- node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderRemoteClient(currentService, this));
- return node;
+ }
+
+ } catch (RemoteException ex) {
+ Logger.getLogger(RemoteConnection.class.getName()).log(Level.SEVERE, null, ex);
}
- return null;
+ return node;
}
- public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy) {
+ public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
return nodeSelectionStrategy.getBestNode();
}
- public List<DirectoryService> getDirectories() {
+ public List<DirectoryNodeService> getDirectories() {
return directories;
}
- public void setDirectories(List<DirectoryService> directories) {
+ public void setDirectories(List<DirectoryNodeService> directories) {
this.directories = directories;
}
- public List<GenericServiceConnector> getServices() {
- return services;
+ public List<GenericNodeConnector> getNodeConnectors() {
+ return nodeConnectors;
}
- public void setServices(List<GenericServiceConnector> services) {
- this.services = services;
+ public void setServices(List<GenericNodeConnector> services) {
+ this.nodeConnectors = services;
}
- public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+ public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
return directories.get(0);
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericConnection.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -18,7 +18,8 @@
package org.drools.services.generic;
import java.util.List;
-import org.drools.services.DirectoryService;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.ExecutionNode;
import org.drools.services.NodeSelectionStrategy;
import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
@@ -27,12 +28,14 @@
* @author salaboy
*/
public interface GenericConnection {
- public void addService(GenericServiceConnector service);
- public void addDirectoryService(DirectoryService directory);
- public List<GenericServiceConnector> getServices();
- public List<DirectoryService> getDirectories();
- public GenericServiceConnector getBestService(NodeSelectionStrategy nodeSelectionStrategy);
- public DirectoryService getDirectoryService(DirectoryServiceSelectionStrategy directorySelectionStrategy);
+ public void addNodeConnector(GenericNodeConnector nodeConnector);
+ public void addDirectoryNode(DirectoryNodeService directory);
+ public List<GenericNodeConnector> getNodeConnectors();
+ public List<DirectoryNodeService> getDirectories();
+ public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy);
+ public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy);
+
+
}
Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java (from rev 32358, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericNodeConnector.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,16 @@
+package org.drools.services.generic;
+
+import java.rmi.RemoteException;
+
+public interface GenericNodeConnector extends GenericIoWriter {
+
+ boolean connect() throws RemoteException;;
+
+ void disconnect() throws RemoteException;;
+
+ Message write(Message msg) throws RemoteException;;
+
+ String getId() throws RemoteException;;
+
+ // void setSession(Object object) throws RemoteException;;
+}
Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/generic/GenericServiceConnector.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,16 +0,0 @@
-package org.drools.services.generic;
-
-import java.rmi.RemoteException;
-
-public interface GenericServiceConnector extends GenericIoWriter {
-
- boolean connect() throws RemoteException;;
-
- void disconnect() throws RemoteException;;
-
- Message write(Message msg) throws RemoteException;;
-
- String getId() throws RemoteException;;
-
- // void setSession(Object object) throws RemoteException;;
-}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -25,7 +25,7 @@
import java.util.logging.Logger;
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.runtime.CommandExecutor;
-import org.drools.services.DirectoryService;
+import org.drools.services.DirectoryNodeService;
/**
*
Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java (from rev 32363, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryNodeLocalImpl.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,68 @@
+/*
+ * 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.services.local;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.KnowledgeBase;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.generic.GenericNodeConnector;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryNodeLocalImpl implements DirectoryNodeService {
+ private Map<String, String> directoryMap = new HashMap<String, String>();
+ private List<GenericNodeConnector> services = new ArrayList<GenericNodeConnector>();
+
+ public void register(String executorId, String sessionServiceId) throws RemoteException {
+ System.out.println("Registering: "+ executorId + " -- "+sessionServiceId);
+ directoryMap.put(executorId, sessionServiceId);
+ }
+
+ public GenericNodeConnector lookup(String executorId) throws RemoteException {
+ GenericNodeConnector sessionService = null;
+ String sessionServiceId = (String)directoryMap.get(executorId);
+ System.out.println("Registry = "+ directoryMap.toString());
+ System.out.println("Nodes Services = "+services);
+ for(GenericNodeConnector ss : services){
+ System.out.println("Session Service id = "+ss.getId() + "needs to match with ="+sessionServiceId);
+ if(ss.getId().equals(sessionServiceId)){
+ sessionService = ss;
+ }
+ }
+
+ return sessionService;
+ }
+
+ public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ public void addService(GenericNodeConnector service){
+ services.add(service);
+ }
+
+}
Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,68 +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.services.local;
-
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.drools.KnowledgeBase;
-import org.drools.services.DirectoryService;
-import org.drools.services.generic.GenericServiceConnector;
-
-/**
- *
- * @author salaboy
- */
-public class DirectoryServiceLocalImpl implements DirectoryService {
- private Map<String, String> directoryMap = new HashMap<String, String>();
- private List<GenericServiceConnector> services = new ArrayList<GenericServiceConnector>();
-
- public void register(String executorId, String sessionServiceId) throws RemoteException {
- System.out.println("Registering: "+ executorId + " -- "+sessionServiceId);
- directoryMap.put(executorId, sessionServiceId);
- }
-
- public GenericServiceConnector lookup(String executorId) throws RemoteException {
- GenericServiceConnector sessionService = null;
- String sessionServiceId = (String)directoryMap.get(executorId);
- System.out.println("Registry = "+ directoryMap.toString());
- System.out.println("Nodes Services = "+services);
- for(GenericServiceConnector ss : services){
- System.out.println("Session Service id = "+ss.getId() + "needs to match with ="+sessionServiceId);
- if(ss.getId().equals(sessionServiceId)){
- sessionService = ss;
- }
- }
-
- return sessionService;
- }
-
- public void registerKBase(String kbaseId, String sessionServiceId) throws RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
- public void addService(GenericServiceConnector service){
- services.add(service);
- }
-
-}
Added: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/LocalConnection.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,82 @@
+/*
+ * 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.services.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.services.DirectoryNodeService;
+import org.drools.services.ExecutionNode;
+import org.drools.services.NodeSelectionStrategy;
+import org.drools.services.generic.GenericConnection;
+import org.drools.services.generic.GenericNodeConnector;
+import org.drools.services.strategies.DirectoryServiceSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class LocalConnection implements GenericConnection {
+
+ //Cached NodeConnectors
+ private List<GenericNodeConnector> nodeConnectors;
+
+
+ public LocalConnection() {
+ this.nodeConnectors = new ArrayList<GenericNodeConnector>();
+
+ }
+
+
+ public void addNodeConnector(GenericNodeConnector nodeConnector) {
+ this.nodeConnectors.add(nodeConnector);
+ }
+
+ public void addDirectoryNode(DirectoryNodeService directory) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public List<GenericNodeConnector> getNodeConnectors() {
+ return this.nodeConnectors;
+ }
+
+ public List<DirectoryNodeService> getDirectories() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public GenericNodeConnector getBestNode(NodeSelectionStrategy nodeSelectionStrategy) {
+ //Analyze if we will need more than one node connector for local usage in the same JVM
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
+
+ ExecutionNode node = new ExecutionNode();
+ node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient() );
+ node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient() );
+ node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+ return node;
+ }
+
+}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -30,7 +30,7 @@
import org.drools.services.command.LookupCommand;
import org.drools.services.command.RegisterCommand;
import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -42,7 +42,7 @@
//The current node connector
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private GenericConnection connection;
@@ -50,7 +50,7 @@
private MessageSession messageSession;
- public DirectoryLookupProviderRemoteClient(GenericServiceConnector client, GenericConnection connection) {
+ public DirectoryLookupProviderRemoteClient(GenericNodeConnector client, GenericConnection connection) {
this.client = client;
this.messageSession = new MessageSession();
this.connection = connection;
@@ -71,7 +71,7 @@
System.out.println("Registering " + identifier + " - - " + client.getId());
- connection.getDirectoryService(null).register(identifier, client.getId());
+ connection.getDirectoryNode(null).register(identifier, client.getId());
try {
Object object = client.write(msg).getPayload();
if (!(object instanceof FinishedCommand)) {
@@ -93,7 +93,7 @@
String kresultsId = "kresults_" + messageSession.getSessionId();
Message msg = new Message(messageSession.getSessionId(), messageSession.getCounter().incrementAndGet(), false, new KnowledgeContextResolveFromContextCommand(new LookupCommand(identifier, commandId), null, null, null, kresultsId));
System.out.println("Looking up the session with identifier = " + identifier);
- client = connection.getDirectoryService(null).lookup(identifier);
+ client = connection.getDirectoryNode(null).lookup(identifier);
try {
Object object = client.write(msg).getPayload();
if (object == null) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseProviderRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -11,7 +11,7 @@
import org.drools.command.SetVariableCommand;
import org.drools.runtime.Environment;
import org.drools.runtime.KnowledgeSessionConfiguration;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -19,9 +19,9 @@
implements
KnowledgeBaseFactoryService {
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private MessageSession messageSession;
- public KnowledgeBaseProviderRemoteClient(GenericServiceConnector client) {
+ public KnowledgeBaseProviderRemoteClient(GenericNodeConnector client) {
this.client = client;
this.messageSession = new MessageSession();
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBaseRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,7 +19,7 @@
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
import org.drools.services.generic.CollectionClient;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -28,12 +28,12 @@
KnowledgeBase {
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private MessageSession messageSession;
private String instanceId;
public KnowledgeBaseRemoteClient(String instanceId,
- GenericServiceConnector client, MessageSession messageSession) {
+ GenericNodeConnector client, MessageSession messageSession) {
this.instanceId = instanceId;
this.client = client;
this.messageSession = messageSession;
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderProviderRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -14,7 +14,7 @@
import org.drools.command.FinishedCommand;
import org.drools.command.SetVariableCommand;
import org.drools.command.builder.NewKnowledgeBuilderCommand;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -22,9 +22,9 @@
implements
KnowledgeBuilderFactoryService {
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private MessageSession messageSession;
- public KnowledgeBuilderProviderRemoteClient(GenericServiceConnector client) {
+ public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector client) {
//this.nodeConnection = nodeConnection;
this.messageSession = new MessageSession();
this.client = client;
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/KnowledgeBuilderRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -16,7 +16,7 @@
import org.drools.io.Resource;
import org.drools.runtime.ExecutionResults;
import org.drools.services.generic.CollectionClient;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -25,11 +25,11 @@
KnowledgeBuilder {
private String instanceId;
- private final GenericServiceConnector client;
+ private final GenericNodeConnector client;
private final MessageSession messageSession;
public KnowledgeBuilderRemoteClient(String instanceId,
- GenericServiceConnector client, MessageSession messageSession) {
+ GenericNodeConnector client, MessageSession messageSession) {
this.instanceId = instanceId;
this.client = client;
this.messageSession = messageSession;
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/StatefulKnowledgeSessionRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -28,7 +28,7 @@
import org.drools.runtime.rule.FactHandle;
import org.drools.runtime.rule.QueryResults;
import org.drools.runtime.rule.WorkingMemoryEntryPoint;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.time.SessionClock;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -38,12 +38,12 @@
StatefulKnowledgeSession {
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private MessageSession messageSession;
private String instanceId;
public StatefulKnowledgeSessionRemoteClient(String instanceId,
- GenericServiceConnector client, MessageSession messageSession) {
+ GenericNodeConnector client, MessageSession messageSession) {
this.instanceId = instanceId;
this.client = client;
this.messageSession = messageSession;
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/WorkItemManagerRemoteClient.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -7,7 +7,7 @@
import org.drools.command.runtime.process.CompleteWorkItemCommand;
import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.drools.services.generic.Message;
import org.drools.services.generic.MessageSession;
@@ -20,7 +20,7 @@
private static final long serialVersionUID = 1L;
- private GenericServiceConnector client;
+ private GenericNodeConnector client;
private MessageSession messageSession;
private String instanceId;
@@ -49,7 +49,7 @@
throw new UnsupportedOperationException("Not supported yet.");
}
- public void setClient(GenericServiceConnector client) {
+ public void setClient(GenericNodeConnector client) {
this.client = client;
}
Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java (from rev 32252, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaNodeConnector.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -0,0 +1,122 @@
+package org.drools.services.remote.mina;
+
+import java.net.SocketAddress;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.transport.socket.SocketConnector;
+import org.drools.SystemEventListener;
+import org.drools.services.generic.GenericNodeConnector;
+import org.drools.services.generic.GenericIoWriter;
+import org.drools.services.generic.Message;
+import org.drools.services.generic.MessageResponseHandler;
+import org.drools.services.responsehandlers.BlockingMessageResponseHandler;
+
+public class MinaNodeConnector
+ implements
+ GenericNodeConnector,
+ GenericIoWriter {
+
+
+ protected IoSession session;
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected SocketConnector connector;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+
+ public MinaNodeConnector(String name,
+ SocketConnector connector,
+ SocketAddress address,
+ SystemEventListener eventListener) {
+ if ( name == null ) {
+ throw new IllegalArgumentException( "Name can not be null" );
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.address = address;
+ this.connector = connector;
+ this.eventListener = eventListener;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.vsm.mina.Messenger#connect()
+ */
+ public boolean connect() {
+ if ( session != null && session.isConnected() ) {
+ throw new IllegalStateException( "Already connected. Disconnect first." );
+ }
+
+ try {
+ this.connector.getFilterChain().addLast( "codec",
+ new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+
+ ConnectFuture future1 = this.connector.connect( this.address );
+ future1.await( 2000 );
+ if ( !future1.isConnected() ) {
+ eventListener.info( "unable to connect : " + address + " : " + future1.getException() );
+ return false;
+ }
+ eventListener.info( "connected : " + address );
+ this.session = future1.getSession();
+ return true;
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.vsm.mina.Messenger#disconnect()
+ */
+ public void disconnect() {
+ if ( session != null && session.isConnected() ) {
+ session.close();
+ session.getCloseFuture().join();
+ }
+ }
+
+ private void addResponseHandler(int id,
+ MessageResponseHandler responseHandler) {
+ ((MinaIoHandler) this.connector.getHandler()).addResponseHandler( id,
+ responseHandler );
+ }
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ if ( responseHandler != null ) {
+ addResponseHandler( msg.getResponseId(),
+ responseHandler );
+ }
+ this.session.write( msg );
+ }
+
+ public Message write(Message msg) {
+ BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
+
+ if ( responseHandler != null ) {
+ addResponseHandler( msg.getResponseId(),
+ responseHandler );
+ }
+ this.session.write( msg );
+
+ Message returnMessage = responseHandler.getMessage();
+ if ( responseHandler.getError() != null ) {
+ throw responseHandler.getError();
+ }
+
+ return returnMessage;
+ }
+
+ public String getId() {
+ return String.valueOf(session.getId());
+ }
+
+ public void setSession(Object object) {
+ this.session = (IoSession) object;
+ }
+}
Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/mina/MinaServiceConnector.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -1,122 +0,0 @@
-package org.drools.services.remote.mina;
-
-import java.net.SocketAddress;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.mina.core.future.ConnectFuture;
-import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
-import org.apache.mina.transport.socket.SocketConnector;
-import org.drools.SystemEventListener;
-import org.drools.services.generic.GenericServiceConnector;
-import org.drools.services.generic.GenericIoWriter;
-import org.drools.services.generic.Message;
-import org.drools.services.generic.MessageResponseHandler;
-import org.drools.services.responsehandlers.BlockingMessageResponseHandler;
-
-public class MinaServiceConnector
- implements
- GenericServiceConnector,
- GenericIoWriter {
-
-
- protected IoSession session;
-
- protected final String name;
- protected AtomicInteger counter;
- protected SocketConnector connector;
- protected SocketAddress address;
- protected SystemEventListener eventListener;
-
- public MinaServiceConnector(String name,
- SocketConnector connector,
- SocketAddress address,
- SystemEventListener eventListener) {
- if ( name == null ) {
- throw new IllegalArgumentException( "Name can not be null" );
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.address = address;
- this.connector = connector;
- this.eventListener = eventListener;
- }
-
- /* (non-Javadoc)
- * @see org.drools.vsm.mina.Messenger#connect()
- */
- public boolean connect() {
- if ( session != null && session.isConnected() ) {
- throw new IllegalStateException( "Already connected. Disconnect first." );
- }
-
- try {
- this.connector.getFilterChain().addLast( "codec",
- new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
-
- ConnectFuture future1 = this.connector.connect( this.address );
- future1.await( 2000 );
- if ( !future1.isConnected() ) {
- eventListener.info( "unable to connect : " + address + " : " + future1.getException() );
- return false;
- }
- eventListener.info( "connected : " + address );
- this.session = future1.getSession();
- return true;
- } catch ( Exception e ) {
- e.printStackTrace();
- return false;
- }
- }
-
- /* (non-Javadoc)
- * @see org.drools.vsm.mina.Messenger#disconnect()
- */
- public void disconnect() {
- if ( session != null && session.isConnected() ) {
- session.close();
- session.getCloseFuture().join();
- }
- }
-
- private void addResponseHandler(int id,
- MessageResponseHandler responseHandler) {
- ((MinaIoHandler) this.connector.getHandler()).addResponseHandler( id,
- responseHandler );
- }
-
- public void write(Message msg,
- MessageResponseHandler responseHandler) {
- if ( responseHandler != null ) {
- addResponseHandler( msg.getResponseId(),
- responseHandler );
- }
- this.session.write( msg );
- }
-
- public Message write(Message msg) {
- BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
-
- if ( responseHandler != null ) {
- addResponseHandler( msg.getResponseId(),
- responseHandler );
- }
- this.session.write( msg );
-
- Message returnMessage = responseHandler.getMessage();
- if ( responseHandler.getError() != null ) {
- throw responseHandler.getError();
- }
-
- return returnMessage;
- }
-
- public String getId() {
- return String.valueOf(session.getId());
- }
-
- public void setSession(Object object) {
- this.session = (IoSession) object;
- }
-}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,7 +19,7 @@
import org.drools.services.NodeSelectionStrategy;
import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
/**
*
@@ -31,8 +31,8 @@
public ReturnAlwaysTheFirstSelectionStrategy(GenericConnection connection) {
this.connection = connection;
}
- public GenericServiceConnector getBestNode() {
- return this.connection.getServices().get(0);
+ public GenericNodeConnector getBestNode() {
+ return this.connection.getNodeConnectors().get(0);
}
public void setConnection(GenericConnection connection) {
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -20,7 +20,7 @@
import org.drools.services.NodeSelectionStrategy;
import org.drools.services.generic.GenericConnection;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.generic.GenericNodeConnector;
/**
@@ -36,9 +36,9 @@
@Override
- public GenericServiceConnector getBestNode() {
+ public GenericNodeConnector getBestNode() {
System.out.println("!!!!!GET BEST NODE = "+counter);
- GenericServiceConnector service = connection.getServices().get(counter);
+ GenericNodeConnector service = connection.getNodeConnectors().get(counter);
StaticIncrementalSelectionStrategy.counter = counter +1;
return service;
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -30,6 +30,7 @@
import org.drools.runtime.ExecutionResults;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.services.RemoteConnection;
+import org.drools.services.generic.GenericConnection;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -41,7 +42,7 @@
public abstract class ExecutionNodeBaseTest {
protected ExecutionNode node;
- protected RemoteConnection connection = new RemoteConnection();
+ protected GenericConnection connection;
@Before
protected abstract void configureNode() throws Exception;
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/LocalExecutionNodeTest.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -17,13 +17,8 @@
package org.drools.service;
-import org.drools.services.LocalNodeConnector;
-import org.junit.After;
-import org.junit.AfterClass;
+import org.drools.services.local.LocalConnection;
import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import static org.junit.Assert.*;
/**
*
@@ -38,7 +33,8 @@
@Before
public void configureNode() {
- node = new LocalNodeConnector().connect();
+ connection = new LocalConnection();
+ node = connection.getExecutionNode(null);
}
Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java 2010-04-03 16:52:21 UTC (rev 32378)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java 2010-04-03 18:04:39 UTC (rev 32379)
@@ -19,8 +19,8 @@
import java.rmi.RemoteException;
import java.util.Iterator;
-import org.drools.services.remote.mina.MinaServiceConnector;
-import org.drools.services.generic.GenericServiceConnector;
+import org.drools.services.remote.mina.MinaNodeConnector;
+import org.drools.services.generic.GenericNodeConnector;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import java.io.IOException;
import org.drools.services.remote.mina.MinaAcceptor;
@@ -32,8 +32,9 @@
import org.drools.services.generic.NodeData;
import java.net.SocketAddress;
import java.net.InetSocketAddress;
-import org.drools.services.DirectoryService;
-import org.drools.services.local.DirectoryServiceLocalImpl;
+import org.drools.services.DirectoryNodeService;
+import org.drools.services.RemoteConnection;
+import org.drools.services.local.DirectoryNodeLocalImpl;
import org.drools.services.strategies.StaticIncrementalSelectionStrategy;
import org.junit.After;
import org.junit.Before;
@@ -52,6 +53,8 @@
@Before
public void configureNode() throws IOException {
+ connection = new RemoteConnection();
+
StaticIncrementalSelectionStrategy.counter = 0;
SocketAddress address = new InetSocketAddress( "127.0.0.1",
9123 );
@@ -66,16 +69,16 @@
address );
this.server.start();
- connection.addDirectoryService(new DirectoryServiceLocalImpl());
+ connection.addDirectoryNode(new DirectoryNodeLocalImpl());
// setup Client
NioSocketConnector clientConnector = new NioSocketConnector();
clientConnector.setHandler( new MinaIoHandler( SystemEventListenerFactory.getSystemEventListener() ) );
- GenericServiceConnector minaClient = new MinaServiceConnector( "client 1",
+ GenericNodeConnector minaClient = new MinaNodeConnector( "client 1",
clientConnector,
address,
SystemEventListenerFactory.getSystemEventListener() );
- connection.addService(minaClient);
+ connection.addNodeConnector(minaClient);
node = connection.getExecutionNode(null);
}
@@ -83,7 +86,7 @@
@After
public void tearDown() throws RemoteException {
- for(Iterator<GenericServiceConnector> iterator = connection.getServices().iterator(); iterator.hasNext();){
+ for(Iterator<GenericNodeConnector> iterator = connection.getNodeConnectors().iterator(); iterator.hasNext();){
iterator.next().disconnect();
}
More information about the jboss-svn-commits
mailing list