Author: brianf Date: Mon Feb 19 17:30:57 2007 New Revision: 509403 URL: http://svn.apache.org/viewvc?view=rev&rev=509403 Log: initial mavenVersion mojo
Modified: maven/sandbox/plugins/maven-enforcer-plugin/pom.xml maven/sandbox/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java Modified: maven/sandbox/plugins/maven-enforcer-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-enforcer-plugin/pom.xml?view=diff&rev=509403&r1=509402&r2=509403 ============================================================================== --- maven/sandbox/plugins/maven-enforcer-plugin/pom.xml (original) +++ maven/sandbox/plugins/maven-enforcer-plugin/pom.xml Mon Feb 19 17:30:57 2007 @@ -22,7 +22,7 @@ <parent> <artifactId>maven-plugins</artifactId> <groupId>org.apache.maven.plugins</groupId> - <version>8-SNAPSHOT</version> + <version>7</version> </parent> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> @@ -145,17 +145,27 @@ <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-artifact</artifactId> - <version>2.0.4</version> + <version>2.0.5</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> - <version>2.0.4</version> + <version>2.0.5</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-project</artifactId> - <version>2.0.4</version> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-core</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4-alpha-1</version> </dependency> </dependencies> </project> Modified: maven/sandbox/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java?view=diff&rev=509403&r1=509402&r2=509403 ============================================================================== --- maven/sandbox/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java (original) +++ maven/sandbox/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java Mon Feb 19 17:30:57 2007 @@ -19,23 +19,86 @@ * under the License. */ +import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.execution.RuntimeInformation; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.Log; +import org.codehaus.plexus.util.StringUtils; /** - * Goal which fails the build if Maven isn't the correct version - * - * @goal maven + * Goal which fails the build if Maven isn't the correct mavenVersion * + * @goal maven + * @author Brian Fox * @phase process-sources */ public class MavenMojo extends AbstractMojo { + /** + * Used to look up Artifacts in the remote repository. + * + * @parameter expression="${component.org.apache.maven.execution.RuntimeInformation}" + * @required + * @readonly + */ + protected RuntimeInformation rti; + + /** + * Specify the required Version of Maven. + * Some examples are + * <ul> + * <li><code>2.0.4</code> Version 2.0.4</li> + * <li><code>[2.0,2.1)</code> Versions 2.0 (included) to 2.1 (not included)</li> + * <li><code>[2.0,2.1]</code> Versions 2.0 to 2.1 (both included)</li> + * <li><code>[2.0.5,)</code> Versions 2.0.5 and higher</li> + * <li><code>(,2.0.5],[2.1.1,)</code> Versions up to 2.0.5 (included) and 2.1.1 or higher</li> + * </ul> + * + * @parameter expression="${enforcer.maven.version}" default-value="" + * @required + */ + private String mavenVersion = null; + + /** + * Flag to warn only if the mavenVersion check fails. + * + * @parameter expression="${enforcer.maven.warn}" default-value="false" + */ + private boolean warn = false; public void execute() throws MojoExecutionException { - + if (StringUtils.isEmpty(this.mavenVersion)) + { + throw new MojoExecutionException("MavenVersion can't be empty."); + } + + ArtifactVersion version = rti.getApplicationVersion(); + VersionRange vr; + + vr = VersionRange.createFromVersion(this.mavenVersion); + + Log log = this.getLog(); + String msg = "Detected Maven Version: "+ version; + if (vr.containsVersion(version)) + { + log.debug(msg+" is allowed."); + } + else + { + String error = msg+" is not in the allowed range: "+vr; + if (warn) + { + log.warn(error); + } + else + { + throw new MojoExecutionException(error); + } + } } }