Какова структура пакета OSGi? - PullRequest
4 голосов
/ 02 декабря 2009

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

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

Ответы [ 3 ]

3 голосов
/ 08 декабря 2009

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

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

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

2 голосов
/ 04 декабря 2009

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

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

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

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

0 голосов
/ 05 декабря 2009

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

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

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

...