[jboss-svn-commits] JBL Code SVN: r11672 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: common and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 4 07:48:55 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-05-04 07:48:54 -0400 (Fri, 04 May 2007)
New Revision: 11672
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
Log:
-ExecutorService is now set from the RuleBaseConfiguration
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-05-04 11:01:23 UTC (rev 11671)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-05-04 11:48:54 UTC (rev 11672)
@@ -18,6 +18,8 @@
import java.io.Serializable;
+import org.drools.concurrent.ExecutorService;
+
/**
* RuleBaseConfiguration
*
@@ -68,6 +70,7 @@
private boolean indexRightBetaMemory;
private AssertBehaviour assertBehaviour;
private LogicalOverride logicalOverride;
+ private ExecutorService executorService;
public RuleBaseConfiguration() {
this.immutable = false;
@@ -102,6 +105,9 @@
"IDENTITY" ) ) );
setLogicalOverride( LogicalOverride.determineLogicalOverride( System.getProperty( "drools.logicalOverride",
"DISCARD" ) ) );
+
+ setExecutorService( RuleBaseConfiguration.determineExecutorService( System.getProperty( "drools.executorService",
+ "org.drools.concurrent.DefaultExecutorService" ) ) );
}
/**
@@ -232,6 +238,40 @@
this.logicalOverride = logicalOverride;
}
+ public ExecutorService getExecutorService() {
+ return executorService;
+ }
+
+ public void setExecutorService(ExecutorService executorService) {
+ checkCanChange(); // throws an exception if a change isn't possible;
+ this.executorService = executorService;
+ }
+
+ public static ExecutorService determineExecutorService(String className) {
+ Class clazz = null;
+ try {
+ clazz = Thread.currentThread().getContextClassLoader().loadClass( className );
+ } catch ( ClassNotFoundException e ) {
+ }
+
+ if ( clazz == null ) {
+ try {
+ clazz = RuleBaseConfiguration.class.getClassLoader().loadClass( className );
+ } catch ( ClassNotFoundException e ) {
+ }
+ }
+
+ if ( clazz != null ) {
+ try {
+ return (ExecutorService) clazz.newInstance();
+ } catch ( Exception e ) {
+ throw new IllegalArgumentException( "Unable to instantiate ExecutorService '" + className + "'" );
+ }
+ } else {
+ throw new IllegalArgumentException( "ExecutorService '" + className + "' not found" );
+ }
+ }
+
public static class AssertBehaviour
implements
Serializable {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2007-05-04 11:01:23 UTC (rev 11671)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2007-05-04 11:48:54 UTC (rev 11672)
@@ -330,6 +330,7 @@
}
// Merge imports
+ // @TODO we should check for duplicates
imports.addAll( newPkg.getImports() );
// Add invokers
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-05-04 11:01:23 UTC (rev 11671)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-05-04 11:48:54 UTC (rev 11672)
@@ -226,10 +226,12 @@
* @see RuleBase
*/
public synchronized StatefulSession newStatefulSession(final boolean keepReference) {
- ExecutorService executor = new DefaultExecutorService();
+ ExecutorService executor = this.config.getExecutorService();
final ReteooStatefulSession session = new ReteooStatefulSession( this.workingMemoryCounter++,
this,
- new DefaultExecutorService() );
+ executor );
+
+
executor.setCommandExecutor( new CommandExecutor( session ) );
if ( keepReference ) {
@@ -248,7 +250,7 @@
}
public StatelessSession newStatelessSession() {
- ExecutorService executor = new DefaultExecutorService();
+ ExecutorService executor = this.config.getExecutorService();
ReteooWorkingMemory wm = new ReteooWorkingMemory( this.workingMemoryCounter++,
this );
More information about the jboss-svn-commits
mailing list