[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




Martin,

>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)?
Yes, although it would be good to maintain the simplicity of the current
AJEER configuration by doing this under the covers.

>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?
It depends. The use of wildcards may make this unnecessary. Also the
Supplement-Importer/Exporter header might be more appropriate.

>P.S. and BTW: How does the supplement mechanism relates to the buddy
>mechanism from your point of view?
It's the inverse i.e. you declare who regards you as their buddy. Also
because it has the semantics of Require-Bundle the package resolution has a
higher priority.

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 29/09/2005 20:50:47

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



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



_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Attachment: smime.p7s
Description: Binary data