Мне было интересно, возможно ли создать резервную копию от одного метода активации другому? Предположим, у меня есть пакет, который активируется с помощью Declarative Services, но SCR не установлен на сервере приложений. Возможно ли иметь пакет с активаторами Declarative Services и Blueprint и определить порядок загрузки? Например: Могу ли я сделать пакет и указать, что он должен быть загружен с помощью SCR, если он доступен, и Blueprints, если SCR не установлен?Метод активации OSGi
ответ
Если вы хотите использовать функции SCR, и ваш пакет установлен на сервере приложений, который не имеет SCR, самым простым ответом является установка SCR. Это единый маленький пакет, и это зависит от вашего пакета, а также от пакетов и т. Д., От которых вы зависите.
Если вы действительно не можете установить SCR или полагаться на SCR, который уже доступен, вам необходимо написать BundleActivator
. Обычно это необходимо только для очень низкоуровневых пакетов «сантехники» или при работе на устройствах с ограниченными ресурсами.
Итак, в моем случае, когда я не могу просто установить этот дополнительный пакет, мне нужно будет найти самый низкий общий знаменатель ? Хорошо, вот что я буду делать. Благодаря:) –
Это невозможно. Я считаю, что наилучшей практикой является выбор для одного из двух. Если вы беспокоитесь о дополнительных зависимостях, которые вы вводите, то DS - лучший выбор, поскольку для работы требуется только один комплект.
И что тогда, если Blueprint не установлен? –
Или ищите активатора или сдадитесь? :) –
Итак, если вы заинтересованы в установке еще одного пакета (SCR), тогда просто напишите 'BundleActivator'. Но это странная проблема. –