[jboss-svn-commits] JBL Code SVN: r5063 - in labs/jbossrules/branches/3.0.x: drools-compiler/src/test/java/org/drools drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/resources/org/drools/integrationtests drools-core/src/main/java/org/drools/reteoo drools-core/src/main/java/org/drools/rule

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 12 20:55:47 EDT 2006


Author: tirelli
Date: 2006-07-12 20:55:31 -0400 (Wed, 12 Jul 2006)
New Revision: 5063

Added:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl
Modified:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/Rule.java
Log:
Fixing JBRULES-358:

  * Fixing sharing counter for shared nodes on ReteooBuilder
  * Fixing NPE on equals() for Rule class
  * Added test case



Added: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java	2006-07-13 00:55:31 UTC (rev 5063)
@@ -0,0 +1,19 @@
+package org.drools;
+
+public class AssertedObject {
+    private String value;
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public AssertedObject(String value) {
+        this.value = value;
+    }
+    
+    
+} 
\ No newline at end of file


Property changes on: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + id author date revision
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java	2006-07-13 00:55:31 UTC (rev 5063)
@@ -0,0 +1,29 @@
+package org.drools;
+
+public class Precondition {
+    private String code;
+    private String value;
+    
+    public Precondition(String code, String value) {
+        super();
+        this.code = code;
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    
+} 
\ No newline at end of file


Property changes on: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + id author date revision
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-13 00:55:31 UTC (rev 5063)
@@ -39,9 +39,11 @@
 import org.drools.Cheesery;
 import org.drools.FactHandle;
 //import org.drools.IndexedNumber;
+import org.drools.AssertedObject;
 import org.drools.IndexedNumber;
 import org.drools.Person;
 import org.drools.PersonInterface;
+import org.drools.Precondition;
 import org.drools.QueryResults;
 import org.drools.RuleBase;
 import org.drools.Sensor;
@@ -2526,5 +2528,31 @@
             Assert.assertEquals( "Fact is out of order", i, n.getIndex() );
         }
     }
+    
+    public void testRemovePackage() {
+        try {
+            final PackageBuilder builder = new PackageBuilder();
+            builder.addPackageFromDrl( new InputStreamReader(  getClass().getResourceAsStream( "test_RemovePackage.drl" )  ) );
+      
+            final RuleBase ruleBase = getRuleBase();
+            String packageName=builder.getPackage().getName();
+            ruleBase.addPackage( builder.getPackage() );
+      
+            final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+            
+            workingMemory.assertObject( new Precondition("genericcode","genericvalue"));
+            workingMemory.fireAllRules();
+            
+            RuleBase ruleBaseWM=workingMemory.getRuleBase();
+            ruleBaseWM.removePackage(packageName);
+            final PackageBuilder builder1 = new PackageBuilder();
+            builder1.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RemovePackage.drl" ) ) );
+            ruleBaseWM.addPackage(builder1.getPackage());
+            workingMemory.fireAllRules();
+        } catch ( Exception e ) {
+            Assert.fail( "Removing packages should not throw any exception: "+e.getMessage() );
+        }
+    }
+    
 
 }

Added: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl	2006-07-13 00:55:31 UTC (rev 5063)
@@ -0,0 +1,21 @@
+package org.drools;
+
+import org.drools.Precondition;
+import org.drools.AssertedObject;
+
+rule rule1
+    salience 10
+    when
+        p: Precondition ( code == "genericcode")
+    then
+        assert( new AssertedObject( "value1") );
+        assert( new AssertedObject( "value2") );
+end
+
+rule rule2
+    when
+        p: Precondition ( code == "genericcode", value=="genericvalue")
+    then
+        assert( new AssertedObject( "value3") );
+        assert( new AssertedObject( "value4") );
+end 
\ No newline at end of file


Property changes on: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-13 00:55:31 UTC (rev 5063)
@@ -567,6 +567,7 @@
 
             node = candidate;
         } else {
+            node.addShare();
             this.id--;
         }
 

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/Rule.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/Rule.java	2006-07-13 00:33:34 UTC (rev 5062)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/Rule.java	2006-07-13 00:55:31 UTC (rev 5063)
@@ -432,7 +432,12 @@
 
         final Rule other = (Rule) object;
 
-        return (this.name.equals( other.name ) && this.agendaGroup.equals( other.agendaGroup ) && this.ActivationGroup.equals( other.ActivationGroup ) && this.salience == other.salience && this.noLoop == other.noLoop);
+        return (this.name.equals( other.name ) && 
+                this.agendaGroup.equals( other.agendaGroup ) &&
+                (( this.ActivationGroup == null && other.ActivationGroup == null) ||
+                 ( this.ActivationGroup != null && this.ActivationGroup.equals( other.ActivationGroup ))) && 
+                this.salience == other.salience && 
+                this.noLoop == other.noLoop);
     }
 
     public int hashCode() {




More information about the jboss-svn-commits mailing list