wake-up-neo.com

OSGi: Was sind die Unterschiede zwischen Apache Felix und Apache Karaf?

Apache Karaf ist ein Unterprojekt von Apache Felix . Es wird als "leichter OSGi-Container" definiert.

Ich verstehe nicht, wann ich das Schwergewicht verwenden soll und wann ich das Leichtgewicht verwenden soll. Ihre Website erklärt dies nicht zu viel.

122
GabiMe

Das Label 'Lightweight OSGi Container' steht im Gegensatz zu Karaf mit mehr funktionsreichen OSGi Containern, nicht mit Felix .

Um Guillaume Nodet (Karafs Autor) zu zitieren von hier :

Felix ist nur die OSGi-Kernlaufzeit. Karaf bietet eine auf Felix basierende "Distribution", indem andere Funktionen wie eine Konsole, ein SSH-Remoting-Mechanismus, ein File-Deployer und vieles mehr hinzugefügt werden.

In diesem Diagramm der Karaf-Architektur ist Felix (oder eine andere OSGi-Implementierung - derzeit wird Equinox ebenfalls unterstützt) die OSGi-Box, die anderen Boxen sind die von Karaf hinzugefügten Funktionen:

Karaf Architecture Sofern Sie keine spezifischen Anforderungen haben, die von Karaf nicht erfüllt werden (Zugriff auf die zugrunde liegende Implementierung erforderlich), ist es daher in der Regel sinnvoll, diese zu verwenden, da sie mehr "out of the box" bietet.

204
Matthew Murdoch

@Marcel Karaf ist nicht monolithisch oder riesig wie ein Java EE-Server. Es ist eine sehr schlanke und minimalistische Implementierung. Es ist ein Kernprodukt ohne viel Funktionalität, abgesehen von einer einfachen Konsole, die Dateien lädt Damit können Sie tatsächlich Konfigurationsdateien usw. lesen. Die neueste Zip-Datei hat eine Größe von 19,1 MB.

Was Sie vielleicht denken, ist eher ein ServiceMix, der Karaf als Kern/Kernel verwendet. Es enthält jedoch CXF, ActiveMQ, Camel und andere Bibliotheken in seiner vollständigen Konfiguration. Selbst dann haben sie minimale, mittlere und volle Größen.

Wirklich, für 99% der Projekte da draußen wäre es nicht sinnvoll, direkt mit Felix zu beginnen und stattdessen nicht Karaf zu verwenden.

5
Ranx0r0x