Class HelperInjector
- java.lang.Object
-
- io.opentelemetry.javaagent.tooling.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 Summary
Constructors Constructor Description HelperInjector(String requestingName, List<String> helperClassNames, List<String> helperResourceNames)Construct HelperInjector.HelperInjector(String requestingName, Map<String,byte[]> helperMap)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static HelperInjectorforDynamicTypes(String requestingName, Collection<net.bytebuddy.dynamic.DynamicType.Unloaded<?>> helpers)static booleanisInjectedClass(Class<?> c)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)
-
-
-
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.
-
-
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:
transformin interfacenet.bytebuddy.agent.builder.AgentBuilder.Transformer
-
isInjectedClass
public static boolean isInjectedClass(Class<?> c)
-
-