org.drools.rule
Class PackageCompilationData.PackageClassLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byorg.drools.rule.PackageCompilationData.PackageClassLoader
Enclosing class:
PackageCompilationData

public class PackageCompilationData.PackageClassLoader
extends java.lang.ClassLoader

Lifted and adapted from Jakarta commons-jci

 

Constructor Summary
PackageCompilationData.PackageClassLoader(java.lang.ClassLoader parentClassLoader)
           
 
Method Summary
 java.lang.Class fastFindClass(java.lang.String name)
           
protected  java.lang.Class findClass(java.lang.String name)
           
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
protected  java.lang.Class loadClass(java.lang.String name, boolean resolve)
          Javadocs recommend that this method not be overloaded.
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PackageCompilationData.PackageClassLoader

public PackageCompilationData.PackageClassLoader(java.lang.ClassLoader parentClassLoader)
Method Detail

fastFindClass

public java.lang.Class fastFindClass(java.lang.String name)

loadClass

protected java.lang.Class loadClass(java.lang.String name,
                                    boolean resolve)
                             throws java.lang.ClassNotFoundException
Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a higher priority than normal.

Throws:
java.lang.ClassNotFoundException

findClass

protected java.lang.Class findClass(java.lang.String name)
                             throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String name)