Как автоматически запускать/запускать службы OSGi на платформе Eclipse

Я разрабатываю RCP-приложение Eclipse, в котором интенсивно используются пакеты OSGi, предоставляющие службы для последующего использования. Вариант использования требует, чтобы пакеты регистрировали свои службы (например, фильтры импорта) для последующего использования в различных ситуациях. Пакеты OSGi собираются с помощью maven-bundle-plugin.

Как указать Equinox автоматически запускать пакеты OSGi? Обычный подход через Активатор не работает. Работает только ленивый режим, но я не могу трогать классы внутри неизвестных связок. Я прочитал спецификацию OSGi, и противоположность ленивой загрузке, нетерпеливой загрузке, не предусмотрена. Есть еще шанс пометить бандл на автозагрузку?

В Eclipse у меня есть возможность установить для Auto-Start значение true, но что мне делать в дистрибутиве, созданном Maven и Tycho?

Декларативные службы не работают из-за проблемы с незагруженным org.eclipse.equinox.ds. Можно ли его как-то запустить вместо Активатора? Это тоже было бы решением, но я не знаю, как собрать дистрибутив или что указать в качестве конфигурации.

Каковы здесь лучшие практики? Есть ли другие возможности? Документация по пакетам OSGi на платформе Eclipse немного скудна.

9
задан Rick-Rainer Ludwig 12 March 2012 в 21:48
поделиться