The Eclipse Orbit project provides a repository of bundled versions of third party libraries that are approved for use in one or more Eclipse projects. The repository maintains current and old versions of such libraries to facilitate current builds as well as the rebuilding of historical output. The contents of Orbit are available in several different forms (e.g., Update Site, download archives, ...). As the Eclipse tooling evolves, developers will be able to easily obtain and add supplied bundles to their workspace or target platform.
One of the key issues with bundling third-party libraries is the inconsistency in naming, versioning and form of the resultant bundles. Orbit eliminates duplicated work and bundle naming, structuring and versioning variations but focusing the bundling effort in one project.
Crucially, no development is carried out in this project. Teams proposing the use of a third party library for the first time are able to work with the community developed here and other potential users of the library to derive an appropriate selection and packaging of the function they need. For example, a team may start out with "a need for Jetty". As we have seen, systems like Jetty often include several JARs and a wide variety of infrastructure pieces (e.g., Apache Commons Logging). In some cases this additional function is not needed for the project's use, is already approved and available or has special packaging needs. Through this project the teams needing function arrive at a mutually agreeable form of the required function.
It is important to note that committers on Orbit are not responsible for doing the packaging work. That responsibility remains with the teams seeking to use the requested library. In short, don't open a bug report requesting that "someone bundle Jetty version X". Open one offering to bundle Jetty version X. Orbit acts as a hub or focal point for people with needs related to third party libraries and those with related technical expertise.
The bundled libraries are retained and made available within the project in various ways (e.g., download zip, update site, ...) for use in the projects that have received the appropriate approvals. Note teams seeking to use a library must still follow the IP process. For example, the current process calls or all third party code use to be cleared by the Foundation. So even if a library is approved by the Foundation for use by all projects, project teams must still fill out a Contribution Questionnaire (CQ) and notify the Foundation of their intentions to use a library. (There is a "reuse from Orbit" option, that makes the submission simpler than starting from scratch). This allows the library use to be tracked and facilitates version synchronization (e.g., stepping up to new releases) as well as notification of issues found with approved and previously distributed libraries.