For an integration project I am working on, I started looking at java integration technologies/ESBs. Mule and ServiceMix seemed to fit my needs. I chose ServiceMix but found my self using Camel exclusively (inside ServiceMix). And then this question arose:
Is serviceMix an ESB (which I thought it was) or an Application server like Spring DM Server?
Or may be it is an Application Server fine tuned for Integration? Sorry if my question feels silly :/
Karaf is the OSGi container, Servicemix is built on top of Karaf and has out of the box support for ActiveMQ, Camel, CXF, Ode, etc (via pre-installed features, bundles and configuration).
Long story short, Camel provides the integration/EIP backbone, but OSGi (Karaf or Servicemix) is a container to deploy it in. Camel can also be deployed in other ways as well: in a webapp (Tomcat, etc), in ActiveMQ, standalone, with Spring, etc.
I asked a similar questions as to whether to use Karaf or Servicemix...