OK, I’m back at work and I have been trying your snippet.

I have a compilation problems… It seems Maven Bundle Plugin has difficulties 
parsing the filter.

Here is the error message:
> mvn clean install -DskipTests=true
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project  (/path/to/my/project/pom.xml) has 1 error
[ERROR]     Non-parseable POM 
/path/to/my/project/modules/my-module-osx64b/pom.xml: entity reference names 
can not start with character '(' (position: START_TAG seen 
...<Require-Capability>osgi.native; filter:="(&(... @93:70)  @ line 93, column 
70 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please 
read the following articles:
[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] 
http://cwiki.apache.org/confluence/display/MAVEN/ModelParseException

The line in the POM is:
<Require-Capability>osgi.native; 
filter:="(&(osgi.native.osname=MacOS)(os.native.processor=x86_64))"</Require-Capability>

I am using the following configuration for Maven Bundle Plugin:
<plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.7</version>
        <extensions>true</extensions>
</plugin>

Thanks for your help

Ben

Le 29 mars 2014 à 11:21, Neil Bartlett <[email protected]> a écrit :

> You cannot do this with OBR. If you can use the R5 repository format, along
> with the repoindex tool, then you can use Provide- and Require-Capability
> headers to ensure the set of libraries you need is resolved. For example
> the fragment "org.example.nativelib.osx64" would provide something custom
> like this:
> 
>    Provide-Capability: myapp.native; library=com.example.nativelib
> 
> and it would require the osgi.native capability to ensure it can only
> resolve on a single platform:
> 
>    Require-Capability: osgi.native;
> filter:="(&(osgi.native.osname=MacOS)(os.native.processor=x86_64))"
> 
> Now your core bundle just requires the myapp.native capability and the
> resolver will pick the right fragment for your runtime platform.
> 
> 
> On Sat, Mar 29, 2014 at 7:47 AM, Benoît Thiébault 
> <[email protected]>wrote:
> 
>> Hi everyone,
>> 
>> I’m willing to simplify my application deployment and plan to use an OBR.
>> On this OBR, I have deployed several bundles, including some containing
>> native code.
>> 
>> I have a cross-platform bundle, say org.example.nativelib and one fragment
>> for each platform:
>> - org.example.nativelib.linux64b
>> - org.example.nativelib.linux32b
>> - org.example.nativelib.win7-64b
>> - org.example.nativelib.osx64b
>> - etc.
>> 
>> How can I be sure that when deploying org.example.nativelib from the OBR,
>> the native fragment of the correct platform will be deployed?
>> 
>> Thanks for your help
>> 
>> Benoît
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>> 

-- 
Dr Benoît Thiébault
Project Manager

  Artenum Toulouse - Science & Groupware
  http://www.artenum.com

      Bâtiment Calfocenter
      10, rue Marguerite-Long
      31320 Castanet-Tolosan
      France
      Phone: +33 (0)5 82 95 19 00


Reply via email to