Bug 404982 - Reimplement QuasiFramework to support generic container based Equinox implementation
Summary: Reimplement QuasiFramework to support generic container based Equinox impleme...
Status: ASSIGNED
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: 3.6.1.RELEASE   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 3.8.0.M02   Edit
Assignee: daniel marthaler CLA
QA Contact:
URL: http://wiki.eclipse.org/Virgo/Concept...
Whiteboard:
Keywords:
Depends on: 404389
Blocks: 404390 516412
  Show dependency tree
 
Reported: 2013-04-05 06:45 EDT by Nobody - feel free to take it CLA
Modified: 2019-08-11 09:38 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nobody - feel free to take it CLA 2013-04-05 06:45:43 EDT
The QuasiFramework abstraction in the Virgo kernel partially insulates (see bug 404981) the rest of Virgo from the Equinox State API.

The following imports from StandardQuasiFramework show the nature of the dependency on the old Equinox API:

import org.eclipse.osgi.service.resolver.BundleDescription;
import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
import org.eclipse.osgi.service.resolver.PlatformAdmin;
import org.eclipse.osgi.service.resolver.ResolverError;
import org.eclipse.osgi.service.resolver.State;
import org.eclipse.osgi.service.resolver.StateObjectFactory;
import org.eclipse.osgi.service.resolver.VersionConstraint;
Comment 1 Nobody - feel free to take it CLA 2013-04-05 06:47:07 EDT
It may be possible to reimplement QF in terms of standard OSGi wire admin. It may even be possible to substantially replace the QF API by wire admin.
Comment 2 Nobody - feel free to take it CLA 2013-04-09 06:18:36 EDT
For an overview of the QF, see http://wiki.eclipse.org/Virgo/Concepts#Pipeline
Comment 3 Nobody - feel free to take it CLA 2013-04-09 07:21:49 EDT
(In reply to comment #1)
> It may be possible to reimplement QF in terms of standard OSGi wire admin.
> It may even be possible to substantially replace the QF API by wire admin.

While writing design doc for the QF, it became clear that the best approach is to reimplement QF rather than replace it. This is because it encapsulates some fairly messy management of coregions in addition to being a "pure" side state wiring construct.
Comment 4 Nobody - feel free to take it CLA 2013-04-10 09:25:37 EDT
The first implementation of this bug should probably utilise the compatibility fragment which Equinox will ship to provide the PlatformAdmin service and an implementation of State. The State instances created or accessed by the Platform Admin service behave identically to the State implementation from old Equinox.  The main difference is there will no longer be a State instance that is directly tied to the resolver state for the running framework.  This is acceptable because the State used by the quasi framework is never the "live" state - see the use cases in [1].  

(A more sophisticated implementation might be to use the org.eclipse.osgi.container package to model a ModuleContainer offline for the quasi framework, but this could be a rather large undertaking similar to migrating PDE off of the old Equinox State/Resolver.)

[1] http://wiki.eclipse.org/Virgo/Concepts/QuasiFramework
Comment 5 Florian Waibel CLA 2019-08-11 09:38:12 EDT
Moved to milestone 3.8.0.M02