Indeed :-) Here is the correct line:
<Require-Capability>osgi.native; filter:="(&(osgi.native.osname=MacOS)(os.native.processor=x86_64))"</Require-Capability> Thanks Le 31 mars 2014 à 11:22, Neil Bartlett <[email protected]> a écrit : > Aha. I wasn't aware you were using the bundle plugin. The XML format > requires you to escape certain characters within the filter, for example > "<" should be < and "&" should be & and so on. > > > On Mon, Mar 31, 2014 at 10:18 AM, Benoît Thiébault > <[email protected]>wrote: > >> 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 >> >> >> -- 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

