Глава 65. Плагин OSGi.

Плагин OSGi предоставляет фабричный метод для создания объекта OsgiManifest. OsgiManifest наследуется от Manifest. Чтобы узнать больше о работе с манифестами в общем, смотрите Секцию 47.15.1 Манифест. Если плагины Java применены, плагин OSGi заменяет объект манифеста jar-файла по умолчанию объектом OsgiManifest. Замененный манифест объединяется с новым.

Плагин OSGi очень много испольует инструмент BND Питера Криенса.

65.1. Использование.

Чтобы использовать плагин OSGi, включите следующую строку в ваш сборочный скрипт:

Пример 65.1. Использование плагина OSGi

build.gradle

apply plugin: 'osgi'
	  

65.2. Неявно примененные плагины.

Применяет базовый плагин Java.

65.3. Задачи.

Этот плагин не добавляет никаких задач.

65.4. Управление зависимостями.

TBD

65.5. Условный объект.

Плагин OSGi добавляет следующий условный объект: OsgiPluginConvention.

65.5.1. Условные свойства.

Плагин OSGi не добавляет никаких условных свойств к проекту.

65.5.2. Условные методы.

Плагин OSGi добавляет следующие методы. Чтобы узнать больше, смотрите документацию API к условному объекту.

Таблица 65.1. Методы OSGi
МетодВозвращаемый типОписание
osgiManifest()OsgiManifestВозвращает объект OsgiManifest.
osgiManifest(Closure cl)OsgiManifestВозвращает объект OsgiManifest, настроенный замыканием.

Классы в папке классов анализируются несмотря на их зависимости от пакетов и пакетов, которые они предоставляют. Основываясь на значения этих Import-Package и Export-Package, рассчитывается манифест OSGi. Если в пути к классам содержатся jar-файлы с пакетом OSGi, информация о пакете использется для указания информации о версии для значения Import-Package. Наряду с явными свойствами объекта OsgiManifest, вы можете добавить инструкции.

Пример 65.2. Настройка файла OSGi MANIFEST.MF

build.gradle

jar {
    manifest { // the manifest of the default jar is of type OsgiManifest
        name = 'overwrittenSpecialOsgiName'
        instruction 'Private-Package',
                'org.mycomp.package1',
                'org.mycomp.package2'
        instruction 'Bundle-Vendor', 'MyCompany'
        instruction 'Bundle-Description', 'Platform2: Metrics 2 Measures Framework'
        instruction 'Bundle-DocURL', 'http://www.mycompany.com'
    }
}
task fooJar(type: Jar) {
    manifest = osgiManifest {
        instruction 'Bundle-Vendor', 'MyCompany'    
    }
}
	  

Первый аргумент вызова инструкции - ключ свойства. Остальные аргументы формируют значение. Чтобы узнать больше о доступных инструкциях, взгляните на инструмент BDN.