[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