Class ByteArrayClassLoader.ChildFirst

  • Enclosing class:
    ByteArrayClassLoader

    public static class ByteArrayClassLoader.ChildFirst
    extends ByteArrayClassLoader

    A ByteArrayClassLoader which applies child-first semantics for the given type definitions.

    Important: Package definitions remain their parent-first semantics as loaded package definitions do not expose their class loaders. Also, it is not possible to make this class or its subclass parallel-capable as the loading strategy is overridden.

    • Constructor Detail

      • ChildFirst

        public ChildFirst​(java.lang.ClassLoader parent,
                          java.util.Map<java.lang.String,​byte[]> typeDefinitions)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
      • ChildFirst

        public ChildFirst​(java.lang.ClassLoader parent,
                          java.util.Map<java.lang.String,​byte[]> typeDefinitions,
                          ByteArrayClassLoader.PersistenceHandler persistenceHandler)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
        persistenceHandler - The persistence handler of this class loader.
      • ChildFirst

        public ChildFirst​(java.lang.ClassLoader parent,
                          java.util.Map<java.lang.String,​byte[]> typeDefinitions,
                          java.security.ProtectionDomain protectionDomain,
                          ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                          PackageDefinitionStrategy packageDefinitionStrategy)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
        protectionDomain - The protection domain to apply where null references an implicit protection domain.
        persistenceHandler - The persistence handler of this class loader.
        packageDefinitionStrategy - The package definer to be queried for package definitions.
      • ChildFirst

        public ChildFirst​(java.lang.ClassLoader parent,
                          java.util.Map<java.lang.String,​byte[]> typeDefinitions,
                          java.security.ProtectionDomain protectionDomain,
                          ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                          PackageDefinitionStrategy packageDefinitionStrategy,
                          java.lang.instrument.ClassFileTransformer classFileTransformer)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
        protectionDomain - The protection domain to apply where null references an implicit protection domain.
        persistenceHandler - The persistence handler of this class loader.
        packageDefinitionStrategy - The package definer to be queried for package definitions.
        classFileTransformer - The class file transformer to apply on loaded classes.
    • Method Detail

      • loadClass

        protected java.lang.Class<?> loadClass​(java.lang.String name,
                                               boolean resolve)
                                        throws java.lang.ClassNotFoundException
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • getResource

        public java.net.URL getResource​(java.lang.String name)
        Overrides:
        getResource in class java.lang.ClassLoader
      • getResources

        public java.util.Enumeration<java.net.URL> getResources​(java.lang.String name)
                                                         throws java.io.IOException
        Overrides:
        getResources in class java.lang.ClassLoader
        Throws:
        java.io.IOException