Le 16 juil. 2014 à 09:21, Boris Brodski <brodsky_bo...@yahoo.com.INVALID> a 
écrit :

> Hello Nicolas,
> 
>>  But this "use_xyz" configuration will be the one of org.eclipse.jdt, not 
>> one of its dependency.
> 
> this is exactly, what I need. But unfortunately the "rev" attribute is 
> mandatory:
> 
> <dependency org="bundle" name="org.eclipse.xtend.core" 
> conf="default->default,use_org.eclipse.jdt.core"/>
> 
> 
> produces
> 
> [xml parsing: ... cvc-complex-type.4: Attribute 'rev' must appear on element 
> 'dependency' ...]
> 
> 
> Do you have an Idea, how can I activate this configuration without specifying 
> the version of the bundle explicitly?

Maybe you can use this trick: you can specify a range of versions, a range so 
wide that it will match anything existing; you can write rev="[0,)"

Nicolas

> 
> Thank you!
> 
> 
> Cheers,
> Boris
> 
> 
> 
> On Tuesday, July 15, 2014 6:25 PM, Nicolas Lalevée 
> <nicolas.lale...@hibnet.org> wrote:
> 
> 
> 
> 
> Le 15 juil. 2014 à 18:16, Boris Brodski <brodsky_bo...@yahoo.com.INVALID> a 
> écrit :
> 
>> Hello Nicolas,
>> 
>> 
>> thank you for the quick reply. I use your suggestion already, but specifying 
>> the version is some kind nasty, especially if you have many such optional 
>> dependencies.
>> 
>> Is there really absolutely no possibility to just activate a configuration 
>> of a bundle, like
>> 
>> <dependency org="bundle" name="org.eclipse.jdt"> <!-- No version here -->
>>     <conf name="use_xyz"/>
>> </dependency>
>>   
>> This would be completely enough for me!
> 
> Yes you can, just like a normal ivy file:
> <dependency org="bundle" name="org.eclipse.jdt" conf="default->use_xyz" />
> 
> But this "use_xyz" configuration will be the one of org.eclipse.jdt, not one 
> of its dependency.
> 
> 
> Nicolas
> 
>> 
>> 
>> Cheers,
>> Boris
>> 
>> 
>> On Tuesday, July 15, 2014 3:43 PM, Nicolas Lalevée 
>> <nicolas.lale...@hibnet.org> wrote:
>> 
>> 
>> 
>> Hi,
>> 
>> Le 15 juil. 2014 à 11:18, Boris Brodski <brodsky_bo...@yahoo.com.INVALID> a 
>> écrit :
>> 
>>> Hello,
>>> 
>>> 
>>> I posted a question about selecting optional dependencies of OSGI-bundle on 
>>> Stackoverflow: 
>>> 
>>> ant - Selecting optional dependencies of OSGi-bundles with Ivy - Stack 
>>> Overflow
>>> 
>>>   
>>>           
>>> ant - Selecting optional dependencies of OSGi-bundles with Ivy - Stack 
>>> Overflow
>>> I use Ivy to resolve OSGi bundles, like org.eclipse.jdt: <dependencies> 
>>> <dependency org="bundle" name="org.eclipse.jdt" rev="x.y.z"/>
>>> </dependencies>  
>>> View on stackoverflow.com Preview by Yahoo  
>>>   
>>> 
>>> Even issuing a bounty of +150 didn't helped... No answers, no comments. 
>>> (The bounty expired within 24 hours.)
>>> 
>>> I going to repost my question here hoping to get an answer and also hoping 
>>> to give away +150 reputation on StackOverflow.
>>> 
>>> 
>>> 
>>> I use Ivy to resolve OSGi bundles, like org.eclipse.jdt:
>>> <dependencies><dependencyorg="bundle"name="org.eclipse.jdt"rev="x.y.z"/></dependencies>
>>> It works fine and gives me all mandatory dependencies.
>>> My question is, how can I select some (not all) optional dependencies of 
>>> transitive bundles?
>>> I can:
>>>      * Select optional dependencies of org.eclipse.jdt by activating 
>>> use_xxx configuration
>>>      * Select all optional dependencies using transitive-optional 
>>> configuration
>>> What I actually need is a possibility to globally activate a configuration 
>>> use_yyy. Globally means (applying to all transitive dependencies):
>>>      * If a module doesn't have this configuration, do nothing
>>>      * If a module does have this configuration, activate it
>> 
>> Only the first solution you suggest is possible.
>> 
>> But if in your use case you need an optional dependency to be fetched, then 
>> it is actually required for you. So in your ivy.xml, put an extra line about 
>> the dependency you require.
>> The non ideal point here is about choosing the right version of your 
>> dependency. With a pure OSGi resolver, you just declare a dependency on a 
>> bundle symbolic name, OSGi will figure out the version which can match while 
>> looking up the optional dependencies. Ivy cannot do that, there is no notion 
>> of optionality, either the configuration is in the dependency graph, either 
>> it's not. So you'll have to put a version to the extra dependency.
>> 
>> Nicolas
>> 
>> 
>>> 
>>> 
>>> Thank you very much for help!
>>> 
>>> 
>>> Kind regards,
>>> Boris Brodski

Reply via email to