Hi, Tom and Martin.

Ok, everything clear. I will start with the re-implementation of
o.e.e.weaving.aspectj as soon as possible.

On Thu, May 12, 2011 at 4:23 PM, Thomas Watson <[email protected]> wrote:

> Hi, Martin and Alexander.
>
> Martin is correct. The caching aspect of weaving.hook has to be implemented
> as an equinox framework extension. I think it would be great to get the
> o.e.e.weaving.aspectj to be implemented on top of the standard OSGi weaving
> hooks and then provide the performance improvements (caching etc.) as
> special extensions to Equinox.
>
> Thanks.
>
> Tom
>
>
>
> [image: Inactive hide details for Martin Lippert ---05/12/2011 01:41:59
> AM---Hey Alexander!]Martin Lippert ---05/12/2011 01:41:59 AM---Hey
> Alexander!
>
>
> From:
> Martin Lippert <[email protected]>
> To:
> Equinox development mailing list <[email protected]>
> Date:
> 05/12/2011 01:41 AM
> Subject:
> Re: [equinox-dev] Equinox Aspects and OSGi Weaving Hook Service
> Specification (56)
> ------------------------------
>
>
>
> Hey Alexander!
>
> > Ok, I now have a much more clearer view on all of the existing logic.
> > I agree that going the short way is just a workaround and not a
> > upgrade so I will take the long road and will reimplement all bundles
> > to use OSGi spec interfaces. Do I correctly understand that
> > o.e.e.weaving.hook bundle will therefore be obsoleted completely or
> > does it have any extra functions?
>
> I don't think that you can implement the caching part on top of existing
> pure OSGi specifications, but I am not sure.
>
> What I think would be great is:
>
> - having o.e.e.weaving.aspectj to work purely on the OSGi Weaving hook API.
> So people who wanna use aspect weaving can use that on any OSGi runtime
> that implements that spec.
>
> - having o.e.e.weaving.hook and o.e.e.weaving.caching to work on Equinox
> only and provide caching for woven bundles, so that people can use that
> together with o.e.e.weaving.aspectj, if they wanna have caching for
> woven stuff.
>
> I have no idea what that would mean for the implementation of the hook
> and the caching, but I would start with adapting o.e.e.weaving.aspectj
> to the new OSGi Weaving spec and then would try to reduce the hook to do
> caching only.
>
> Just my thoughts...
> Tom, what do you think?
>
> Cheers,
> -Martin
>
>
>
>
>
> >
> > On Wed, May 11, 2011 at 11:36 PM, Martin Lippert<[email protected]>
>  wrote:
> >> Hey Alexander!
> >>
> >> It wasn't clear to me if you would like to "just" change the existing
> >> implementation to use the new hook or if you would like to implement a
> >> completely new aspect weaving mechanism.
> >>
> >> So the existing structure of Equinox Weaving is:
> >>
> >> - org.eclipse.equinox.weaving.hook
> >> This uses the basic Equinox hooks to inject a general bytecode weaving
> and
> >> caching mechanism. There is nothing special here for aspect weaving.
> This
> >> hook provides a service interface that other bundles can implement to
> >> provide concrete bytecode modifications and a service hook for caching
> >> services.
> >>
> >> - org.eclipse.equinox.weaving.aspectj
> >> This implements the service interface from the hook mentioned above and
> uses
> >> the AspectJ weaver to weave aspects into bytecode.
> >>
> >> - org.eclipse.equinox.weaving.caching
> >> This implements the caching service from the hook mentioned above and
> >> implements an asynchronous cache storing on the hard drive.
> >>
> >> My understanding of the OSGi Weaving specification is that it partly
> >> implements what the weaving hook mentioned above implemented (so that
> >> another bundle can implement a service interface in order to inject the
> real
> >> bytecode modification). So in an ideal world, the
> >> org.eclipse.equinox.weaving.aspectj bundle would use that interface in
> the
> >> future to realize bytecode weaving instead of the old one from
> >> o.e.e.weaving.hook. But doing this would also mean that the caching
> would no
> >> longer work for that weaving (because the old o.e.e.weaving.hook is the
> glue
> >> between weaving and caching).
> >>
> >> The other way would be to re-implement the o.e.e.weaving.hook bundle to
> use
> >> the new OSGi Weaving spec hook instead of the old Equinox-specific ones
> >> while providing the same interface to the outside world as before (the
> one
> >> that the aspectj component uses). That would allow the caching to work
> with
> >> this. But from an design point of view, this wouldn't provide a big step
> >> forward, I think.
> >>
> >> Just some thoughts...
> >>
> >> Cheers,
> >> -Martin
> >>
> >>
> >>
> >>
> >>> I thought that the only thing this reimplementation would affect would
> >>> be how (using osgi weaving hook vs equinox internal mechanisms) the
> >>> aspects are woven, and would not affect other things such as which
> >>> aspects to weave, caching etc. But given your question it seems I
> >>> thought wrong.. Could you please clarify? Also I'm not quite sure what
> >>> is opt-in and opt-out.. Is this about which side initiates the weaving
> >>> (Eclipse-SupplementBundle vs Require-Bundle)?
> >>>
> >>> On Wed, May 11, 2011 at 10:49 AM, Martin Lippert<[email protected]>
>  wrote:
> >>>>
> >>>> Hey Alexander!
> >>>>
> >>>>> Thanks for your answer, Martin.
> >>>>>
> >>>>> I will indeed try to re-implement aspect weaving to comply to the
> >>>>> specification. If I succeed I'll send you my result so you could
> maybe
> >>>>> just review it and give it a go saving some of your development
> time..
> >>>>
> >>>> Any contributions are of course highly welcome. Please let me know
> when
> >>>> you
> >>>> have something working here. Would be glad to take a look.
> >>>>
> >>>> The CVS resources are at the RT repository:
> >>>>
> >>>>
> >>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.equinox/weaving/bundles/?root=RT_Project
> >>>>
> >>>>
> >>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.equinox/weaving/features/?root=RT_Project
> >>>>
> >>>> Hope that helps!
> >>>>
> >>>> Are you planning on implementing just pure aspect weaving for AspectJ,
> or
> >>>> are you also looking at the different aspect resolving mechanisms
> (opt-in
> >>>> vs. opt-out) and the caching for woven classes?
> >>>>
> >>>> Cheers,
> >>>> -Martin
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Therefore could you confirm that these are correct links for latest
> >>>>> source of Equinox Aspects (I got them from the same web site which as
> >>>>> you said is a little outdated):
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/equinox-incubator/aspects/org.eclipse.equinox.weaving.hook/
> >>>>>
> >>>>>
> >>>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/equinox-incubator/aspects/org.eclipse.equinox.weaving.aspectj/
> >>>>>
> >>>>>
> >>>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/equinox-incubator/aspects/org.eclipse.equinox.weaving.caching/
> >>>>>
> >>>>>
> >>>>>
> http://dev.eclipse.org/viewcvs/viewvc.cgi/equinox-incubator/aspects/org.eclipse.equinox.weaving.caching.j9/
> >>>>>
> >>>>> I was confused by 'equinox-incubator' part. You told me that the
> >>>>> project has graduated to the main SDK so maybe it now resides
> >>>>> somewhere else?
> >>>>>
> >>>>> On Tue, May 10, 2011 at 8:28 PM, Martin Lippert<[email protected]>
> >>>>>   wrote:
> >>>>>>
> >>>>>> Hi Alexander!
> >>>>>>
> >>>>>> Equinox Aspects is not the implementation of the OSGi Weaving Hook
> >>>>>> Service
> >>>>>> Specification. That specification is implemented as part of Equinox
> >>>>>> 3.7,
> >>>>>> I
> >>>>>> think. So if you use Equinox 3.7, you already have that
> specification
> >>>>>> implementation at hand.
> >>>>>>
> >>>>>> Equinox Aspects (now called Equinox Weaving) has graduated and ins
> now
> >>>>>> part
> >>>>>> of the Equinox SDK, so regularily updated by nightly builds, etc.
> >>>>>> Nevertheless there isn't much activity in this area over the past
> >>>>>> month,
> >>>>>> but
> >>>>>> its pretty stable and usable.
> >>>>>>
> >>>>>> The relationship between these two things are:
> >>>>>> - Equinox Weaving was implemented before the weaving spec came out,
> to
> >>>>>> it
> >>>>>> is
> >>>>>> still based on some Equinox-specific hooks deep inside of Equinox
> and
> >>>>>> is
> >>>>>> currently build mostly to weave aspects into OSGi bundles.
> >>>>>> - The OSGi Weaving spec was done to allow all kinds of bytecode
> weaving
> >>>>>> on a
> >>>>>> general level, so you should be able to re-implement the
> aspect-weaving
> >>>>>> part
> >>>>>> of Equinox Weaving on top of the new OSGi spec right now. I haven't
> >>>>>> done
> >>>>>> that (haven't found the time), but its on my list.
> >>>>>>
> >>>>>> The web will be updated soon to reflect all this...
> >>>>>>
> >>>>>> Hope this answers your questions!
> >>>>>> -Martin
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> Could you please clarify for me whether the Equinox Aspects is the
> >>>>>>> implementation of OSGi Weaving Hook Service Specification? The
> thing
> >>>>>>> that confuses me is that Equinox Aspects was last update May 1 2009
> >>>>>>> (according to it's home page
> >>>>>>> http://www.eclipse.org/equinox/incubator/aspects/index.php) and is
> >>>>>>> still in incubator state with Milestone 7 as the latest version
> while
> >>>>>>> OSGi Weaving Hook Service Specification (56) was added to the
> >>>>>>> specification starting with version 4.3 which was released about a
> >>>>>>> month ago.
> >>>>>>>
> >>>>>>> If the Equinox Aspects really is the implementation of this
> >>>>>>> specification then what is the current status of this project, what
> is
> >>>>>>> it's latest version and is it stable?
> >>>>>>>
> >>>>>>> If the Equinox Aspects is NOT the implementation of the
> specification
> >>>>>>> mentioned then what are the differences between the two and what
> can
> >>>>>>> help me in choosing between them.
> >>>>>>>
> >>>>>>> Thanks in advance...
> >>>>>>> _______________________________________________
> >>>>>>> equinox-dev mailing list
> >>>>>>> [email protected]
> >>>>>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> equinox-dev mailing list
> >>>>>> [email protected]
> >>>>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>>>>>
> >>>>> _______________________________________________
> >>>>> equinox-dev mailing list
> >>>>> [email protected]
> >>>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>>>
> >>>> _______________________________________________
> >>>> equinox-dev mailing list
> >>>> [email protected]
> >>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>>>
> >>> _______________________________________________
> >>> equinox-dev mailing list
> >>> [email protected]
> >>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>
> >> _______________________________________________
> >> equinox-dev mailing list
> >> [email protected]
> >> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >>
> > _______________________________________________
> > equinox-dev mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
> _______________________________________________
> equinox-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
>
> _______________________________________________
> equinox-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>

<<ecblank.gif>>

<<graycol.gif>>

_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to