Author: rfscholte
Date: Fri Oct 26 21:40:51 2012
New Revision: 1402675
URL: http://svn.apache.org/viewvc?rev=1402675&view=rev
Log:
[MNG-5324] Incorrect parsing of metadata by Maven: Cannot find snapshot
artifact with older timestamp
Added junit-test, can't reproduce it yet.
Added:
maven/maven-3/trunk/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/
(with props)
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
Added:
maven/maven-3/trunk/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java?rev=1402675&view=auto
==============================================================================
---
maven/maven-3/trunk/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
(added)
+++
maven/maven-3/trunk/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
Fri Oct 26 21:40:51 2012
@@ -0,0 +1,130 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.net.MalformedURLException;
+
+import org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
+import org.apache.maven.repository.internal.util.ConsoleTransferListener;
+import org.codehaus.plexus.PlexusTestCase;
+import org.sonatype.aether.RepositorySystem;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.impl.VersionResolver;
+import org.sonatype.aether.repository.LocalRepository;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.resolution.VersionRequest;
+import org.sonatype.aether.resolution.VersionResult;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
+
+public class DefaultVersionResolverTest
+ extends PlexusTestCase
+{
+ private DefaultVersionResolver versionResolver;
+
+ private RepositorySystem system;
+
+ private RepositorySystemSession session;
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ // be sure we're testing the right class, i.e.
DefaultVersionResolver.class
+ versionResolver = (DefaultVersionResolver) lookup(
VersionResolver.class, "default" );
+ system = lookup( RepositorySystem.class );
+ session = newMavenRepositorySystemSession( system );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ versionResolver = null;
+ super.tearDown();
+ }
+
+ public void
testResolveSeparateInstalledClassifiedNonUniqueVersionedArtifacts()
+ throws Exception
+ {
+ VersionRequest requestB = new VersionRequest();
+ requestB.addRepository( newTestRepository() );
+ Artifact artifactB =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324",
"classifierB", "jar", "07.20.3-SNAPSHOT" );
+ requestB.setArtifact( artifactB );
+
+ VersionResult resultB = versionResolver.resolveVersion( session,
requestB );
+ assertEquals( "07.20.3-20120809.112920-97", resultB.getVersion() );
+
+ VersionRequest requestA = new VersionRequest();
+ requestA.addRepository( newTestRepository() );
+
+ Artifact artifactA =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324",
"classifierA", "jar", "07.20.3-SNAPSHOT" );
+ requestA.setArtifact( artifactA );
+
+ VersionResult resultA = versionResolver.resolveVersion( session,
requestA );
+ assertEquals( "07.20.3-20120809.112124-88", resultA.getVersion() );
+ }
+
+ public void testResolveSeparateInstalledClassifiedNonVersionedArtifacts()
+ throws Exception
+ {
+ VersionRequest requestA = new VersionRequest();
+ requestA.addRepository( newTestRepository() );
+ String versionA = "07.20.3-20120809.112124-88";
+ Artifact artifactA =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324",
"classifierA", "jar", versionA );
+ requestA.setArtifact( artifactA );
+
+ VersionResult resultA = versionResolver.resolveVersion( session,
requestA );
+ assertEquals( versionA, resultA.getVersion() );
+
+ VersionRequest requestB = new VersionRequest();
+ requestB.addRepository( newTestRepository() );
+ String versionB = "07.20.3-20120809.112920-97";
+ Artifact artifactB =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324",
"classifierB", "jar", versionB );
+ requestB.setArtifact( artifactB );
+
+ VersionResult resultB = versionResolver.resolveVersion( session,
requestB );
+ assertEquals( versionB, resultB.getVersion() );
+ }
+
+ public static RepositorySystemSession newMavenRepositorySystemSession(
RepositorySystem system )
+ {
+ MavenRepositorySystemSession session = new
MavenRepositorySystemSession();
+
+ LocalRepository localRepo = new LocalRepository( "target/local-repo" );
+ session.setLocalRepositoryManager( system.newLocalRepositoryManager(
localRepo ) );
+
+ session.setTransferListener( new ConsoleTransferListener() );
+ session.setRepositoryListener( new ConsoleRepositoryListener() );
+
+ return session;
+ }
+
+ public static RemoteRepository newTestRepository()
+ throws MalformedURLException
+ {
+ return new RemoteRepository( "repo", "default",
+ getTestFile( "target/test-classes/repo"
).toURI().toURL().toString() );
+ }
+}
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/
------------------------------------------------------------------------------
bugtraq:label = Enter issue ID:
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/
------------------------------------------------------------------------------
bugtraq:message = Issue id: %BUGID%
Propchange:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/
------------------------------------------------------------------------------
bugtraq:url = http://jira.codehaus.org/browse/%BUGID%
Added:
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml?rev=1402675&view=auto
==============================================================================
---
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
(added)
+++
maven/maven-3/trunk/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
Fri Oct 26 21:40:51 2012
@@ -0,0 +1,26 @@
+<metadata modelVersion="1.1.0">
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>dep-mng5324</artifactId>
+ <version>07.20.3-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <timestamp>20120809.112920</timestamp>
+ <buildNumber>97</buildNumber>
+ </snapshot>
+ <lastUpdated>20120809112920</lastUpdated>
+ <snapshotVersions>
+ <snapshotVersion>
+ <classifier>classifierA</classifier>
+ <extension>jar</extension>
+ <value>07.20.3-20120809.112124-88</value>
+ <updated>20120809112124</updated>
+ </snapshotVersion>
+ <snapshotVersion>
+ <classifier>classifierB</classifier>
+ <extension>jar</extension>
+ <value>07.20.3-20120809.112920-97</value>
+ <updated>20120809112920</updated>
+ </snapshotVersion>
+ </snapshotVersions>
+ </versioning>
+</metadata>
\ No newline at end of file