[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