You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2007/11/05 14:55:20 UTC

svn commit: r591996 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java

Author: hboutemy
Date: Mon Nov  5 05:55:20 2007
New Revision: 591996

URL: http://svn.apache.org/viewvc?rev=591996&view=rev
Log:
[MANTTASKS-22] ensure proper order of artifacts in ArtifactResolutionResult

Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
    maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java?rev=591996&r1=591995&r2=591996&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java Mon Nov  5 05:55:20 2007
@@ -24,8 +24,8 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -85,7 +85,7 @@
     {
         if ( artifacts == null )
         {
-            artifacts = new HashSet();
+            artifacts = new LinkedHashSet();
 
             for ( Iterator i = resolutionNodes.iterator(); i.hasNext(); )
             {

Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java?rev=591996&r1=591995&r2=591996&view=diff
==============================================================================
--- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java (original)
+++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java Mon Nov  5 05:55:20 2007
@@ -29,6 +29,8 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -232,5 +234,53 @@
 
         assertLocalArtifactPresent( l );
     }
-}
 
+    public void testTransitiveResolutionOrder()
+        throws Exception
+    {
+        Artifact m = createLocalArtifact( "m", "1.0" );
+
+        Artifact n = createLocalArtifact( "n", "1.0" );
+
+        ArtifactMetadataSource mds = new ArtifactMetadataSource()
+        {
+            public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository,
+                                             List remoteRepositories )
+                throws ArtifactMetadataRetrievalException
+            {
+                Set dependencies = new HashSet();
+
+                return new ResolutionGroup( artifact, dependencies, remoteRepositories );
+            }
+
+            public List retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository,
+                                                   List remoteRepositories )
+            {
+                throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
+            }
+        };
+
+        ArtifactResolutionResult result = null;
+
+        Set set = new LinkedHashSet();
+        set.add( n );
+        set.add( m );
+
+        result = artifactResolver.resolveTransitively( set, projectArtifact, remoteRepositories(), localRepository(), mds );
+
+        Iterator i = result.getArtifacts().iterator();
+        assertEquals( "n should be first", n, i.next() );
+        assertEquals( "m should be second", m, i.next() );
+
+        // inverse order
+        set = new LinkedHashSet();
+        set.add( m );
+        set.add( n );
+
+        result = artifactResolver.resolveTransitively( set, projectArtifact, remoteRepositories(), localRepository(), mds );
+
+        i = result.getArtifacts().iterator();
+        assertEquals( "m should be first", m, i.next() );
+        assertEquals( "n should be second", n, i.next() );
+    }
+}
\ No newline at end of file