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


Reply via email to