OSGi и устаревшие библиотеки
Вопрос
Я некоторое время изучал OSGi, и мне интересно, как лучше всего работать с "устаревшими" библиотеками (которые выпускаются в виде простых JAR, а не в виде пакетов OSGi).
Как вы думаете, как лучше всего с этим справиться?Изменение их файла манифеста и добавление минимальной информации, относящейся к конкретному пакету, а затем их переупаковка - это то, что я делаю в данный момент, но мне это кажется каким-то неправильным.Должен ли я просто использовать ручное управление зависимостями для этих JAR (я делаю это для тех библиотек, которые с высокой вероятностью будут использоваться только в определенной части моего приложения)?
Насколько они доступны, я использую пакеты для Eclipse (поскольку я использую Equinox в качестве платформы OSGi, это хорошо работает для тех библиотек, которые доступны в виде пакетов).
Существуют ли какие-либо пакеты-репозитории, помимо пакетов Eclipse, о которых я должен знать?
Решение
Spring с размахом продвигает OSGi, используя Equinox в качестве базовой платформы.
http://www.springsource.org/dmserver
Блог Роба Харропа стоит следовать, если вы увлекаетесь разработками OSGi.
И чтобы ответить на ваш вопрос, вот репозиторий Spring для OSGi bundle:
Другие советы
Есть также Орбита Затмения который имеет несколько предварительно упакованных пакетов для использования Eclipse.И вместо того, чтобы вносить изменения в манифест пакета напрямую, вы можете создать пакет-оболочку, который сам предоставляет Манифест, и включить Jar как есть с Bundle-ClassPath:foo.jar заголовок.Это немного менее эффективно делать таким образом, поскольку во время выполнения извлекается foo.jar (по крайней мере, в Equinox), но вам, возможно, будет проще управлять процессом сборки с помощью этого.
Spring repo также является хорошим источником библиотек с открытым исходным кодом, которые были OSGI'enified.