views:

176

answers:

1

Hello,

I am at the moment creating a matrix which is showing how far Knopflerfish, Equinox and Felix are OSGi 4.2 compliant.

So far I looked at the Knopflerfish documentation (Link 1, Link 2) to get an idea of how much of the Core and Compendium specs are actually implemented.

The core specification seems to be fully implemented, although there are some inconsistent statements about the Security Layer and the Declarative Services.

What makes me wonder is how much of all the Compendium specs are implemented:

  • Remote Services
  • Log Service
  • Http Service
  • Device Access
  • Configuration Admin Service
  • Metatype Service
  • Preferences Service
  • User Admin Service
  • Wire Admin Service
  • IO Connector Service
  • Initial Provisioning
  • UPnP Device Service
  • Declarative Services
  • Event Admin Service
  • Deployment Admin
  • Auto Configuration
  • Application Admin
  • DMT Admin Service
  • Monitor Admin Service
  • Foreign Application Access
  • Blueprint Container
  • Tracker
  • XML Parser Service
  • Position
  • Measurement and State
  • Execution Environment

To find out more I downloaded (Download page) the source code of Knopflerfish and had a look at it. It looks like some parts of the spec are implemented through the "original" framework provided by the OSGi Alliance (org.osgi.*).

One example is the UPnP package:

alt text

Does this mean that missing parts which are not directly implemented by Knopflerfish are added through the "original" OSGi framework?

And does this also apply to other frameworks like Felix or Equinox?

+1  A: 

Most of the OSGi specifications define interface classes for services. You can download these classes together with the specification directly from the OSGi Alliance's website.

Implementations such as Knopflerfish must provide the underlying functionalities, e.g. the actual implementation for the UPnP Service Admin you mentioned in your example. Some of the interface classes also provide interfaces that must be implemented by the developer of a user service, e.g. a BundleActivator.

All frameworks that claim to be OSGi compliant must provide implementations for these interfaces. There is no "original" OSGi framework (well, beside of the reference implementation, of course). The interfaces do not provide implementations.

akr