You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/06/13 19:32:12 UTC

svn commit: r784438 - in /maven/components/trunk: maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Author: bentmann
Date: Sat Jun 13 17:32:12 2009
New Revision: 784438

URL: http://svn.apache.org/viewvc?rev=784438&view=rev
Log:
o Fixed handling of version ranges

Modified:
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java?rev=784438&r1=784437&r2=784438&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java Sat Jun 13 17:32:12 2009
@@ -137,7 +137,10 @@
         clone.setFile( artifact.getFile() );
 
         clone.setAvailableVersions( copyList( artifact.getAvailableVersions() ) );
-        clone.setBaseVersion( artifact.getBaseVersion() );
+        if ( artifact.getVersion() != null )
+        {
+            clone.setBaseVersion( artifact.getBaseVersion() );
+        }
         clone.setDependencyFilter( artifact.getDependencyFilter() );
         clone.setDependencyTrail( copyList( artifact.getDependencyTrail() ) );
         clone.setDownloadUrl( artifact.getDownloadUrl() );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=784438&r1=784437&r2=784438&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Sat Jun 13 17:32:12 2009
@@ -39,6 +39,8 @@
 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Exclusion;
 import org.apache.maven.project.DefaultProjectBuildingRequest;
@@ -149,17 +151,21 @@
                 {
                     Artifact dependencyArtifact;
 
-                    //TODO: deal with this in a unified way, probably just looking at the dependency.                        
-                    if ( d.getClassifier() != null )
+                    VersionRange versionRange;
+                    try
                     {
-                        dependencyArtifact = repositorySystem.createArtifactWithClassifier( d.getGroupId(), d.getArtifactId(), d.getVersion(), d.getType(), d.getClassifier() );
+                        versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
                     }
-                    else
+                    catch ( InvalidVersionSpecificationException e )
                     {
-                        dependencyArtifact = repositorySystem.createArtifact( d.getGroupId(), d.getArtifactId(), d.getVersion(), effectiveScope, d.getType() );
+                        throw new ArtifactMetadataRetrievalException( "Invalid version for dependency "
+                            + d.getManagementKey() + ": " + e.getMessage(), e, pomArtifact );
                     }
 
-                    dependencyArtifact.setScope( effectiveScope );
+                    dependencyArtifact =
+                        repositorySystem.createDependencyArtifact( d.getGroupId(), d.getArtifactId(), versionRange,
+                                                                   d.getType(), d.getClassifier(), effectiveScope,
+                                                                   d.isOptional() );
 
                     if ( dependencyFilter == null || dependencyFilter.include( dependencyArtifact ) )
                     {
@@ -252,7 +258,7 @@
         }
         catch ( RepositoryMetadataResolutionException e )
         {
-            throw new ArtifactMetadataRetrievalException( e.getMessage(), e );
+            throw new ArtifactMetadataRetrievalException( e.getMessage(), e, artifact );
         }
 
         return retrieveAvailableVersionsFromMetadata( metadata.getMetadata() );
@@ -268,7 +274,7 @@
         }
         catch ( RepositoryMetadataResolutionException e )
         {
-            throw new ArtifactMetadataRetrievalException( e.getMessage(), e );
+            throw new ArtifactMetadataRetrievalException( e.getMessage(), e, artifact );
         }
 
         return retrieveAvailableVersionsFromMetadata( metadata.getMetadata() );