Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » sourceLevel=DESIRE doesn't fetch component when already present in target platform
sourceLevel=DESIRE doesn't fetch component when already present in target platform [message #987949] Wed, 28 November 2012 17:19 Go to next message
Peter Nehrer is currently offline Peter NehrerFriend
Messages: 241
Registered: July 2009
Senior Member
Hi,

I have a parameterized build in which I have a base feature in the
target platform, but based on certain parameters I want to replace it
with a newer version from the source (the parameter is used to find an
alternative location of the source project in source control).

In my cquery I have the following advisor node:

<cq:advisorNode namePattern="^foo$" componentType="eclipse.feature"
sourceLevel="DESIRE"/>

However, with this I still end up with the version from my target
platform. If I specify sourceLevel="REQUIRE", then I do end up with the
right version (from source control). However, I want to keep the build
generic and work whether or not there is an alternative in source
control (there may or may not be).

Is this by design? I would think that sourceLevel="DESIRE" should cause
the resolver to first materialize the component, and if unable to find a
source project, fall back to target platform. It already attempts to do
that with REQUIRE but I need it it to not fail if not found.

Thanks.

--Peter
Re: sourceLevel=DESIRE doesn't fetch component when already present in target platform [message #988214 is a reply to message #987949] Wed, 28 November 2012 21:01 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Peter,

Do you have the rmap providers in the same search path? Or are you using
two locators where one has failOnError="false"?

- thomas

On 2012-11-28 18:19, Peter Nehrer wrote:
> Hi,
>
> I have a parameterized build in which I have a base feature in the
> target platform, but based on certain parameters I want to replace it
> with a newer version from the source (the parameter is used to find an
> alternative location of the source project in source control).
>
> In my cquery I have the following advisor node:
>
> <cq:advisorNode namePattern="^foo$" componentType="eclipse.feature"
> sourceLevel="DESIRE"/>
>
> However, with this I still end up with the version from my target
> platform. If I specify sourceLevel="REQUIRE", then I do end up with the
> right version (from source control). However, I want to keep the build
> generic and work whether or not there is an alternative in source
> control (there may or may not be).
>
> Is this by design? I would think that sourceLevel="DESIRE" should cause
> the resolver to first materialize the component, and if unable to find a
> source project, fall back to target platform. It already attempts to do
> that with REQUIRE but I need it it to not fail if not found.
>
> Thanks.
>
> --Peter
Re: sourceLevel=DESIRE doesn't fetch component when already present in target platform [message #988226 is a reply to message #988214] Wed, 28 November 2012 22:46 Go to previous messageGo to next message
Peter Nehrer is currently offline Peter NehrerFriend
Messages: 241
Registered: July 2009
Senior Member
I do have two locators and the first one is failOnError="false", but the
source component would be found in the first one (if attempted). I
actually didn't run the build with DEBUG but I will do that, just wanted
an initial read (if this is expected). Thanks!

On 11/28/12 4:01 PM, Thomas Hallgren wrote:
> Hi Peter,
>
> Do you have the rmap providers in the same search path? Or are you using
> two locators where one has failOnError="false"?
>
> - thomas
>
> On 2012-11-28 18:19, Peter Nehrer wrote:
>> Hi,
>>
>> I have a parameterized build in which I have a base feature in the
>> target platform, but based on certain parameters I want to replace it
>> with a newer version from the source (the parameter is used to find an
>> alternative location of the source project in source control).
>>
>> In my cquery I have the following advisor node:
>>
>> <cq:advisorNode namePattern="^foo$" componentType="eclipse.feature"
>> sourceLevel="DESIRE"/>
>>
>> However, with this I still end up with the version from my target
>> platform. If I specify sourceLevel="REQUIRE", then I do end up with the
>> right version (from source control). However, I want to keep the build
>> generic and work whether or not there is an alternative in source
>> control (there may or may not be).
>>
>> Is this by design? I would think that sourceLevel="DESIRE" should cause
>> the resolver to first materialize the component, and if unable to find a
>> source project, fall back to target platform. It already attempts to do
>> that with REQUIRE but I need it it to not fail if not found.
>>
>> Thanks.
>>
>> --Peter
>
Re: sourceLevel=DESIRE doesn't fetch component when already present in target platform [message #988336 is a reply to message #988226] Thu, 29 November 2012 13:05 Go to previous message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
OK. So just to clarify:

If a component is found in a search path, then no further search paths
will be consulted (it's a success, not failure so failOnError doesn't
apply). This means that the behavior you're seeing is expected.

If you want Buckminster to choose the best fit among several possible
matches, then you must put the providers that produce those matches in
the same search path.

- thomas


On 2012-11-28 23:46, Peter Nehrer wrote:
> I do have two locators and the first one is failOnError="false", but the
> source component would be found in the first one (if attempted). I
> actually didn't run the build with DEBUG but I will do that, just wanted
> an initial read (if this is expected). Thanks!
>
> On 11/28/12 4:01 PM, Thomas Hallgren wrote:
>> Hi Peter,
>>
>> Do you have the rmap providers in the same search path? Or are you using
>> two locators where one has failOnError="false"?
>>
>> - thomas
>>
>> On 2012-11-28 18:19, Peter Nehrer wrote:
>>> Hi,
>>>
>>> I have a parameterized build in which I have a base feature in the
>>> target platform, but based on certain parameters I want to replace it
>>> with a newer version from the source (the parameter is used to find an
>>> alternative location of the source project in source control).
>>>
>>> In my cquery I have the following advisor node:
>>>
>>> <cq:advisorNode namePattern="^foo$" componentType="eclipse.feature"
>>> sourceLevel="DESIRE"/>
>>>
>>> However, with this I still end up with the version from my target
>>> platform. If I specify sourceLevel="REQUIRE", then I do end up with the
>>> right version (from source control). However, I want to keep the build
>>> generic and work whether or not there is an alternative in source
>>> control (there may or may not be).
>>>
>>> Is this by design? I would think that sourceLevel="DESIRE" should cause
>>> the resolver to first materialize the component, and if unable to find a
>>> source project, fall back to target platform. It already attempts to do
>>> that with REQUIRE but I need it it to not fail if not found.
>>>
>>> Thanks.
>>>
>>> --Peter
>>
>
Previous Topic:sourceLevel=DESIRE doesn't fetch component when already present in target platform
Next Topic:cannot skip components during materialization
Goto Forum:
  


Current Time: Thu Apr 25 19:48:12 GMT 2024

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

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

Back to the top