Class ClassFileLocator.AgentBased

  • All Implemented Interfaces:
    Closeable, AutoCloseable, ClassFileLocator
    Enclosing interface:
    ClassFileLocator

    @Enhance
    public static class ClassFileLocator.AgentBased
    extends Object
    implements ClassFileLocator
    A Java agent that allows the location of class files by emulating a retransformation. Note that this class file locator causes a class to be loaded in order to look up its class file. Also, this locator does deliberately not support the look-up of classes that represent lambda expressions.
    • Constructor Detail

      • AgentBased

        public AgentBased​(Instrumentation instrumentation,
                          ClassLoader classLoader)
        Creates an agent-based class file locator.
        Parameters:
        instrumentation - The instrumentation to be used.
        classLoader - The class loader to read a class from.
    • Method Detail

      • fromInstalledAgent

        public static ClassFileLocator fromInstalledAgent​(ClassLoader classLoader)
        Returns an agent-based class file locator for the given class loader and an already installed Byte Buddy-agent.
        Parameters:
        classLoader - The class loader that is expected to load the looked-up a class.
        Returns:
        A class file locator for the given class loader based on a Byte Buddy agent.
      • of

        public static ClassFileLocator of​(Instrumentation instrumentation,
                                          Class<?> type)
        Returns a class file locator that is capable of locating a class file for the given type using the given instrumentation instance.
        Parameters:
        instrumentation - The instrumentation instance to query for a retransformation.
        type - The locatable type which class loader is used as a fallback.
        Returns:
        A class file locator for locating the class file of the given type.
      • locate

        public ClassFileLocator.Resolution locate​(String name)
        Locates the class file for a given type and returns the binary data of the class file.
        Specified by:
        locate in interface ClassFileLocator
        Parameters:
        name - The name of the type to locate a class file representation for.
        Returns:
        Any binary representation of the type which might be illegal.