[jboss-svn-commits] JBL Code SVN: r34269 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation: drools-api/src/main/java/org/drools/command/impl and 13 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 28 17:11:43 EDT 2010


Author: salaboy21
Date: 2010-07-28 17:11:40 -0400 (Wed, 28 Jul 2010)
New Revision: 34269

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/UnRegisterCommand.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkingMemoryEntryPointRemoteCommand.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/assembly/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/assembly/distro.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaDirectoryRunner.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/start.sh
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/Context.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/impl/ContextImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/ExecutionNodeContext.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/pom.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeRunner.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.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/test/java/org/drools/services/BasicAPITestWithMina.java
   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/RegisterMinaDirectoryTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
Log:
adding details in remote implementation to work with globals, entrypoints and inserts

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/Context.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/Context.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/Context.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -9,5 +9,7 @@
     Object get(String identifier);
 
     void set(String identifier,
-             Object value);    
+             Object value);
+
+    void remove(String name);
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/impl/ContextImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/impl/ContextImpl.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-api/src/main/java/org/drools/command/impl/ContextImpl.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -59,6 +59,10 @@
         context.put( name,
                      object );
     }
+
+    public void remove(String name){
+        context.remove(name);
+    }
     
     public int getDepth() {
         return this.depth;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/impl/KnowledgeCommandContext.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -87,4 +87,8 @@
                      value );
     }
 
+    public void remove(String name) {
+        context.remove(name);
+    }
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-core/src/main/java/org/drools/command/runtime/rule/InsertObjectCommand.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -11,6 +11,7 @@
 import org.drools.impl.StatefulKnowledgeSessionImpl;
 import org.drools.reteoo.ReteooWorkingMemory;
 import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.impl.ExecutionResultImpl;
 import org.drools.runtime.rule.FactHandle;
 
 @XmlAccessorType(XmlAccessType.NONE)
@@ -47,14 +48,21 @@
         FactHandle factHandle = ksession.insert( object );
         
         ReteooWorkingMemory session = ((StatefulKnowledgeSessionImpl)ksession).session;
-
+        
         if ( outIdentifier != null ) {
             if ( this.returnObject ) {
-                session.getExecutionResult().getResults().put( this.outIdentifier,
-                                                               object );
+                //TODO: My Hack consult with markp
+
+                //session.getExecutionResult().getResults().put( this.outIdentifier,
+                //                                               object );
+                
+                ((ExecutionResultImpl)((KnowledgeCommandContext) context ).getExecutionResults()).getResults().put( this.outIdentifier, object );
+
             }
-            session.getExecutionResult().getFactHandles().put( this.outIdentifier,
-                                                         factHandle );
+            //session.getExecutionResult().getFactHandles().put( this.outIdentifier,
+            //                                             factHandle );
+            ((ExecutionResultImpl)((KnowledgeCommandContext) context ).getExecutionResults()).getFactHandles().put( this.outIdentifier, factHandle.toExternalForm() );
+
         }
 
         return factHandle;

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -74,7 +74,7 @@
         NodeConnectionType type;
         try {
             type = connector.getNodeConnectionType();
-
+            System.out.println("!!!!!!!!!!!!!>>>>>>>>>>>>>>>>>>>Connector = "+connector + " -> Type = "+type + "Connecting!!!!!");
             connector.connect();
 
             type.setConnector(connector);

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/ExecutionNodeContext.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/ExecutionNodeContext.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/ExecutionNodeContext.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -37,4 +37,8 @@
                      value );
     }
 
+    public void remove(String name) {
+        context.remove(name);
+    }
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -80,6 +80,7 @@
     RegisterExecutor,
     UnRegisterExecutor,
     RegisterKBase,
+    RequestKBaseId,
     UnRegisterKBase,
     RequestExecutorsMap,
     RequestKBasesMap,

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/UnRegisterCommand.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/UnRegisterCommand.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/UnRegisterCommand.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -0,0 +1,27 @@
+package org.drools.grid.internal.commands;
+
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.grid.internal.NodeData;
+
+public class UnRegisterCommand
+    implements
+    GenericCommand<Void> {
+
+    private String identifier;
+   
+
+    public UnRegisterCommand(String identifier) {
+        this.identifier = identifier;
+       
+    }
+
+    public Void execute(Context context) {
+        NodeData data = (NodeData) context.get( NodeData.NODE_DATA );
+
+        data.getRoot().remove( identifier );
+
+        return null;
+    }
+
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -35,6 +35,7 @@
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageSession;
+import org.drools.grid.internal.commands.UnRegisterCommand;
 
 /**
  *
@@ -176,7 +177,45 @@
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
-    public void unregister(String key) {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public void unregister(String identifier) {
+        try {
+            String commandId = "client.lookup" + messageSession.getNextId();
+            String kresultsId = "kresults_" + messageSession.getSessionId();
+
+
+            DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
+            try {
+
+                directoryNode.unregister(identifier);
+            } catch (RemoteException ex) {
+                Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+
+            Message msg = new Message(messageSession.getSessionId(),
+                    messageSession.getCounter().incrementAndGet(),
+                    false,
+                    new KnowledgeContextResolveFromContextCommand(
+                    new UnRegisterCommand(identifier),
+                    null, null, null, null));
+
+
+            try {
+                Object object = client.write(msg).getPayload();
+                if (!(object instanceof FinishedCommand)) {
+                    throw new RuntimeException("Response was not correctly ended");
+                }
+            } catch (Exception e) {
+                throw new RuntimeException("Unable to execute message", e);
+            }
+            try {
+                directoryNode.dispose();
+            } catch (RemoteException ex) {
+                Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+        } catch (ConnectorException ex) {
+            Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
     }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -8,6 +8,7 @@
 
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.command.FinishedCommand;
 import org.drools.command.NewKnowledgeBaseCommand;
@@ -50,7 +51,7 @@
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
-                                                           new NewKnowledgeBaseCommand( null ) ) );
+                                                           new NewKnowledgeBaseCommand( conf ) ) );
         try {
             Object object = client.write( msg ).getPayload();
 
@@ -69,8 +70,7 @@
     }
 
     public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration() {
-        // TODO Auto-generated method stub
-        return null;
+        return KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
     }
 
     public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties,
@@ -91,7 +91,8 @@
 
     public KnowledgeBase newKnowledgeBase(String kbaseId) {
         //TODO: I need to replace this random id with the kbase ID and test it
-        String localId = UUID.randomUUID().toString();
+        //String localId = UUID.randomUUID().toString();
+        String localId = kbaseId;
 
         Message msg = new Message( messageSession.getSessionId(),
                                    messageSession.counter.incrementAndGet(),
@@ -133,8 +134,8 @@
     public KnowledgeBase newKnowledgeBase(String kbaseId,
                                           KnowledgeBaseConfiguration conf) {
         //TODO: I need to replace this random id with the kbase ID and test it
-        String localId = UUID.randomUUID().toString();
-
+        //String localId = UUID.randomUUID().toString();
+        String localId = kbaseId;
         Message msg = new Message( messageSession.getSessionId(),
                                    messageSession.counter.incrementAndGet(),
                                    false,

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -108,7 +108,7 @@
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
-                                                           new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( null ),
+                                                           new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( conf ),
                                                                                                           null,
                                                                                                           instanceId,
                                                                                                           null,

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -6,8 +6,13 @@
 import org.drools.KnowledgeBase;
 import org.drools.command.Command;
 import org.drools.command.ExecuteCommand;
+import org.drools.command.FinishedCommand;
 import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.GetGlobalCommand;
+import org.drools.command.runtime.SetGlobalCommand;
 import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.common.DisconnectedFactHandle;
 import org.drools.grid.internal.commands.RegisterRemoteWorkItemHandlerCommand;
 import org.drools.event.process.ProcessEventListener;
 import org.drools.event.rule.AgendaEventListener;
@@ -31,6 +36,7 @@
 import org.drools.grid.internal.Message;
 import org.drools.grid.internal.MessageSession;
 import org.drools.grid.remote.internal.commands.GetWorkItemManagerCommand;
+import org.drools.grid.remote.internal.commands.GetWorkingMemoryEntryPointRemoteCommand;
 import org.drools.grid.remote.internal.commands.StartProcessRemoteCommand;
 
 
@@ -147,8 +153,31 @@
     }
 
     public Object getGlobal(String identifier) {
-        // TODO Auto-generated method stub
-        return null;
+         String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new GetGlobalCommand( identifier ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object result = client.write( msg ).getPayload();
+            if ( result == null ) {
+                throw new RuntimeException( "Response was not correctly received = null" );
+            }
+
+           return result;
+
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
     }
 
     public Globals getGlobals() {
@@ -174,8 +203,35 @@
 
     public void setGlobal(String identifier,
                           Object object) {
-        // TODO Auto-generated method stub
+        String commandId = "ksession.execute" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
 
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new SetGlobalCommand( identifier,
+                                                                                                      object ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object result = client.write( msg ).getPayload();
+            if ( result == null ) {
+                throw new RuntimeException( "Response was not correctly received = null" );
+            }
+
+            if ( !(result instanceof FinishedCommand)) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+
     }
 
     public void unregisterExitPoint(String name) {
@@ -200,8 +256,31 @@
     }
 
     public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
-        // TODO Auto-generated method stub
-        return null;
+       String commandId = "ksession.getWorkingMemoryEntryPoint" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new GetWorkingMemoryEntryPointRemoteCommand( name ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  name,
+                                                                                  kresultsId ) );
+
+        try {
+            Object object = client.write( msg ).getPayload();
+
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+
+            return new WorkingMemoryEntryPointRemoteClient(name, client, messageSession);
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
     }
 
     public Collection< ? extends WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints() {
@@ -245,8 +324,31 @@
     }
 
     public FactHandle insert(Object object) {
-        // TODO Auto-generated method stub
-        return null;
+         String commandId = "ksession.insert" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+
+        
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand(object, String.valueOf(object.hashCode()) ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object result = client.write( msg ).getPayload();
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+            FactHandle handle = new DisconnectedFactHandle(((ExecutionResults) result).getFactHandle( String.valueOf(object.hashCode()) ).toString()) ;
+
+            return  handle;
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
     }
 
     public void retract(FactHandle handle) {

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -0,0 +1,126 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.grid.remote;
+
+import java.util.Collection;
+import org.drools.FactException;
+import org.drools.FactHandle;
+import org.drools.WorkingMemoryEntryPoint;
+import org.drools.command.KnowledgeContextResolveFromContextCommand;
+import org.drools.command.runtime.rule.InsertObjectInEntryPointCommand;
+import org.drools.common.DisconnectedFactHandle;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageSession;
+import org.drools.runtime.ExecutionResults;
+import org.drools.runtime.ObjectFilter;
+
+/**
+ *
+ * @author salaboy
+ */
+public class WorkingMemoryEntryPointRemoteClient implements WorkingMemoryEntryPoint{
+
+     private GenericNodeConnector     client;
+    private MessageSession              messageSession;
+    private String                      instanceId;
+
+    public WorkingMemoryEntryPointRemoteClient(String instanceId, GenericNodeConnector client, MessageSession messageSession) {
+        this.client = client;
+        this.messageSession = messageSession;
+        this.instanceId = instanceId;
+    }
+
+
+
+    public FactHandle insert(Object object) throws FactException {
+         String commandId = "ksession.insert" + messageSession.getNextId();
+        String kresultsId = "kresults_" + messageSession.getSessionId();
+        Message msg = new Message( messageSession.getSessionId(),
+                                   messageSession.counter.incrementAndGet(),
+                                   false,
+                                   new KnowledgeContextResolveFromContextCommand( new InsertObjectInEntryPointCommand(object, String.valueOf(object.hashCode()) ),
+                                                                                  null,
+                                                                                  null,
+                                                                                  null,
+                                                                                  instanceId,
+                                                                                  kresultsId ) );
+
+        try {
+            Object result = client.write( msg ).getPayload();
+            if ( object == null ) {
+                throw new RuntimeException( "Response was not correctly received" );
+            }
+            FactHandle handle = new DisconnectedFactHandle(((ExecutionResults) result).getFactHandle( String.valueOf(object.hashCode()) ).toString()) ;
+            
+            return  handle;
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to execute message",
+                                        e );
+        }
+    }
+
+    public FactHandle insert(Object object, boolean dynamic) throws FactException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void retract(org.drools.runtime.rule.FactHandle handle) throws FactException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void update(org.drools.runtime.rule.FactHandle handle, Object object) throws FactException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public String getEntryPointId() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public org.drools.runtime.rule.FactHandle getFactHandle(Object object) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public Object getObject(org.drools.runtime.rule.FactHandle factHandle) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public Collection<Object> getObjects() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public Collection<Object> getObjects(ObjectFilter filter) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public <T extends org.drools.runtime.rule.FactHandle> Collection<T> getFactHandles() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public <T extends org.drools.runtime.rule.FactHandle> Collection<T> getFactHandles(ObjectFilter filter) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public long getFactCount() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkingMemoryEntryPointRemoteCommand.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkingMemoryEntryPointRemoteCommand.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/internal/commands/GetWorkingMemoryEntryPointRemoteCommand.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -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.grid.remote.internal.commands;
+
+/**
+ *
+ * @author salaboy
+ */
+
+
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class GetWorkingMemoryEntryPointRemoteCommand
+    implements
+    GenericCommand<WorkingMemoryEntryPoint> {
+
+    private String name;
+
+    public GetWorkingMemoryEntryPointRemoteCommand(String name) {
+        this.name = name;
+    }
+
+    public WorkingMemoryEntryPoint execute(Context context) {
+        StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession();
+        WorkingMemoryEntryPoint ep = ksession.getWorkingMemoryEntryPoint( name );
+        context.getContextManager().getDefaultContext().set(name, ep); 
+        return ep;
+    }
+
+    public String toString() {
+        return "session.getWorkingMemoryEntryPoint( " + name + " );";
+    }
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/pom.xml	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/pom.xml	2010-07-28 21:11:40 UTC (rev 34269)
@@ -52,4 +52,28 @@
             <type>jar</type>
         </dependency>
     </dependencies>
+
+      <build>
+    <plugins>
+      <plugin>
+        <inherited>true</inherited>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+          <optimize>true</optimize>
+          <debug>true</debug>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assembly/distro.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/assembly/distro.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/assembly/distro.xml	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/assembly/distro.xml	2010-07-28 21:11:40 UTC (rev 34269)
@@ -0,0 +1,25 @@
+<assembly>
+  <id>distro</id>
+  <formats>
+    <format>tar.gz</format>
+  </formats>
+  <baseDirectory>${project.artifactId}-distro</baseDirectory>
+  <files>
+    <file>
+      <source>target/${project.artifactId}-${project.version}.jar</source>
+      <destName>libs/${project.artifactId}-${project.version}.jar</destName>
+      <fileMode>0644</fileMode>
+    </file>
+    <file>
+      <source>src/main/start.sh</source>
+      <destName>start.sh</destName>
+      <fileMode>0555</fileMode>
+    </file>
+  </files>
+  <dependencySets>
+    <dependencySet>
+      <outputDirectory>libs/</outputDirectory>
+      <scope>runtime</scope>
+    </dependencySet>
+  </dependencySets>
+</assembly>

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -38,6 +38,8 @@
 import org.drools.grid.internal.responsehandlers.BlockingMessageDirectoryMapRequestResponseHandler;
 import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
 import org.drools.grid.GenericConnectorFactory;
+import org.drools.grid.internal.MessageSession;
+import org.drools.grid.remote.KnowledgeBaseRemoteClient;
 import org.drools.grid.remote.mina.MinaIoHandler;
 
 /**
@@ -67,7 +69,7 @@
     }
 
     public GenericNodeConnector lookup(String resourceId) throws ConnectorException {
-        System.out.println(">>>>>>>>>>>>>>>>Looking for resource = "+resourceId);
+        
         List<Object> args = new ArrayList<Object>(1);
         args.add(resourceId);
         SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
@@ -89,7 +91,23 @@
     }
 
     public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        List<Object> args = new ArrayList<Object>(1);
+        args.add(kbaseId);
+        SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestKBaseId, args);
+        Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
+        BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
+        write(msg, handler);
+        SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
+        String connectorString = (String)resultcmd.getArguments().get(0);
+        System.out.println("Creating connecgor for: "+connectorString);
+        GenericNodeConnector connector = GenericConnectorFactory.newNodeConnector(connectorString);
+        try {
+            connector.connect();
+        } catch (RemoteException ex) {
+            Logger.getLogger(DirectoryNodeRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        
+        return new KnowledgeBaseRemoteClient(kbaseId, connector, new MessageSession() );
     }
 
     public void addService(GenericNodeConnector service) {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -114,6 +114,20 @@
                                         resultsCmnd ), null);
                     break;
                 }
+                 case RequestKBaseId: {
+
+                    String kbaseId = (String) cmd.getArguments().get(0);
+
+                    String kbaseConnectorId = directory.getKBasesMap().get(kbaseId);
+                    List<Object> results = new ArrayList<Object>(1);
+                    results.add(kbaseConnectorId);
+                    SimpleCommand resultsCmnd = new SimpleCommand(cmd.getId(), SimpleCommandName.OperationResponse, results);
+                    session.write(new Message( msg.getSessionId(),
+                                        msg.getResponseId(),
+                                        msg.isAsync(),
+                                        resultsCmnd ), null);
+                    break;
+                }
                 case RequestLookupSessionId: {
 
                     String executorId = (String) cmd.getArguments().get(0);

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaDirectoryRunner.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaDirectoryRunner.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/MinaDirectoryRunner.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -0,0 +1,66 @@
+package org.drools.grid.remote.directory;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+
+import joptsimple.OptionParser;
+import joptsimple.OptionSet;
+import joptsimple.OptionSpec;
+
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.internal.NodeData;
+import org.drools.grid.remote.mina.MinaAcceptor;
+import org.drools.grid.remote.mina.MinaIoHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MinaDirectoryRunner {
+
+	private static Logger logger = LoggerFactory.getLogger(MinaDirectoryRunner.class);
+	
+	public static void main(String[] args) throws IOException {
+        OptionParser parser = new OptionParser();
+        OptionSpec<String> addressOpt = parser.accepts("address", "the address to bind the node").withRequiredArg().ofType(String.class);
+        OptionSpec<Integer> portOpt = parser.accepts("port", "the port to listen in the given address").withRequiredArg().ofType(Integer.class);
+        OptionSet options = parser.parse(args);
+
+		String address = options.valueOf(addressOpt);
+		int port = options.valueOf(portOpt);
+		logger.info("starting server");
+		SocketAddress socket = new InetSocketAddress(address, port);
+		NodeData nodeData = new NodeData();
+		// setup Server
+		SocketAcceptor acceptor = new NioSocketAcceptor();
+		acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
+							new DirectoryServerMessageHandlerImpl(
+									SystemEventListenerFactory.getSystemEventListener())));
+		
+       final MinaAcceptor minaAcceptor = new MinaAcceptor(acceptor, socket);
+       Runtime.getRuntime().addShutdownHook(new Thread() {
+           public void run() {
+        	   logger.info("stoping directory server...");
+               minaAcceptor.stop();
+               logger.info("server directory stoped...");
+           }
+        });
+       minaAcceptor.start();
+       logger.info("directory server started at "+ socket.toString() +" ... (ctrl-c to stop it)");
+       new Thread(
+                new Runnable() {
+
+                    public void run() {
+                        while(true){
+                            try {
+                                Thread.sleep(10 * 1000);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            System.out.println("Accessor clients = " + minaAcceptor.getCurrentSessions());
+                        }
+                    }
+                }).start();
+	}
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/start.sh
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/start.sh	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/start.sh	2010-07-28 21:11:40 UTC (rev 34269)
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+#  build the classpath
+SERVER_CLASSPATH=
+for i in `ls ./libs/*.jar`
+do
+  SERVER_CLASSPATH=${SERVER_CLASSPATH}:${i}
+done
+
+# execute the server
+java -cp ".:${SERVER_CLASSPATH}" org.drools.grid.remote.directory.MinaDirectoryRunner --address 127.0.0.1 --port 9124
\ No newline at end of file

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeRunner.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeRunner.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/MinaNodeRunner.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -3,6 +3,7 @@
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
+import java.util.Date;
 
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
@@ -18,34 +19,49 @@
 
 public class MinaNodeRunner {
 
-	private static Logger logger = LoggerFactory.getLogger(MinaNodeRunner.class);
-	
-	public static void main(String[] args) throws IOException {
+    private static Logger logger = LoggerFactory.getLogger(MinaNodeRunner.class);
+
+    public static void main(String[] args) throws IOException {
         OptionParser parser = new OptionParser();
         OptionSpec<String> addressOpt = parser.accepts("address", "the address to bind the node").withRequiredArg().ofType(String.class);
         OptionSpec<Integer> portOpt = parser.accepts("port", "the port to listen in the given address").withRequiredArg().ofType(Integer.class);
         OptionSet options = parser.parse(args);
 
-		String address = options.valueOf(addressOpt);
-		int port = options.valueOf(portOpt);
-		logger.info("starting server");
-		SocketAddress socket = new InetSocketAddress(address, port);
-		NodeData nodeData = new NodeData();
-		// setup Server
-		SocketAcceptor acceptor = new NioSocketAcceptor();
-		acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
-							new GenericMessageHandlerImpl(nodeData,
-									SystemEventListenerFactory.getSystemEventListener())));
-		
-       final MinaAcceptor minaAcceptor = new MinaAcceptor(acceptor, socket);
-       Runtime.getRuntime().addShutdownHook(new Thread() {
-           public void run() {
-        	   logger.info("stoping server...");
-               minaAcceptor.stop();
-               logger.info("server stoped...");
-           }
+        String address = options.valueOf(addressOpt);
+        int port = options.valueOf(portOpt);
+        logger.info("starting server");
+        SocketAddress socket = new InetSocketAddress(address, port);
+        NodeData nodeData = new NodeData();
+        // setup Server
+        SocketAcceptor acceptor = new NioSocketAcceptor();
+        acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
+                new GenericMessageHandlerImpl(nodeData,
+                SystemEventListenerFactory.getSystemEventListener())));
+
+        final MinaAcceptor minaAcceptor = new MinaAcceptor(acceptor, socket);
+        Runtime.getRuntime().addShutdownHook(new Thread() {
+
+            public void run() {
+                logger.info("stoping server...");
+                minaAcceptor.stop();
+                logger.info("server stoped...");
+            }
         });
-       minaAcceptor.start();
-       logger.info("server started at "+ socket.toString() +" ... (ctrl-c to stop it)");
-	}
+        minaAcceptor.start();
+        logger.info("server started at " + socket.toString() + " ... (ctrl-c to stop it)");
+        new Thread(
+                new Runnable() {
+
+                    public void run() {
+                        while(true){
+                            try {
+                                Thread.sleep(10 * 1000);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            System.out.println("Accessor clients = " + minaAcceptor.getCurrentSessions());
+                        }
+                    }
+                }).start();
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -56,6 +56,7 @@
 
     public void connect() throws ConnectorException {
         if (session != null && session.isConnected()) {
+           
             throw new IllegalStateException("Already connected. Disconnect first.");
         }
 

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-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/ExecutionEnvironment.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -42,6 +42,7 @@
     }
 
     public ExecutionNode getExecutionNode() throws ConnectorException {
+        System.out.println("Getting an EXECUTION NODE!!");
         GenericConnection connection = getConnector().getConnection();
         return connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
     }

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-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -200,7 +200,8 @@
 
     
 
-    public void disconectAllClients() throws ConnectorException, RemoteException {
+    public void dispose() throws ConnectorException, RemoteException {
+        System.out.println("Dispose all connections!");
         for (String key : executionEnvironments.keySet()) {
             executionEnvironments.get(key).getConnector().disconnect();
             executionEnvironments.get(key).getConnector().getConnection().dispose();

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/BasicAPITestWithMina.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -78,7 +78,7 @@
     @After
     public void stop() throws ConnectorException, RemoteException {
 
-        grid.disconectAllClients();
+        grid.dispose();
         Assert.assertEquals(0, server1.getCurrentSessions());
         server1.stop();
         System.out.println("Server 1 Stopped!");

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-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -88,7 +88,7 @@
 
         Assert.assertEquals(2, dir.getExecutorsMap().size());
 
-        grid.disconectAllClients();
+        grid.dispose();
      }
 
      @Test
@@ -129,7 +129,7 @@
         System.out.println("dir2 exec map"+dir2.getExecutorsMap());
         Assert.assertTrue( (dir2.getExecutorsMap().size() + dir.getExecutorsMap().size()) > 4 );
 
-        grid.disconectAllClients();
+        grid.dispose();
 
      }
 
@@ -193,7 +193,7 @@
        kbase = dirService.lookupKBase("DoctorsKBase");
        Assert.assertNotNull(kbase);
 
-       grid.disconectAllClients();
+       grid.dispose();
        
 
      }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -115,7 +115,7 @@
     @After
     public void tearDown() throws InterruptedException, ConnectorException, RemoteException {
 
-        grid.disconectAllClients();
+        grid.dispose();
 
         Assert.assertEquals(0, serverDir.getCurrentSessions());
         serverDir.stop();
@@ -295,7 +295,7 @@
         
         directoryInstance.getConnector().disconnect();
 
-        grid.disconectAllClients();
+        grid.dispose();
         //System.out.println("Connector -->"+connector.getId());
 
        node = grid.getExecutionEnvironment(connector).getExecutionNode();

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -182,7 +182,7 @@
     public void tearDown() throws InterruptedException, ConnectorException, RemoteException {
         client.disconnect();
 
-        grid.disconectAllClients();
+        grid.dispose();
 
         
         

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java	2010-07-28 20:34:34 UTC (rev 34268)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java	2010-07-28 21:11:40 UTC (rev 34269)
@@ -91,7 +91,7 @@
     @After
     public void tearDown() throws ConnectorException, RemoteException {
         System.out.println("Disconecting all clients");
-        grid.disconectAllClients();
+        grid.dispose();
         System.out.println("Stoping Server 1!");
         Assert.assertEquals(0, server1.getCurrentSessions());
         server1.stop();



More information about the jboss-svn-commits mailing list