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​(ClassLoader parent,
                          Map<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​(ClassLoader parent,
                          boolean sealed,
                          Map<String,​byte[]> typeDefinitions)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        sealed - true if this class loader is sealed.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
      • ChildFirst

        public ChildFirst​(ClassLoader parent,
                          Map<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​(ClassLoader parent,
                          boolean sealed,
                          Map<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.
        sealed - true if this class loader is sealed.
        typeDefinitions - A map of fully qualified class names pointing to their binary representations.
        persistenceHandler - The persistence handler of this class loader.
      • ChildFirst

        public ChildFirst​(ClassLoader parent,
                          Map<String,​byte[]> typeDefinitions,
                          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​(ClassLoader parent,
                          boolean sealed,
                          Map<String,​byte[]> typeDefinitions,
                          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.
        sealed - true if this class loader is sealed.
        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​(ClassLoader parent,
                          Map<String,​byte[]> typeDefinitions,
                          ProtectionDomain protectionDomain,
                          ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                          PackageDefinitionStrategy packageDefinitionStrategy,
                          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.
      • ChildFirst

        public ChildFirst​(ClassLoader parent,
                          boolean sealed,
                          Map<String,​byte[]> typeDefinitions,
                          ProtectionDomain protectionDomain,
                          ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                          PackageDefinitionStrategy packageDefinitionStrategy,
                          ClassFileTransformer classFileTransformer)
        Creates a new child-first byte array class loader.
        Parameters:
        parent - The ClassLoader that is the parent of this class loader.
        sealed - true if this class loader is sealed.
        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

      • load

        public static Map<TypeDescription,​Class<?>> load​(ClassLoader classLoader,
                                                               Map<TypeDescription,​byte[]> types)
        Loads a given set of class descriptions and their binary representations using a child-first class loader.
        Parameters:
        classLoader - The parent class loader.
        types - The unloaded types to be loaded.
        Returns:
        A map of the given type descriptions pointing to their loaded representations.
      • load

        public static Map<TypeDescription,​Class<?>> load​(ClassLoader classLoader,
                                                               Map<TypeDescription,​byte[]> types,
                                                               ProtectionDomain protectionDomain,
                                                               ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                                                               PackageDefinitionStrategy packageDefinitionStrategy,
                                                               boolean forbidExisting,
                                                               boolean sealed)
        Loads a given set of class descriptions and their binary representations using a child-first class loader.
        Parameters:
        classLoader - The parent class loader.
        types - The unloaded types to be loaded.
        protectionDomain - The protection domain to apply where null references an implicit protection domain.
        persistenceHandler - The persistence handler of the created class loader.
        packageDefinitionStrategy - The package definer to be queried for package definitions.
        forbidExisting - true if the class loading should throw an exception if a class was already loaded by a parent class loader.
        sealed - true if the class loader should be sealed.
        Returns:
        A map of the given type descriptions pointing to their loaded representations.