You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/04/27 13:58:07 UTC

svn commit: r651930 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java

Author: vsiveton
Date: Sun Apr 27 04:58:06 2008
New Revision: 651930

URL: http://svn.apache.org/viewvc?rev=651930&view=rev
Log:
o merged of r647445 r647446 r651929

Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
    maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=651930&r1=651929&r2=651930&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Sun Apr 27 04:58:06 2008
@@ -480,24 +480,28 @@
                                         artifact.setAvailableVersions( versions );
                                     }
 
+                                    Collections.sort( versions );
+
                                     VersionRange versionRange = artifact.getVersionRange();
 
                                     version = versionRange.matchVersion( versions );
 
                                     if ( version == null )
                                     {
+                                        // Getting the dependency trail so it can be logged in the exception
+                                        artifact.setDependencyTrail( node.getDependencyTrail() );
+
                                         if ( versions.isEmpty() )
                                         {
                                             throw new OverConstrainedVersionException(
                                                 "No versions are present in the repository for the artifact with a range " +
                                                     versionRange, artifact, remoteRepositories );
                                         }
-                                        else
-                                        {
-                                            throw new OverConstrainedVersionException( "Couldn't find a version in " +
-                                                versions + " to match range " + versionRange, artifact,
-                                                remoteRepositories );
-                                        }
+
+
+                                        throw new OverConstrainedVersionException( "Couldn't find a version in " +
+                                            versions + " to match range " + versionRange, artifact,
+                                                                                          remoteRepositories );
                                     }
                                 }
                                 else

Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?rev=651930&r1=651929&r2=651930&view=diff
==============================================================================
--- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (original)
+++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Sun Apr 27 04:58:06 2008
@@ -41,6 +41,7 @@
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.codehaus.plexus.PlexusTestCase;
 
@@ -339,7 +340,7 @@
 
         ArtifactResolutionResult res = collect( a );
 
-        assertTrue( res.hasVersionRangeViolations() );        
+        assertTrue( res.hasVersionRangeViolations() );
     }
 
     public void testUnboundedRangeBelowLastRelease()
@@ -686,6 +687,29 @@
             assertTrue( e.getMessage().indexOf( "[1.0-SNAPSHOT]" ) < e.getMessage().indexOf( "[1.0,)" ) );
         }
         */
+    }
+
+    public void testOverConstrainedVersionException()
+        throws ArtifactResolutionException, InvalidVersionSpecificationException
+    {
+        ArtifactSpec a = createArtifactSpec( "a", "1.0" );
+        a.addDependency( "b", "[1.0, 2.0)" );
+        a.addDependency( "c", "[3.3.0,4.0.0)" );
+
+        ArtifactSpec b = createArtifactSpec( "b", "1.0.0" );
+        b.addDependency( "c", "3.3.0-v3346" );
+
+        ArtifactSpec c = createArtifactSpec( "c", "3.2.1-v3235e" );
+
+        try
+        {
+            ArtifactResolutionResult res = collect( createSet( new Object[]{a.artifact} ) );
+        }
+        catch ( OverConstrainedVersionException e )
+        {
+            assertTrue( "Versions unordered", e.getMessage().indexOf( "[3.2.1-v3235e, 3.3.0-v3346]" ) != -1);
+            assertTrue( "DependencyTrail unresolved", e.getMessage().indexOf( "Path to dependency:" ) != -1);
+        }
     }
 
     private Artifact getArtifact( String id, Set artifacts )