Package io.opentelemetry.javaagent.tooling.instrumentation.indy
package io.opentelemetry.javaagent.tooling.instrumentation.indy
-
ClassesClassDescriptionPool strategy that sets "inline" attribute on
Advice.OnMethodEnterandAdvice.OnMethodExitannotations.This factory is designed to wrap aroundAdvice.PostProcessor.Factoryand ensures thatAssigner.Typing.DYNAMICis used everywhere.ReplacesINVOKEDYNAMICinstructions used for invoking advice withINVOKESTATICinstructions in a helper class that contains the originalINVOKEDYNAMICinstruction in classes that do not supportINVOKEDYNAMIC(i.e. pre Java 7 class files).We instruct Byte Buddy (viaAdvice.WithCustomMapping.bootstrap(java.lang.reflect.Method)) to dispatch non-inlined advices via an invokedynamic (indy) instruction.Class loader used to load the helper classes fromInstrumentationModules, so that those classes have access to both the agent/extension classes and the instrumented application classes.This class is injected into everyInstrumentationModuleClassLoaderso that the bootstrap can use aMethodHandles.Lookupwith a lookup class from within theInstrumentationModuleClassLoader, instead of callingMethodHandles.lookup()which uses the caller class as the lookup class.