Ideas about javaagent-tooling/api changes #2779
Unanswered
mateuszrzeszutek
asked this question in
Q&A
Replies: 2 comments 2 replies
-
|
+1 for separating internal javaagent code from the one needed by external instrumentations authors |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Recently we've been developing the extension loading mechanism, and thinking about keeping some javaagent instrumentations outside of this repo. Our current javaagent-api/tooling code is a bit messy and contains lots of stuff that we probably shouldn't expose to javaagent instrumentation authors. I had some thoughts about splitting the javaagent modules in a bit different way:
javaagent-bootstrap: same as before, there's no need to change that;javaagent-advice-api: previousjavaagent-apimodule. This module should contain classes that are supposed to be used in advice code:InstrumentationContext,CallDepthetc. Ideally instrumentation specific bootstrap classes (theundertowpackage for example) should leave in the instrumentation bootstrap modules (:instrumentation:undertow:bootstrap). We have a couple ofinternalclasses here, some of them could probably live injavaagent-bootstrap;javaagent-api: previousjavaagent-spicombined with those parts ofjavaagent-toolingthat are supposed to be used by instrumentations that are not kept in this repo (contrib, 3rd party, vendor code):InstrumentationModule, runtime parts of muzzle, byte buddy matchers etc. No bytecode generation voodoo, this module should be easy on the eyes 😄javaagent-internal(tooling?): everything else fromjavaagent-toolingthat's supposed to be used internally by the agent (and not by javaagent instrumentation authors).WDYT?
Beta Was this translation helpful? Give feedback.
All reactions