[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