You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2013/11/02 12:08:37 UTC

svn commit: r1538169 - in /maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools: AbstractDistCheckMojo.java ConfigurationLineInfo.java

Author: rfscholte
Date: Sat Nov  2 11:08:37 2013
New Revision: 1538169

URL: http://svn.apache.org/r1538169
Log:
Support ranges

Modified:
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java?rev=1538169&r1=1538168&r2=1538169&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java Sat Nov  2 11:08:37 2013
@@ -28,6 +28,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
@@ -38,6 +39,9 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.artifact.repository.metadata.Metadata;
 import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+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.doxia.sink.Sink;
 import org.apache.maven.doxia.siterenderer.Renderer;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -195,7 +199,15 @@ public abstract class AbstractDistCheckM
                 // 3 space
                 if ( line.startsWith( "   " ) )
                 {
-                    ConfigurationLineInfo aLine = new ConfigurationLineInfo( currentGroup, line.trim().split( " " ) );
+                    ConfigurationLineInfo aLine;
+                    try
+                    {
+                        aLine = new ConfigurationLineInfo( currentGroup, line.trim().split( " " ) );
+                    }
+                    catch ( InvalidVersionSpecificationException e )
+                    {
+                        throw new MojoExecutionException( e.getMessage() );
+                    }
                     if ( useDetailed() )
                     {
                         checkArtifact( aLine, getVersion( aLine ) );
@@ -203,7 +215,15 @@ public abstract class AbstractDistCheckM
                 }
                 else if ( line.startsWith( "  " ) ) 
                 {
-                    ConfigurationLineInfo aLine = new ConfigurationLineInfo( currentGroup, line.trim().split( " " ) );
+                    ConfigurationLineInfo aLine;
+                    try
+                    {
+                        aLine = new ConfigurationLineInfo( currentGroup, line.trim().split( " " ) );
+                    }
+                    catch ( InvalidVersionSpecificationException e )
+                    {
+                        throw new MojoExecutionException( e.getMessage() );
+                    }
 
                     checkArtifact( aLine, getVersion( aLine ) );
                 } 
@@ -227,10 +247,29 @@ public abstract class AbstractDistCheckM
 
             aLine.setMetadata( metadata );
 
-            String version =
-                ( aLine.getForcedVersion() == null ) ? metadata.getVersioning().getLatest()
-                                : aLine.getForcedVersion();
-
+            String version;
+            if ( aLine.getVersionRange() != null )
+            {
+                if ( aLine.getVersionRange().hasRestrictions() )
+                {
+                    List<ArtifactVersion> artifactVersions = new ArrayList<>();
+                    for ( String versioningVersion : metadata.getVersioning().getVersions() )
+                    {
+                        artifactVersions.add( new DefaultArtifactVersion( versioningVersion ) );
+                    }
+                    version = aLine.getVersionRange().matchVersion( artifactVersions ).toString();
+                }
+                else
+                {
+                    version = aLine.getVersionRange().getRecommendedVersion().toString();
+                }
+                aLine.setForceVersion( version );
+            }
+            else
+            {
+                version = metadata.getVersioning().getLatest();
+            }
+            
             if ( getLog().isDebugEnabled() )
             {
                 getLog().debug( "Checking information for artifact: " + aLine.getGroupId() + ":"

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java?rev=1538169&r1=1538168&r2=1538169&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java Sat Nov  2 11:08:37 2013
@@ -26,6 +26,8 @@ import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
 
 /**
  *
@@ -40,7 +42,9 @@ class ConfigurationLineInfo
     private final boolean srcBin;
 
     private final String artifactId;
-    private final String forceVersion;
+    private final VersionRange versionRange;
+    
+    private String forceVersion;
     private String indexPageId;
     private Metadata metadata;
 
@@ -51,18 +55,18 @@ class ConfigurationLineInfo
         this.srcBin = ( infos.length > 2 ) && "src+bin".equals( infos[2] );
 
         this.artifactId = null;
-        this.forceVersion = null;
+        this.versionRange = null;
         this.indexPageId = null;
     }
 
-    public ConfigurationLineInfo( ConfigurationLineInfo group, String[] infos )
+    public ConfigurationLineInfo( ConfigurationLineInfo group, String[] infos ) throws InvalidVersionSpecificationException
     {
         this.directory = group.getDirectory();
         this.groupId = group.getGroupId();
         this.srcBin = group.isSrcBin();
 
         this.artifactId = infos[0];
-        this.forceVersion = ( infos.length > 1 && !infos[1].startsWith( "IP" ) ) ? infos[1] : null;
+        this.versionRange = ( infos.length > 1 && !infos[1].startsWith( "IP" ) ) ? VersionRange.createFromVersionSpec( infos[1] ) : null;
         this.indexPageId = null;
         for ( String info : infos )
         {
@@ -83,6 +87,16 @@ class ConfigurationLineInfo
     {
         return forceVersion;
     }
+    
+    public void setForceVersion( String forceVersion )
+    {
+        this.forceVersion = forceVersion;
+    }
+    
+    public VersionRange getVersionRange()
+    {
+        return versionRange;
+    }
 
     /**
      * @return the groupId