как добавить заголовок Service-Component в файл манифеста пакета в декларативных службах OSGI?

Я использую декларативные службы OSGI (SCR) для создания пакета компонентов. Я не заинтересован в использовании XML-файлов компонентов на основе аннотаций, созданных maven-scr-plugin . Я пишу component.xml вручную. Но мне нужно, чтобы заголовок Service-Component был добавлен в файл MANIFEST. Я использую maven-bundle-plugin для сборки пакета osgi, какие-либо инструкции, которые я могу дать в конфигурации плагина, которые добавят такой заголовок в файл манифеста?

несколько полезных ссылок:

felix-SCR

maven-scr-plugin

Компонент службы BND

Благодарность


person sanre6    schedule 07.03.2012    source источник


Ответы (1)


Любой заголовок, который может быть в файле манифеста, может быть включен в конфигурацию плагина пакета как элемент. Например,

<plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.2.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>
                  ${pom.artifactId}
                </Bundle-SymbolicName>
                <Service-Component>
                 OSGI-INF/some-file.xml
                </Service-Component>
                ....

Строка <extensions>true</extensions> включает произвольные пользовательские заголовки, хотя я считаю, что Service-Component включен в набор известных заголовков, поэтому здесь он не нужен.

person Holly Cummins    schedule 07.03.2012
comment
я думал, что maven-bundle-plugin не поймет, что такое элемент service-component, отлично работает, спасибо - person sanre6; 08.03.2012
comment
Плагин maven-bundle просто передает заголовок, он ничего не делает. Что на самом деле не совсем так, потому что вы также можете определить компоненты в заголовке. См. aqute.biz/Bnd/Components Любопытно, почему вы не хотите использовать аннотации bnd? - person Peter Kriens; 08.03.2012
comment
ничего как такового, просто я не хотел вводить зависимость API аннотации в свой код. - person sanre6; 15.03.2012