I first encountered OSGi in 2006.  The place I worked at that time had
(prior to my hiring) selected OSGi as the platform for server side
components.

The team I worked on extended this into the GUI space by creating an
eclipse GEF-based IDE for data flows in the server system, where we
integrated the server components into the eclipse instance for
debugging.

At that time it was a very promising technology, it was defined in a
standard document that was actually readable, and it had (at that time,
if memory serves me right) one complete free software implementation
(eclipse equinox), two commercial implementations, and one free
implementation (apache felix) just getting started.

For my own part I was attracted to the lego building block possibilities
of OSGi, and the fact that we were able to get the server components
running inside eclipse and talking to eclipse GUI components by
using OSGi services (even though what the server side components and
eclipse used on top of OSGi services was very different).

But... the problem with OSGi both then, and when I started looking at it
back in 2013, was the practicalities in getting all bundle dependencies
satisfied, and finding, and working around bundle version issues.

In contrast to this, karaf has just worked for me (I took the plunge
into learning karaf in the autumn of 2016).

Or let me qualify that a little: since I started creating features for
my own bundles, as a part of the maven build, karaf has just worked for
me.

So what I'm wondering, is: why is karaf so easy when everything before
has been so hard?

Is it because there is something magical in the feature resolution,
compared to other way of starting OSGi runtimes?

Or is it just that karaf comes prepackaged with features for the pax
stuff (web, jdbc)? And that it is these prepackaged features that just
works?

Just some idle curiosity on a Sunday morning...:-)


- Steinar

Reply via email to