[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


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

Martin Lippert <lippert@xxxxxxx>@eclipse.org on 20/09/2005 22:26:27

Please respond to Equinox development mailing list

Sent by:    equinox-dev-bounces@xxxxxxxxxxx

To:    Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
Subject:    Re: [equinox-dev] Integrating AspectJ Load-Time Weaving
       into OSGi/Eclipse


> 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
> 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?



equinox-dev mailing list