Community
Participate
Working Groups
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;
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.
For an overview of the QF, see http://wiki.eclipse.org/Virgo/Concepts#Pipeline
(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.
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
Moved to milestone 3.8.0.M02