Wednesday, June 13, 2012

Core Release 5 and Enterprise Release 5 specifications

The OSGi Alliance has just published the recently approved Core Release 5 and Enterprise Release 5 specifications and made them available for download.

Some highlights from the new specifications include:

OSGi Core Release 5

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.
The specification PDFs, companion code jars and javadoc are now all available for download from the OSGi website.


  1. One doubt, why asynchronous calls wasn't considered in the new Remote Service spec ?

  2. Hi Christiano,
    Simply because nobody was actively driving this. Hopefully someone will pick this topic up in the near future.

  3. When are reference implementations going to be released?

    1. The framework RI for Core R5 is Equinox 3.8 which will shortly be final. The RI's for the various specs in Enterprise R5 are a mix of some OSGi internal implementations and some external open source projects. The OSGi internal implementations are only available to OSGi members and, of course, the open source projects are available to everyone. OSGi only makes that aggregated RIs available to OSGi members.