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

