Some highlights from the new specifications include:
OSGi Core Release 5
- New Resource API for modeling generic capabilities and requirements.
- New Version Range class.
OSGi Enterprise Release 5
- New Repository Service Specification provides declarative access to artifact repositories based on the generic capabilities and requirements model. Where traditional repositories have typically provided artifacts based on their name, version and group, the OSGi Repository can provide artifacts based on capabilities, such as packages exported, services provided, extender functionality provided or custom-defined capabilities.
- New Resolver Service Specification. Based on the generic capabilities and requirements model, a management agent can use the Resolver service to compute the set of necessary resources needed to satisfy the given set of requirements. The Resolver is designed to work with the Repository Service, if available.
- New Subsystems Service Specification provides the ability to group multiple bundles into a single manageable entity, allows for complete isolation as well as various sharing models of code, services, and resources through a management agent. The Subsystem Service Specification defines an archive format to package multiple bundles, the Enterprise Subsystem Archive (.esa).
- New Service Loader Mediator Specification addresses common problems of bundles that rely on the java.util.ServiceLoader API to load custom Service Provider Implementations. It describes how to use the service registry for lookup of Service Providers as well as a solution for existing code to continue functioning using Service Loader API in a OSGi environment.
- New Common Namespaces Specification for use with the generic OSGi capabilities and requirements model.
- The Extender Namespace allows a bundle that requires an extender, such as Declarative Services or Blueprint, to express this dependency.
- The Contract Namespace provides a shorthand for many Import-‐Package statements for technologies which span multiple packages.
- The Service Namespace allows a bundle to express that it provides or consumes a certain service.
- Updated JMX Management Model Specification.
- Object names now contain framework name and UUID, which allow multiple frameworks to be represented side-by-side.
- Updated the JMX API to reflect the latest Core API, specifically the bundle wiring API.
- Many improvements as requested by users, often focused on limiting the amount of data communicated via JMX APIs.
- Updated Configuration Admin Specification.
- Added targeted PIDs, which can be useful when configuring multiple versions of the same bundle through Configuration Admin.
- Added persistent change count to make it easier to detect changes.
- Added Synchronous Configuration Listener.