Language Fragments missing in the p2 site [message #634550] |
Fri, 22 October 2010 03:14  |
Eclipse User |
|
|
|
Hi,
I have a buckminster setup similar to the mailapp tutorial and I try to
build a p2.site. My product feature includes a language feature that in
turn contains some of the language fragments of the babel project. My
problem is that the resulting site does not contain these fragments. The
site is not usable because an attempt to install the product with the
director fails complaining that some required ius are missing.
Some remarks:
- It works well from within the IDE (buckminster pde version 11582)
- The target plattform (materialized by BM) contains all these fragments
- The update site also contains the fragments in the plugins/ folder but
they are missing from the content.jar and also from the artifacts.jar.
- I tried the site.p2 action also with a property "target.nl=*" but it
didn't help.
Best regards,
Peter
|
|
|
|
|
Re: Language Fragments missing in the p2 site [message #642483 is a reply to message #634637] |
Wed, 01 December 2010 09:15   |
Eclipse User |
|
|
|
I have a possible explanation. We had the same problem with a different
product where one plugin (a springsource bundle) was missing from both
content.xml and artifacts.xml but was actually copied into the plugins
folder of the site. The solution was not to sign the repository. So,
when I turn off signing (site.signing=false) everything works as
expected and when site.signing is turned on the bundle is missing.
Regards,
Peter
Am 22.10.10 16:02, schrieb Peter Kullmann:
> Hi Thomas,
>
> I'm positive. The fragments are included in the site.p2/plugins/ folder
> but are not contained in artifacts.jar and also not in content.jar.
>
> The log output of the site.p2 action looks ok, there are no error
> messages. I use signing for my site and the fragments are also signed.
> So most of the process seems to be working ok.
>
> Any idea where I could start looking for a solution?
>
> Best regards,
> Peter
>
> Thomas Hallgren schrieb:
>> Hi Peter,
>>
>> This sounds very odd. I don't understand how the fragments can be
>> physically present under the plugins folder unless they are also
>> represented in the artifacts.jar. Buckminster doesn't copy those
>> fragments to that location. It delegates that to the p2 publisher
>> which in turn uses the artifact repository API. Are you really sure
>> about this?
>>
>> - thomas
>>
>> On 10/22/2010 09:14 AM, Peter Kullmann wrote:
>>> Hi,
>>>
>>> I have a buckminster setup similar to the mailapp tutorial and I try to
>>> build a p2.site. My product feature includes a language feature that in
>>> turn contains some of the language fragments of the babel project. My
>>> problem is that the resulting site does not contain these fragments. The
>>> site is not usable because an attempt to install the product with the
>>> director fails complaining that some required ius are missing.
>>>
>>> Some remarks:
>>> - It works well from within the IDE (buckminster pde version 11582)
>>> - The target plattform (materialized by BM) contains all these fragments
>>> - The update site also contains the fragments in the plugins/ folder but
>>> they are missing from the content.jar and also from the artifacts.jar.
>>> - I tried the site.p2 action also with a property "target.nl=*" but it
>>> didn't help.
>>>
>>> Best regards,
>>> Peter
>>
|
|
|
Re: Language Fragments missing in the p2 site [message #642713 is a reply to message #642483] |
Thu, 02 December 2010 08:27   |
Eclipse User |
|
|
|
I'm slowly making progress here. I know the reason for some IUs not
being included in the content.xml or artifacts.xml files: In
org.eclipse.equinox.p2.publisher.eclipse.BundlesAction there is a method
getBundleDescriptions() that creates some metadata by reading the
manifests of the given files (jars). In my bad cases (nls fragments or
the springsource bundle mentioned) the bundle fragment is not a valid
OSGi manifest (empty first line). In these cases there results a null
BundleDescription. In the end we have an invalid p2 repository with
these elements missing.
The reason for these bundles to have invalid manifests is signing. I
have two cases:
1. NLS fragments. These fragments are materialized in the target
platform. The manifest looks like this:
-------------------------------------------------
Manifest-Version: 1.0
Bundle-Name: org.eclipse.birt.core French NLS Support
Bundle-SymbolicName: org.eclipse.birt.core.nl_fr ;singleton=true
Bundle-Version: 3.5.0.v20091121043401
Bundle-Vendor: Eclipse.org
Fragment-Host: org.eclipse.birt.core
-------------------------------------------------
After signing it looks like this:
-------------------------------------------------
Name: org/eclipse/birt/core/i18n/Messages_fr.properties
SHA1-Digest: YmgKyCdhMv/E/7QyK9oHMz7aB2Y=
Name: about.html
SHA1-Digest: VpXXGnjM0HeeD/l2/5T0GziCHVE=
-------------------------------------------------
All the OSGi headers have vanished.
2. com.springsource bundles (perhaps a general issue with nested jars)
I was using com.springsource.com.sun.jna and although my rmap was using
mutable="false" and source="false" the bundle ended up in the workspace
unjarred. The bundle contains a nested jar by the way. After signing, it
looks like the example above: No OSGi headers left, just the signing stuff.
In this case I could rescue the build by employing an mspec that
explicitly directs the com.springsource.* stuff to the target platform.
Thomas, can you please direct me to the appropriate places for bug
reports. I'm not sure where to start here.
Regards,
Peter
Am 01.12.10 15:15, schrieb Peter Kullmann:
> I have a possible explanation. We had the same problem with a different
> product where one plugin (a springsource bundle) was missing from both
> content.xml and artifacts.xml but was actually copied into the plugins
> folder of the site. The solution was not to sign the repository. So,
> when I turn off signing (site.signing=false) everything works as
> expected and when site.signing is turned on the bundle is missing.
>
> Regards,
> Peter
>
> Am 22.10.10 16:02, schrieb Peter Kullmann:
>> Hi Thomas,
>>
>> I'm positive. The fragments are included in the site.p2/plugins/ folder
>> but are not contained in artifacts.jar and also not in content.jar.
>>
>> The log output of the site.p2 action looks ok, there are no error
>> messages. I use signing for my site and the fragments are also signed.
>> So most of the process seems to be working ok.
>>
>> Any idea where I could start looking for a solution?
>>
>> Best regards,
>> Peter
>>
>> Thomas Hallgren schrieb:
>>> Hi Peter,
>>>
>>> This sounds very odd. I don't understand how the fragments can be
>>> physically present under the plugins folder unless they are also
>>> represented in the artifacts.jar. Buckminster doesn't copy those
>>> fragments to that location. It delegates that to the p2 publisher
>>> which in turn uses the artifact repository API. Are you really sure
>>> about this?
>>>
>>> - thomas
>>>
>>> On 10/22/2010 09:14 AM, Peter Kullmann wrote:
>>>> Hi,
>>>>
>>>> I have a buckminster setup similar to the mailapp tutorial and I try to
>>>> build a p2.site. My product feature includes a language feature that in
>>>> turn contains some of the language fragments of the babel project. My
>>>> problem is that the resulting site does not contain these fragments.
>>>> The
>>>> site is not usable because an attempt to install the product with the
>>>> director fails complaining that some required ius are missing.
>>>>
>>>> Some remarks:
>>>> - It works well from within the IDE (buckminster pde version 11582)
>>>> - The target plattform (materialized by BM) contains all these
>>>> fragments
>>>> - The update site also contains the fragments in the plugins/ folder
>>>> but
>>>> they are missing from the content.jar and also from the artifacts.jar.
>>>> - I tried the site.p2 action also with a property "target.nl=*" but it
>>>> didn't help.
>>>>
>>>> Best regards,
>>>> Peter
>>>
>
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04979 seconds