daikon.chicory
Class ChicoryPremain.ChicoryLoader

Object
  extended by ClassLoader
      extended by ChicoryPremain.ChicoryLoader
Enclosing class:
ChicoryPremain

public static class ChicoryPremain.ChicoryLoader
extends ClassLoader

Classloader for the BCEL code. Using this classloader guarantees that we get the PAG version of the BCEL code and not a possible incompatible version from elsewhere on the users classpath. We also load daikon.chicory.Instrument via this (since that class is the user of all of the BCEL classes). All references to BCEL must be within that class (so that all references to BCEL will get resolved by this classloader). The PAG version of BCEL is identified by the presence of the PAG marker class (org.apache.bcel.PAGMarker). Other versions of BCEL will not contain this class. If other versions of BCEL are present, they must appear before the PAG versions in the classpath (so that the users application will see them first). If only the PAG version is in the classpath, then the normal loader is used for all of the classes.


Field Summary
static SimpleLog debug
           
 
Constructor Summary
ChicoryPremain.ChicoryLoader()
           
 
Method Summary
protected  Class<?> loadClass(String name, boolean resolve)
           
 
Methods inherited from class ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

public static final SimpleLog debug
Constructor Detail

ChicoryPremain.ChicoryLoader

public ChicoryPremain.ChicoryLoader()
                             throws IOException
Throws:
IOException
Method Detail

loadClass

protected Class<?> loadClass(String name,
                             boolean resolve)
                      throws ClassNotFoundException
Overrides:
loadClass in class ClassLoader
Throws:
ClassNotFoundException