[jboss-svn-commits] JBL Code SVN: r36153 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/compiler and 13 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 1 22:47:41 EST 2010


Author: mark.proctor at jboss.com
Date: 2010-12-01 22:47:39 -0500 (Wed, 01 Dec 2010)
New Revision: 36153

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/FastClassLoader.java
Removed:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsCompositeClassLoader.java
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/CompositeClassLoader.java
   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/dialect/java/JavaFunctionBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/DroolsObjectIOTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/ClassBuilderTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/InstancesHashcodedTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/time/impl/CronJobTest.java
Log:
JBRULES-2813 Unify two Composite ClassLoader implementations

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/CompositeClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/CompositeClassLoader.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/CompositeClassLoader.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -29,6 +29,10 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+/**
+ * This is an Internal Drools Class
+ *
+ */
 public class CompositeClassLoader extends ClassLoader {
     /* Assumption: modifications are really rare, but iterations are frequent. */
     private final List<ClassLoader>       classLoaders = new CopyOnWriteArrayList<ClassLoader>();
@@ -76,11 +80,34 @@
      */
     public Class< ? > loadClass(final String name,
                                 final boolean resolve) throws ClassNotFoundException {
-        return loader.get().load( this,
-                                  name,
-                                  resolve );
+        Class cls = loader.get().load( this,
+                                       name,
+                                       resolve );
+        if ( cls == null ) {
+            throw new ClassNotFoundException( "Unable to load class: " + name );
+        }
+        
+        return cls;
     }
-
+    
+   /**
+    * This ClassLoader never has classes of it's own, so only search the child ClassLoaders
+    * and the parent ClassLoader if one is provided
+    */
+   public Class< ? > loadClass(final String name,
+                               final boolean resolve,
+                               final ClassLoader ignore) throws ClassNotFoundException {
+       Class cls = loader.get().load( this,
+                                      name,
+                                      resolve,
+                                      ignore );
+       if ( cls == null ) {
+           throw new ClassNotFoundException( "Unable to load class" + name );
+       }
+       
+       return cls;
+   }    
+    
     /**
      * This ClassLoader never has classes of it's own, so only search the child ClassLoaders
      * and the parent ClassLoader if one is provided
@@ -135,6 +162,11 @@
                                final String name,
                                final boolean resolve);
 
+        public Class< ? > load(CompositeClassLoader compositeClassLoader,
+                               String name,
+                               boolean resolve,
+                               java.lang.ClassLoader ignore);
+
         public void reset();
     }
 
@@ -151,32 +183,42 @@
         public Class< ? > load(final CompositeClassLoader cl,
                                final String name,
                                final boolean resolve) {
+            return load(cl, name, resolve, null);
+        }
+
+        public Class< ? > load(CompositeClassLoader cl,
+                               String name,
+                               boolean resolve,
+                               ClassLoader ignore) {
             // search the child ClassLoaders
             Class< ? > cls = null;
 
             for ( final ClassLoader classLoader : cl.classLoaders ) {
-                try {
-                    cls = Class.forName( name,
-                                         true,
-                                         classLoader );
-                } catch ( ClassNotFoundException e ) {
-                    // swallow as we need to check more classLoaders
+                if ( classLoader != ignore ) {
+                    if ( classLoader instanceof FastClassLoader ) {
+                        cls = ((FastClassLoader)classLoader).fastFindClass( name );
+                    } else {
+                        // we ignore a calling classloader, to stop recursion
+                        try {
+                            cls = Class.forName( name,
+                                                 resolve,
+                                                 classLoader );
+                        } catch ( ClassNotFoundException e ) {
+                            // swallow as we need to check more classLoaders
+                        }
+                    }
+                    if ( cls != null ) {
+                        break;
+                    }                    
                 }
-                if ( cls != null ) {
-                    break;
-                }
             }
 
-            if ( resolve ) {
-                cl.resolveClass( cls );
-            }
-
             return cls;
         }
-
+        
         public void reset() {
             // nothing to do
-        }
+        }        
     }
 
     private static class CachingLoader
@@ -191,6 +233,13 @@
         public Class< ? > load(final CompositeClassLoader cl,
                                final String name,
                                final boolean resolve) {
+            return load(cl, name, resolve, null);
+        }
+
+        public Class< ? > load(CompositeClassLoader cl,
+                               String name,
+                               boolean resolve,
+                               ClassLoader ignore) {
             if ( classLoaderResultMap.containsKey( name ) ) {
                 cacheHits++;
                 return (Class< ? >) classLoaderResultMap.get( name );
@@ -199,40 +248,45 @@
             Class< ? > cls = null;
 
             for ( final ClassLoader classLoader : cl.classLoaders ) {
-                try {
-                    cls = Class.forName( name,
-                                         true,
-                                         classLoader );
-                } catch ( ClassNotFoundException e ) {
-                    // swallow as we need to check more classLoaders
+                if ( classLoader != ignore ) {
+                    if ( classLoader instanceof FastClassLoader ) {
+                        cls = ((FastClassLoader)classLoader).fastFindClass( name );
+                    } else {
+                        // we ignore a calling classloader, to stop recursion
+                        try {
+                            cls = Class.forName( name,
+                                                 resolve,
+                                                 classLoader );
+                        } catch ( ClassNotFoundException e ) {
+                            // swallow as we need to check more classLoaders
+                        }
+                    }
+                    if ( cls != null ) {
+                        break;
+                    }                    
                 }
-                if ( cls != null ) {
-                    break;
-                }
             }
-
-            if ( resolve ) {
-                cl.resolveClass( cls );
-            }
-
-            classLoaderResultMap.put( name,
-                                      cls );
             if ( cls != null ) {
+                classLoaderResultMap.put( name,
+                                          cls );
+                
                 this.successfulCalls++;
             } else {
                 this.failedCalls++;
             }
 
             return cls;
-        }
-
+        }        
+        
         public void reset() {
+            this.classLoaderResultMap.clear();
             this.successfulCalls = this.failedCalls = this.cacheHits = 0;
         }
 
         public String toString() {
             return new StringBuilder().append( "TotalCalls: " ).append( successfulCalls + failedCalls + cacheHits ).append( " CacheHits: " ).append( cacheHits ).append( " successfulCalls: " ).append( successfulCalls ).append( " FailedCalls: " ).append( failedCalls ).toString();
         }
+
     }
 
     private static class CompositeEnumeration<URL>

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/FastClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/FastClassLoader.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/FastClassLoader.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -0,0 +1,5 @@
+package org.drools.util;
+
+public interface FastClassLoader {
+    public Class<?> fastFindClass(String name);
+}

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	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -70,7 +70,6 @@
 import org.drools.lang.dsl.DSLTokenizedMappingFile;
 import org.drools.lang.dsl.DefaultExpander;
 import org.drools.reteoo.ReteooRuleBase;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Function;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.JavaDialectRuntimeData;
@@ -85,6 +84,7 @@
 import org.drools.spi.InternalReadAccessor;
 import org.drools.type.DateFormats;
 import org.drools.type.DateFormatsImpl;
+import org.drools.util.CompositeClassLoader;
 import org.drools.xml.XmlChangeSetReader;
 import org.xml.sax.SAXException;
 
@@ -120,7 +120,7 @@
      */
     private final String                      defaultDialect;
 
-    private DroolsCompositeClassLoader        rootClassLoader;
+    private CompositeClassLoader        rootClassLoader;
 
     private Map<String, Class< ? >>           globals;
 
@@ -185,8 +185,7 @@
             //this.environment.set( EnvironmentName.DATE_FORMATS , this.dateFormats );
         }
 
-        this.rootClassLoader = new DroolsCompositeClassLoader( this.configuration.getClassLoader(),
-                                                               this.configuration.isClassLoaderCacheEnabled() );
+        this.rootClassLoader = this.configuration.getClassLoader();
 
         this.defaultDialect = this.configuration.getDefaultDialect();
 
@@ -215,8 +214,7 @@
         if ( ruleBase != null ) {
             this.rootClassLoader = ((InternalRuleBase) ruleBase).getRootClassLoader();
         } else {
-            this.rootClassLoader = new DroolsCompositeClassLoader( this.configuration.getClassLoader(),
-                                                                   this.configuration.isClassLoaderCacheEnabled() );
+            this.rootClassLoader = this.configuration.getClassLoader();
         }
 
         this.dateFormats = null;//(DateFormats) this.environment.get( EnvironmentName.DATE_FORMATS );
@@ -1512,7 +1510,7 @@
         return name.toUpperCase().charAt( 0 ) + name.substring( 1 );
     }
 
-    public DroolsCompositeClassLoader getRootClassLoader() {
+    public CompositeClassLoader getRootClassLoader() {
         return this.rootClassLoader;
     }
 }

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	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -317,7 +317,7 @@
                                         configuration );
     }
 
-    public ClassLoader getClassLoader() {
+    public CompositeClassLoader getClassLoader() {
         return this.classLoader;
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -100,8 +100,6 @@
 
         final String text = String.valueOf(TemplateRuntime.eval( template, null, new MapVariableResolverFactory(vars)));
 
-        //System.out.println( text );
-
         final BufferedReader reader = new BufferedReader( new StringReader( text ) );
         String line = null;
         final String lineStartsWith = "    public static " + functionDescr.getReturnType() + " " + functionDescr.getName();

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel	2010-12-02 03:47:39 UTC (rev 36153)
@@ -350,7 +350,6 @@
 
     public void evaluate(org.drools.spi.KnowledgeHelper knowledgeHelper,
                          org.drools.WorkingMemory workingMemory) throws Exception {
-
         org.drools.spi.Tuple tuple = knowledgeHelper.getTuple();
         org.drools.rule.Declaration[] declarations = knowledgeHelper.getRule().getDeclarations();
 
@@ -359,7 +358,7 @@
           @{type} @{declr.identifier} = ( @{type} )  declarations[@{index}].@{declr.nativeReadMethod.name}((org.drools.common.InternalWorkingMemory) workingMemory, @{declr.identifier}__Handle__.getObject() );
           @if{notPattern}@{declr.identifier}__Handle__ =  (org.drools.common.InternalFactHandle) knowledgeHelper.getWorkingMemory().getFactHandle( @{declr.identifier} );@end{}
           knowledgeHelper.getIdentityMap().put(@{declr.identifier}, @{declr.identifier}__Handle__ );
-        @end{}
+        @end{}        
 
         @foreach{type : globalTypes, identifier : globals} @{type} @{identifier} = ( @{type} ) workingMemory.getGlobal( "@{identifier}" );
         @end{}

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -67,7 +67,6 @@
 import org.drools.reteoo.ReteooRuleBase;
 import org.drools.rule.Behavior;
 import org.drools.rule.Declaration;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.EvalCondition;
 import org.drools.rule.GroupElement;
 import org.drools.rule.JavaDialectRuntimeData;
@@ -85,6 +84,8 @@
 import org.drools.spi.CompiledInvoker;
 import org.drools.spi.PropagationContext;
 import org.drools.spi.Tuple;
+import org.drools.util.ClassLoaderUtil;
+import org.drools.util.CompositeClassLoader;
 
 public class PackageBuilderTest extends DroolsTestCase {
 
@@ -1026,8 +1027,7 @@
         assertFalse( builder.hasErrors() );
 
         Package bp = builder.getPackage();
-        DroolsCompositeClassLoader rootClassloader = new DroolsCompositeClassLoader( Thread.currentThread().getContextClassLoader(),
-                                                                                     false );
+        CompositeClassLoader rootClassloader = ClassLoaderUtil.getClassLoader( new ClassLoader[] { Thread.currentThread().getContextClassLoader() } , getClass(), false );
         JavaDialectRuntimeData dialectData = (JavaDialectRuntimeData) bp.getDialectRuntimeRegistry().getDialectData( "java" );
         dialectData.onAdd( bp.getDialectRuntimeRegistry(),
                            rootClassloader );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -5370,7 +5370,13 @@
 
     public void testDynamicallyAddInitialFactRule() throws Exception {
         PackageBuilder builder = new PackageBuilder();
-        String rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\n i:Integer()\nthen\n list.add(i);\nend";
+        String rule = "package org.drools.test\n" +
+                      "global java.util.List list\n" + 
+                      "rule xxx when\n" + 
+                      "   i:Integer()\n" +
+                      "then\n" +
+                      "   list.add(i);\n"+ 
+                      "end";
         builder.addPackageFromDrl( new StringReader( rule ) );
         Package pkg = builder.getPackage();
 
@@ -5390,7 +5396,12 @@
                       list.get( 0 ) );
 
         builder = new PackageBuilder();
-        rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\nthen\n list.add(\"x\");\nend";
+        rule = "package org.drools.test\n"+
+               "global java.util.List list\n" +
+               "rule xxx when\n" +
+               "then\n" +
+               "   list.add(\"x\");\n"+
+               "end";
         builder.addPackageFromDrl( new StringReader( rule ) );
         pkg = builder.getPackage();
 

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	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -781,7 +781,7 @@
         return this.conflictResolver;
     }
 
-    public ClassLoader getClassLoader() {
+    public CompositeClassLoader getClassLoader() {
         return classLoader;
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -32,87 +32,94 @@
 import org.mvel2.compiler.CompiledExpression;
 import org.mvel2.debug.DebugTools;
 
-public class MVELConsequence implements Consequence, MVELCompileable,
-		Externalizable {
-	private static final long serialVersionUID = 510l;
+public class MVELConsequence
+    implements
+    Consequence,
+    MVELCompileable,
+        Externalizable {
+    private static final long   serialVersionUID = 510l;
 
-	private MVELCompilationUnit unit;
-	private String id;
+    private MVELCompilationUnit unit;
+    private String              id;
 
-	private Serializable expr;
-	private DroolsMVELFactory prototype;
+    private Serializable        expr;
+    private DroolsMVELFactory   prototype;
 
-	public MVELConsequence() {
-	}
+    public MVELConsequence() {
+    }
 
-	public MVELConsequence(final MVELCompilationUnit unit, final String id) {
-		this.unit = unit;
-		this.id = id;
-	}
+    public MVELConsequence(final MVELCompilationUnit unit,
+                           final String id) {
+        this.unit = unit;
+        this.id = id;
+    }
 
-	public void readExternal(ObjectInput in) throws IOException,
-			ClassNotFoundException {
-		unit = (MVELCompilationUnit) in.readObject();
-		id = in.readUTF();
-	}
+    public void readExternal(ObjectInput in) throws IOException,
+                                            ClassNotFoundException {
+        unit = (MVELCompilationUnit) in.readObject();
+        id = in.readUTF();
+    }
 
-	public void writeExternal(ObjectOutput out) throws IOException {
-		out.writeObject(unit);
-		out.writeUTF(id);
-	}
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeObject( unit );
+        out.writeUTF( id );
+    }
 
-	public void compile(ClassLoader classLoader) {
-		expr = unit.getCompiledExpression(classLoader);
-		prototype = unit.getFactory();
-	}
+    public void compile(ClassLoader classLoader) {
+        expr = unit.getCompiledExpression( classLoader );
+        prototype = unit.getFactory();
+    }
 
-	public void evaluate(final KnowledgeHelper knowledgeHelper,
-			final WorkingMemory workingMemory) throws Exception {
-		DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
+    public void evaluate(final KnowledgeHelper knowledgeHelper,
+                         final WorkingMemory workingMemory) throws Exception {
+        DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
 
-		factory.setContext(knowledgeHelper.getTuple(), knowledgeHelper, null,
-				workingMemory, null);
+        factory.setContext( knowledgeHelper.getTuple(),
+                            knowledgeHelper,
+                            null,
+                            workingMemory,
+                            null );
 
-		// do we have any functions for this namespace?
-		Package pkg = workingMemory.getRuleBase().getPackage("MAIN");
-		if (pkg != null) {
-			MVELDialectRuntimeData data = (MVELDialectRuntimeData) pkg
-					.getDialectRuntimeRegistry().getDialectData(this.id);
-			factory.setNextFactory(data.getFunctionFactory());
-		}
+        // do we have any functions for this namespace?
+        Package pkg = workingMemory.getRuleBase().getPackage( "MAIN" );
+        if ( pkg != null ) {
+            MVELDialectRuntimeData data = (MVELDialectRuntimeData) pkg
+                    .getDialectRuntimeRegistry().getDialectData( this.id );
+            factory.setNextFactory( data.getFunctionFactory() );
+        }
 
-		CompiledExpression compexpr = (CompiledExpression) this.expr;
+        CompiledExpression compexpr = (CompiledExpression) this.expr;
 
-		pkg = knowledgeHelper.getWorkingMemory().getRuleBase().getPackage(
-				knowledgeHelper.getRule().getPackage());
+        pkg = knowledgeHelper.getWorkingMemory().getRuleBase().getPackage(knowledgeHelper.getRule().getPackage() );
 
-		ClassLoader tempClassLoader = Thread.currentThread()
-				.getContextClassLoader();
-		Thread.currentThread().setContextClassLoader(
-				((InternalRuleBase) workingMemory.getRuleBase())
-						.getRootClassLoader());
+        ClassLoader tempClassLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader( ((InternalRuleBase) workingMemory.getRuleBase()).getRootClassLoader() );
 
-		try {
-	        if (MVELDebugHandler.isDebugMode()) {
-	            if (MVELDebugHandler.verbose) {
-	                System.out.println("Executing expression " + compexpr.getSourceName());
-	                System.out.println(DebugTools.decompile(compexpr));
-	            }
-	            MVEL.executeDebugger(compexpr, null, factory);
-	        } else {
-	            MVEL.executeExpression(compexpr, null, factory);
-	        }
-		} finally {
-	        Thread.currentThread().setContextClassLoader(tempClassLoader);
-		}
-	}
+        try {
+            if ( MVELDebugHandler.isDebugMode() ) {
+                if ( MVELDebugHandler.verbose ) {
+                    System.out.println( "Executing expression " + compexpr.getSourceName() );
+                    System.out.println( DebugTools.decompile( compexpr ) );
+                }
+                MVEL.executeDebugger( compexpr,
+                                      null,
+                                      factory );
+            } else {
+                MVEL.executeExpression( compexpr,
+                                        null,
+                                        factory );
+            }
+        } finally {
+            Thread.currentThread().setContextClassLoader( tempClassLoader );
+        }
+    }
 
-	public Serializable getCompExpr() {
-		return expr;
-	}
-	
+    public Serializable getCompExpr() {
+        return expr;
+    }
+
     public String getName() {
         return "default";
-    }	
+    }
 
 }

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	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -52,7 +52,6 @@
 import org.drools.impl.EnvironmentFactory;
 import org.drools.management.DroolsManagementAgent;
 import org.drools.rule.DialectRuntimeRegistry;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Function;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.InvalidPatternException;
@@ -60,6 +59,8 @@
 import org.drools.rule.Rule;
 import org.drools.rule.TypeDeclaration;
 import org.drools.spi.FactHandleFactory;
+import org.drools.util.ClassLoaderUtil;
+import org.drools.util.CompositeClassLoader;
 
 /**
  * Implementation of <code>RuleBase</code>.
@@ -87,7 +88,7 @@
 
     private Map                                           agendaGroupRuleTotals;
 
-    private transient DroolsCompositeClassLoader          rootClassLoader;
+    private transient CompositeClassLoader                rootClassLoader;
 
     /**
      * The fact handle factory.
@@ -153,8 +154,8 @@
             this.agendaGroupRuleTotals = new HashMap();
         }
 
-        this.rootClassLoader = new DroolsCompositeClassLoader( this.config.getClassLoader(),
-                                                               this.config.isClassLoaderCacheEnabled() );
+        this.rootClassLoader = this.config.getClassLoader();
+        
         this.pkgs = new HashMap<String, Package>();
         this.processes = new HashMap();
         this.globals = new HashMap<String, Class< ? >>();
@@ -255,8 +256,10 @@
         }
 
         boolean classLoaderCacheEnabled = droolsStream.readBoolean();
-        this.rootClassLoader = new DroolsCompositeClassLoader( droolsStream.getParentClassLoader(),
+        this.rootClassLoader = ClassLoaderUtil.getClassLoader( new ClassLoader[] { droolsStream.getParentClassLoader() },
+                                                               getClass(),
                                                                classLoaderCacheEnabled );
+
         droolsStream.setClassLoader( this.rootClassLoader );
         droolsStream.setRuleBase( this );
 
@@ -976,7 +979,7 @@
         return this.config;
     }
 
-    public DroolsCompositeClassLoader getRootClassLoader() {
+    public CompositeClassLoader getRootClassLoader() {
         return this.rootClassLoader;
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -30,11 +30,11 @@
 import org.drools.reteoo.Rete;
 import org.drools.reteoo.ReteooBuilder;
 import org.drools.reteoo.ReteooWorkingMemory;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Package;
 import org.drools.rule.TypeDeclaration;
 import org.drools.spi.FactHandleFactory;
 import org.drools.spi.PropagationContext;
+import org.drools.util.CompositeClassLoader;
 
 public interface InternalRuleBase
     extends
@@ -100,7 +100,7 @@
                               PropagationContext context,
                               ReteooWorkingMemory workingMemory) throws FactException;
  
-    public DroolsCompositeClassLoader getRootClassLoader();   
+    public CompositeClassLoader getRootClassLoader();   
     
     public Rete getRete();
     

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -16,7 +16,9 @@
 
 package org.drools.rule;
 
+import org.drools.util.CompositeClassLoader;
 
+
 public interface DialectRuntimeData extends Cloneable {
     public void removeRule(Package pkg, Rule rule);
 
@@ -30,10 +32,10 @@
 
     public void reload();
 
-    public DialectRuntimeData clone(DialectRuntimeRegistry registry, DroolsCompositeClassLoader rootClassLoader);
+    public DialectRuntimeData clone(DialectRuntimeRegistry registry, CompositeClassLoader rootClassLoader);
 
     public void onAdd(DialectRuntimeRegistry dialectRuntimeRegistry,
-                     DroolsCompositeClassLoader rootClassLoader);
+                      CompositeClassLoader rootClassLoader);
     
     public void onRemove();
     

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -25,6 +25,8 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.drools.util.CompositeClassLoader;
+
 public class DialectRuntimeRegistry
     implements
     Externalizable {
@@ -60,12 +62,12 @@
         this.lineMappings = (Map) stream.readObject();
     }
 
-    public void onAdd(DroolsCompositeClassLoader rootClassLoader) {
+    public void onAdd(CompositeClassLoader rootClassLoader) {
         //this.classLoader = rootClassLoader;
         for ( Iterator it = this.dialects.values().iterator(); it.hasNext(); ) {
             DialectRuntimeData data = (DialectRuntimeData) it.next();
             data.onAdd( this,
-                            rootClassLoader );
+                        rootClassLoader );
         }
     }
     
@@ -103,7 +105,7 @@
     }
 
     public void merge(DialectRuntimeRegistry newDatas,
-                      DroolsCompositeClassLoader rootClassLoader) {
+                      CompositeClassLoader rootClassLoader) {
         for ( Entry<String, DialectRuntimeData> entry : newDatas.dialects.entrySet() ) {
             DialectRuntimeData data = this.dialects.get( entry.getKey() );
             if ( data == null ) {

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsCompositeClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsCompositeClassLoader.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsCompositeClassLoader.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -1,136 +0,0 @@
-/**
- * Copyright 2010 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.drools.rule;
-
-import java.io.InputStream;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.drools.core.util.DroolsClassLoader;
-
-/**
- * A classloader that loads from a (dynamic) list of sub-classloaders.
- */
-public class DroolsCompositeClassLoader extends ClassLoader
-    implements
-    DroolsClassLoader {
-
-    /* Assumption: modifications are really rare, but iterations are frequent. */
-    private final List<ClassLoader> classLoaders = new CopyOnWriteArrayList<ClassLoader>();
-    private final boolean           hasParent;
-
-    public DroolsCompositeClassLoader(final ClassLoader parentClassLoader,
-                                      final boolean cacheParentCalls) {
-        super( parentClassLoader );
-        this.hasParent = parentClassLoader != null;
-    }
-
-    public synchronized void addClassLoader(final ClassLoader classLoader) {
-        if ( classLoader == null || classLoader == this ) {
-            // do not add a null classloader or add itself
-            return;
-        }
-        /* NB: we need synchronized here even though we use a COW list:
-         *     two threads may try to add the same new class loader, so we need
-         *     to protect over a bigger area than just a single iteration.
-         */
-        // don't add duplicate ClassLoaders;
-        for ( final ClassLoader cl : this.classLoaders ) {
-            if ( cl == classLoader ) {
-                return;
-            }
-        }
-        this.classLoaders.add( classLoader );
-    }
-
-    public synchronized void removeClassLoader(final ClassLoader classLoader) {
-        /* synchronized to protect against concurrent runs of 
-         * addClassLoader(x) and removeClassLoader(x).
-         */
-        classLoaders.remove( classLoader );
-    }
-
-    /**
-     * Search the list of child ClassLoaders
-     */
-    public Class< ? > fastFindClass(final String name) {
-        for ( final ClassLoader classLoader : this.classLoaders ) {
-            final Class< ? > cls = ((DroolsClassLoader) classLoader).fastFindClass( name );
-            if ( cls != null ) {
-                return cls;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * This ClassLoader never has classes of it's own, so only search the child ClassLoaders
-     * and the parent ClassLoader if one is provided
-     */
-    public Class< ? > loadClass(final String name,
-                                final boolean resolve) throws ClassNotFoundException {
-        // search the child ClassLoaders
-        Class< ? > cls;
-        cls = fastFindClass( name );
-
-        // still not found so search the parent ClassLoader
-        if ( this.hasParent && cls == null ) {
-            cls = Class.forName( name,
-                                 true,
-                                 getParent() );
-        }
-
-        if ( resolve ) {
-            resolveClass( cls );
-        }
-
-        return cls;
-    }
-
-    /**
-     * This ClassLoader never has classes of it's own, so only search the child ClassLoaders
-     * and the parent ClassLoader if one is provided
-     */
-    public InputStream getResourceAsStream(final String name) {
-        for ( final ClassLoader classLoader : this.classLoaders ) {
-            InputStream stream = classLoader.getResourceAsStream( name );
-            if ( stream != null ) {
-                return stream;
-            }
-        }
-
-        if ( this.hasParent ) {
-            return getParent().getResourceAsStream( name );
-        }
-
-        return null;
-
-    }
-
-    /**
-     * This ClassLoader never has classes of it's own, so only search the child ClassLoaders
-     */
-    protected Class< ? > findClass(final String name) throws ClassNotFoundException {
-        final Class< ? > cls = fastFindClass( name );
-
-        if ( cls == null ) {
-            throw new ClassNotFoundException( name );
-        }
-        return cls;
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -46,6 +46,8 @@
 import org.drools.core.util.KeyStoreHelper;
 import org.drools.core.util.StringUtils;
 import org.drools.spi.Wireable;
+import org.drools.util.CompositeClassLoader;
+import org.drools.util.FastClassLoader;
 
 public class JavaDialectRuntimeData
     implements
@@ -67,7 +69,7 @@
 
     private transient PackageClassLoader         classLoader;
 
-    private transient DroolsCompositeClassLoader rootClassLoader;
+    private transient CompositeClassLoader      rootClassLoader;
 
     private boolean                              dirty;
 
@@ -216,7 +218,7 @@
     }
 
     public void onAdd(DialectRuntimeRegistry registry,
-                      DroolsCompositeClassLoader rootClassLoader) {
+                      CompositeClassLoader rootClassLoader) {
         this.registry = registry;
         this.rootClassLoader = rootClassLoader;
         this.classLoader = new PackageClassLoader( this,
@@ -247,7 +249,7 @@
     }
 
     public DialectRuntimeData clone(DialectRuntimeRegistry registry,
-                                    DroolsCompositeClassLoader rootClassLoader) {
+                                    CompositeClassLoader rootClassLoader) {
         DialectRuntimeData cloneOne = new JavaDialectRuntimeData();
         cloneOne.merge( registry,
                         this );
@@ -518,24 +520,38 @@
         getInvokers().remove( className );
     }
 
-    public static class PackageClassLoader extends ClassLoader
-        implements
-        DroolsClassLoader {
+    /**
+     * This is an Internal Drools Class
+     *
+     */    
+    public static class PackageClassLoader extends ClassLoader implements FastClassLoader {
         private JavaDialectRuntimeData store;
-        DroolsCompositeClassLoader     rootClassLoader;
+        CompositeClassLoader     rootClassLoader;
 
-        private Map<String, Object>    cache           = new HashMap<String, Object>();
-        private long                   successfulCalls = 0;
-        private long                   failedCalls     = 0;
-        private long                   cacheHits       = 0;
-
         public PackageClassLoader(JavaDialectRuntimeData store,
-                                  DroolsCompositeClassLoader rootClassLoader) {
+                                  CompositeClassLoader rootClassLoader) {
             super( rootClassLoader );
             this.rootClassLoader = rootClassLoader;
             this.store = store;
         }
 
+        public Class< ? > loadClass(final String name,
+                                    final boolean resolve) throws ClassNotFoundException {  
+            Class< ? > cls = fastFindClass( name );
+            
+            if ( cls == null ) {
+                final CompositeClassLoader parent = ( CompositeClassLoader ) getParent();
+                cls = parent.loadClass( name, resolve, this );
+            }        
+            
+            if ( cls == null ) {
+                throw new ClassNotFoundException("Unable to load class: " + name);
+            }
+
+            return cls;
+        }
+     
+
         public Class< ? > fastFindClass(final String name) {
             Class< ? > cls = findLoadedClass( name );
 
@@ -554,61 +570,22 @@
                                        "",
                                        null );
                     }
+
                     cls = defineClass( name,
                                        clazzBytes,
                                        0,
                                        clazzBytes.length,
                                        PROTECTION_DOMAIN );
                 }
+                
+                if ( cls != null ) {
+                    resolveClass( cls );
+                }                    
             }
-
+            
             return cls;
         }
 
-        public Class< ? > loadClass(final String name,
-                                    final boolean resolve) throws ClassNotFoundException {
-            try {
-                if ( cache.containsKey( name ) ) {
-                    this.cacheHits++;
-                    Object result = cache.get( name );
-                    if ( result instanceof ClassNotFoundException ) {
-                        throw (ClassNotFoundException) result;
-                    } else {
-                        return (Class< ? >) result;
-                    }
-                }
-                Class< ? > cls = fastFindClass( name );
-                if ( cls == null ) {
-                    final ClassLoader parent = getParent();
-                    if ( parent != null ) {
-                        cls = Class.forName( name,
-                                             true,
-                                             parent );
-                    }
-                }
-                if ( resolve && cls != null ) {
-                    resolveClass( cls );
-                }
-                if ( cls != null ) {
-                    this.successfulCalls++;
-                } else {
-                    this.failedCalls++;
-                }
-                cache.put( name,
-                           cls );
-                return cls;
-            } catch ( ClassNotFoundException e ) {
-                this.failedCalls++;
-                cache.put( name,
-                           e );
-                throw e;
-            }
-        }
-
-        protected Class< ? > findClass(final String name) throws ClassNotFoundException {
-            return fastFindClass( name );
-        }
-
         public InputStream getResourceAsStream(final String name) {
             final byte[] clsBytes = this.store.read( name );
             if ( clsBytes != null ) {
@@ -616,16 +593,6 @@
             }
             return null;
         }
-
-        public void reset() {
-            this.cacheHits = this.failedCalls = this.successfulCalls = 0;
-            this.cache.clear();
-        }
-
-        public void printStats() {
-            System.out.println( "CacheHits = " + this.cacheHits + "\nSuccessful=" + this.successfulCalls + "\nFailed=" + this.failedCalls + "\n" );
-
-        }
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -30,6 +30,7 @@
 
 import org.drools.base.mvel.MVELCompileable;
 import org.drools.spi.Wireable;
+import org.drools.util.CompositeClassLoader;
 import org.mvel2.integration.VariableResolver;
 import org.mvel2.integration.impl.MapVariableResolverFactory;
 
@@ -41,7 +42,7 @@
 
     private Map<Wireable, MVELCompileable> invokerLookups;
 
-    private DroolsCompositeClassLoader           rootClassLoader;
+    private CompositeClassLoader           rootClassLoader;
 
     private List<Wireable>                 wireList = Collections.<Wireable> emptyList();
 
@@ -86,7 +87,7 @@
     }
 
     public DialectRuntimeData clone(DialectRuntimeRegistry registry,
-                                    DroolsCompositeClassLoader rootClassLoader) {
+                                    CompositeClassLoader rootClassLoader) {
         DialectRuntimeData clone = new MVELDialectRuntimeData();
         clone.merge( registry,
                      this );
@@ -96,7 +97,7 @@
     }
 
     public void onAdd(DialectRuntimeRegistry registry,
-                      DroolsCompositeClassLoader rootClassLoader) {
+                      CompositeClassLoader rootClassLoader) {
         this.rootClassLoader = rootClassLoader;
 
         //        for (Entry<Wireable, MVELCompilable> entry : this.invokerLookups.entrySet() ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -26,9 +26,7 @@
 
 import org.drools.core.util.DroolsClassLoader;
 
-public class MapBackedClassLoader extends ClassLoader
-    implements
-    DroolsClassLoader {
+public class MapBackedClassLoader extends ClassLoader {
 
     private static final long             serialVersionUID = 510l;
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/extractors/MVELClassFieldExtractorTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -212,8 +212,7 @@
                 }
             }
             if ( !errors.isEmpty() ) {
-                System.out.println( errors.toString() );
-                fail( " Errors occured during execution " );
+                fail( " Errors occured during execution\n" + errors.toString()  );
             }
         } catch ( InterruptedException e ) {
             e.printStackTrace();

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/DroolsObjectIOTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/DroolsObjectIOTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/DroolsObjectIOTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -69,7 +69,6 @@
         DroolsStreamUtils.streamOut(new FileOutputStream(file), testGroupElement);
 
         InputStream         fis = getClass().getResourceAsStream(TEST_FILE);
-        System.out.println(fis.available());
 
         GroupElement    that    = (GroupElement)DroolsStreamUtils.streamIn(fis);
         assertEquals(that, testGroupElement);

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/ClassBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/ClassBuilderTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/ClassBuilderTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -31,9 +31,9 @@
 
 import org.drools.base.ClassFieldAccessorCache;
 import org.drools.base.ClassFieldAccessorStore;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.JavaDialectRuntimeData;
 import org.drools.rule.JavaDialectRuntimeData.PackageClassLoader;
+import org.drools.util.ClassLoaderUtil;
 
 public class ClassBuilderTest extends TestCase {
 
@@ -55,7 +55,7 @@
                      
         data.write( JavaDialectRuntimeData.convertClassToResourcePath( classDef.getClassName() ),
                        d );
-        classLoader = new PackageClassLoader(data, new DroolsCompositeClassLoader( getClass().getClassLoader(), false ));
+        classLoader = new PackageClassLoader(data, ClassLoaderUtil.getClassLoader( null, getClass(), false ));
         
         this.store = new ClassFieldAccessorStore();
         store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/InstancesHashcodedTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/InstancesHashcodedTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/factmodel/InstancesHashcodedTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -21,9 +21,9 @@
 
 import org.drools.base.ClassFieldAccessorCache;
 import org.drools.base.ClassFieldAccessorStore;
-import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.JavaDialectRuntimeData;
 import org.drools.rule.JavaDialectRuntimeData.PackageClassLoader;
+import org.drools.util.ClassLoaderUtil;
 
 import junit.framework.TestCase;
 
@@ -51,7 +51,7 @@
         JavaDialectRuntimeData data = new JavaDialectRuntimeData();  
         data.write( JavaDialectRuntimeData.convertClassToResourcePath( classDef.getClassName() ),
                        d );
-        ClassLoader classLoader = new PackageClassLoader(data, new DroolsCompositeClassLoader( getClass().getClassLoader(), false ));
+        ClassLoader classLoader = new PackageClassLoader(data, ClassLoaderUtil.getClassLoader( null, getClass(), false ));
         
         ClassFieldAccessorStore store = new ClassFieldAccessorStore();
         store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -86,8 +86,6 @@
         
         Class cls = ((InternalRuleBase)rb).getRootClassLoader().loadClass( "org.drools.rule.PackageCompilationDataTest$TestEvalExpression" );
         
-        System.out.println( cls );
-        
         final CodeSource codeSource = invoker.getEvalExpression().getClass().getProtectionDomain().getCodeSource();
         assertNotNull(codeSource.getLocation());
     }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/time/impl/CronJobTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/time/impl/CronJobTest.java	2010-12-01 22:22:12 UTC (rev 36152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/time/impl/CronJobTest.java	2010-12-02 03:47:39 UTC (rev 36153)
@@ -38,7 +38,6 @@
         
         DateFormat df = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSZ" );
         Date date = df.parse( "2009-01-01T00:00:00.000-0000" );
-        System.out.println( "current time " + date );
         
         timeService.advanceTime( date.getTime(), TimeUnit.MILLISECONDS );
         



More information about the jboss-svn-commits mailing list