Equinox / p2 improvements, Top Eclipse Indigo Feature #9
When most people think about Eclipse they think of a kick-ass IDE. While this is true, Eclipse is so much more. Did you know that Eclipse hosts a top-notch webserver (Jetty), a framework for building Rich Internet Applications (RAP), a Java persistence solution (EclipseLink) and a foundation for building multi-tier enterprise client / server applications (Riena). In fact, there is an entire top level Eclipse project dedicated to Eclipse RunTime technologies.
The common tread that runs through almost all Eclipse projects is the highly modular component model and the OSGi runtime that enables it. In addition to the OSGi runtime (Equinox), Eclipse also provides a powerful provisioning platform (p2) optimized for OSGi . Number 9 on my Top 10 Indigo Feature list is the improvements to p2 and Equinox.
p2 has come a long way since it’s humble beginnings. While p2 certainly had its share of growing pains, most people don’t realize that the entire Eclipse release process (and release train) would not be possible without p2. The popular MarketPlace Client would have never functioned with the old Update Manager technology. p2 has now matured to a stage where it just stays out of your way.
There are a few notable improvements to p2 this year including the ability to save your current Eclipse configuration:
and tag configuration states. This should make it easier to try out new functionality and return to working state with ease.
Kudos for the import / export work goes out to Meng Xin Zhu. Dean Roberts gets the shout-out for the tagging feature. Special thanks goes out to DJ Houghton, Matt Piggott and Pascal Rapicault for improving the stability of the p2 platform and keeping our builds green.
The Equinox project also received some love this year. Tom Watson and John Ross continued to improve the framework and compendium service. In particular, Equinox was updated to support the OSGi 4.3 specification. This includes a number of enhancements including new framework hooks, weaving hooks and generic capabilities.