I think it is a mixture of both. Since the start of karaf its biggest advantage was that it has predefined features for popular building blocks of applications. You are completely right that the packaging of bundles to form a consistent deployment was always the biggest hurdle in using OSGi.
At the start these features simply defined a list of bundles to install. Since then the feature resolver has become a lot more sophisticated (largely thanks to Guillaume). It now uses the felix resolver with a few extensions to build the optimal set of bundles for any combination of features you install. Besides this karaf also comes with definitions of system packages and other little tweaks that make it easier to use the built in spec impls the jdk contains. There are also other environments like bndtools that provide a very good resolution of bundles but only karaf has the prepackaged features that make it so easy to start. Christian 2017-04-09 8:37 GMT+02:00 Steinar Bang <s...@dod.no>: > 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 > > -- -- Christian Schneider http://www.liquid-reality.de <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de> Open Source Architect http://www.talend.com <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>