[jboss-svn-commits] JBL Code SVN: r32095 - in labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src: main/java/org/drools/services/grid/impl and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 15 11:49:24 EDT 2010


Author: salaboy21
Date: 2010-03-15 11:49:23 -0400 (Mon, 15 Mar 2010)
New Revision: 32095

Modified:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.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/rio/RioConnector.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
Log:
JBRULES-2446: Drools Services API
	- drools-services-grid working with shared kbases between ExecutionNodes. needs another round of refactoring

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -27,7 +27,7 @@
  */
 public class ExecutionGridConnection {
     private List<ExecutionNode> nodes;
-    private DirectoryService directory;
+   // private DirectoryService directory;
     private String url;
 
     public ExecutionGridConnection() {
@@ -64,17 +64,20 @@
         this.url = url;
     }
 
-    public DirectoryService getDirectory() {
-        return directory;
-    }
-
-    public void setDirectory(DirectoryService directory) {
-        this.directory = directory;
-    }
-
+//    public DirectoryService getDirectory() {
+//        return directory;
+//    }
+//
+//    public void setDirectory(DirectoryService directory) {
+//        this.directory = directory;
+//    }
+    //dummy impls
     public ExecutionNode getPreferedExecutionNode() {
         return nodes.get(0);
     }
+    public ExecutionNode getAnotherExecutionNode(){
+        return nodes.get(1);
+    }
 
     
     

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GenericMessageGridHandlerImpl.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -110,7 +110,7 @@
         ExecutionResultImpl localKresults = new ExecutionResultImpl();
         localSessionContext.set( "kresults_" + msg.getSessionId(),
                                  localKresults );
-        System.out.println("Registering the registry itself!!!!!!!!!!!!!!!!!! = "+registry);
+        //@TODO: replace with Environment ?? this needs to change..
         localSessionContext.set("registry", registry);
         
         for ( GenericCommand cmd : commands ) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/GridExecutionNodeConnection.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -24,17 +24,14 @@
 import org.drools.runtime.Environment;
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.services.ExecutionNode;
+import org.drools.services.ServiceManager;
 import org.drools.services.command.ExecutionNodeClientConnectCommand;
 import org.drools.services.command.LookupCommand;
 import org.drools.services.command.RegisterCommand;
 import org.drools.services.generic.GenericConnector;
 import org.drools.services.generic.Message;
-import org.drools.services.grid.rio.RioConnector;
 
-import org.drools.vsm.HumanTaskServiceProvider;
 
-import org.drools.vsm.ServiceManager;
 
 
 public class GridExecutionNodeConnection
@@ -51,19 +48,19 @@
     private int sessionId = -1;
 
     //@TODO: i need to refactor this to a service in the list of services???
-    private DirectoryService registryService;
+    //private DirectoryService directoryService;
 
-    public GridExecutionNodeConnection(String name, GenericConnector client) {
+    private Environment env;
+
+    public GridExecutionNodeConnection(String name, GenericConnector client, Environment env) {
     	this.name = name;
     	this.client = client;
     	this.counter = new AtomicInteger();
         this.services = null;
+        this.env = env;
     }
     
-    public GridExecutionNodeConnection(String name, GenericConnector client, List<GenericConnector> services) {
-        this(name, client);
-        this.services = services;
-    }
+  
 
      
 
@@ -167,7 +164,14 @@
         System.out.println("Registering "+identifier + " - - "+client.getId());
         try {
             
-            registryService.register(identifier, client.getId());
+            DirectoryService directory = (DirectoryService) env.get("DIRECTORY_SERVICE");
+            if(directory != null){
+                
+                directory.register(identifier, client.getId());
+            }
+            else{
+                System.out.println("Directory == NULL!!!!!!!!");
+            }
         } catch (RemoteException ex) {
             Logger.getLogger(GridExecutionNodeConnection.class.getName()).log(Level.SEVERE, null, ex);
         }
@@ -202,8 +206,13 @@
         System.out.println("Looking up the session with identifier = "+identifier);
             try {
             //First I need to get the correct client GridNodeExecutionService with the identifier
-            
-            client.setSession(registryService.lookup(identifier));
+            DirectoryService directory = (DirectoryService) env.get("DIRECTORY_SERVICE");
+            if(directory != null){
+                System.out.println("Setting session for identifier = "+identifier +"   - client ="+client);
+                client.setSession(directory.lookup(identifier));
+            }else{
+                System.out.println("Directory == NULL!!!!!!!!");
+            }
         } catch (RemoteException ex) {
             Logger.getLogger(GridExecutionNodeConnection.class.getName()).log(Level.SEVERE, null, ex);
         }
@@ -221,7 +230,7 @@
             switch ( Integer.parseInt( type ) ) {
                 case 0 : {
                     executor = new StatefulKnowledgeSessionGridClient( instanceId,
-                                                                         this );
+                                                                         this , env);
                     break;
                 }
                 default : {
@@ -245,20 +254,20 @@
         // TODO Auto-generated method stub
     }
 
-    public HumanTaskServiceProvider getHumanTaskService() {
-    	//return new HumanTaskServiceGridProviderImpl(this);
-        //@TODO: create human task service module project
-        return null;
-    }
+//    public HumanTaskServiceProvider getHumanTaskService() {
+//    	//return new HumanTaskServiceGridProviderImpl(this);
+//        //@TODO: create human task service module project
+//        return null;
+//    }
 
     @Override
     public KnowledgeBuilderFactoryService getKnowledgeBuilderFactoryService() {
-        return new KnowledgeBuilderProviderGridClient( this );
+        return new KnowledgeBuilderProviderGridClient( this, env );
     }
 
     @Override
     public KnowledgeBaseFactoryService getKnowledgeBaseFactoryService() {
-        return new KnowledgeBaseProviderGridClient( this );
+        return new KnowledgeBaseProviderGridClient( this, env );
     }
 
     public static class RemoveKnowledgeBuilderProvider implements KnowledgeBuilderFactoryService {
@@ -322,14 +331,14 @@
 		return this.name;
 	}
 
-    public DirectoryService getRegistryService() {
-        return registryService;
-    }
+//    public DirectoryService getRegistryService() {
+//        return directoryService;
+//    }
+//
+//    public void setRegistryService(DirectoryService registryService) {
+//        this.directoryService = registryService;
+//    }
 
-    public void setRegistryService(DirectoryService registryService) {
-        this.registryService = registryService;
-    }
-
     public void setCurrentSessionService(GridNodeExecutionService sessionService){
         this.client.setSession(sessionService);
     }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseGridClient.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -31,12 +31,13 @@
     KnowledgeBase {
 
     private GridExecutionNodeConnection nodeConnection;
-    private String                     instanceId;
-
+    private String                      instanceId;
+    private Environment                 env;
     public KnowledgeBaseGridClient(String instanceId,
-                                     GridExecutionNodeConnection nodeConnection) {
+                                     GridExecutionNodeConnection nodeConnection, Environment env) {
         this.instanceId = instanceId;
         this.nodeConnection = nodeConnection;
+        this.env = env;
     }
 
     public void addKnowledgePackages(Collection<KnowledgePackage> kpackages) {
@@ -53,7 +54,11 @@
                                                                                   kresultsId ) );
         try {
             //I should register the kbase ID??
-            nodeConnection.getRegistryService().registerKBase(instanceId, nodeConnection.client.getId());
+            DirectoryService directory = (DirectoryService)env.get("DIRECTORY_SERVICE");
+            if(directory != null){
+                directory.registerKBase(instanceId, nodeConnection.client.getId());
+            }
+            //nodeConnection.getRegistryService().registerKBase(, );
         } catch (RemoteException ex) {
             Logger.getLogger(KnowledgeBaseGridClient.class.getName()).log(Level.SEVERE, null, ex);
         }
@@ -133,7 +138,7 @@
         }
 
         return new StatefulKnowledgeSessionGridClient( localId,
-                                                         nodeConnection );
+                                                         nodeConnection, env );
     }
 
     public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBaseProviderGridClient.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -19,12 +19,15 @@
 public class KnowledgeBaseProviderGridClient
     implements
     KnowledgeBaseFactoryService {
-    private GridExecutionNodeConnection serviceManager;
+    private GridExecutionNodeConnection nodeConnection;
     private String localId = "";
-    public KnowledgeBaseProviderGridClient(GridExecutionNodeConnection serviceManager) {
-        this.serviceManager = serviceManager;
+    private Environment env;
+    public KnowledgeBaseProviderGridClient(GridExecutionNodeConnection nodeConnection, Environment env) {
+        this.nodeConnection = nodeConnection;
+        this.env =  env;
     }
 
+   
     public Environment newEnvironment() {
         // TODO Auto-generated method stub
         return null;
@@ -40,14 +43,14 @@
             localId = UUID.randomUUID().toString();
         }
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new SetVariableCommand( "__TEMP__",
                                                            localId,
                                                            new NewKnowledgeBaseCommand( null ) ) );
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -59,7 +62,7 @@
         } 
 
         return new KnowledgeBaseGridClient( localId,
-                                              serviceManager );
+                                              nodeConnection, env );
 
     }
 
@@ -101,6 +104,15 @@
 
     public void setLocalId(String localId) {
         this.localId = localId;
-    } 
- 
+    }
+
+    public GridExecutionNodeConnection getNodeConnection() {
+        return nodeConnection;
+    }
+
+    public void setNodeConnection(GridExecutionNodeConnection nodeConnection) {
+        this.nodeConnection = nodeConnection;
+    }
+
+    
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderGridClient.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -15,6 +15,7 @@
 import org.drools.command.builder.KnowledgeBuilderHasErrorsCommand;
 import org.drools.definition.KnowledgePackage;
 import org.drools.io.Resource;
+import org.drools.runtime.Environment;
 import org.drools.runtime.ExecutionResults;
 import org.drools.services.generic.CollectionClient;
 import org.drools.services.generic.Message;
@@ -23,13 +24,14 @@
 public class KnowledgeBuilderGridClient
     implements
     KnowledgeBuilder {
-    private GridExecutionNodeConnection serviceManager;
-    private String                     instanceId;
-
+    private GridExecutionNodeConnection nodeConnection;
+    private String                      instanceId;
+    private Environment                 env;
     public KnowledgeBuilderGridClient(String instanceId,
-                                        GridExecutionNodeConnection serviceManager) {
+                                        GridExecutionNodeConnection nodeConnection, Environment env) {
         this.instanceId = instanceId;
-        this.serviceManager = serviceManager;
+        this.nodeConnection = nodeConnection;
+        this.env = env;
     }
 
     public void add(Resource resource,
@@ -42,8 +44,8 @@
     public void add(Resource resource,
                     ResourceType resourceType,
                     ResourceConfiguration configuration) {
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
                                                                                                                   resourceType,
@@ -54,7 +56,7 @@
                                                                                   null ) );
 
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
 
             if ( !(object instanceof FinishedCommand) ) {
                 throw new RuntimeException( "Response was not correctly ended" );
@@ -68,11 +70,11 @@
     }
 
     public KnowledgeBuilderErrors getErrors() {
-        String commandId = "kbuilder.getErrors_" + serviceManager.getNextId();
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String commandId = "kbuilder.getErrors_" + nodeConnection.getNextId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -81,7 +83,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
@@ -101,11 +103,11 @@
     }
 
     public boolean hasErrors() {
-        String commandId = "kbuilder.hasErrors_" + serviceManager.getNextId();
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String commandId = "kbuilder.hasErrors_" + nodeConnection.getNextId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.getNextId(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.getNextId(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderHasErrorsCommand( commandId ),
                                                                                   instanceId,
@@ -114,7 +116,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/KnowledgeBuilderProviderGridClient.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -16,6 +16,7 @@
 import org.drools.command.FinishedCommand;
 import org.drools.command.SetVariableCommand;
 import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.runtime.Environment;
 import org.drools.services.generic.Message;
 
 
@@ -23,9 +24,11 @@
     implements
     KnowledgeBuilderFactoryService {
     private GridExecutionNodeConnection nodeConnection;
+    private Environment env;
 
-    public KnowledgeBuilderProviderGridClient(GridExecutionNodeConnection nodeConnection) {
+    public KnowledgeBuilderProviderGridClient(GridExecutionNodeConnection nodeConnection, Environment env) {
         this.nodeConnection = nodeConnection;
+        this.env = env;
     }
 
     public DecisionTableConfiguration newDecisionTableConfiguration() {
@@ -56,7 +59,7 @@
         }
 
         return new KnowledgeBuilderGridClient( localId,
-                                                 nodeConnection );
+                                                 nodeConnection, env );
     }
 
     public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/StatefulKnowledgeSessionGridClient.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -37,13 +37,15 @@
     implements
     StatefulKnowledgeSession {
 
-    private GridExecutionNodeConnection serviceManager;
-    private String                     instanceId;
+    private GridExecutionNodeConnection nodeConnection;
+    private String                      instanceId;
+    private Environment                 env;
 
     public StatefulKnowledgeSessionGridClient(String instanceId,
-                                                GridExecutionNodeConnection serviceManager) {
+                                                GridExecutionNodeConnection nodeConnection, Environment env) {
         this.instanceId = instanceId;
-        this.serviceManager = serviceManager;
+        this.nodeConnection = nodeConnection;
+        this.env = env;
     }
 
     public String getInstanceId() {
@@ -61,11 +63,11 @@
     }
 
     public int fireAllRules() {
-        String commandId = "ksession.fireAllRules" + serviceManager.getNextId();
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String commandId = "ksession.fireAllRules" + nodeConnection.getNextId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( commandId ),
                                                                                   null,
@@ -73,7 +75,7 @@
                                                                                   instanceId,
                                                                                   kresultsId ) );
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
 
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
@@ -107,11 +109,11 @@
     }
 
     public ExecutionResults execute(Command command) {
-        String commandId = "ksession.execute" + serviceManager.getNextId();
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String commandId = "ksession.execute" + nodeConnection.getNextId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
                                                                                                       command ),
@@ -121,7 +123,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();if ( object == null ) {
+            Object object = nodeConnection.client.write( msg ).getPayload();if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
             }
 
@@ -267,9 +269,9 @@
     }
 
     public WorkItemManager getWorkItemManager() {
-    	 String kresultsId = "kresults_" + serviceManager.getSessionId();
-         Message msg = new Message( serviceManager.getSessionId(),
-                                    serviceManager.counter.incrementAndGet(),
+    	 String kresultsId = "kresults_" + nodeConnection.getSessionId();
+         Message msg = new Message( nodeConnection.getSessionId(),
+                                    nodeConnection.counter.incrementAndGet(),
                                     true,
                                     new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
                                                                                    null,
@@ -277,9 +279,9 @@
                                                                                    instanceId,
                                                                                    kresultsId ) );
          try {
-             Object payload = serviceManager.client.write( msg ).getPayload();
+             Object payload = nodeConnection.client.write( msg ).getPayload();
              WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
-             ((WorkItemManagerGridClient)workItemManager).setServiceManager(serviceManager);
+             ((WorkItemManagerGridClient)workItemManager).setServiceManager(nodeConnection);
              ((WorkItemManagerGridClient)workItemManager).setInstanceId(instanceId);
              return workItemManager;
          } catch ( Exception e ) {
@@ -289,10 +291,10 @@
     
     public void registerWorkItemHandler(String name, String workItemHandler){
         
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
                                                                                   null,
@@ -301,7 +303,7 @@
                                                                                   kresultsId ) );
 
         try {
-            serviceManager.client.write( msg );
+            nodeConnection.client.write( msg );
             
         } catch ( Exception e ) {
             throw new RuntimeException( "Unable to execute message",
@@ -318,11 +320,11 @@
     }
 
     public ProcessInstance startProcess(String processId) {
-        String commandId = "ksession.execute" + serviceManager.getNextId();
-        String kresultsId = "kresults_" + serviceManager.getSessionId();
+        String commandId = "ksession.execute" + nodeConnection.getNextId();
+        String kresultsId = "kresults_" + nodeConnection.getSessionId();
 
-        Message msg = new Message( serviceManager.getSessionId(),
-                                   serviceManager.counter.incrementAndGet(),
+        Message msg = new Message( nodeConnection.getSessionId(),
+                                   nodeConnection.counter.incrementAndGet(),
                                    false,
                                    new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
                                                                                   null,
@@ -331,7 +333,7 @@
                                                                                   kresultsId ) );
 
         try {
-            Object object = serviceManager.client.write( msg ).getPayload();
+            Object object = nodeConnection.client.write( msg ).getPayload();
             if ( object == null ) {
                 throw new RuntimeException( "Response was not correctly received" );
             }

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-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/impl/DirectoryServiceImpl.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -6,6 +6,7 @@
 package org.drools.services.grid.impl;
 
 import java.rmi.RemoteException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 import org.drools.KnowledgeBase;
@@ -28,11 +29,14 @@
 
     private Map<String, String> kbaseregistry = new HashMap<String, String>();
 
+    private Iterable<GridNodeExecutionService> nodeServices;
+
     public DirectoryServiceImpl() {
+        nodeServices = new ArrayList<GridNodeExecutionService>();
     }
 
     
-    private Iterable<GridNodeExecutionService> nodeServices;
+    
     @Override
     public void register(String sessionId, String sessionServiceId) throws RemoteException {
         System.out.println("Registering: "+  sessionId + " -- "+sessionServiceId);
@@ -56,7 +60,7 @@
     }
 
 
-    public void setSessionServices(Iterable<GridNodeExecutionService> nodeServices) {
+    public void setNodeServices(Iterable<GridNodeExecutionService> nodeServices) {
         this.nodeServices = nodeServices;
     }
 

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/rio/RioConnector.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -40,7 +40,6 @@
 
     public RioConnector(String name,
                         SystemEventListener eventListener,
-                        //List<GridNodeExecutionService> sessionServices
                         GridNodeExecutionService nodeService
                         ) {
         if ( name == null ) {

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -19,13 +19,16 @@
 
 
 import org.drools.KnowledgeBase;
-import org.drools.services.ExecutionNode;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.builder.ResourceType;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
 import org.drools.io.ResourceFactory;
+import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.services.grid.ExecutionGridConnection;
+import org.drools.services.grid.KnowledgeBaseProviderGridClient;
 import org.junit.Assert;
 import org.junit.Test;
 /**
@@ -36,7 +39,7 @@
 public abstract class ExecutionNodeBaseTest {
 
     protected ExecutionNode node;
-
+    protected ExecutionGridConnection connection = new ExecutionGridConnection();
     public ExecutionNodeBaseTest() {
         
     }
@@ -61,8 +64,11 @@
         str += "    System.out.println( \"hello2!!!\" ); \n";
         str += "end \n";
 
+        Assert.assertNotNull(node);
          
         KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder);
+
         kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
                       ResourceType.DRL );
 
@@ -72,7 +78,7 @@
 
         KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
         Assert.assertNotNull(kbase);
-
+        
         kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
 
         StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
@@ -83,6 +89,218 @@
 
 
     }
-  
 
+     @Test
+    public void testExecute() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        Assert.assertNotNull(node);
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder);
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        ExecutionResults results = ksession.execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                      (int) (Integer) results.getValue( "fired" ) );
+    }
+
+    @Test
+    public void testVsmPipeline() throws Exception {
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello3!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello4!!!\" ); \n";
+        str += "end \n";
+
+        Assert.assertNotNull(node);
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder);
+
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1",
+                              ksession );
+
+        ExecutionResults results = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
+    }
+
+    @Test
+    public void testNamedService() throws Exception {
+        System.out.println("Running ===============> testNamedService");
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder);
+
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        System.out.println("registering a session!!!!!!!");
+        ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1",
+                              ksession );
+        System.out.println("Lookup ksession1!!!!!!!!!!!!!");
+        ExecutionResults results = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                     (int) (Integer) results.getValue( "fired" ) );
+        System.out.println("TEst ENDED =========>");
+    }
+   @Test
+    public void twoSessionsIntoDifferentSessionServices(){
+
+        String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+        KnowledgeBuilder kbuilder = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder);
+
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession1 = kbase.newStatefulKnowledgeSession();
+        System.out.println("registering ksession1!");
+        ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession1", ksession1 );
+
+        System.out.println("Let's go for the Second ksession");
+
+        //((ServiceManagerGridClient)this.client).setCurrentSessionService((SessionService)((ServiceManagerGridClient)this.client).getSessionServices().get(1));
+        //If I do this here.. and I don't create a new Kbase. the context got nothing and cannot find the kbase in the new session service.. of course
+        node = connection.getAnotherExecutionNode();
+        
+        KnowledgeBuilder kbuilder2 = node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        Assert.assertNotNull(kbuilder2);
+
+        kbuilder2.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder2.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder2.getErrors() );
+        }
+
+
+        KnowledgeBase kbase2 = node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase2);
+
+
+        kbase2.addKnowledgePackages( kbuilder2.getKnowledgePackages() );
+
+        StatefulKnowledgeSession ksession2 = kbase2.newStatefulKnowledgeSession();
+        System.out.println("registering ksession2!");
+        ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().register( "ksession2", ksession2 );
+
+        System.out.println("Lookuping up ksession1 !");
+        ExecutionResults results1 = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                     (int) (Integer) results1.getValue( "fired" ) );
+
+        System.out.println("Lookuping up ksession2 !");
+        ExecutionResults results2 = ((KnowledgeBaseProviderGridClient)node.get(KnowledgeBaseFactoryService.class)).getNodeConnection().lookup( "ksession2" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                     (int) (Integer) results2.getValue( "fired" ) );
+
+    }
+
+
+
 }

Modified: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java	2010-03-15 14:42:40 UTC (rev 32094)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ITGridExecutionTest.java	2010-03-15 15:49:23 UTC (rev 32095)
@@ -6,6 +6,8 @@
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.SystemEventListenerFactory;
 import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.impl.EnvironmentImpl;
+import org.drools.runtime.Environment;
 import org.drools.services.generic.ExecutionNodeData;
 import org.drools.services.grid.ExecutionGridConnection;
 import org.drools.services.grid.GridExecutionNodeConnection;
@@ -14,9 +16,9 @@
 import org.drools.services.grid.KnowledgeBuilderProviderGridClient;
 import org.drools.services.grid.DirectoryService;
 import org.drools.services.grid.rio.RioConnector;
-import org.drools.vsm.AcceptorService;
 
 
+
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.rioproject.test.RioTestRunner;
@@ -39,7 +41,14 @@
         ServiceItem[] nodeServiceItems = testManager.getServiceItems(GridNodeExecutionService.class);
         //List<GridNodeExecutionService> nodeServices = new ArrayList<GridNodeExecutionService>();
         System.out.println("Node Service Items =" + nodeServiceItems.length);
-        ExecutionGridConnection connection = new ExecutionGridConnection();
+
+        DirectoryService directoryService = (DirectoryService) testManager.waitForService(DirectoryService.class);
+        Assert.assertNotNull(directoryService);
+
+        Environment env = new EnvironmentImpl();
+        env.set("DIRECTORY_SERVICE", directoryService);
+
+        
         for (int i = 0; i < nodeServiceItems.length; i++) {
             if (nodeServiceItems[i].service instanceof GridNodeExecutionService) {
 
@@ -51,30 +60,27 @@
                             new GridExecutionNodeConnection(
                             ((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
                             new RioConnector("client1",SystemEventListenerFactory.getSystemEventListener(),
-                                (GridNodeExecutionService)nodeServiceItems[i].service))
+                                (GridNodeExecutionService)nodeServiceItems[i].service)
+                                ,env),
+                            env
                             ));
                 node.set(KnowledgeBaseFactoryService.class,
                             new KnowledgeBaseProviderGridClient(
-                            new GridExecutionNodeConnection(
-                            ((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
-                            new RioConnector("client2",SystemEventListenerFactory.getSystemEventListener(),
-                                (GridNodeExecutionService)nodeServiceItems[i].service))
+                                new GridExecutionNodeConnection(
+                                ((GridNodeExecutionService)nodeServiceItems[i].service).getId(),
+                                new RioConnector("client2",SystemEventListenerFactory.getSystemEventListener(),
+                                    (GridNodeExecutionService)nodeServiceItems[i].service),
+                                env),
+                            env
                             ));
                 connection.addNode(node);
             }
         }
 
 
-
-
-
-
-
        // Assert.assertNotNull(nodeServices);
-        DirectoryService directoryService = (DirectoryService) testManager.waitForService(DirectoryService.class);
-        Assert.assertNotNull(directoryService);
 
-        connection.setDirectory(directoryService);
+//        connection.setDirectory(directoryService);
 
 
         node = connection.getPreferedExecutionNode();



More information about the jboss-svn-commits mailing list