[jboss-svn-commits] JBL Code SVN: r10950 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/rule and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Apr 12 17:53:31 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-04-12 17:53:31 -0400 (Thu, 12 Apr 2007)
New Revision: 10950
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AgendaTest.java
Log:
JBRULES-788 lock-on-activate rule attribute
-re-fixed assert, modify is still b0rked for ruleflow.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2007-04-12 21:40:07 UTC (rev 10949)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2007-04-12 21:53:31 UTC (rev 10950)
@@ -233,8 +233,12 @@
// do not add the activation if the rule is "lock-on-active" and the AgendaGroup is active
// we must check the context to determine if its a new tuple or an exist re-activated tuple as part of the retract
- if ( context.getType() == PropagationContext.MODIFICATION && this.rule.isLockOnActivate() && agendaGroup.isActivate() && context.removeRetractedTuple( this.rule, tuple ) == null ) {
- // This rule is locked and active, do not allow new tuples to activate
+ if ( context.getType() == PropagationContext.MODIFICATION ) {
+ if ( this.rule.isLockOnActive() && agendaGroup.isActivate() && context.removeRetractedTuple( this.rule, tuple ) == null ) {
+ // This rule is locked and active, do not allow new tuples to activate
+ return;
+ }
+ } else if ( this.rule.isLockOnActive() && agendaGroup.isActivate() ) {
return;
}
@@ -249,10 +253,14 @@
// do not add the activation if the rule is "lock-on-active" and the RuleFlowGroup is active
// we must check the context to determine if its a new tuple or an exist re-activated tuple as part of the retract
- if ( context.getType() == PropagationContext.MODIFICATION && this.rule.isLockOnActivate() && memory.getRuleFlowGroup().isActive() && context.removeRetractedTuple( this.rule, tuple ) == null ) {
- // This rule is locked and active, do not allow new tuples to activate
+ if ( context.getType() == PropagationContext.MODIFICATION ) {
+ if ( this.rule.isLockOnActive() && memory.getRuleFlowGroup().isActive() && context.removeRetractedTuple( this.rule, tuple ) == null ) {
+ // This rule is locked and active, do not allow new tuples to activate
+ return;
+ }
+ } else if ( this.rule.isLockOnActive() && memory.getRuleFlowGroup().isActive() ) {
return;
- }
+ }
((InternalRuleFlowGroup) memory.getRuleFlowGroup()).addActivation( item );
@@ -286,7 +294,7 @@
final Activation activation = tuple.getActivation();
if ( activation.isActivated() ) {
- if ( this.rule.isLockOnActivate() && context.getType() == PropagationContext.MODIFICATION ) {
+ if ( this.rule.isLockOnActive() && context.getType() == PropagationContext.MODIFICATION ) {
context.addRetractedTuple( this.rule, tuple );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java 2007-04-12 21:40:07 UTC (rev 10949)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java 2007-04-12 21:53:31 UTC (rev 10950)
@@ -87,7 +87,7 @@
private String ruleFlowGroup;
- private boolean lockOnActivate;
+ private boolean lockOnActive;
/** indicates that the rule is semantically correct. */
private boolean semanticallyValid;
@@ -321,12 +321,12 @@
- public boolean isLockOnActivate() {
- return lockOnActivate;
+ public boolean isLockOnActive() {
+ return lockOnActive;
}
- public void setLockOnActivate(boolean lockOnActive) {
- this.lockOnActivate = lockOnActive;
+ public void setLockOnActive(boolean lockOnActive) {
+ this.lockOnActive = lockOnActive;
}
/**
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AgendaTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AgendaTest.java 2007-04-12 21:40:07 UTC (rev 10949)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AgendaTest.java 2007-04-12 21:53:31 UTC (rev 10950)
@@ -522,7 +522,7 @@
null );
// When both the rule is lock-on-active and the agenda group is active, activations should be ignored
- rule.setLockOnActivate( true );
+ rule.setLockOnActive( true );
agendaGroup.setActive( true );
node.assertTuple( tuple,
context,
@@ -532,7 +532,7 @@
agendaGroup.size() );
// lock-on-active is now false so activation should propagate
- rule.setLockOnActivate( false );
+ rule.setLockOnActive( false );
node.assertTuple( tuple,
context,
workingMemory );
@@ -540,7 +540,7 @@
agendaGroup.size() );
// even if lock-on-active is true, unless the agenda group is active the activation will still propagate
- rule.setLockOnActivate( true );
+ rule.setLockOnActive( true );
agendaGroup.setActive( false );
node.assertTuple( tuple,
context,
@@ -1304,7 +1304,7 @@
null );
// When both the rule is lock-on-active and the agenda group is active, activations should be ignored
- rule.setLockOnActivate( true );
+ rule.setLockOnActive( true );
ruleFlowGroup.setActive( true );
node.assertTuple( tuple,
context,
@@ -1314,7 +1314,7 @@
ruleFlowGroup.size() );
// lock-on-active is now false so activation should propagate
- rule.setLockOnActivate( false );
+ rule.setLockOnActive( false );
node.assertTuple( tuple,
context,
workingMemory );
@@ -1322,7 +1322,7 @@
ruleFlowGroup.size() );
// even if lock-on-active is true, unless the agenda group is active the activation will still propagate
- rule.setLockOnActivate( true );
+ rule.setLockOnActive( true );
ruleFlowGroup.setActive( false );
node.assertTuple( tuple,
context,
More information about the jboss-svn-commits
mailing list