Return-Path: X-Original-To: apmail-maven-commits-archive@www.apache.org Delivered-To: apmail-maven-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E770F105FF for ; Sat, 2 Nov 2013 11:09:05 +0000 (UTC) Received: (qmail 24292 invoked by uid 500); 2 Nov 2013 11:09:05 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 24107 invoked by uid 500); 2 Nov 2013 11:09:04 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 24100 invoked by uid 99); 2 Nov 2013 11:09:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 02 Nov 2013 11:09:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 02 Nov 2013 11:09:00 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C5C8823888A6; Sat, 2 Nov 2013 11:08:37 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1538169 - in /maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools: AbstractDistCheckMojo.java ConfigurationLineInfo.java Date: Sat, 02 Nov 2013 11:08:37 -0000 To: commits@maven.apache.org From: rfscholte@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20131102110837.C5C8823888A6@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 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