[ 
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)

Reply via email to