[
https://issues.apache.org/jira/browse/FELIX-4831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Florian Brunner updated FELIX-4831:
-----------------------------------
Description:
Declaring capabilities is currently rather cryptic. It requires a specific
syntax, which I believe is hard to remember for non-OSGi experts.
E.g. to provide a CDI extension using PAX-CDI you would need something like
this:
<Provide-Capability>
org.ops4j.pax.cdi.extension; extension=my-extension
</Provide-Capability>
To require the CDI extension you would need something like this:
<instructions>
<Require-Capability>
osgi.extender; filter:="(osgi.extender=pax.cdi)",
org.ops4j.pax.cdi.extension; filter:="(extension=my-extension)"
</Require-Capability>
</instructions>
The proposed solutions consists of 3 parts:
- a new property for the bundle goal of the Maven Bundle Plugin:
instructionsFile
This property defines a properties file containing additional BND
instructions to take into consideration when executing the goal
- a annotation library, which provides annotations for declaring BND
instructions
- a custom annotation processor, which generates the instructionsFile from the
annotations
This approach would:
- guide the developer what to specify
- doesn't require the developer to know the exact syntax
- helps avoiding typos
was:
Declaring capabilities is currently rather cryptic. It requires a specific
syntax, which I believe is hard to remember for non-OSGi experts.
E.g. to provide a CDI extension using PAX-CDI you would need something like
this:
<Provide-Capability>
org.ops4j.pax.cdi.extension; extension=my-extension
</Provide-Capability>
To require the CDI extension you would need something like this:
<instructions>
<Require-Capability>
osgi.extender; filter:="(osgi.extender=pax.cdi)",
org.ops4j.pax.cdi.extension; filter:="(extension=my-extension)"
</Require-Capability>
</instructions>
The proposed solutions consists of 3 parts:
- a new property for the bundle goal of the Maven Bundle Plugin:
instructionsFile
This property defines a properties file containing additional BND instruction
to take into consideration when executing the goal
- a annotation library, which provides annotations for declaring BND
instructions
- a custom annotation processor, which generates the instructionsFile from the
annotations
This approach would:
- guide the developer what to specify
- doesn't require the developer to know the exact syntax
- helps avoiding typos
> Simplify the declaration of capabilities
> ----------------------------------------
>
> Key: FELIX-4831
> URL: https://issues.apache.org/jira/browse/FELIX-4831
> Project: Felix
> Issue Type: Improvement
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.5.3
> Reporter: Florian Brunner
>
> Declaring capabilities is currently rather cryptic. It requires a specific
> syntax, which I believe is hard to remember for non-OSGi experts.
> E.g. to provide a CDI extension using PAX-CDI you would need something like
> this:
> <Provide-Capability>
> org.ops4j.pax.cdi.extension;
> extension=my-extension
> </Provide-Capability>
> To require the CDI extension you would need something like this:
> <instructions>
> <Require-Capability>
> osgi.extender; filter:="(osgi.extender=pax.cdi)",
> org.ops4j.pax.cdi.extension; filter:="(extension=my-extension)"
> </Require-Capability>
> </instructions>
> The proposed solutions consists of 3 parts:
> - a new property for the bundle goal of the Maven Bundle Plugin:
> instructionsFile
> This property defines a properties file containing additional BND
> instructions to take into consideration when executing the goal
> - a annotation library, which provides annotations for declaring BND
> instructions
> - a custom annotation processor, which generates the instructionsFile from
> the annotations
> This approach would:
> - guide the developer what to specify
> - doesn't require the developer to know the exact syntax
> - helps avoiding typos
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)