You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by ja...@nokia.com on 2010/03/15 13:11:12 UTC
Dependency descriptor mediation/overriding
Hi All,
I have a complex dependency graph in which all dependencies are resolved dynamically (using Version Range Matcher - revConstraint="[1.1,2.0[" for example). I have a use case in which I need to override the revision of a particular transitive dependency from the root of my graph, without having to introduce a dependence on that transitive dependency in my root node. I'm hoping to use Ivy to drive SOA integration; that is, I'll be versioning web services, not binary artefacts at all!
My understanding of the documentation is that using the <override> element in my root node's <dependencies> element will achieve this:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/override.html
I'm puzzled however, by the results of my experiments with this. If I make the value of "rev" outside what is permitted by the "revConstraint" on that dependency, I get the following message:
[ivy:resolve] dependency descriptor has been mediated: dependency: com.nokia#MyDependency;1.1 {*=[*]} => dependency: com.nokia# MyDependency;0.9 {*=[*]}
While this sounds like it's doing the job, the resulting report shows that this mediation has not occurred at all. If I set the "rev" in the <override> to a value that sits inside the "revConstraint", my desired use case, the above log message does not appear, and the report also shows that the override has been ignored.
Are <override> elements ignored for dynamic resolution? If so, does anybody know a way of achieving this given I have no conflicts?
Kind regards,
James
p.s. BTW - I love the pretty pictures I get from the Report that show our service dependency graphs.
RE: Dependency descriptor mediation/overriding
Posted by ja...@nokia.com.
Hi Maarten,
I built from svn today and it worked at treat. :)
For your reference, I'm now using: version 2.2.0.20100316103917
Thanks a lot for your help - this was a real show stopper for me.
Kind regards,
James.
-----Original Message-----
From: ext Maarten Coene [mailto:maarten_coene@yahoo.com]
Sent: 15 March 2010 20:39
To: ivy-user@ant.apache.org
Subject: Re: Dependency descriptor mediation/overriding
You might have the same problem as reported in IVY-1131, which is fixed in SVN trunk.
Cfr. https://issues.apache.org/jira/browse/IVY-1131
Could you try again with current trunk version to check if the problem still occurs?
You can download a snapshot here: http://hudson.zones.apache.org/hudson/view/Ant/job/Ivy/
regards,
Maarten
----- Original Message ----
From: "james.carnegie@nokia.com" <ja...@nokia.com>
To: ivy-user@ant.apache.org
Sent: Mon, March 15, 2010 1:11:12 PM
Subject: Dependency descriptor mediation/overriding
Hi All,
I have a complex dependency graph in which all dependencies are resolved dynamically (using Version Range Matcher - revConstraint="[1.1,2.0[" for example). I have a use case in which I need to override the revision of a particular transitive dependency from the root of my graph, without having to introduce a dependence on that transitive dependency in my root node. I'm hoping to use Ivy to drive SOA integration; that is, I'll be versioning web services, not binary artefacts at all!
My understanding of the documentation is that using the <override> element in my root node's <dependencies> element will achieve this:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/override.html
I'm puzzled however, by the results of my experiments with this. If I make the value of "rev" outside what is permitted by the "revConstraint" on that dependency, I get the following message:
[ivy:resolve] dependency descriptor has been mediated: dependency: com.nokia#MyDependency;1.1 {*=[*]} => dependency: com.nokia# MyDependency;0.9 {*=[*]}
While this sounds like it's doing the job, the resulting report shows that this mediation has not occurred at all. If I set the "rev" in the <override> to a value that sits inside the "revConstraint", my desired use case, the above log message does not appear, and the report also shows that the override has been ignored.
Are <override> elements ignored for dynamic resolution? If so, does anybody know a way of achieving this given I have no conflicts?
Kind regards,
James
p.s. BTW - I love the pretty pictures I get from the Report that show our service dependency graphs.
Re: Dependency descriptor mediation/overriding
Posted by Maarten Coene <ma...@yahoo.com>.
You might have the same problem as reported in IVY-1131, which is fixed in SVN trunk.
Cfr. https://issues.apache.org/jira/browse/IVY-1131
Could you try again with current trunk version to check if the problem still occurs?
You can download a snapshot here: http://hudson.zones.apache.org/hudson/view/Ant/job/Ivy/
regards,
Maarten
----- Original Message ----
From: "james.carnegie@nokia.com" <ja...@nokia.com>
To: ivy-user@ant.apache.org
Sent: Mon, March 15, 2010 1:11:12 PM
Subject: Dependency descriptor mediation/overriding
Hi All,
I have a complex dependency graph in which all dependencies are resolved dynamically (using Version Range Matcher - revConstraint="[1.1,2.0[" for example). I have a use case in which I need to override the revision of a particular transitive dependency from the root of my graph, without having to introduce a dependence on that transitive dependency in my root node. I'm hoping to use Ivy to drive SOA integration; that is, I'll be versioning web services, not binary artefacts at all!
My understanding of the documentation is that using the <override> element in my root node's <dependencies> element will achieve this:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/override.html
I'm puzzled however, by the results of my experiments with this. If I make the value of "rev" outside what is permitted by the "revConstraint" on that dependency, I get the following message:
[ivy:resolve] dependency descriptor has been mediated: dependency: com.nokia#MyDependency;1.1 {*=[*]} => dependency: com.nokia# MyDependency;0.9 {*=[*]}
While this sounds like it's doing the job, the resulting report shows that this mediation has not occurred at all. If I set the "rev" in the <override> to a value that sits inside the "revConstraint", my desired use case, the above log message does not appear, and the report also shows that the override has been ignored.
Are <override> elements ignored for dynamic resolution? If so, does anybody know a way of achieving this given I have no conflicts?
Kind regards,
James
p.s. BTW - I love the pretty pictures I get from the Report that show our service dependency graphs.