2016-04-12 5 views
0

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

+0

И что тогда, если Blueprint не установлен? –

+0

Или ищите активатора или сдадитесь? :) –

+2

Итак, если вы заинтересованы в установке еще одного пакета (SCR), тогда просто напишите 'BundleActivator'. Но это странная проблема. –

ответ

3

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

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

+0

Итак, в моем случае, когда я не могу просто установить этот дополнительный пакет, мне нужно будет найти самый низкий общий знаменатель ? Хорошо, вот что я буду делать. Благодаря:) –

1

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