OSGi активация метода отступления

Мне было интересно, можно ли как-нибудь создать запасной вариант от одного метода активации к другому? Допустим, у меня есть пакет, который активируется через декларативные службы, но SCR не установлен на рассматриваемом сервере приложений. Можно ли иметь пакет с активаторами декларативных служб и Blueprint и определять порядок загрузки? Например: Могу ли я сделать пакет и указать, что он должен быть загружен с помощью SCR, если он доступен, и Blueprints, если SCR не установлен?

2 ответа

Решение

Если вы хотите использовать функцию SCR, а ваш пакет установлен на сервере приложений, на котором нет SCR, то самый простой ответ - установить SCR. Это один небольшой пакет, и он зависит от вашего пакета так же, как от пакетов и т. Д., От которых вы зависите.

Если вы действительно не можете установить SCR или полагаться на то, что SCR уже доступен, то вам нужно написать BundleActivator, Обычно это необходимо только для очень низкоуровневых комплектов типа "сантехника" или при работе на устройствах с чрезвычайно ограниченными ресурсами.

Это невозможно. Я думаю, что лучшая практика - выбрать одно из двух. Если вас интересуют дополнительные зависимости, которые вы вводите, тогда DS - лучший выбор, поскольку для работы ему нужен только один пакет.

Другие вопросы по тегам