Hello
I am working on a system, that supports dynamically
loaded 3rd party plugins (have
no source code nor bytecode of them in advance).
In the system, there is a particular
class (in the sources I am
coding), say A, and I need to be able to define an advice
that gets executed whenever any of these plugins calls
some methods on any instance
of A.
So, I made an aspect that catches those calls and
defines the advice. Now I have
an aspect bytecode as well (thanks to
eclipse).
Now it seems that what I need to make it working, is
a load-time weaving mechanism,
so that whenever the plugin class is dynamically loaded,
its weaven with the aspect.
To get it complicated, I have to avoid running the
system with 'aj' or with weaving agent.
Having the 2 options of 3 total for load-time weaving
restricted, it seems that what I need
to do is to use some magic with WeavingURLClassLoader and let it load the plugins.
Can anybody please give me a hint how to do that
? Because I have no clue how to use it to
make it to do just that.
Is that really what I need and Is what I need
even possible ?
Thanks in advance
Jozef
|