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 &lt; and "&" should be &amp; 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
>
>
>

Reply via email to