Eclipse/Equinox: запуск всех установленных плагинов?

У меня есть сборка продукта Eclipse с использованием функций. Все сервисы регистрируются через Declarative Services. Насколько я понимаю, пакет должен быть запущен, чтобы среда выполнения сервисного компонента могла подобрать, а затем зарегистрировать службы, представленные в каждом пакете.

Я хочу автоматически запускать каждый пакет, установленный в моей среде выполнения OSGi. Есть ли простой способ сделать это? Единственное, что я могу найти, это параметр «Продукт»> «Конфигурация»> «Уровни запуска»> «Автозапуск». Я не хочу делать это в каждой сборке продукта, которая у меня есть, так как я хотел перейти к функциям, чтобы сгруппировать и создать похожие пакеты вместе.

Есть ли простой/рекомендуемый способ сделать это?


person oconnor0    schedule 21.12.2011    source источник


Ответы (2)


Я думаю, что вопрос/ответ о переполнении стека [1], всесторонне обсудите ваше требование. или же, если вы используете продукт с поддержкой p2, вы можете установить для параметра start-by-default значение «true» в файле bundles.info. Но это хакерский способ.

[1] В Equinox Можно ли пометить пакет OSGi как начатый из файла p2.inf его содержащей функции?

person Pradeep Fernando    schedule 22.12.2011
comment
В итоге я создал META-INF/p2.inf с содержимым instructions.configure = markStarted(started: true) в каждом пакете. Я не хочу настраивать каждую функцию. Спасибо. - person oconnor0; 12.01.2012

Удалите Bundle-ActivationPolicy: lazy из MANIFEST.MF и убедитесь, что атрибут enabled="false" нет в определении вашего компонента!

person Tim    schedule 23.12.2011
comment
Это гарантирует только то, что после запуска содержащего плагина все службы будут активированы. Я хочу принудительно запускать все плагины при запуске Equinox. - person oconnor0; 27.12.2011