[jboss-svn-commits] JBL Code SVN: r32363 - in labs/jbossrules/branches/salaboy_ServiceAPIs: drools-services/src/main/java/org/drools/services/local and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Apr 1 18:08:43 EDT 2010


Author: salaboy21
Date: 2010-04-01 18:08:42 -0400 (Thu, 01 Apr 2010)
New Revision: 32363

Added:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java
Modified:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java
   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/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/local/DirectoryServiceLocalImpl.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/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/RemoteExecutionNodeTest.java
Log:
JBRULES-2446: Drools Services API
	- drools-services local implementation of the DirectoryService
	- drools-services-grid connect and disconnect methods for the grid env do nothing

Modified: 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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/DirectoryService.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -20,4 +20,5 @@
     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/LocalNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java	2010-04-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/LocalNodeConnector.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -17,7 +17,9 @@
 
 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;
 /**
@@ -36,7 +38,7 @@
         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/NodeSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	2010-04-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/NodeSelectionStrategy.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -17,6 +17,7 @@
 
 package org.drools.services;
 
+import org.drools.services.generic.GenericConnection;
 import org.drools.services.generic.GenericServiceConnector;
 
 /**
@@ -26,6 +27,6 @@
 public interface NodeSelectionStrategy {
 
     public GenericServiceConnector 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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/RemoteConnection.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -49,7 +49,10 @@
     }
 
     public void addService(GenericServiceConnector service) {
-
+        //register the service to all the DirectoryServices
+        for(DirectoryService directory : directories){
+            directory.addService(service);
+        }
         this.services.add(service);
 
     }
@@ -73,6 +76,7 @@
             currentService = getBestService(
                 new StaticIncrementalSelectionStrategy(this));
         } else{
+            strategy.setConnection(this);
             currentService = getBestService(strategy);
         }
 

Added: 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	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryLookupProviderLocalClient.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -0,0 +1,52 @@
+/*
+ *  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.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.runtime.CommandExecutor;
+import org.drools.services.DirectoryService;
+
+/**
+ *
+ * @author salaboy
+ */
+public class DirectoryLookupProviderLocalClient implements DirectoryLookupFactoryService {
+
+    
+    private Map<String, CommandExecutor> services = new HashMap<String, CommandExecutor>();
+
+    public DirectoryLookupProviderLocalClient() {
+        
+    }
+
+
+    public void register(String key, CommandExecutor executor) {
+            services.put(key, executor);
+    }
+
+    public CommandExecutor lookup(String key) {
+            return  services.get(key);
+    }
+
+}

Modified: 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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/local/DirectoryServiceLocalImpl.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -61,5 +61,8 @@
     public KnowledgeBase lookupKBase(String kbaseId) throws RemoteException {
         throw new UnsupportedOperationException("Not supported yet.");
     }
+    public void addService(GenericServiceConnector service){
+        services.add(service);
+    }
 
 }

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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/remote/DirectoryLookupProviderRemoteClient.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -53,7 +53,7 @@
     public DirectoryLookupProviderRemoteClient(GenericServiceConnector client, GenericConnection connection) {
         this.client = client;
         this.messageSession = new MessageSession();
-        connection = connection;
+        this.connection = connection;
     }
 
     public void register(String identifier,

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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/ReturnAlwaysTheFirstSelectionStrategy.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -35,4 +35,9 @@
         return this.connection.getServices().get(0);
     }
 
+    public void setConnection(GenericConnection connection) {
+        this.connection = 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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/main/java/org/drools/services/strategies/StaticIncrementalSelectionStrategy.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -43,4 +43,9 @@
         return service;
     }
 
+    public void setConnection(GenericConnection connection) {
+        this.connection = connection;
+    }
+    
+
 }

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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/ExecutionNodeBaseTest.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -94,7 +94,9 @@
 
 
     }
+    @Test
     public void testExecute() throws Exception {
+        
         String str = "";
         str += "package org.drools \n";
         str += "global java.util.List list \n";
@@ -131,7 +133,7 @@
         Assert.assertEquals( 2,
                       (int) (Integer) results.getValue( "fired" ) );
     }
-
+    @Test
     public void testNamedService() throws Exception {
         String str = "";
         str += "package org.drools \n";
@@ -174,7 +176,7 @@
         Assert.assertEquals( 2,
                       (int) (Integer) results.getValue( "fired" ) );
     }
-
+    @Test
     public void testVsmPipeline() throws Exception {
         String str = "";
         str += "package org.drools \n";

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-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services/src/test/java/org/drools/service/RemoteExecutionNodeTest.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -17,7 +17,8 @@
 
 package org.drools.service;
 
-import org.drools.services.NodeConnector;
+import java.rmi.RemoteException;
+import java.util.Iterator;
 import org.drools.services.remote.mina.MinaServiceConnector;
 import org.drools.services.generic.GenericServiceConnector;
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
@@ -31,7 +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.strategies.StaticIncrementalSelectionStrategy;
 import org.junit.After;
 import org.junit.Before;
 
@@ -41,7 +44,7 @@
  */
 public class RemoteExecutionNodeTest extends ExecutionNodeBaseTest{
     private MinaAcceptor server;
-    private NodeConnector nodeConnection;
+    
     public RemoteExecutionNodeTest() {
     }
 
@@ -49,6 +52,7 @@
 
     @Before
     public void configureNode() throws IOException {
+        StaticIncrementalSelectionStrategy.counter = 0;
         SocketAddress address = new InetSocketAddress( "127.0.0.1",
                                                        9123 );
 
@@ -72,15 +76,19 @@
                                                          address,
                                                          SystemEventListenerFactory.getSystemEventListener() );
         connection.addService(minaClient);
-        //nodeConnection = new RemoteNodeConnector("client 1", minaClient);
-        //node = nodeConnection.connect();
         node = connection.getExecutionNode(null); 
         
     }
 
     @After
-    public void tearDown() {
-       // connection.disconnect();
+    public void tearDown() throws RemoteException {
+        
+        for(Iterator<GenericServiceConnector> iterator = connection.getServices().iterator(); iterator.hasNext();){
+            iterator.next().disconnect();
+        }
+
+         this.server.stop();
+
     }
 
     

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java	2010-04-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridConnection.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -72,6 +72,7 @@
             currentService = getBestService(
                 new StaticIncrementalSelectionStrategy(this));
         } else{
+            strategy.setConnection(this);
             currentService = getBestService(strategy);
         }
 

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java	2010-04-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -8,6 +8,7 @@
 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.command.KnowledgeContextResolveFromContextCommand;
@@ -98,4 +99,9 @@
                                         e );
         }
     }
+
+    @Override
+    public void addService(GenericServiceConnector service) {
+        ((List)nodeServices).add(service);
+    }
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java	2010-04-01 20:09:19 UTC (rev 32362)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/ExecutionNodeServiceImpl.java	2010-04-01 22:08:42 UTC (rev 32363)
@@ -87,12 +87,13 @@
 
     @Override
     public boolean connect() throws RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        //this is always connected if the lookup was successful
+        return true;
     }
 
     @Override
     public void disconnect() throws RemoteException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        //we don't need to desconnect the grid
     }
 
    



More information about the jboss-svn-commits mailing list