Equinox Framework: A Happier OSGi R6 Implementation
At EclipseCon last year  I gave a talk on the plans to do a major redesign of the Equinox core framework for the Luna release. Now that we are in the middle of the Luna development cycle I will give an update on the overall progress of this effort and some of the challenges faced while doing such a major change to a core piece of the Eclipse platform. A majority of the development effort for Luna is focused on refactoring and, in many cases, rewriting the core Equinox Framework implementation to be based on the OSGi generic dependency model.
For most consumers and developers this change should not be noticed, but there are four main areas of concern that the community should be aware of:
- The Framework no longer uses the old Equinox resolver API org.eclipse.osgi.service.resolver internally to resolve bundles.
- All Equinox Framework specific hook implementations are broken and will need to migrate.
- Removal of old style plug-in support. A compatibility fragment is available to add the support back.
- Removal of PlatformAdmin Service Implementation. A compatibility fragment is available to add support back.
The OSGi R6 Core specification will also become final during the Luna development cycle. I will discuss some of the new features coming to the core framework specification, including the following:
- Introduction of Service Scopes to the OSGi Service Registry (RFC 195)
- Improvements of Weaving Hooks (RFC 191)
- Clarification of hooks on the system bundle (RFC 198)
- Native environment namespace (RFC 188)
- Data Transfer Objects (RFC 185)
- Addition of FrameworkWiring.findProviders
- Extension Bundle Activators (RFC 204)