Мы используем Karaf для ряда наших приложений.Мы уже использовали Camel (JMS и Esper) для интеграции между несколькими различными платформами (экземпляром JBoss 4.2, Tomcat и несколькими экземплярами Felix), и, поскольку это работало хорошо, было также мало оснований для переноса этого (что могло привести крассмотрим ServiceMix).
Единственная причина, по которой у нас есть некоторые узлы Felix, заключается в том, что они ограничены в использовании (на клиентских компьютерах), редко нуждаются в обновлении / обновлении, и я хотел иметь наименьшую площадь для этих узлов.Для чего-либо OSGi на стороне сервера мы используем Karaf.
Karaf предоставляет все функции, которые вы ожидаете и нуждаетесь в производственной среде (см. Информацию тега apache-karaf ).Мы проводим нашу разработку и тестирование на стандартном минимальном фреймворке (используя pax-exam), но развертываем в Karaf.
Если вам не нужны ESB, JCA, BPEL и т. Д., Но вам нужен надежный, настраиваемый контейнер OSGi,тогда Караф сам по себе более чем адекватен.(И если вам нужно ограниченное подмножество функциональных возможностей ServiceMix, вы всегда можете установить их в экземпляре Karaf.)
Вы также можете настроить дистрибутив Karaf как часть сборки maven -лично мне нравится иметь контейнер как часть сборки приложения, так как я могу проверить, собрать и запустить всю настройку из командной строки за минимальное время.
Недавно появился подпроект кластеризации Karaf под названием Cellar с использованием HazelCast, я не уверен, относится ли это и к ServiceMix.