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/23 02:55:33 UTC
svn commit: r510758 - in /maven/sandbox/trunk/plugins/maven-enforcer-plugin:
./ src/main/java/org/apache/maven/plugin/enforcer/
Author: brianf
Date: Thu Feb 22 17:55:32 2007
New Revision: 510758
URL: http://svn.apache.org/viewvc?view=rev&rev=510758
Log:
intermediate work product.
Added:
maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/abstractVersionEnforcer.java
maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/enforce.java
Modified:
maven/sandbox/trunk/plugins/maven-enforcer-plugin/pom.xml
maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/JdkMojo.java
maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java
Modified: maven/sandbox/trunk/plugins/maven-enforcer-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-enforcer-plugin/pom.xml?view=diff&rev=510758&r1=510757&r2=510758
==============================================================================
--- maven/sandbox/trunk/plugins/maven-enforcer-plugin/pom.xml (original)
+++ maven/sandbox/trunk/plugins/maven-enforcer-plugin/pom.xml Thu Feb 22 17:55:32 2007
@@ -167,5 +167,10 @@
<artifactId>plexus-utils</artifactId>
<version>1.4-alpha-1</version>
</dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.3</version>
+ </dependency>
</dependencies>
</project>
Modified: maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/JdkMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/JdkMojo.java?view=diff&rev=510758&r1=510757&r2=510758
==============================================================================
--- maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/JdkMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/JdkMojo.java Thu Feb 22 17:55:32 2007
@@ -19,8 +19,12 @@
* under the License.
*/
+import org.apache.commons.lang.SystemUtils;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
/**
* Goal which fails the build if the jdk isn't the correct version
@@ -30,12 +34,34 @@
* @phase process-sources
*/
public class JdkMojo
- extends AbstractMojo
+ extends abstractVersionEnforcer
{
+ /**
+ * 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.jdk.version}" default-value=""
+ * @required
+ */
+ private String jdkVersion = null;
+ /**
+ * Flag to warn only if the mavenVersion check fails.
+ *
+ * @parameter expression="${enforcer.jdk.warn}" default-value="false"
+ */
+ private boolean warn = false;
public void execute()
- throws MojoExecutionException
+ throws MojoExecutionException, MojoFailureException
{
-
+ ArtifactVersion version = new DefaultArtifactVersion(SystemUtils.JAVA_VERSION_TRIMMED.replace('_','-'));
+ this.enforceVersion("JDK",this.jdkVersion,version,this.warn);
}
}
Modified: maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java?view=diff&rev=510758&r1=510757&r2=510758
==============================================================================
--- maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/MavenMojo.java Thu Feb 22 17:55:32 2007
@@ -24,6 +24,7 @@
import org.apache.maven.execution.RuntimeInformation;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.plexus.util.StringUtils;
@@ -35,7 +36,7 @@
* @phase process-sources
*/
public class MavenMojo
- extends AbstractMojo
+ extends abstractVersionEnforcer
{
/**
* Used to look up Artifacts in the remote repository.
@@ -70,35 +71,9 @@
private boolean warn = false;
public void execute()
- throws MojoExecutionException
+ throws MojoExecutionException, MojoFailureException
{
- 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);
- }
- }
+ this.enforceVersion("Maven",this.mavenVersion,version,this.warn);
}
}
Added: maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/abstractVersionEnforcer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/abstractVersionEnforcer.java?view=auto&rev=510758
==============================================================================
--- maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/abstractVersionEnforcer.java (added)
+++ maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/abstractVersionEnforcer.java Thu Feb 22 17:55:32 2007
@@ -0,0 +1,54 @@
+/**
+ *
+ */
+package org.apache.maven.plugin.enforcer;
+
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * @author brianf
+ *
+ */
+public abstract class abstractVersionEnforcer
+ extends AbstractMojo
+{
+
+ public void enforceVersion( String variableName, String requiredVersionRange, ArtifactVersion actualVersion,
+ boolean warn )
+ throws MojoExecutionException, MojoFailureException
+ {
+ if ( StringUtils.isEmpty( requiredVersionRange ) )
+ {
+ throw new MojoExecutionException( variableName + " version can't be empty." );
+ }
+
+ VersionRange vr;
+
+ vr = VersionRange.createFromVersion( requiredVersionRange );
+
+ Log log = this.getLog();
+ String msg = "Detected " + variableName + " Version: " + actualVersion;
+ if ( vr.containsVersion( actualVersion ) )
+ {
+ 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 );
+ }
+ }
+ }
+}
Added: maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/enforce.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/enforce.java?view=auto&rev=510758
==============================================================================
--- maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/enforce.java (added)
+++ maven/sandbox/trunk/plugins/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/enforce.java Thu Feb 22 17:55:32 2007
@@ -0,0 +1,177 @@
+package org.apache.maven.plugin.enforcer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.SystemUtils;
+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.execution.RuntimeInformation;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * Goal which fails the build if the jdk isn't the correct version
+ *
+ * @goal enforce
+ * @author Brian Fox
+ * @phase process-sources
+ */
+public class enforce
+ 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;
+
+ /**
+ * Specify the required Version of JDK. 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.jdk.version}" default-value=""
+ * @required
+ */
+ private String jdkVersion = null;
+
+ /**
+ * Flag to warn only if the mavenVersion check fails.
+ *
+ * @parameter expression="${enforcer.warn}" default-value="false"
+ */
+ private boolean warn = false;
+
+ /**
+ *
+ */
+ public enforce()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.maven.plugin.Mojo#execute()
+ */
+ public void execute()
+ throws MojoExecutionException, MojoFailureException
+ {
+ if ( StringUtils.isNotEmpty( this.mavenVersion ) )
+ {
+ ArtifactVersion version = rti.getApplicationVersion();
+ this.enforceVersion( "Maven", this.mavenVersion, version, this.warn );
+ }
+
+ if ( StringUtils.isNotEmpty( this.jdkVersion ) )
+ {
+ ArtifactVersion version = new DefaultArtifactVersion(fixJDKVersion(SystemUtils.JAVA_VERSION_TRIMMED));
+
+ this.enforceVersion( "JDK", fixJDKVersion(this.jdkVersion), version, this.warn );
+ }
+
+ }
+
+ public String fixJDKVersion( String jdkVersion )
+ {
+
+ /* String token[] = StringUtils.split( jdkVersion.replace( '_', '.' ), "." );
+ StringBuffer buffer = new StringBuffer( jdkVersion.length() );
+ for ( int i = 0; i <= 2; i++ )
+ {
+ buffer.append( token[i] );
+ buffer.append( "." );
+ }
+
+ String version = buffer.toString();
+ return StringUtils.stripEnd(version,".");
+ */
+ return jdkVersion;
+ }
+
+ public void enforceVersion( String variableName, String requiredVersionRange, ArtifactVersion actualVersion,
+ boolean warn )
+ throws MojoExecutionException, MojoFailureException
+ {
+ VersionRange vr = null;
+ try
+ {
+ vr = VersionRange.createFromVersionSpec( requiredVersionRange );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ Log log = this.getLog();
+ String msg = "Detected " + variableName + " Version: " + actualVersion;
+ if ( vr.containsVersion( actualVersion ) )
+ {
+ 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 );
+ }
+ }
+ }
+}