Equinox: Improving and Evolving the Core Framework
The Equinox OSGi Framework implementation has provided the core modularity runtime used by Eclipse for 9 releases and the reference implementation of the OSGi Framework for the past 5 OSGi specification releases. Needless to say the evolution of the code has not always gone as planned. Many times the OSGi expert groups would go down one design path while we prototyped the idea in Equinox and then the OSGi expert groups would change the design later, sometimes in drastic ways. This would force us to re-implement the design on short notice, often late in the release cycle. This has left the code base in an awkward and hard to maintain state.
This session will discuss the motivations for improving and in some cases redesigning the core Equinox OSGi Framework implementation and why you should care as a consumer of the Framework. This includes the following:
- Simplify the overall design, remove unnecessary layers and make the code base easier to maintain and contribute to.
- Implement a core container from the ground up which provides concurrent and thread safe access.
- Collaborating with the Apache Felix project on a common OSGi Resolver implementation and rebasing dependencies on a generic capability and requirements model.
- Improving support for embedding the framework. This includes removing some of the static configuration of the framework as well as shrinking the overall size of the framework.
- Remove compatibility with old Eclipse 2.x platform and other compatibility options. Get rid of eclipse-isms where possible.
- Enable experiments with Java Modularity inter-op.
This session will also discuss the impacts a new framework implementation will have on other components in Eclipse. For example, Equinox Adaptor hook implementations will likely need to be migrated to work in the new framework. PDE also uses the Equinox resolver which will be replaced with the Resolver service defined by the OSGi R5 specification.