В чем разница между функциями в Karaf и OBR - PullRequest
15 голосов
/ 23 января 2012

Я ищу способы развертывания и обновления приложения OSGI (в частности, Karaf).Кажется, есть несколько вариантов.Одним из них является использование OSGi Bundle Repository (OBR), другим - использование функций в Karaf, а третьим - использование Karaf Cave .

Я не совсем уверен, как эти опциидействительно разные.Кажется, они все делают одно и то же.Это просто разные реализации одного и того же функционала?Может кто-нибудь объяснить, пожалуйста, различия или дать некоторые рекомендации?

1 Ответ

39 голосов
/ 24 января 2012

Функции Karaf и OBR - это разные способы решения одной и той же проблемы.Оба позволяют устанавливать пакеты OSGi в среду OSGi, но то, как они решают, какие пакеты устанавливать, отличается.

С помощью функции Karaf вы предоставляете файл (скажем, feature.xml), в котором явно указываются URL-адреса для всех пакетов для этой функции.Они могут жить в файловой системе, в репозитории maven или в любом другом месте, которое можно описать с помощью URL.

OBR, с другой стороны, определяет, какие пакеты следует разработать, основываясь на требованиях и возможностях.Он определит транзитивные зависимости того, что вы устанавливаете в качестве отправной точки, и убедитесь, что все они установлены.Обычно вы конфигурируете один или несколько внешних репозиториев, которые поддерживают формат OBR, а затем преобразователь OBR в вашей среде выполнения будет предоставлять пакеты из этих репозиториев.Таким образом, вы можете сказать «Мне нужен пакет org.foo» или «Мне нужен сервис OSGi, который реализует org.bar», и поставщик решит, какие пакеты лучше всего соответствуют вашим требованиям.OBR является более гибким и универсальным, чем функции Karaf, но он может оказаться излишним, если вы просто устанавливаете четко определенный набор пакетов в платформу, которая уже заполнена необходимой инфраструктурой.Это также не поможет вам, если пакеты, составляющие ваше приложение, не имеют зависимостей друг от друга - вам все равно нужно будет включить их все в ваш «начальный набор».

Различие получаетнемного размыто, потому что функции Karaf позволяют вам указывать диапазоны версий в URL-адресах maven, поэтому даже с функцией вы можете быть немного гибкими в том, что предоставляется.Функции Karaf также имеют возможность взаимодействия с OBR, поэтому вы можете написать свой файл определения функций с точки зрения требований OBR.

Я считаю, что Karaf Cave - это реализация OBR с некоторыми функциями.Таким образом, это сервер, а не новая «технология», такая как функции или предоставление OBR.

- ОСГ предприятия в действии: http://www.manning.com/cummins

...