|
Re: Language Fragments missing in the p2 site [message #634597 is a reply to message #634550] |
Fri, 22 October 2010 11:32 |
|
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 #642483 is a reply to message #634637] |
Wed, 01 December 2010 14:15 |
Peter Kullmann Messages: 240 Registered: July 2009 |
Senior Member |
|
|
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 13:27 |
Peter Kullmann Messages: 240 Registered: July 2009 |
Senior Member |
|
|
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
>>>
>
|
|
|
Re: Language Fragments missing in the p2 site [message #642724 is a reply to message #642713] |
Thu, 02 December 2010 14:07 |
|
On 2010-12-02 14:27, Peter Kullmann wrote:
> Thomas, can you please direct me to the appropriate places for bug reports. I'm not sure where to start here.
>
The p2 publisher should probably say something when it encounters a bad manifest. For that I suggest you file a bugzilla
against RT/Equinox/p2.
Not sure what to do with the signing problem. In general, it's a bad idea to bring jars into the workspace. I'm not sure
why that happens? Are you using an MSPEC for the import? If not, then they should never end up there unless you have
source="true". PDE does funny things to a jar when it's imported into the workspace and Buckminster makes a best effort
to reverse that process but I'm not too surprised that it fails when signing is involved,
Regards,
Thomas Hallgren
|
|
|
|
Re: Language Fragments missing in the p2 site [message #642777 is a reply to message #642776] |
Thu, 02 December 2010 16:21 |
|
Hi Peter,
On 2010-12-02 16:55, Peter Kullmann wrote:
> I was not using an mspec. This is the relevant part of the rmap:
> <searchPath name="com.springsource.com.sun.jna">
> <provider readerType="url" componentTypes="osgi.bundle"
> mutable="false" source="false">
I think this might be a bug in the 'url' reader type. Can you please file a bugzilla for that too?
Thanks,
- thomas
|
|
|
|
Powered by
FUDForum. Page generated in 0.03858 seconds