-
Notifications
You must be signed in to change notification settings - Fork 893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bytecode version upgrade for invokedynamic dispatch #9239
Bytecode version upgrade for invokedynamic dispatch #9239
Conversation
...n/java/io/opentelemetry/javaagent/tooling/instrumentation/indy/PatchBytecodeVersionTest.java
Outdated
Show resolved
Hide resolved
…nstrumentation into indy-patch-old-bytecode
...io/opentelemetry/javaagent/tooling/instrumentation/indy/PatchByteCodeVersionTransformer.java
Outdated
Show resolved
Hide resolved
...io/opentelemetry/javaagent/tooling/instrumentation/indy/PatchByteCodeVersionTransformer.java
Outdated
Show resolved
Hide resolved
...ytecodeVersion/java/io/opentelemetry/javaagent/tooling/instrumentation/indy/OldBytecode.java
Show resolved
Hide resolved
...n/java/io/opentelemetry/javaagent/tooling/instrumentation/indy/PatchBytecodeVersionTest.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would help to indicate in the description how you intend to hook this in, otherwise seems ok to me.
@tylerbenson I've updated the PR description with an |
When using the
invokedynamic
dispatching strategy described in #8999, it requires the instrumented classes to at least have been compiled with Java 7 (51) in order to use theinvokedynamic
instruction.This transformer allows to upgrade the instrumented classes bytecode to Java 7 (51).
Implementation checklist
Usage
This PR only adds and tests one
AgentBuilder.Transformer
, it is not yet applied on every instrumentation, that will be done in a later PR. Doing that will require to add this transformer in theio.opentelemetry.javaagent.tooling.instrumentation.InstrumentationModuleInstaller#install
method.