OSGi активация метода отступления
Мне было интересно, можно ли как-нибудь создать запасной вариант от одного метода активации к другому? Допустим, у меня есть пакет, который активируется через декларативные службы, но SCR не установлен на рассматриваемом сервере приложений. Можно ли иметь пакет с активаторами декларативных служб и Blueprint и определять порядок загрузки? Например: Могу ли я сделать пакет и указать, что он должен быть загружен с помощью SCR, если он доступен, и Blueprints, если SCR не установлен?
2 ответа
Если вы хотите использовать функцию SCR, а ваш пакет установлен на сервере приложений, на котором нет SCR, то самый простой ответ - установить SCR. Это один небольшой пакет, и он зависит от вашего пакета так же, как от пакетов и т. Д., От которых вы зависите.
Если вы действительно не можете установить SCR или полагаться на то, что SCR уже доступен, то вам нужно написать BundleActivator
, Обычно это необходимо только для очень низкоуровневых комплектов типа "сантехника" или при работе на устройствах с чрезвычайно ограниченными ресурсами.
Это невозможно. Я думаю, что лучшая практика - выбрать одно из двух. Если вас интересуют дополнительные зависимости, которые вы вводите, тогда DS - лучший выбор, поскольку для работы ему нужен только один пакет.