[jboss-svn-commits] JBL Code SVN: r33155 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-local/src/main/java/org/drools/grid/local and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat May 29 12:27:53 EDT 2010
Author: salaboy21
Date: 2010-05-29 12:27:52 -0400 (Sat, 29 May 2010)
New Revision: 33155
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/DirectoryInstanceByPrioritySelectionStrategy.java
Modified:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-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/LocalNodeConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
Log:
Adding directory Local Implementation to the ServiceLayer
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -23,8 +23,6 @@
import java.util.Map;
import java.util.UUID;
import org.drools.KnowledgeBase;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.GenericNodeConnector;
/**
*
@@ -44,9 +42,9 @@
return this.id;
}
- public void register(String executorId, String sessionServiceId) throws RemoteException {
- System.out.println("Registering: " + executorId + " -- " + sessionServiceId);
- directoryMap.put(executorId, sessionServiceId);
+ public void register(String executorId, String resourceId) throws RemoteException {
+ System.out.println("Registering: " + executorId + " -- " + resourceId);
+ directoryMap.put(executorId, resourceId);
}
public GenericNodeConnector lookup(String executorId) throws RemoteException {
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -16,9 +16,9 @@
*/
public interface DirectoryNodeService {
- public void register(String executorId, String nodeServiceId) throws RemoteException;
- public GenericNodeConnector lookup(String executorId) throws RemoteException;
- public void registerKBase(String kbaseId, String nodeServiceId) throws RemoteException;
+ public void register(String executorId, String resourceId) throws RemoteException;
+ public GenericNodeConnector lookup(String resourceId) throws RemoteException;
+ public void registerKBase(String kbaseId, String resourceId) throws RemoteException;
public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException;
public void addService(GenericNodeConnector service);
public Map<String, String> getDirectoryMap() throws RemoteException;
Modified: 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-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -21,6 +21,7 @@
import org.drools.KnowledgeBaseFactoryService;
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.DirectoryNodeLocalImpl;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.ExecutionNode;
import org.drools.grid.GenericConnection;
@@ -36,10 +37,11 @@
//Cached NodeConnectors
private List<GenericNodeConnector> nodeConnectors;
-
+ private List<DirectoryNodeService> directories;
public LocalConnection() {
this.nodeConnectors = new ArrayList<GenericNodeConnector>();
-
+ this.directories = new ArrayList<DirectoryNodeService>();
+ this.directories.add(new DirectoryNodeLocalImpl());
}
public void addNodeConnector(GenericNodeConnector nodeConnector) {
@@ -47,7 +49,7 @@
}
public void addDirectoryNode(DirectoryNodeService directory) {
- throw new UnsupportedOperationException("Not supported yet.");
+ this.directories.add(directory);
}
public List<GenericNodeConnector> getNodeConnectors() {
@@ -64,7 +66,7 @@
}
public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy) {
- throw new UnsupportedOperationException("Not supported yet.");
+ return this.directories.get(0);
}
public ExecutionNode getExecutionNode(NodeSelectionStrategy strategy) {
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-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalNodeConnector.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -18,6 +18,7 @@
package org.drools.grid.local;
import java.rmi.RemoteException;
+import java.util.UUID;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericNodeConnector;
import org.drools.grid.internal.Message;
@@ -29,6 +30,13 @@
*/
public class LocalNodeConnector implements GenericNodeConnector {
+ private String id;
+ private LocalConnection connection;
+ public LocalNodeConnector() {
+ this.id = UUID.randomUUID().toString();
+ this.connection = new LocalConnection();
+ }
+
public boolean connect() throws RemoteException {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -42,13 +50,13 @@
}
public String getId() throws RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
+ return this.id;
}
public void write(Message msg, MessageResponseHandler responseHandler) {
throw new UnsupportedOperationException("Not supported yet.");
}
public GenericConnection getConnection(){
- return new LocalConnection();
+ return this.connection;
}
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/DirectoryInstance.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -1,5 +1,8 @@
package org.drools.grid.services;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+
/**
* @author salaboy
*/
@@ -9,6 +12,13 @@
super(name, provider);
}
+ public DirectoryNodeService getDirectoryService() {
+ GenericConnection connection = getConnector().getConnection();
+ return connection.getDirectoryNode(null);
+ }
+
+
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -17,6 +17,10 @@
package org.drools.grid.services;
+import org.drools.grid.ExecutionNode;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
+
/**
*
* @author salaboy
@@ -26,6 +30,10 @@
public ExecutionEnvironment(String name, GenericProvider provider) {
super(name, provider);
}
-
+ public ExecutionNode getExecutionNode() {
+ GenericConnection connection = getConnector().getConnection();
+ return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy(connection));
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -1,5 +1,7 @@
package org.drools.grid.services;
+import java.rmi.RemoteException;
+import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
import java.util.HashMap;
import java.util.Map;
import org.drools.grid.ExecutionNode;
@@ -28,17 +30,26 @@
}
- public void registerGridResource(String name, GenericProvider provider) {
+ public void registerGridResource(String name, GenericProvider provider) throws RemoteException {
GridResource resource = provider.getGridResource(name);
GenericNodeConnector connector = resource.getConnector();
GenericConnection connection = connector.getConnection();
connection.addNodeConnector(connector);
connections.put(name, connection);
+ registerGridResourceInCurrentDirectories(name, connector.getId());
resources.put(name, resource);
}
+ private void registerGridResourceInCurrentDirectories(String name, String resourceId) throws RemoteException{
+ for(GridResource resource : resources.values()){
+ if(resource instanceof DirectoryInstance){
+ System.out.println("DirectoryInstance = "+resource + " --> name ="+name + "-> resourceId = "+resourceId);
+ ((DirectoryInstance)resource).getDirectoryService().register(name, resourceId);
+ }
+ }
+ }
public static GridResource lookup(String name) {
@@ -48,10 +59,6 @@
-// public Map<String, GenericConnection> getConnections() {
-// return this.connections;
-// }
-
public GridResource getExecutionEnvironment(String name) {
return this.resources.get(name);
}
@@ -78,6 +85,10 @@
return name;
}
+ public DirectoryInstance getBestDirectoryInstance(DirectoryInstanceByPrioritySelectionStrategy strategy) {
+ return (DirectoryInstance) strategy.getBestGridResource(resources);
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -18,6 +18,7 @@
package org.drools.grid.services.local;
import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.local.LocalNodeConnector;
import org.drools.grid.services.DirectoryInstance;
import org.drools.grid.services.GenericProvider;
import org.drools.grid.services.GridResource;
@@ -28,12 +29,15 @@
*/
public class LocalDirectoryProvider extends GenericProvider{
+ private GenericNodeConnector connector;
+
public LocalDirectoryProvider() {
+ this.connector = new LocalNodeConnector();
}
@Override
public GenericNodeConnector getNodeConnector() {
- throw new UnsupportedOperationException("Not supported yet.");
+ return this.connector;
}
@Override
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/DirectoryInstanceByPrioritySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/DirectoryInstanceByPrioritySelectionStrategy.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/DirectoryInstanceByPrioritySelectionStrategy.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -0,0 +1,81 @@
+/*
+ * 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.services.strategies;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.grid.services.DirectoryInstance;
+import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridResource;
+import org.drools.grid.services.local.LocalDirectoryProvider;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryInstanceByPrioritySelectionStrategy implements GridResourceSelectionStrategy {
+
+ private List<GridResource> resources;
+
+ public GridResource getBestGridResource() {
+
+
+
+ Collections.sort(resources, new Comparator<GridResource>() {
+
+ private Map<Class<? extends GenericProvider> , Integer> priorities
+ = new HashMap<Class<? extends GenericProvider>, Integer>() {
+ {
+ put(LocalDirectoryProvider.class, 1);
+ // put("RioEnvironmentProvider", 2);
+ // put("HornetQEnvironmentProvider", 3);
+ // put(MinaDirectoryProvider.class, 4);
+ }
+ };
+
+ public int compare(GridResource o1, GridResource o2) {
+ return priorities.get(o1.getProvider().getClass())
+ .compareTo(priorities.get(o2.getProvider().getClass()));
+ }
+ });
+
+
+
+ return resources.get(0);
+ }
+
+ public void setResources(Map<String, GridResource> resources) {
+ List<GridResource> onlyExecutionEnvironments = new ArrayList<GridResource>();
+ for(GridResource resource : resources.values()){
+ if(resource instanceof DirectoryInstance ){
+ onlyExecutionEnvironments.add(resource);
+ }
+ }
+ this.resources = onlyExecutionEnvironments;
+ }
+
+ public GridResource getBestGridResource(Map<String, GridResource> resources) {
+ setResources(resources);
+ return getBestGridResource();
+ }
+
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -27,5 +27,5 @@
public interface GridResourceSelectionStrategy {
public GridResource getBestGridResource();
public void setResources(Map<String, GridResource> resources);
- public GridResource getBestGridResource(Map<String, GridResource> environments);
+ public GridResource getBestGridResource(Map<String, GridResource> resources);
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-05-29 02:34:50 UTC (rev 33154)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-05-29 16:27:52 UTC (rev 33155)
@@ -17,15 +17,20 @@
package org.drools.services;
+import java.rmi.RemoteException;
import org.drools.grid.services.local.LocalDirectoryProvider;
import java.util.HashMap;
import java.util.Map;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.services.DirectoryInstance;
import org.drools.grid.services.GenericProvider;
import org.drools.grid.services.GridTopology;
import org.drools.grid.services.local.LocalEnvironmentProvider;
import org.drools.grid.services.remote.MinaEnvironmentProvider;
+import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
import org.junit.After;
import org.junit.AfterClass;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -57,15 +62,24 @@
@Test
- public void hello() {
- GridTopology eet = new GridTopology("MyBusinessUnit");
+ public void directoryLocalTest() throws RemoteException {
+ GridTopology grid = new GridTopology("MyBusinessUnit");
GenericProvider localDirProvider = new LocalDirectoryProvider();
GenericProvider localEnvProvider = new LocalEnvironmentProvider();
- eet.registerGridResource("MyLocalEnv", localEnvProvider);
- // eet.registerGridResource("MyLocalDir", localDirProvider);
+ grid.registerGridResource("MyLocalDir", localDirProvider);
+ grid.registerGridResource("MyLocalEnv", localEnvProvider);
+
+
+ DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
+ Assert.assertNotNull(directory);
+ DirectoryNodeService dir = directory.getDirectoryService();
+
+ System.out.println("Directory ="+dir.getDirectoryMap());
+
+
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list