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 2008/05/29 04:46:41 UTC
svn commit: r661187 - in /maven/enforcer/trunk/enforcer-rules/src:
main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java
test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java
Author: brianf
Date: Wed May 28 19:46:40 2008
New Revision: 661187
URL: http://svn.apache.org/viewvc?rev=661187&view=rev
Log:
MENFORCER-43 patch from Jacob Robertson to make the snapshots rule able to be applied when the main artifact is a release only.
Modified:
maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java
maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java
Modified: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java?rev=661187&r1=661186&r2=661187&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseDeps.java Wed May 28 19:46:40 2008
@@ -24,7 +24,10 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
// TODO: Auto-generated Javadoc
/**
@@ -38,7 +41,47 @@
{
/**
- * Checks the set of dependencies to see if any snapshots are included.
+ * Allows this rule to execute only when this project is a release.
+ *
+ * @parameter
+ */
+ public boolean onlyWhenRelease = false;
+
+ /**
+ * Override parent to allow optional ignore of this rule.
+ */
+ public void execute( EnforcerRuleHelper helper )
+ throws EnforcerRuleException
+ {
+ boolean callSuper;
+ if ( onlyWhenRelease )
+ {
+ // get the project
+ MavenProject project = null;
+ try
+ {
+ project = (MavenProject) helper.evaluate( "${project}" );
+ }
+ catch ( ExpressionEvaluationException eee )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve the MavenProject: ", eee );
+ }
+
+ // only call super if this project is a release
+ callSuper = !project.getArtifact().isSnapshot();
+ }
+ else
+ {
+ callSuper = true;
+ }
+ if ( callSuper )
+ {
+ super.execute(helper);
+ }
+ }
+
+ /**
+ * Checks the set of dependencies to see if any snapshots are included
*
* @param dependencies the dependencies
* @param log the log
Modified: maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java?rev=661187&r1=661186&r2=661187&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java Wed May 28 19:46:40 2008
@@ -58,7 +58,20 @@
TestEnforcerRuleUtils.execute( rule, helper, true );
- }
+ // test onlyWhenRelease in each case
+
+ project.setArtifact( factory.getSnapshotArtifact() );
+
+ TestEnforcerRuleUtils.execute( rule, helper, true );
+
+ rule.onlyWhenRelease = true;
+
+ TestEnforcerRuleUtils.execute( rule, helper, false );
+
+ project.setArtifact( factory.getReleaseArtifact() );
+
+ TestEnforcerRuleUtils.execute( rule, helper, true );
+ }
/**
* Test id.