Maintaining an OSGi composition unit

Whenever an enterprise bundle archive (EBA) asset is updated, you can (optionally) update the associated composition unit. You might also update a composition unit to add or remove a composite bundle extension. If any updates need configuration changes, you can also modify the configuration information for the composition unit.

About this task

An OSGi composition unit consists of an EBA asset, (optionally) one or more composite bundle extensions, and configuration information for running the asset and composite bundle extensions in a business-level application. If a new OSGi application deployment is available, you can update the OSGi composition unit so that the business-level application uses the newer configuration.

If any updates need configuration changes, you can also modify the configuration information for the composition unit. The configuration information can include HTTP session management, context roots, virtual hosts, security roles, run-as roles, JNDI mappings for Session enterprise beans, JNDI mappings for EJB references, and web application or Blueprint resource reference bindings for your OSGi application.

Procedure

Results

When you save the changes to the composition unit, the associated business-level application is updated to use the new configuration. If the business-level application is running, the bundle and configuration updates are applied immediately.

If possible (that is, depending on the nature of the updates) the system applies the updates without restarting the application. If you update a bundle that provides only OSGi services to the rest of the application, then only that bundle is restarted. If you update a bundle that provides one or more packages to other bundles, then those bundles and any bundles to which they provide packages are restarted. If, however, a new package or service dependency is added, or an existing package or service dependency is removed, then the application is restarted; a newly added package and service can come from a newly-provisioned bundle, or from a bundle that has already been provisioned.