Class AgentBuilder.Listener.ModuleReadEdgeCompleting

java.lang.Object
net.bytebuddy.agent.builder.AgentBuilder.Listener.Adapter
net.bytebuddy.agent.builder.AgentBuilder.Listener.ModuleReadEdgeCompleting
All Implemented Interfaces:
AgentBuilder.Listener
Enclosing interface:
AgentBuilder.Listener

@Enhance public static class AgentBuilder.Listener.ModuleReadEdgeCompleting extends AgentBuilder.Listener.Adapter
A listener that adds read-edges to any module of an instrumented class upon its transformation and opens the class's package to the module.
  • Field Details

    • instrumentation

      private final Instrumentation instrumentation
      The instrumentation instance used for adding read edges.
    • addTargetEdge

      private final boolean addTargetEdge
      true if the listener should also add a read-edge from the supplied modules to the instrumented type's module. This will also ensure that the package of the instrumented type is exported to the target module.
    • modules

      private final Set<? extends JavaModule> modules
      The modules to add as a read edge to any transformed class's module.
  • Constructor Details

    • ModuleReadEdgeCompleting

      public ModuleReadEdgeCompleting(Instrumentation instrumentation, boolean addTargetEdge, Set<? extends JavaModule> modules)
      Creates a new module read-edge completing listener.
      Parameters:
      instrumentation - The instrumentation instance used for adding read edges.
      addTargetEdge - true if the listener should also add a read-edge from the supplied modules to the instrumented type's module. This will also ensure that the package of the instrumented type is exported to the target module.
      modules - The modules to add as a read edge to any transformed class's module.
  • Method Details

    • of

      public static AgentBuilder.Listener of(Instrumentation instrumentation, boolean addTargetEdge, Class<?>... type)
      Resolves a listener that adds module edges from and to the instrumented type's module.
      Parameters:
      instrumentation - The instrumentation instance used for adding read edges.
      addTargetEdge - true if the listener should also add a read-edge from the supplied modules to the instrumented type's module. This will also ensure that the package of the instrumented type is exported to the target module.
      type - The types for which to extract the modules.
      Returns:
      An appropriate listener.
    • onTransformation

      public void onTransformation(TypeDescription typeDescription, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded, DynamicType dynamicType)
      Description copied from class: AgentBuilder.Listener.Adapter
      Invoked prior to a successful transformation being applied.
      Specified by:
      onTransformation in interface AgentBuilder.Listener
      Overrides:
      onTransformation in class AgentBuilder.Listener.Adapter
      Parameters:
      typeDescription - The type that is being transformed.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The transformed type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.
      dynamicType - The dynamic type that was created.