Class ClassFileLocator.ForInstrumentation

java.lang.Object
net.bytebuddy.dynamic.ClassFileLocator.ForInstrumentation
All Implemented Interfaces:
Closeable, AutoCloseable, ClassFileLocator
Enclosing interface:
ClassFileLocator

@Enhance public static class ClassFileLocator.ForInstrumentation 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.
  • Field Details

  • Constructor Details

    • ForInstrumentation

      public ForInstrumentation(Instrumentation instrumentation, @MaybeNull 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 or null to use the boot loader.
    • ForInstrumentation

      public ForInstrumentation(Instrumentation instrumentation, ClassFileLocator.ForInstrumentation.ClassLoadingDelegate classLoadingDelegate)
      Creates an agent-based class file locator.
      Parameters:
      instrumentation - The instrumentation to be used.
      classLoadingDelegate - The delegate responsible for class loading.
  • Method Details

    • doPrivileged

      @Enhance private static <T> T doPrivileged(PrivilegedAction<T> action)
      A proxy for java.security.AccessController#doPrivileged that is activated if available.
      Type Parameters:
      T - The type of the action's resolved value.
      Parameters:
      action - The action to execute from a privileged context.
      Returns:
      The action's resolved value.
    • resolveByteBuddyAgentInstrumentation

      private static Instrumentation resolveByteBuddyAgentInstrumentation()
      Resolves the instrumentation provided by net.bytebuddy.agent.Installer.
      Returns:
      The installed instrumentation instance.
    • fromInstalledAgent

      public static ClassFileLocator fromInstalledAgent(@MaybeNull 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.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable