[jboss-svn-commits] JBL Code SVN: r12510 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 12 15:51:14 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-06-12 15:51:14 -0400 (Tue, 12 Jun 2007)
New Revision: 12510
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
Log:
JBRULES-921 Use one ClassLoader for all extractor bytecode generation
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -116,7 +116,7 @@
this.configuration = configuration;
this.results = new ArrayList();
this.pkg = pkg;
- this.classFieldExtractorCache = new ClassFieldExtractorCache();
+ this.classFieldExtractorCache = ClassFieldExtractorCache.getInstance();
if ( this.pkg != null ) {
this.typeResolver = new ClassTypeResolver( this.pkg.getImports(),
@@ -125,7 +125,7 @@
this.typeResolver.addImport( this.pkg.getName() + ".*" );
} else {
this.typeResolver = new ClassTypeResolver( new ArrayList(),
- configuration.getClassLoader() );
+ Thread.currentThread().getContextClassLoader() );
}
this.dialects = configuration.buildDialectRegistry( this );
@@ -295,7 +295,7 @@
private Package newPackage(final PackageDescr packageDescr) {
final Package pkg = new Package( packageDescr.getName(),
- this.configuration.getClassLoader() );
+ Thread.currentThread().getContextClassLoader() );
this.dialect.init( pkg );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -53,7 +53,7 @@
private int compiler;
- private ClassLoader classLoader;
+// private ClassLoader classLoader;
private String languageLevel;
@@ -96,11 +96,11 @@
if ( classLoader == null ) {
classLoader = this.getClass().getClassLoader();
}
- setClassLoader( classLoader );
+ //setClassLoader( classLoader );
}
- setClassLoader( classLoader );
+ //setClassLoader( classLoader );
- this.chainedProperties = new ChainedProperties( this.classLoader,
+ this.chainedProperties = new ChainedProperties( Thread.currentThread().getContextClassLoader(),
"packagebuilder.conf" );
if ( properties != null ) {
@@ -139,13 +139,14 @@
public DialectRegistry buildDialectRegistry(PackageBuilder packageBuilder) {
DialectRegistry registry = new DialectRegistry();
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
for ( Iterator it = this.dialects.entrySet().iterator(); it.hasNext(); ) {
Entry entry = (Entry) it.next();
String str = (String) entry.getKey();
String dialectName = str.substring( str.lastIndexOf( "." ) + 1 );
String dialectClass = (String) entry.getValue();
try {
- Class cls = this.classLoader.loadClass( dialectClass );
+ Class cls = classLoader.loadClass( dialectClass );
Constructor cons = cls.getConstructor( new Class[] { PackageBuilder.class } );
registry.addDialect( dialectName,
(Dialect) cons.newInstance( new Object[] { packageBuilder } ) );
@@ -181,17 +182,17 @@
}
}
- public ClassLoader getClassLoader() {
- return this.classLoader;
- }
+// public ClassLoader getClassLoader() {
+// return this.classLoader;
+// }
+//
+// /** Use this to override the classloader that will be used for the rules. */
+// public void setClassLoader(final ClassLoader classLoader) {
+// if ( classLoader != null ) {
+// this.classLoader = classLoader;
+// }
+// }
- /** Use this to override the classloader that will be used for the rules. */
- public void setClassLoader(final ClassLoader classLoader) {
- if ( classLoader != null ) {
- this.classLoader = classLoader;
- }
- }
-
/**
* This will attempt to read the System property to work out what default to set.
* This should only be done once when the class is loaded. After that point, you will have
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -1,7 +1,9 @@
package org.drools.rule.builder;
+import org.drools.Cheese;
import org.drools.RuntimeDroolsException;
import org.drools.base.ClassFieldExtractor;
+import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
import org.drools.base.DroolsQuery;
import org.drools.base.FieldFactory;
@@ -26,10 +28,9 @@
0, // offset is 0 by default
objectType,
null );
+
+ final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( DroolsQuery.class, "name" );
- final ClassFieldExtractor extractor = new ClassFieldExtractor( DroolsQuery.class,
- "name" );
-
final FieldValue field = FieldFactory.getFieldValue( queryDescr.getName(),
ValueType.STRING_TYPE );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -177,7 +177,7 @@
index + 1 );
try {
- Class cls = this.configuration.getClassLoader().loadClass( className );
+ Class cls = Thread.currentThread().getContextClassLoader().loadClass( className );
Method[] methods = cls.getDeclaredMethods();
for ( int i = 0; i < methods.length; i++ ) {
if ( methods[i].equals( "methodName" ) ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -49,8 +49,9 @@
mvelDialect );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
- final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
- "price" );
+
+ final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class, "price" );
+
final Pattern pattern = new Pattern( 0,
new ClassObjectType( int.class ) );
final Declaration declaration = new Declaration( "a",
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -52,8 +52,8 @@
mvelDialect );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
- final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
- "price" );
+ final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class, "price" );
+
final Pattern patternA = new Pattern( 0,
new ClassObjectType( int.class ) );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-06-12 19:48:36 UTC (rev 12509)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-06-12 19:51:14 UTC (rev 12510)
@@ -56,8 +56,8 @@
mvelDialect );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
- final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
- "price" );
+ final FieldExtractor extractor = ClassFieldExtractorCache.getExtractor( Cheese.class, "price" );
+
final Pattern patternA = new Pattern( 0,
new ClassObjectType( int.class ) );
More information about the jboss-svn-commits
mailing list