[jboss-svn-commits] JBL Code SVN: r36038 - in labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src: main/java/org/drools/spi and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 23 19:26:36 EST 2010


Author: leo_gomes
Date: 2010-11-23 19:26:35 -0500 (Tue, 23 Nov 2010)
New Revision: 36038

Modified:
   labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
   labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/spi/PropagationContext.java
   labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java
   labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/resources/org/drools/reteoo/test/RightUnlinkingComplex.nodeTestCase
Log:
JBRULES-2776: Fixing nodeTestCases and configuration.


Modified: labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java	2010-11-24 00:24:05 UTC (rev 36037)
+++ labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java	2010-11-24 00:26:35 UTC (rev 36038)
@@ -707,11 +707,18 @@
     }
     
     /**
-     * Enable Left & Right Unlinking. 
+     * Enable Left & Right Unlinking. It will also disable sequential mode 
+     * and multithread evaluation as these are incompatible with L&R unlinking.
      * @param enabled
      */
     public void setLRUnlinkingEnabled(boolean enabled) {
+        checkCanChange(); // throws an exception if a change isn't possible;
         this.lrUnlinkingEnabled = enabled;
+        if (enabled) {
+            setSequential(false);
+            setMultithreadEvaluation(false);
+        }
+        
     }
 
 

Modified: labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/spi/PropagationContext.java
===================================================================
--- labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/spi/PropagationContext.java	2010-11-24 00:24:05 UTC (rev 36037)
+++ labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/main/java/org/drools/spi/PropagationContext.java	2010-11-24 00:26:35 UTC (rev 36038)
@@ -60,7 +60,9 @@
     public EntryPoint getEntryPoint();
     
     public int getLatestPropagationAttempt();
+    
     public void setLatestPropagationAttempt();
+    
     public void resetLatestPropagationAttempt();
 
 }

Modified: labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java
===================================================================
--- labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java	2010-11-24 00:24:05 UTC (rev 36037)
+++ labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java	2010-11-24 00:26:35 UTC (rev 36038)
@@ -395,23 +395,6 @@
                         actualRightTuples.add(rightTuple);
                     }
                     
-                    if(lrUnlinkingEnabled) {
-                        // FIXME:
-                        // This is a temporary hack, because I think there might be a bug
-                        // in the above iteration. To be verified with ETirelli.
-                        actualRightTuples.clear();
-                        
-                        Iterator it = rightMemory.iterator();
-                        for (RightTuple rt = (RightTuple) it.next(); rt != null; rt = (RightTuple) it.next()) {
-                            actualRightTuples.add(rt);
-                        }
-
-                        // Need to sort before comparing, because with L&R unlinking
-                        // the order of insertion is not kept.
-                        Collections.sort(actualRightTuples, new RightTupleComparator());
-                    }
-
-
                     if (expectedFactHandles.size() != actualRightTuples.size()) {
                         throw new AssertionFailedError("line " + step.getLine()
                                 + ": right Memory expected "
@@ -963,19 +946,6 @@
         }
     }
     
-    private final class RightTupleComparator implements Comparator<RightTuple> {
-        public int compare(RightTuple o1, RightTuple o2) {
-                
-            int diff = o1.getFactHandle().getId() - o2.getFactHandle().getId();
-        
-            if (diff != 0)
-                return diff;
-            
-            return 0;
-        }
-    }
-
-
     public static class EmptyNotifier extends RunNotifier {
         public static final EmptyNotifier INSTANCE = new EmptyNotifier();
 

Modified: labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/resources/org/drools/reteoo/test/RightUnlinkingComplex.nodeTestCase
===================================================================
--- labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/resources/org/drools/reteoo/test/RightUnlinkingComplex.nodeTestCase	2010-11-24 00:24:05 UTC (rev 36037)
+++ labs/jbossrules/branches/lr_unlinking_20101116/drools-core/src/test/resources/org/drools/reteoo/test/RightUnlinkingComplex.nodeTestCase	2010-11-24 00:26:35 UTC (rev 36038)
@@ -18,13 +18,13 @@
 	Binding:
 	     p1, 0, org.drools.Person, age;
 	Binding:
-	     p1, 0, org.drools.Person, likes;
+	     p2, 0, org.drools.Person, likes;
 	JoinNode:
 	    join1, lian0, otnRight1;
 	    age, !=, p1;
 	JoinNode:
 	    join2, join1, otnRight1;
-	    likes, ==, p1;
+	    likes, ==, p2;
 	JoinNode:
 	    join3, join2, otnRight2;
 	    age, !=, p1;
@@ -69,7 +69,8 @@
 		rightMemory, [h1, h5];
     join2:
     	leftMemory, [[h0,h1],[h0,h5]];
-    	rightMemory, [h1,h5];
+    	rightMemory, [h1];
+    	rightMemory, [h5];
     join3:
     	leftMemory, [[h0,h1,h5], [h0,h5,h5]];		
     	rightMemory, [h3];		// populated, since right side is now linked.
@@ -83,6 +84,7 @@
 	retract:
 		otnRight1, [h5];
 	join1:
+		leftMemory, [[h0]];
 		rightMemory, [h1];
 	join2:
 		leftMemory, [[h0,h1]];
@@ -97,7 +99,40 @@
 		otnRight2, [h2];
 	join3:
 		leftMemory, [];
-		rightMemory, [h2,h3,h7];
+		rightMemory, [h3,h7,h2];
+
+	// Trying a modification that triggers propagation
+	With:
+		h1, likes = 'stilton';
+	modify:
+		otnRight1, [h1];
+	join1:
+		leftMemory, [[h0]];
+		rightMemory, [h1];
+	join2:
+		leftMemory, [[h0,h1]];
+		rightMemory, [h1];
+	join3:
+		leftMemory, [[h0,h1,h1]];
+		rightMemory, [h3,h7,h2];
+		
+	// Trying a modification that triggers retraction
+	With:
+		h0, age = 36;
+	modify:
+		otnLeft1, [h0];
+	join1:
+		leftMemory, [[h0]];
+		rightMemory, [h1];
+	join2:
+		leftMemory, []; 			
+		rightMemory, [h1];
+	join3:
+		leftMemory, [];
+		rightMemory, [h3,h7,h2];
+		
+		
+				
 											 	
 		
 				



More information about the jboss-svn-commits mailing list