http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html
Wonderful tutorial about OSGi. Solves a few mysteries (to me) about Eclipse plug-ins.
In summary,
- OSGi is a Java-based architecture for developing/deploying modular components. Such components should be able to be deployed without restarting the container.
- These components are known as “bundles”.
- Eclipse plug-ins are based on OSGi bundles, so every plug-in is a bundle. Eclipse uses Equinox, which is the reference implementation of the OSGi Service Platform version 4.
- A bundle needs to have an “Activator”, which implements start/stop methods to handle the bundle life cycle. A bundle also needs to have a manifest, which describes the bundle and points to the Activator.
- OSGi also helps to manage dependencies through package visibility. Bundles specify which packages to export, so implementation packages can be hidden from bundle clients.