Class EnhancerClassLoader


  • public final class EnhancerClassLoader
    extends java.lang.ClassLoader
    ClassLoader for newly defined classes. Parent classloader is the context classloader obtained during instantiation of this class
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) ClassLoaderResolver delegate
      Delegate ClassLoaderResolver may be used during class definition if the class has links to other classes.
      (package private) boolean loadingClass
      flag to avoid reentrant invocations to loading operations
      (package private) boolean loadingResource
      flag to avoid reentrant invocations to loading operations
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void defineClass​(java.lang.String fullClassName, byte[] bytes, ClassLoaderResolver clr)
      Define a class in this ClassLoader.
      protected java.net.URL findResource​(java.lang.String name)
      Overwrite to have an opportunity to find resources from the delegate ClassLoaderResolver
      java.lang.Class loadClass​(java.lang.String name)
      Overwrite to have an opportunity to load classes from the delegate ClassLoaderResolver
      • Methods inherited from class java.lang.ClassLoader

        clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • delegate

        ClassLoaderResolver delegate
        Delegate ClassLoaderResolver may be used during class definition if the class has links to other classes.
      • loadingClass

        boolean loadingClass
        flag to avoid reentrant invocations to loading operations
      • loadingResource

        boolean loadingResource
        flag to avoid reentrant invocations to loading operations
    • Constructor Detail

      • EnhancerClassLoader

        public EnhancerClassLoader()
    • Method Detail

      • defineClass

        public void defineClass​(java.lang.String fullClassName,
                                byte[] bytes,
                                ClassLoaderResolver clr)
        Define a class in this ClassLoader.
        Parameters:
        fullClassName - the class name
        bytes - the bytes representation of the class
        clr - the ClassLoaderResolver to load linked classes
      • loadClass

        public java.lang.Class loadClass​(java.lang.String name)
                                  throws java.lang.ClassNotFoundException
        Overwrite to have an opportunity to load classes from the delegate ClassLoaderResolver
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • findResource

        protected java.net.URL findResource​(java.lang.String name)
        Overwrite to have an opportunity to find resources from the delegate ClassLoaderResolver
        Overrides:
        findResource in class java.lang.ClassLoader