Вот есть, скажем, приложение.
И есть необходимость использовать OSGi-style сервисы в нем.
Один из вариантов - сделать свой бандл c приложением.
Другой вариант - встроить osgi-engine.
Вот насчет этого второго варианта и вопрос.
Скажем, запускаю я Equinox следующим образом:
BundleContext ctx = EclipseStarter.startup(args, null);
startup, как говорят в документации
Returns:
BundleContext the context of the system bundle
Вопрос: каким образом я могу указать эквиноксу что мне, в приложении, нужны такие-то и такие-то пекеджи и что я буду использовать такие-то и такие-то сервисы?
Например, есть бандл foo-api.jar, который экспортирует пекедж foo, в котором есть интерфейс IFoo.
И есть бандл foo-impl.jar, который регистрирует сервис FooImpl (с интерфейсом) IFoo
В приложении мне нужно сделать примерно следующее
IFoo foo = serviceTracker.getService();
При этом, насколько я понимаю, IFoo класслоадером приложения найден не будет.
Как разрешаются такие проблемы?