mirror of https://github.com/apache/ant-ivy
add a junit test for a failing latest case (due to recent changes), and fix the bug
git-svn-id: https://svn.apache.org/repos/asf/incubator/ivy/trunk@484397 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
58949509da
commit
49ddd733e6
|
|
@ -208,7 +208,6 @@ public class IvyNode {
|
|||
private String _rootModuleConf;
|
||||
|
||||
private Map _selectedDeps = new HashMap(); // Map (ModuleIdConf -> Set(Node)) // map indicating for each dependency which node has been selected
|
||||
private Map _selectedRevs = new HashMap(); // Map (ModuleIdConf -> Set(ModuleRevisionId)) // map indicating for each dependency which revision has been selected
|
||||
|
||||
private Map _evictedDeps = new HashMap(); // Map (ModuleIdConf -> Set(Node)) // map indicating for each dependency which node has been evicted
|
||||
private Map _evictedRevs = new HashMap(); // Map (ModuleIdConf -> Set(ModuleRevisionId)) // map indicating for each dependency which revision has been evicted
|
||||
|
|
@ -308,24 +307,23 @@ public class IvyNode {
|
|||
return ret;
|
||||
}
|
||||
public Collection getResolvedRevisions(ModuleId mid, String rootModuleConf) {
|
||||
Collection resolved = (Collection)_selectedRevs.get(new ModuleIdConf(mid, rootModuleConf));
|
||||
if (resolved == null) {
|
||||
return new HashSet();
|
||||
} else {
|
||||
return new HashSet(resolved);
|
||||
}
|
||||
Collection resolved = (Collection)_selectedDeps.get(new ModuleIdConf(mid, rootModuleConf));
|
||||
if (resolved == null) {
|
||||
return new HashSet();
|
||||
} else {
|
||||
Collection resolvedRevs = new HashSet();
|
||||
for (Iterator iter = resolved.iterator(); iter.hasNext();) {
|
||||
IvyNode node = (IvyNode)iter.next();
|
||||
resolvedRevs.add(node.getId());
|
||||
resolvedRevs.add(node.getResolvedId());
|
||||
}
|
||||
return resolvedRevs;
|
||||
}
|
||||
}
|
||||
|
||||
public void setResolvedNodes(ModuleId moduleId, String rootModuleConf, Collection resolved) {
|
||||
ModuleIdConf moduleIdConf = new ModuleIdConf(moduleId, rootModuleConf);
|
||||
_selectedDeps.put(moduleIdConf, new HashSet(resolved));
|
||||
Collection resolvedRevs = new HashSet();
|
||||
for (Iterator iter = resolved.iterator(); iter.hasNext();) {
|
||||
IvyNode node = (IvyNode)iter.next();
|
||||
resolvedRevs.add(node.getId());
|
||||
resolvedRevs.add(node.getResolvedId());
|
||||
}
|
||||
_selectedRevs.put(moduleIdConf, resolvedRevs);
|
||||
}
|
||||
|
||||
public Collection getEvictedNodes(ModuleId mid, String rootModuleConf) {
|
||||
|
|
|
|||
|
|
@ -1605,6 +1605,21 @@ public class ResolveTest extends TestCase {
|
|||
assertTrue(ivy.getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
|
||||
}
|
||||
|
||||
public void testLatestMultiple() throws Exception {
|
||||
// mod1.5 depends on
|
||||
// latest mod1.4, which depends on mod1.2 2.2
|
||||
// latest mod1.2 (which is 2.2)
|
||||
ResolveReport report = _ivy.resolve(new File("test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml").toURL(),
|
||||
null, new String[] {"default"}, _cache, null, true);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
// dependencies
|
||||
assertTrue(_ivy.getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.4", "2.0")).exists());
|
||||
|
||||
assertTrue(_ivy.getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.2", "2.2")).exists());
|
||||
assertTrue(_ivy.getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
|
||||
}
|
||||
|
||||
|
||||
public void testVersionRange1() throws Exception {
|
||||
// mod 1.4 depends on mod1.2 [1.0,2.0[
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
<ivy-module version="1.0">
|
||||
<info organisation="org1"
|
||||
module="mod1.4"
|
||||
revision="2.0"
|
||||
status="integration"
|
||||
publication="20060701120000"
|
||||
/>
|
||||
<publications/>
|
||||
<dependencies>
|
||||
<dependency name="mod1.2" rev="2.2"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<ivy-module version="1.0">
|
||||
<info organisation="org1"
|
||||
module="mod1.5"
|
||||
revision="1.0.2"
|
||||
status="integration"
|
||||
publication="20060701120000"
|
||||
/>
|
||||
<publications/>
|
||||
<dependencies>
|
||||
<dependency name="mod1.4" rev="latest.integration"/>
|
||||
<dependency name="mod1.2" rev="latest.integration"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
Loading…
Reference in New Issue