[jboss-svn-commits] JBL Code SVN: r25719 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 18 22:31:22 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-03-18 22:31:22 -0400 (Wed, 18 Mar 2009)
New Revision: 25719
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
Log:
JBRULES-2014 Optional auto fireAllRules for stateless sessions
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java 2009-03-19 02:08:01 UTC (rev 25718)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatelessKnowledgeSessionImpl.java 2009-03-19 02:31:22 UTC (rev 25719)
@@ -23,17 +23,20 @@
import org.drools.impl.StatefulKnowledgeSessionImpl.AgendaEventListenerWrapper;
import org.drools.impl.StatefulKnowledgeSessionImpl.ProcessEventListenerWrapper;
import org.drools.impl.StatefulKnowledgeSessionImpl.WorkingMemoryEventListenerWrapper;
+import org.drools.process.command.FireAllRulesCommand;
import org.drools.reteoo.InitialFactHandle;
import org.drools.reteoo.InitialFactHandleDummyObject;
import org.drools.reteoo.ReteooWorkingMemory;
import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteAssertAction;
import org.drools.rule.EntryPoint;
+import org.drools.runtime.BatchExecution;
import org.drools.runtime.BatchExecutionResults;
import org.drools.runtime.Environment;
import org.drools.runtime.Globals;
import org.drools.runtime.KnowledgeSessionConfiguration;
import org.drools.runtime.StatelessKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSessionResults;
+import org.drools.runtime.impl.BatchExecutionImpl;
import org.drools.spi.AgendaFilter;
public class StatelessKnowledgeSessionImpl
@@ -207,7 +210,21 @@
try {
session.startBatchExecution();
((org.drools.process.command.Command)command).execute( session );
- session.fireAllRules( this.agendaFilter );
+ // did the user take control of fireAllRules, if not we will auto execute
+ boolean autoFireAllRules = true;
+ if ( command instanceof FireAllRulesCommand ) {
+ autoFireAllRules = false;
+ } else if ( command instanceof BatchExecution ) {
+ for ( Command nestedCmd : ((BatchExecutionImpl)command).getCommands() ) {
+ if ( nestedCmd instanceof FireAllRulesCommand ) {
+ autoFireAllRules = false;
+ break;
+ }
+ }
+ }
+ if ( autoFireAllRules ) {
+ session.fireAllRules( this.agendaFilter );
+ }
BatchExecutionResults result = session.getBatchExecutionResult();
return result;
} finally {
More information about the jboss-svn-commits
mailing list