Details
Description
Sometimes ivy:deliver does not replace the dynamic revision correctly.
My Repository contains four module: junit in revision 3.8 and 4.4. A Modul A that depends on junit 4.4 and a module B that depends on junit "3.8.+". (A Zip with this setup will be appended).
I do now resolve and deliver the following ivy:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="1.4">
<info organisation="test" module="c"/>
<publications/>
<dependencies>
<!-- THE ORDER OF THIS DEPENDENCIES IS IMPORTEND TO REPRODUCE THE BUG -->
<dependency org="test" name="a" rev="latest.integration"/>
<dependency org="test" name="b" rev="latest.integration"/>
<dependency org="junit" name="junit" conf="default" rev="latest.integration"/>
</dependencies>
</ivy-module>
The delivered Ivy File does not replace the dynamic revision for junit:
<dependency org="junit" name="junit" conf="default" rev="latest.integration"/>
The expected outcome would be:
<dependency org="junit" name="junit" conf="default" rev="4.4" revConstraint="latest.integration"/>
Please note that moving the dependency to junit on line higher (above "b") leads to the epected outcome.
The bug was reproduced with rc2 and a private build from trunk.
The ant log:
D:\sources.java\Research\ivytest>ant test -v
Apache Ant version 1.7.1 compiled on June 27 2008
Buildfile: build.xml
Detected Java version: 1.6 in: C:\Programme\Java\jdk1.6.0_05\jre
Detected OS: Windows XP
parsing buildfile D:\sources.java\Research\ivytest\build.xml with URI = file:/D:/sources.java/Research/ivytest/build.xml
Project base dir set to: D:\sources.java\Research\ivytest
Build sequence for target(s) `test' is [init_ivy, test]
Complete build sequence is [init_ivy, test, ]
init_ivy:
[antlib:org.apache.tools.ant] Could not load definitions from resource org/apache/tools/ant/antlib.xml. It could not be found.
parsing buildfile jar:file:/C:/Dokumente%20und%20Einstellungen/fickerm/.ant/lib/ivy-2.0.0-rc2.jar!/org/apache/ivy/ant/antlib.xml with URI = jar:file:/C:/Dokumente%20und%20Einstellungen/fickerm/.ant/li
b/ivy-2.0.0-rc2.jar!/org/apache/ivy/ant/antlib.xml
parsing buildfile jar:file:/D:/sources.java/Research/ivytest/ivy-2.1.x.jar!/org/apache/ivy/ant/antlib.xml with URI = jar:file:/D:/sources.java/Research/ivytest/ivy-2.1.x.jar!/org/apache/ivy/ant/antlib
.xml
parsing buildfile jar:file:/C:/Dokumente%20und%20Einstellungen/fickerm/.ant/lib/ivy-2.0.0-rc2.jar!/org/apache/ivy/ant/antlib.xml with URI = jar:file:/C:/Dokumente%20und%20Einstellungen/fickerm/.ant/li
b/ivy-2.0.0-rc2.jar!/org/apache/ivy/ant/antlib.xml
Loading jar:file:/C:/Dokumente%20und%20Einstellungen/fickerm/.ant/lib/ivy-2.0.0-rc2.jar!/org/apache/ivy/core/settings/ivy.properties
[ivy:configure] :: Ivy 2.0.0-rc2 - 20081028224207 :: http://ant.apache.org/ivy/ ::
:: loading settings :: file = D:\sources.java\Research\ivytest\ivysettings.xml
no default ivy user dir defined: set to C:\Dokumente und Einstellungen\fickerm\.ivy2
DEPRECATED: 'ivyconf' element is deprecated, use 'ivysettings' instead (file:/D:/sources.java/Research/ivytest/ivysettings.xml)
no default cache defined: set to C:\Dokumente und Einstellungen\fickerm\.ivy2\cache
settings loaded (79ms)
default cache: C:\Dokumente und Einstellungen\fickerm\.ivy2\cache
default resolver: local
– 1 resolvers:
local [file]
test:
[ivy:resolve] using ivy parser to parse file:/D:/sources.java/Research/ivytest/ivy-c.xml
[ivy:resolve] :: resolving dependencies :: test#c;working@MARTIN
[ivy:resolve] confs: [default]
[ivy:resolve] validate = true
[ivy:resolve] refresh = false
[ivy:resolve] resolving dependencies for configuration 'default'
[ivy:resolve] == resolving dependencies for test#c;working@MARTIN [default]
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->test#a;latest.integration [default->*]
[ivy:resolve] no cached resolved revision for test#a;latest.integration
[ivy:resolve] tried D:\sources.java\Research\ivytest/testrepo/test/a/ivy-[revision].xml
[ivy:resolve] local do not support transaction. ivy pattern does not use revision as a directory
[ivy:resolve] local: found md file for test#a;latest.integration
[ivy:resolve] => D:\sources.java\Research\ivytest\testrepo\test\a\ivy-1.xml (1)
[ivy:resolve] default-cache: revision in cache: test#a;1
[ivy:resolve] found test#a;1 in local
[ivy:resolve] [1] test#a;latest.integration
[ivy:resolve] == resolving dependencies test#a;latest.integration->junit#junit;4.4 [default->*]
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->test#a;latest.integration [default->default]
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->test#b;latest.integration [default->*]
[ivy:resolve] no cached resolved revision for test#b;latest.integration
[ivy:resolve] tried D:\sources.java\Research\ivytest/testrepo/test/b/ivy-[revision].xml
[ivy:resolve] local: found md file for test#b;latest.integration
[ivy:resolve] => D:\sources.java\Research\ivytest\testrepo\test\b\ivy-1.5.xml (1.5)
[ivy:resolve] default-cache: revision in cache: test#b;1.5
[ivy:resolve] found test#b;1.5 in local
[ivy:resolve] [1.5] test#b;latest.integration
[ivy:resolve] == resolving dependencies test#b;latest.integration->junit#junit;3.8+ [default->default]
[ivy:resolve] no cached resolved revision for junit#junit;3.8+
[ivy:resolve] tried D:\sources.java\Research\ivytest/testrepo/junit/junit/ivy-[revision].xml
[ivy:resolve] local: found md file for junit#junit;3.8+
[ivy:resolve] => D:\sources.java\Research\ivytest\testrepo\junit\junit\ivy-3.8.xml (3.8)
[ivy:resolve] default-cache: revision in cache: junit#junit;3.8
[ivy:resolve] found junit#junit;3.8 in local
[ivy:resolve] [3.8] junit#junit;3.8+
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->test#b;latest.integration [default->default]
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->junit#junit;latest.integration [default->default]
[ivy:resolve] == resolving dependencies test#c;working@MARTIN->junit#junit;3.8+ [default->default]
[ivy:resolve] resolved ivy file produced in C:\Dokumente und Einstellungen\fickerm\.ivy2\cache\resolved-test-c-working@MARTIN.xml
[ivy:resolve] :: downloading artifacts ::
[ivy:resolve] :: resolution report :: resolve 250ms :: artifacts dl 0ms
[ivy:resolve] :: evicted modules:
[ivy:resolve] junit#junit;4.4 by junit#junit;latest.integration in [default]
[ivy:resolve] in test#c;working@MARTIN with latest-revision
[ivy:resolve] junit#junit;latest.integration by junit#junit;3.8 in [default]
[ivy:resolve] in test#c;working@MARTIN with latest-revision
---------------------------------------------------------------------
modules | artifacts | |||||
---|---|---|---|---|---|---|
conf | number | search | dwnlded | evicted | number | dwnlded |
---------------------------------------------------------------------
default | 5 | 3 | 0 | 2 | 0 | 0 |
---|
---------------------------------------------------------------------
[ivy:resolve] report for test#c;working@MARTIN default produced in C:\Dokumente und Einstellungen\fickerm\.ivy2\cache\test-c-default.xml
[ivy:resolve] resolve done (250ms resolve - 0ms download)
Overriding previous definition of property "ivy.version"
[property] Loading C:\DOKUME~1\fickerm\LOKALE~1\Temp\delivery.properties
[property] Unable to find property file: C:\DOKUME~1\fickerm\LOKALE~1\Temp\delivery.properties
:: delivering :: test#c;working@MARTIN :: 20090109101230 :: integration :: Fri Jan 09 10:12:30 CET 2009
delivering ivy file to D:\sources.java\Research\ivytest\distrib\ivys\ivy-20090109101230.xml
BUILD SUCCESSFUL