Index: src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java =================================================================== --- src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java (revision 1397733) +++ src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java (working copy) @@ -396,8 +396,13 @@ List rres = new ArrayList(); for (Iterator iter = revs.iterator(); iter.hasNext();) { String rev = (String) iter.next(); + ModuleRevisionId historicalMrid = ModuleRevisionId.newInstance(mrid, rev); + String snapshotVersion = findSnapshotVersion(historicalMrid); + if (snapshotVersion != null) { + pattern = pattern.replaceFirst("\\-\\[revision\\]", "-" + snapshotVersion); + } String resolvedPattern = IvyPatternHelper.substitute( - pattern, ModuleRevisionId.newInstance(mrid, rev), artifact); + pattern, historicalMrid, artifact); try { Resource res = repository.getResource(resolvedPattern); if ((res != null) && res.exists()) { Index: test/java/org/apache/ivy/core/resolve/ResolveTest.java =================================================================== --- test/java/org/apache/ivy/core/resolve/ResolveTest.java (revision 1398531) +++ test/java/org/apache/ivy/core/resolve/ResolveTest.java (working copy) @@ -4602,6 +4602,26 @@ "test-SNAPSHOT1", "jar", "jar").exists()); } + public void testResolveMaven2Snapshot1AsLatestIntegration() throws Exception { + // test case for IVY-1036 + // here we test maven SNAPSHOT versions handling, + // with m2 snapshotRepository/uniqueVersion set to true + // but retrieving by latest.integration + Ivy ivy = new Ivy(); + ivy.configure(new File("test/repositories/m2/ivysettings.xml")); + ResolveReport report = ivy.resolve( + ModuleRevisionId.newInstance("org.apache", "test-SNAPSHOT1", "latest.integration"), + getResolveOptions(new String[] {"*(public)"}), true); + assertNotNull(report); + assertFalse(report.hasError()); + + // dependencies + assertTrue(getIvyFileInCache( + ModuleRevisionId.newInstance("org.apache", "test-SNAPSHOT1", "2.0.2-SNAPSHOT")).exists()); + assertTrue(getArchiveFileInCache(ivy, "org.apache", "test-SNAPSHOT1", "2.0.2-SNAPSHOT", + "test-SNAPSHOT1", "jar", "jar").exists()); + } + public void testResolveMaven2Snapshot2() throws Exception { // test case for IVY-501 // here we test maven SNAPSHOT versions handling,