Search code examples
eclipseosgiapache-felixbndtoolssubsystem

Can OSGi subsystems replace Eclipse features?


OSGi R5 Enterprise release contains the Subsystem specification.

  • Does OSGi subsystems contain all capabilities of Eclipse feature?
  • Does tooling exist for it?

Purpose of this mapping would be a re-use of existing eclipse features in e.g. felix or bnd/bndtools based infrastructures.


Solution

  • Yes... kind of. A subsystem is powerful but also more complex than an Eclipse Feature.

    A feature is just a set of bundles. You can install multiple features into a single OSGi Framework, and the bundles from each feature can interact with each other, e.g. by importing packages or binding services. This makes them hard to test and to reason about, because a feature that works on its own might not work when installed alongside some other feature.

    A subsystem is also a set of bundles, but it additionally includes a degree of isolation. You can control whether the packages, services and other capabilities from one subsystem are visible to the members of any other subsystem. Thus they are more predictable.

    Unfortunately constructing a subsystem is a much more complex task, and there is no specific tooling for this that I know of. We haven't done anything in bnd/Bndtools to help with this. But hey it's open source... contributions welcome ;-)