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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Mar 21 00:50:40 EDT 2010


Author: salaboy21
Date: 2010-03-21 00:50:38 -0400 (Sun, 21 Mar 2010)
New Revision: 32163

Added:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java
Removed:
   labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/RandomSelectionStrategy.java
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/test/java/org/drools/services/ExecutionNodeBaseTest.java
Log:
ksession sharing working, I need to review the sharing mechanism and flow

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-21 04:18:29 UTC (rev 32162)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/ExecutionGridConnection.java	2010-03-21 04:50:38 UTC (rev 32163)
@@ -21,7 +21,7 @@
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.services.ExecutionNode;
-import org.drools.services.grid.strategies.RandomSelectionStrategy;
+import org.drools.services.grid.strategies.StaticIncrementalSelectionStrategy;
 
 /**
  *
@@ -64,7 +64,7 @@
     //This will use the default/random strategy
     public ExecutionNode getExecutionNode() {
         GridNodeExecutionService currentService = getBestService(
-                                                    new RandomSelectionStrategy(this));
+                                                    new StaticIncrementalSelectionStrategy(this));
         ExecutionNode node = new ExecutionNode();
         node.set(KnowledgeBuilderFactoryService.class,
                 new KnowledgeBuilderProviderGridClient( currentService, this ));

Deleted: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/RandomSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/RandomSelectionStrategy.java	2010-03-21 04:18:29 UTC (rev 32162)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/RandomSelectionStrategy.java	2010-03-21 04:50:38 UTC (rev 32163)
@@ -1,41 +0,0 @@
-/*
- *  Copyright 2010 salaboy.
- * 
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- * 
- *       http://www.apache.org/licenses/LICENSE-2.0
- * 
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *  under the License.
- */
-
-package org.drools.services.grid.strategies;
-
-import org.drools.services.grid.ExecutionGridConnection;
-import org.drools.services.grid.GridNodeExecutionService;
-import org.drools.services.grid.GridSelectionStrategy;
-
-/**
- *
- * @author salaboy
- */
-public class RandomSelectionStrategy implements GridSelectionStrategy{
-
-    private ExecutionGridConnection connection;
-    public RandomSelectionStrategy(ExecutionGridConnection connection) {
-        this.connection = connection;
-    }
-
-
-    @Override
-    public GridNodeExecutionService getBestNode() {
-        return this.connection.getServices().iterator().next();
-    }
-
-}

Copied: labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java (from rev 32162, labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/RandomSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/main/java/org/drools/services/grid/strategies/StaticIncrementalSelectionStrategy.java	2010-03-21 04:50:38 UTC (rev 32163)
@@ -0,0 +1,44 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.services.grid.strategies;
+
+import org.drools.services.grid.ExecutionGridConnection;
+import org.drools.services.grid.GridNodeExecutionService;
+import org.drools.services.grid.GridSelectionStrategy;
+
+/**
+ *
+ * @author salaboy
+ */
+public class StaticIncrementalSelectionStrategy implements GridSelectionStrategy{
+    public static int counter = 0;
+    private ExecutionGridConnection connection;
+    public StaticIncrementalSelectionStrategy(ExecutionGridConnection connection) {
+        this.connection = connection;
+    }
+
+
+    @Override
+    public GridNodeExecutionService getBestNode() {
+        System.out.println("!!!!!GET BEST NODE = "+counter);
+        GridNodeExecutionService service = this.connection.getServices().get(counter);
+        StaticIncrementalSelectionStrategy.counter = counter +1;
+        return service;
+    }
+
+}

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-21 04:18:29 UTC (rev 32162)
+++ labs/jbossrules/branches/salaboy_ServiceAPIs/drools-services-grid/src/test/java/org/drools/services/ExecutionNodeBaseTest.java	2010-03-21 04:50:38 UTC (rev 32163)
@@ -30,6 +30,7 @@
 import org.drools.services.grid.DirectoryLookupFactoryService;
 import org.drools.services.grid.ExecutionGridConnection;
 import org.drools.services.grid.KnowledgeBaseProviderGridClient;
+import org.drools.services.grid.strategies.StaticIncrementalSelectionStrategy;
 import org.junit.Assert;
 import org.junit.Test;
 /**
@@ -48,7 +49,7 @@
 
     @Test
     public void fireAllRules(){
-
+        StaticIncrementalSelectionStrategy.counter = 0;
         String str = "";
         str += "package org.drools \n";
         str += "global java.util.List list \n";
@@ -93,6 +94,7 @@
 
      @Test
     public void testExecute() throws Exception {
+         StaticIncrementalSelectionStrategy.counter = 0;
         String str = "";
         str += "package org.drools \n";
         str += "global java.util.List list \n";
@@ -135,6 +137,7 @@
 
     @Test
     public void testVsmPipeline() throws Exception {
+        StaticIncrementalSelectionStrategy.counter = 0;
         String str = "";
         str += "package org.drools \n";
         str += "global java.util.List list \n";
@@ -179,6 +182,7 @@
 
     @Test
     public void testNamedService() throws Exception {
+        StaticIncrementalSelectionStrategy.counter = 1;
         System.out.println("Running ===============> testNamedService");
         String str = "";
         str += "package org.drools \n";
@@ -222,85 +226,85 @@
                      (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" ) );
-//
-//    }
+   @Test
+    public void twoSessionsIntoDifferentSessionServices(){
+        StaticIncrementalSelectionStrategy.counter = 0;
+        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!");
+        node.get(DirectoryLookupFactoryService.class).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.getExecutionNode();
+
+        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!");
+        node.get(DirectoryLookupFactoryService.class).register( "ksession2", ksession2 );
+
+        System.out.println("Lookuping up ksession1 !");
+        ExecutionResults results1 = node.get(DirectoryLookupFactoryService.class).lookup( "ksession1" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                     (int) (Integer) results1.getValue( "fired" ) );
+
+        System.out.println("Lookuping up ksession2 !");
+        ExecutionResults results2 = node.get(DirectoryLookupFactoryService.class).lookup( "ksession2" ).execute( new FireAllRulesCommand( "fired" ) );
+
+        Assert.assertEquals( 2,
+                     (int) (Integer) results2.getValue( "fired" ) );
+
+    }
+
+
+
 }



More information about the jboss-svn-commits mailing list