2009-12-02 2 views
3

Я новичок в стандарте OSGi. Я хочу узнать больше о структуре пакета пакета.Какова структура пакета пакета OSGi?

  1. найти эту папку OSGi-INF, спецификацию, упомянутую о l10n и разрешении, интересно, где определено использование папки OSGI-INF? Могу ли я поместить в него другие вещи?
  2. где хранить файлы jar, на которые ссылается связка?
  3. кроме OSGi-INF и OSGi-OPT есть ли какие-либо папки, определенные стандартом OSGi?

спасибо.

ответ

2

Единственный элемент пакета OSGi, который является обязательным, представляет собой специфические записи пакета в файле META-INF/MANIFEST.MF.

OSGi-INF и OSGi-OPT являются необязательными.

Посмотрите на это для обзора того, что делает OSGi расслоения: http://swik.net/Spring/Interface21+Team+Blog/Creating+OSGi+bundles/

и это описывает, как DS (декларативные Services) использовать папку OSGi-INF: http://www.eclipsezone.com/eclipse/forums/t97690.html

0

OSGi пакет не отличается от простого JAR-файла, за исключением нескольких обязательных записей в манифесте JAR, файла META-INF/MANIFEST.MF (как уже указывал Джеймс).

Все другие файлы и каталоги только конвенции и лучшие практики, как, например, папки META-INF/spring или META-INF/maven используется Spring и Maven соответственно.

Некоторые службы OSGi определяют аналогичные соглашения относительно использования каталога OSGI-INF. Насколько я знаю, в спецификации нет единого места, где перечислены все это соглашение. Вы можете открыть specs и найти «OSGI-INF», чтобы найти все вхождения :-) Не беспокойтесь, их не так уж много.

2

Возможно, вы посмотрите на спецификацию OSGi Core. Вы можете скачать его с OSGi Alliances website (это на самом деле вполне читаемо). Например, для версии 4.2 спецификации в главе 3.2 подробно рассказывается об узлах и их структуре. Как уже упоминалось в другом ответе, пучки на самом деле представляют собой простые файлы jar с манифестом, содержащим несколько специальных заголовков манифеста.

Некоторые из этих заголовков также позволяют указать местоположение некоторых файлов, например. в разделе 3.2.1.11 определен заголовок Bundle Локализация:

Пучок Локализация заголовка содержит местоположение в расслоении где файлы локализации можно найти. Значение по умолчанию: OSGI-INF/l10n/bundle. Переводы являются по умолчанию поэтому/l10n/bundle_de.properties OSGI-INF, OSGI-INF/l10n/bundle_nl.properties, и т.д.