By Arnaud Cogoluegnes, Thierry Templier, and Andy Piper, authors of Spring Dynamic Modules in Action

OSGi – the dynamic modular platform for Java – uses a slightly different unit of deployment than the plain old JAR, the bundle. Bundles are standard JARs, but with additional metadata in the META-INF/MANIFEST.MF file. This metadata describes amongst others a bundle identity but also the Java packages it consumes or makes available to other bundles. This article covers some theory about this metadata and shows how to create an OSGi bundle from an existing library.

Demystifying OSGi bundles (PDF)