felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoît Thiébault <thieba...@artenum.com>
Subject Re: OBR, bundle fragments and native code
Date Mon, 31 Mar 2014 09:26:04 GMT
Indeed :-)

Here is the correct line:

<Require-Capability>osgi.native; filter:="(&amp;(osgi.native.osname=MacOS)(os.native.processor=x86_64))"</Require-Capability>

Thanks

Le 31 mars 2014 à 11:22, Neil Bartlett <njbartlett@gmail.com> 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 &lt; and "&" should be &amp; and so on.
> 
> 
> On Mon, Mar 31, 2014 at 10:18 AM, Benoît Thiébault <thiebault@artenum.com>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 <njbartlett@gmail.com> 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 <thiebault@artenum.com
>>> 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: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>> 
>>>> 
>> 
>> --
>> 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



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message