Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 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 12:19 Go to next message
Peter Nehrer is currently offline Peter Nehrer
Messages: 240
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 16:01 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas Hallgren
Messages: 3215
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 17:46 Go to previous messageGo to next message
Peter Nehrer is currently offline Peter Nehrer
Messages: 240
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 08:05 Go to previous message
Thomas Hallgren is currently offline Thomas Hallgren
Messages: 3215
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: Sat Aug 02 00:58:19 EDT 2014

Powered by FUDForum. Page generated in 0.02083 seconds