Class HelperInjector

  • All Implemented Interfaces:
    net.bytebuddy.agent.builder.AgentBuilder.Transformer

    public class HelperInjector
    extends java.lang.Object
    implements net.bytebuddy.agent.builder.AgentBuilder.Transformer
    Injects instrumentation helper classes into the user's classloader.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface net.bytebuddy.agent.builder.AgentBuilder.Transformer

        net.bytebuddy.agent.builder.AgentBuilder.Transformer.ForAdvice, net.bytebuddy.agent.builder.AgentBuilder.Transformer.ForBuildPlugin
    • Constructor Summary

      Constructors 
      Constructor Description
      HelperInjector​(java.lang.String requestingName, java.util.List<java.lang.String> helperClassNames, java.util.List<java.lang.String> helperResourceNames)
      Construct HelperInjector.
      HelperInjector​(java.lang.String requestingName, java.util.Map<java.lang.String,​byte[]> helperMap)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static HelperInjector forDynamicTypes​(java.lang.String requestingName, java.util.Collection<net.bytebuddy.dynamic.DynamicType.Unloaded<?>> helpers)  
      net.bytebuddy.dynamic.DynamicType.Builder<?> transform​(net.bytebuddy.dynamic.DynamicType.Builder<?> builder, net.bytebuddy.description.type.TypeDescription typeDescription, java.lang.ClassLoader classLoader, net.bytebuddy.utility.JavaModule module)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HelperInjector

        public HelperInjector​(java.lang.String requestingName,
                              java.util.List<java.lang.String> helperClassNames,
                              java.util.List<java.lang.String> helperResourceNames)
        Construct HelperInjector.
        Parameters:
        helperClassNames - binary names of the helper classes to inject. These class names must be resolvable by the classloader returned by io.opentelemetry.javaagent.tooling.Utils#getAgentClassLoader(). Classes are injected in the order provided. This is important if there is interdependency between helper classes that requires them to be injected in a specific order.
      • HelperInjector

        public HelperInjector​(java.lang.String requestingName,
                              java.util.Map<java.lang.String,​byte[]> helperMap)
    • Method Detail

      • forDynamicTypes

        public static HelperInjector forDynamicTypes​(java.lang.String requestingName,
                                                     java.util.Collection<net.bytebuddy.dynamic.DynamicType.Unloaded<?>> helpers)
      • transform

        public net.bytebuddy.dynamic.DynamicType.Builder<?> transform​(net.bytebuddy.dynamic.DynamicType.Builder<?> builder,
                                                                      net.bytebuddy.description.type.TypeDescription typeDescription,
                                                                      java.lang.ClassLoader classLoader,
                                                                      net.bytebuddy.utility.JavaModule module)
        Specified by:
        transform in interface net.bytebuddy.agent.builder.AgentBuilder.Transformer