[jboss-svn-commits] JBL Code SVN: r19586 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/test/resources/org/drools/integrationtests/sequential and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 15 19:31:48 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-04-15 19:31:48 -0400 (Tue, 15 Apr 2008)
New Revision: 19586

Added:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/sequential/simpleSalience.drl
Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/sequential/SequentialTest.java
   labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
Log:
JBRULES-1564 Salience does not work for sequential mode
-Fixed bug by always setting sequence
-Added simple unit test

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/sequential/SequentialTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/sequential/SequentialTest.java	2008-04-15 23:30:10 UTC (rev 19585)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/sequential/SequentialTest.java	2008-04-15 23:31:48 UTC (rev 19586)
@@ -13,6 +13,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
 import org.drools.StatelessSession;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
@@ -54,7 +55,32 @@
                       list.size() );
 
     }
+    
+    public void testSalience() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "simpleSalience.drl" ) ) );
+        final Package pkg = builder.getPackage();
 
+        RuleBaseConfiguration conf = new RuleBaseConfiguration();
+        conf.setSequential( true );
+        RuleBase ruleBase = getRuleBase( conf );
+        ruleBase.addPackage( pkg );
+        final StatelessSession session = ruleBase.newStatelessSession();
+
+        final List list = new ArrayList();
+        session.setGlobal( "list",
+                           list );
+
+        session.execute( new Person( "pob")  );
+
+        assertEquals( 3,
+                      list.size() );
+        
+        assertEquals( "rule 3", list.get( 0 ));
+        assertEquals( "rule 2", list.get( 1 ));
+        assertEquals( "rule 1", list.get( 2 ));
+    }        
+
     public void XXtestProfileSequential() throws Exception {
 
         runTestProfileManyRulesAndFacts( true,

Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/sequential/simpleSalience.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/sequential/simpleSalience.drl	                        (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/sequential/simpleSalience.drl	2008-04-15 23:31:48 UTC (rev 19586)
@@ -0,0 +1,29 @@
+package salience_test;
+
+import org.drools.Person
+
+global java.util.List list;
+
+rule "rule 2"
+    salience 2
+    when
+        Person()
+    then
+        list.add("rule 2");
+end
+ 
+rule "rule 1"
+    salience 1
+    when
+        Person()
+    then
+        list.add("rule 1");
+end
+ 
+rule "rule 3"
+    salience 3
+    when
+        Person()
+    then
+        list.add("rule 3");
+end
\ No newline at end of file

Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2008-04-15 23:30:10 UTC (rev 19585)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2008-04-15 23:31:48 UTC (rev 19586)
@@ -62,7 +62,7 @@
     // Instance members
     // ------------------------------------------------------------
 
-    private int                sequence;
+    private int               sequence = -1; // -1 means not set
 
     /**
      * 
@@ -238,9 +238,7 @@
                                                     this.rule,
                                                     this.subrule );
 
-            if ( this.tupleMemoryEnabled ) {
-                item.setSequenence( this.sequence );
-            }
+            item.setSequenence( this.sequence );
 
             if ( this.rule.getActivationGroup() != null ) {
                 // Lazy cache activationGroup




More information about the jboss-svn-commits mailing list