[jboss-svn-commits] JBL Code SVN: r19820 - in labs/jbossrules/trunk: drools-compiler/src/test/resources/org/drools/integrationtests and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 1 17:50:45 EDT 2008
Author: tirelli
Date: 2008-05-01 17:50:44 -0400 (Thu, 01 May 2008)
New Revision: 19820
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CollectResultsBetaConstraint.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/AccumulateBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/CollectBuilder.java
Log:
JBRULES-1594: disabling indexing for result objects
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2008-05-01 21:49:31 UTC (rev 19819)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2008-05-01 21:50:44 UTC (rev 19820)
@@ -962,4 +962,41 @@
}
+ public void testCollectResultBetaConstraint() throws Exception {
+
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CollectResultsBetaConstraint.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
+
+ StatefulSession wm = ruleBase.newStatefulSession();
+ List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ wm.insert( new Double( 10 ) );
+ wm.insert( new Integer( 2 ) );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ wm = serializeWorkingMemory( ruleBase,
+ wm );
+ results = (List) wm.getGlobal( "results" );
+
+ wm.fireAllRules();
+
+ Assert.assertEquals( 0,
+ results.size() );
+
+ wm.insert( new Double(15) );
+ wm.fireAllRules();
+
+ Assert.assertEquals( 2,
+ results.size() );
+
+ Assert.assertEquals( "collect",
+ results.get( 0 ) );
+ Assert.assertEquals( "accumulate",
+ results.get( 1 ) );
+ }
+
}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CollectResultsBetaConstraint.drl (from rev 19818, labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_CollectResultsBetaConstraint.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CollectResultsBetaConstraint.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CollectResultsBetaConstraint.drl 2008-05-01 21:50:44 UTC (rev 19820)
@@ -0,0 +1,25 @@
+package org.drools;
+
+import java.util.ArrayList;
+
+global java.util.List results;
+
+rule "Collect results beta constraint"
+ salience 10
+when
+ Integer( $count : intValue )
+ $doubles: ArrayList( size == $count ) from collect(Double())
+ then
+ results.add( "collect" );
+end
+
+rule "Accumulate results beta constraint"
+when
+ Integer( $count:intValue )
+ $doubles: ArrayList( size == $count ) from accumulate( $d : Double(),
+ init( ArrayList list = new ArrayList(); ),
+ action( list.add( $d ); ),
+ result( list ) )
+ then
+ results.add( "accumulate" );
+end
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/AccumulateBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/AccumulateBuilder.java 2008-05-01 21:49:31 UTC (rev 19819)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/AccumulateBuilder.java 2008-05-01 21:50:44 UTC (rev 19820)
@@ -85,7 +85,7 @@
final BetaConstraints resultsBinder = utils.createBetaNodeConstraint( context,
resultBetaConstraints,
- false );
+ true );
final BetaConstraints sourceBinder = utils.createBetaNodeConstraint( context,
context.getBetaconstraints(),
false );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/CollectBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/CollectBuilder.java 2008-05-01 21:49:31 UTC (rev 19819)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/CollectBuilder.java 2008-05-01 21:50:44 UTC (rev 19820)
@@ -86,7 +86,8 @@
}
BetaConstraints binder = utils.createBetaNodeConstraint( context, context.getBetaconstraints(), false );
- BetaConstraints resultBinder = utils.createBetaNodeConstraint( context, resultBetaConstraints, false );
+ // indexing for the results should be always disabled
+ BetaConstraints resultBinder = utils.createBetaNodeConstraint( context, resultBetaConstraints, true );
context.setTupleSource( (LeftTupleSource) utils.attachNode( context,
new CollectNode( context.getNextId(),
More information about the jboss-svn-commits
mailing list