Blueprint bundles

A Blueprint bundle is a bundle that contains one or more Blueprint XML files. The Blueprint Container specification uses an extender pattern. An extender bundle monitors the state of bundles in the framework and acts on behalf of those bundles, based on the state of those bundles.

The Blueprint extender bundle waits for the bundles to be activated and checks whether each one is a Blueprint bundle. The Blueprint XML files are at a fixed location in the OSGI-INF/blueprint/ directory, or are specified explicitly in the Bundle-Blueprint manifest header. When a bundle is a Blueprint bundle, the extender bundle creates a Blueprint Container for that bundle.

The Blueprint Container parses the Blueprint XML files, instantiates the components, wires components together, and registers services. During initialization, the Blueprint Container ensures that mandatory service references are satisfied, registers all the services into the service registry, and creates initial component instances.

When a Blueprint bundle is stopped, the Blueprint extender bundle destroys the Blueprint Container for that bundle.