Keep in mind this is a discussion for Luna, not Kepler.  I have been
spending some time lately around the new framework implementation based on
the OSGi R5 generic capability/requirement model.

I was looking at porting the Equinox weaving hooks
(org.eclipse.equinox.weaving.hook) over to a new Equinox framework
implementation that is based internally on the generic
capability/requirement model of the OSGi R5 specification.  This framework
implementation no longer is based on the old Equinox resolver API
(org.eclipse.osgi.service.resolver).  As such the weaving hook
implementation no longer has access to BundleDescription objects or a State
object at runtime.  Instead it would have access to
org.osgi.framework.wiring.BundleRevsion/BundleWiring objects.

How disruptive would it be to make a breaking API change to
org.eclipse.equinox.service.weaving.IWeavingServiceFactory to take a
org.osgi.framework.wiring.BundleRevsion instead of the old
org.eclipse.osgi.service.resolver.BundleDescription and no longer take a
org.eclipse.osgi.service.resolver.State?

I noticed the bundle org.eclipse.equinox.weaving.hook exports the package
org.eclipse.equinox.service.weaving with no version (defaulting to 0.0.0).
For the next release I suggest we bump this version to 1.0.0 and indicate a
breaking change for implementors of
org.eclipse.equinox.service.weaving.IWeavingServiceFactory.  I'm not sure
how many others outside of the org.eclipse.equinox.weaving.aspectj bundle
implement this interface.  But without this type of change I see no way to
support Equinox Weaving on the new framework.  Beyond this I still want
someone to investigate moving as much of the Equiniox weaving hooks onto
the standard OSGi WeavingHook services [1].

If you want to see the work I have done so far then load up the
twatson/container branches from both the rt.equinox.framework [2] and
rt.equinox.bundles [3] git repositories.  You should be able to self-host
Eclipse if you load up the framework project (org.eclipse.osg) and the
compatibility state project (org.eclipse.osgi.compatibility.state) which
provides an implementation of the old equinox PlatformAdmin/State mainly to
support PDE.  I have not done any testing of the weaving hook changes.  I
only spent the morning getting rid of compile errors which pointed me to
this API issue with BundleDescription in the Equinox Weaving API.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=377422
[2]
http://git.eclipse.org/c/equinox/rt.equinox.framework.git/log/?h=twatson/container
[3]
http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/log/?h=twatson/container


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

Reply via email to