OSGi: Каковы различия между Apache Felix и Apache Karaf? - PullRequest
122 голосов
/ 23 октября 2009

Apache Karaf - это подпроект Apache Felix . Он определяется как «облегченный контейнер OSGi».

Я не понимаю, когда мне следует использовать тяжелый вес, а когда - легкий. Их сайт не слишком это объясняет.

Ответы [ 3 ]

203 голосов
/ 23 октября 2009

Ярлык «легкий контейнер OSGi» контрастирует Караф с более многофункциональными контейнерами OSGi, не с Феликс .

Цитирую Гийома Ноде (автора Карафа) * ​​1009 * отсюда :

Феликс - это просто время выполнения ядра OSGi. Karaf обеспечивает «распространение» на основе Felix, добавляя другие функции, такие как консоль, механизм удаленного взаимодействия SSH, средство развертывания файлов и многое другое.

На этой диаграмме архитектуры Karaf Felix (или другая реализация OSGi - в настоящее время поддерживается также Equinox ) - это блок OSGi, остальные блоки - это функции, добавленные Karaf:

Karaf Architecture Поэтому, если у вас нет особых потребностей, которые не удовлетворяются Karaf (требующих доступа к базовой реализации), обычно имеет смысл использовать это, поскольку это обеспечивает больше «из коробки».

5 голосов
/ 03 марта 2016

@ Marcel Караф не монолитен и не огромен, как сервер Java EE. Это очень тонкая и минималистичная реализация. Это основной продукт, не имеющий большой функциональности, кроме базовой консоли, загрузки файлов, так что вы можете читать файлы конфигурации и т. Д. Последний zip-файл - 19,1 МБ. Да уж. Маленький. Он может легко работать на небольших устройствах и работать во встроенных.

Возможно, вы думаете о чем-то вроде ServiceMix, который использует Karaf в качестве ядра / ядра. Но он включает в себя CXF, ActiveMQ, Camel и другие библиотеки в полной конфигурации. Даже тогда они имеют минимальные, средние и полные размеры.

Действительно, для 99% проектов не имеет смысла начинать напрямую с Феликса и не использовать Караф вместо этого.

0 голосов
/ 04 ноября 2016

В настоящее время существует три популярных контейнера OSGi с открытым исходным кодом:

  - Equinox. It is the modular Java runtime at the heart of the Eclipse IDE,
  - Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications. 
  - Apache Felix. Is the open source OSGi container from the Apache Software Foundation.

http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

В проекте Apache поддерживается контейнер OSGi общего назначения под названием Felix. Здесь используется как ServiceMix и

Основное различие между ServiceMix и Karaf заключается в том, что ServiceMix объединяет множество других компонентов интеграции - ActiveMQ брокер сообщений, механизм маршрутизации Camel и некоторые другие вещи

Согласно: http://kevinboone.net/osgitest.html

...