[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [equinox-dev] Integrating AspectJ Load-Time Weaving into OSGi/Eclipse
|
Hi Matthew,
I think I now understand the goal of your manifest headers better.
Thanks for that. Just some more questions to ensure that I have
understood it correctly. ;-)
To emulate the AJEER setting I would need to put an aspect into a bundle
and define the header somehow like this:
Supplement-Bundle: *
Would this mean that the aspect would be woven with every other class in
all bundles (if the aop.xml file allows this)?
And a second question regarding the co-opt mechanism:
If I define an aspect inside a bundle A which advices all
implementations of a specific interface (which is defined in another
bundle) I would need to define the affected bundles via the supplement
headers within the manifest of the bundle that contains the aspect. Is
this correct? And if someone contributes a new bundle (not known to the
aspect bundle deleveloper) I would need to adjust the supplement
definition to include this bundle for the weaving of that aspect?
-Martin
P.S. and BTW: How does the supplement mechanism relates to the buddy
mechanism from your point of view?
They are operating at different levels of abstraction, require different
skill levels and can be used by different people.
The pointcut is used by the aspect author. Whoever deploys an aspect bundle
may not have the necessary skill or even the source code to modify the
scope of an aspect. They could however customize the behaviour using
aop.xml but it doesn't understand bundles only classes and packages: to
determine which bundles to affect they would have to inspect which packages
they defined. Using the Supplements mechanism someone who understands OSGi
can easily tailor and aspect bundle to only affect the desired bundles in
the system.
Matthew Webster
AOSD Project
Java Technology Centre, MP146
IBM Hursley Park, Winchester, SO21 2JN, England
Telephone: +44 196 2816139 (external) 246139 (internal)
Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
http://w3.hursley.ibm.com/~websterm/
Martin Lippert <lippert@xxxxxxx>@eclipse.org on 20/09/2005 22:26:27
Please respond to Equinox development mailing list
<equinox-dev@xxxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc:
Subject: Re: [equinox-dev] Integrating AspectJ Load-Time Weaving
into OSGi/Eclipse
Matthew,
LTW can be used weave aspects that are declared in packages already
imported or required by a bundle: one of the goals of this approach is to
make the use of aspects as similar to classes as possible. However the
side-affect of weaving is a new dependency on the (small) AspectJ runtime
which must be added to the "class space": using Require-Bundle semantics
allows aspect bundles to transparently re-export the necessary packages.
Furthermore capabilities in completely new packages can also be
introduced.
The Supplement-Bundle/Importer/Exporter is both a configuration mechanism
and a means for the resolver to extend the set of dependencies for a
bundle. In the same way a bundle provider selects classes through
Import-Package or Require-Bundle header an aspect bundle provider selects
the target bundles with a Supplement header. WRT it being hard we have a
working version ;-).
Could you help me here? I think I am a bit confused about the point
where the possibly affected target classes/bundles are defined... So
basically the question is: What is the relation between pointcuts, the
weaver options in the aop.xml file and the supplement definitions?
Thanks!!!
-Martin
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature