Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » How to deal with feature patches
How to deal with feature patches [message #387731] Thu, 09 July 2009 21:56 Go to next message
Carsten Reckord is currently offline Carsten ReckordFriend
Messages: 139
Registered: July 2009
Senior Member
Hi again,

I still have a problem assembling a p2 site or a product with buckminster. My latest obstacle is a feature patch that introduces a version
conflict whe resolving my product feature. I have:


my.product.feature
includes feature org.eclipse.uml2
includes feature my.uml2.patch.feature
includes ...

This is the feature that describes my product, pointed to by my product file. I need all the UML2 stuff, so org.eclipse.uml2 is included.
However, we needed some fixes in the uml2 bundles, so we created a feature patch containing updated bundles, which is also included.

my.uml2.patch.feature
host feature org.eclipse.uml2 (3.0.0.v200906011111)
plugin org.eclipse.uml2.uml (3.0.0.z-patch-qualifier)

This is the feature patch, containing a changed version of the org.eclipse.uml2.uml bundle with version 3.0.0.z-patch-qualifier (which
should actually be higher than the original version 3.0.0.v200905151700 after qualifier replacement, using lastModified replacement).

The problem lies with the org.eclipse.uml2 feature installed in the target platform:

org.eclipse.uml2
plugin org.eclipse.uml2.uml (3.0.0.v200905151700)
plugin ...

I get everything materialized just fine, with the patched org.eclipse.uml2.uml version checked out from SVN and the other uml2 stuff
resolved in the target platform. To do that, I am using an advisory with a version override to avoid a version conflict between the version
required by the uml2 feature (which is exactly 3.0.0.v200905151700) and our patched feature.

But when I try to build a p2 site based on my product feature, the version override from the cquery is of course not in effect and I get
this error:

org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi: Using resolver rmap
org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi: Version 3.0.0.z-patch-qualifier rejected: not designated by
[3.0.0.v200905151700,3.0.0.v200905151700]
org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi: Rejecting provider
eclipse.platform(plugin/${buckminster.component}): No component match was found
Doing full workspace refresh
Waiting for jobs to end
No component named org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi is known to Buckminster



And one other (slightly related) thing - building another site also containing our org.eclipse.uml2.uml (which works because it does not
contain the org.eclipse.uml2 feature), I get this in the site/plugins folder:

org.eclipse.uml2.uml.source_3.0.0.v20090709-1859.jar
org.eclipse.uml2.uml_3.0.0.z-patch-qualifier.jar

I.e., the qualifier replacement is performed for the source bundle, but not the binary bundle... A short look at the buckminster sources
only got me as far as that the version qualifier is checked to end in "qualifier", so I assumed that it would work with "z-patch-qualifier"
- which in turn is just a dirty trick to make buckminster consider that version higher than the original one (3.0.0.qualifier would be lower
due to the "v" in 3.0.0.v200905151700). So, can I get Buckminster to
1. consider x.y.z.qualifier versions always higher than arbitrary x.y.z.foo versions
2. or to consider qualifier replacement for version comparison during resolution
3. or to correctly replace the z-patch-qualifier in both cases?

Best regards,
Carsten
Re: How to deal with feature patches [message #387733 is a reply to message #387731] Fri, 10 July 2009 05:39 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Carsten,
I don't think feature patches has been tested before so you're probably the first. This is a very special case for
building so I'm not too surprised that you run into problems with it. It should be supported of course so we need to
figure out what to do in order to make things work.

Carsten Reckord wrote:
> But when I try to build a p2 site based on my product feature, the
> version override from the cquery is of course not in effect and I get
> this error:
>
> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
> Using resolver rmap
> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
> Version 3.0.0.z-patch-qualifier rejected: not designated by
> [3.0.0.v200905151700,3.0.0.v200905151700]
> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
> Rejecting provider eclipse.platform(plugin/${buckminster.component}): No
> component match was found
> Doing full workspace refresh
> Waiting for jobs to end
> No component named
> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi
> is known to Buckminster
>
I'm confused. This looks like a resolution, not a build. You said the materialization was OK?


> I.e., the qualifier replacement is performed for the source bundle, but
> not the binary bundle...
>
This sounds like a bug. The qualifier part of z-patch-qualifier should be replaced. I suggest you enter a bugzilla on this.

Regards,
Thomas Hallgren
Re: How to deal with feature patches [message #387735 is a reply to message #387733] Fri, 10 July 2009 06:21 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Thomas Hallgren wrote:
>> I.e., the qualifier replacement is performed for the source bundle,
>> but not the binary bundle...
> >
> This sounds like a bug. The qualifier part of z-patch-qualifier should
> be replaced. I suggest you enter a bugzilla on this.
>
I fixed that part: https://bugs.eclipse.org/bugs/show_bug.cgi?id=283104

- thomas
Re: How to deal with feature patches [message #387737 is a reply to message #387733] Fri, 10 July 2009 09:28 Go to previous message
Carsten Reckord is currently offline Carsten ReckordFriend
Messages: 139
Registered: July 2009
Senior Member
Hi Thomas,

First of all, thanks for the amazing reaction time and the two quick bugfixes.

On 10.07.2009 07:39, Thomas Hallgren wrote:
> Hi Carsten,
> I don't think feature patches has been tested before so you're probably the first. This is a very special case for
> building so I'm not too surprised that you run into problems with it. It should be supported of course so we need to
> figure out what to do in order to make things work.

Yay, frontier land *grabs shovel* ;)

>
> Carsten Reckord wrote:
>> But when I try to build a p2 site based on my product feature, the
>> version override from the cquery is of course not in effect and I get
>> this error:
>>
>> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
>> Using resolver rmap
>> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
>> Version 3.0.0.z-patch-qualifier rejected: not designated by
>> [3.0.0.v200905151700,3.0.0.v200905151700]
>> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi:
>> Rejecting provider eclipse.platform(plugin/${buckminster.component}): No
>> component match was found
>> Doing full workspace refresh
>> Waiting for jobs to end
>> No component named
>> org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi
>> is known to Buckminster
>>
> I'm confused. This looks like a resolution, not a build. You said the materialization was OK?

That confused me a bit, too. Yes, the original resolution and materialization was performed successfully. But as I said, with our patched
version of the bundle with a different version number. The version above was overridden with an advisory to resolve against the patched one,
otherwise I got a version conflict.

I guess that resolution probably kicked in again because the advisory from the cquery is not in effect during build and thus the previously
"masked" dependency to org.eclipse.uml2.uml:osgi.bundle/[3.0.0.v200905151700,3.0.0. v200905151700]#OSGi kicks in and wants to be resolved.
What I find confusing is that it is not resolved from the target platform, where it is installed...

Best regards,
Carsten
Previous Topic:searchPath gets ignored
Next Topic:Another product building problem (Java returned: 13)
Goto Forum:
  


Current Time: Sun Sep 22 06:14:40 GMT 2024

Powered by FUDForum. Page generated in 0.03987 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top