[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