Подтвердить что ты не робот

OSGi: заменяет ли Blueprint декларативные услуги?

В новой спецификации R4.2 для OSGi описывается служба Blueprint, для впрыска зависимостей и проводки обслуживания.

Использует ли Blueprint Declarative Services (который все еще входит в спецификацию), или они предназначены для совместной работы?

Является ли Blueprint уже доступным для популярных реализаций (Felix и Equinox)?

4b9b3361

Ответ 1

Я задал себе тот же вопрос, и, обсуждая это с другими участниками этой темы, тенор заключался в том, что, хотя оба они частично перекрываются, прецедент, когда использовать, что очень отличается. DS - это легкое решение, позволяющее декларативно исключать активаторы и моделировать сервисные зависимости. BP в основном представляет собой контейнер DI, предназначенный для развертывания предприятий. Это также более распространено для "обычных" разработчиков Java, не знакомых с динамической природой OSGi (скрывающей много за прокси).

Реализация мудрая, над ней работают два проекта (все они являются агностиками, а не официально выпущены). Spring DM 2.0 будет обеспечивать реализацию (2.0.0.M1 уже содержит рабочую реализацию), а также Apache как часть его проект geronimo (слайд-шоу).

Ответ 2

Для моего опыта в среде на основе Felix DS является единственным инжектором зависимостей, который является зрелым enougth и обеспечивает согласованность с другими частями спецификаций OSGi Compendium, таких как ConfigAdmin.

Концепция кажется мне политическим включением Spring DM в спецификации OSGi.

iPojo - альтернатива на основе аннотаций Java вместо дескрипторов XML, которая скрывает часть основы OSGi.

Ответ 3

Если вы раньше использовали Spring, лучше использовать службы Blueprint. Декларативные услуги не столь мощны, но широко применяются в контейнерах OSGi.

Ответ 4

Другая проблема заключается в том, что сервисные службы, насколько я знаю, все присутствуют в одном контейнере, контейнере чертежа, тогда как декларативные услуги доступны в пакетах, которые ссылаются на них. Особенно с Equinox это приводит к поведению. DS следует использовать над планом, если вы хотите придерживаться строгого подхода к загрузке классов, который защищает равноденствие.