You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/02/20 02:30:58 UTC
svn commit: r509403 - in /maven/sandbox/plugins/maven-enforcer-plugin:
pom.xml src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java
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);
+ }
+ }
}
}