osgiequinoxapache-felixknopflerfish

Knopflerfish packaging


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:

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 http://img6.imageshack.us/img6/5853/screenshot20100403at212.png

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?


Solution

  • 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.