Funkcje Karaf i OBR to różne sposoby rozwiązania (rodzaju) tego samego problemu. Oba umożliwiają instalację pakietów OSGi w strukturze OSGi, ale w jaki sposób decydują, które pakiety do zainstalowania są inne.
Dzięki funkcji Karaf udostępniasz plik (feature.xml, say), który jawnie wyświetla adresy URL wszystkich pakietów dla tej funkcji. Mogą żyć w systemie plików lub w repozytorium maven lub gdziekolwiek indziej, które można opisać za pomocą adresu URL.
OBR, z drugiej strony, opracowuje pakiety do opracowania na podstawie wymagań i możliwości. Wypracuje przejściowe zależności od tego, co instalujesz, jako punkt wyjściowy i upewni się, że wszystkie zostaną zainstalowane. Zwykle należy skonfigurować jeden lub więcej zewnętrznych repozytoriów obsługujących format OBR, a następnie resolver OBR w środowisku wykonawczym dostarczać pakiety z tych repozytoriów. Możesz więc powiedzieć "Potrzebuję pakietu org.foo" lub "Potrzebuję usługi OSGi, która implementuje org.bar", a dostawca zdecyduje, które pakiety najlepiej odpowiadają Twoim wymaganiom. OBR jest bardziej elastyczny i ogólny niż funkcje Karafa, ale może to być przesada, jeśli dopiero instalujesz dobrze zdefiniowany zestaw pakietów w ramach, która jest już przygotowana do potrzebnej infrastruktury. Nie pomaga także, jeśli pakiety, które składają się na twoją aplikację, nie mają zależności od siebie - musisz je wszystkie uwzględnić w swoim "zestawie startowym".
Rozróżnienie zostaje nieco zamazane, ponieważ funkcje Karaf pozwalają na określenie zakresów wersji w adresach URL, więc nawet z funkcją można być nieco elastycznym w tym, co zostanie udostępnione. Funkcje Karaf mają również współdziałanie z OBR, dzięki czemu możesz napisać plik definicji cech pod względem wymagań OBR.
Wierzę, że Jaskinia Karaf to implementacja OBR z kilkoma funkcjami. Więc jest to serwer, a nie nowa "technologia", jak funkcje lub dostarczanie OBR.
- Enterprise OSGi w działaniu: http://www.manning.com/cummins
self-reklamuje właściwą drogę;) dobra odpowiedź, dzięki! – Kjellski
"ale może to być przesada, jeśli dopiero instalujesz dobrze zdefiniowany zestaw pakietów do frameworka, który jest już gotowy do korzystania z potrzebnej infrastruktury" i przejechałem go do tego artykułu ... może pewnego dnia , ale jeszcze nie teraz :) – sloven