Какова правильная процедура для управления зависимостями пакета OSGi? - PullRequest
3 голосов
/ 28 сентября 2011

Я собираюсь начать работу над приложением, которое я хотел бы запустить в контейнере OSGi, например Virgo . Базовая платформа Virgo предоставляет множество интересующих меня зависимостей, например Spring Framework, но я также хотел бы использовать Spring Integration. Jar-файлы Spring Integration представляют собой готовые пакеты OSGi и доступны мне вместе со многими другими сторонними зависимостями в репозитории Ivy.

Чтобы сообщить контейнеру OSGi, что мой пакет зависит, скажем, от Spring Integration, мне нужно добавить соответствующие пакеты или пакеты в мой манифест - я знаю, как это сделать, и понимаю, как это работает.

Я хотел бы понять, как разрабатывать, разрешать, создавать и в конечном итоге развертывать сторонние пакеты, доступные в каком-либо репозитории (предпочтительно Ivy). В прошлом я делал это двумя способами:

  1. Добавить зависимости к целевой платформе, или в этом случае к хранилищу Virgo ext
  2. Сохраните копию зависимости в моей рабочей области, экспортируйте ее как часть сборки

Ни одно из этих решений не кажется масштабируемым или особенно элегантным.

Я заинтересован в использовании Virgo 3.0.0 или Equinox, и моя среда разработки - Eclipse, если другой контейнер OSGi или среда разработки сделают мою жизнь проще, я рад переключиться.

Чтобы прояснить этот кристал, я бы хотел знать:

  1. Как мне работать с пакетами OSGi во внешнем репозитории (например, пакеты живут в Ivy)?
  2. Как собрать и развернуть свой пакет вместе с необходимыми внешними зависимостями?

Ответы [ 2 ]

4 голосов
/ 28 сентября 2011

Вы можете определить внешний репозиторий Virgo, чтобы он указывал на локальную копию репозитория Ivy, как описано в руководстве пользователя Virgo в разделе «Настройка локального репозитория Provisioning Repository».Этот репозиторий также можно использовать при запуске Virgo из Eclipse.

Обратите внимание, что мы работаем над интеграцией p2 для Virgo 3.5, и это даст вам некоторые дополнительные возможности.

0 голосов
/ 28 сентября 2011

AFAIK, который зависит от реализации.Если вы используете Equinox, то p2 - это система инициализации, которую вы ищете.Я бы предположил, что другие реализации будут иметь свои собственные методы / инструменты для выполнения аналогичной функциональности.

...