Class HelperInjector

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

    public class HelperInjector
    extends Object
    implements net.bytebuddy.agent.builder.AgentBuilder.Transformer
    Injects instrumentation helper classes into the user's classloader.
    • Constructor Detail

      • HelperInjector

        public HelperInjector​(String requestingName,
                              List<String> helperClassNames,
                              List<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​(String requestingName,
                              Map<String,​byte[]> helperMap)
    • Method Detail

      • forDynamicTypes

        public static HelperInjector forDynamicTypes​(String requestingName,
                                                     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,
                                                                      ClassLoader classLoader,
                                                                      net.bytebuddy.utility.JavaModule module)
        Specified by:
        transform in interface net.bytebuddy.agent.builder.AgentBuilder.Transformer
      • isInjectedClass

        public static boolean isInjectedClass​(Class<?> c)