#ReflectiveAccessByInstrumentationAgents
Alan Bateman
Alan.Bateman at oracle.com
Thu Apr 21 13:32:06 UTC 2016
On 21/04/2016 12:09, Peter Levart wrote:
> :
>
> The situation is not so complicated, I think. If instrumented code
> calls some code in your Byteman module(s) then you should 1st make
> this code public and reside in exported packages. All you have to do
> then is add read edges from modules of instrumented classes to modules
> of Byteman classes that are called by instrumented code as they are
> being instrumented.
If the instrumentation is just injecting code to call into Byteman then
I assume it just works now. That is, it doesn't appear that Byteman has
embraced modules yet and so I assume it must be an agent specified via
-javaagent with perhaps supporting code in other JAR files. In that
case, the Byteman code is the unnamed module of the app class loader and
the VM will automatically add a read edge when the transformer touches
code in any named module. This is the compatibility support that I
mentioned in another mail.
If you right this it should be simple as you say. On the other hand,
some of the mails mention accessing non-public members, setAccessible,
and even (it would appear) adjusting class loader delegation on the fly
to facilitate the patches.
-Alan
More information about the jigsaw-dev
mailing list