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/11/14 11:28:31 UTC
svn commit: r594826 - in /maven/enforcer/trunk/enforcer-rules/src:
main/java/org/apache/maven/plugins/enforcer/
test/java/org/apache/maven/plugins/enforcer/
test/java/org/apache/maven/plugins/enforcer/utils/
Author: brianf
Date: Wed Nov 14 02:28:30 2007
New Revision: 594826
URL: http://svn.apache.org/viewvc?rev=594826&view=rev
Log:
MENFORCER-22: new RequireReleaseVersion rule
Added:
maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseVersion.java
maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseVersion.java
Modified:
maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestNoSnapshots.java
maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java
Added: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseVersion.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseVersion.java?rev=594826&view=auto
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseVersion.java (added)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireReleaseVersion.java Wed Nov 14 02:28:30 2007
@@ -0,0 +1,73 @@
+package org.apache.maven.plugins.enforcer;
+
+import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+
+/**
+ * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
+ *
+ * This rule checks that the current project is not a
+ * snapshot
+ */
+public class RequireReleaseVersion
+ implements EnforcerRule
+{
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.maven.enforcer.rule.api.EnforcerRule#execute(org.apache.maven.enforcer.rule.api.EnforcerRuleHelper)
+ */
+ public void execute ( EnforcerRuleHelper theHelper )
+ throws EnforcerRuleException
+ {
+ try
+ {
+ MavenProject project = (MavenProject) theHelper.evaluate( "${project}" );
+
+ if(project.getArtifact().isSnapshot())
+ {
+ throw new EnforcerRuleException("This project cannot be a snapshot:"+project.getArtifact().getId());
+ }
+ }
+ catch ( ExpressionEvaluationException e )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve the project.", e );
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.maven.enforcer.rule.api.EnforcerRule#getCacheId()
+ */
+ public String getCacheId ()
+ {
+ return "0";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.maven.enforcer.rule.api.EnforcerRule#isCacheable()
+ */
+ public boolean isCacheable ()
+ {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.maven.enforcer.rule.api.EnforcerRule#isResultValid(org.apache.maven.enforcer.rule.api.EnforcerRule)
+ */
+ public boolean isResultValid ( EnforcerRule theCachedRule )
+ {
+ return false;
+ }
+
+}
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=594826&r1=594825&r2=594826&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 Nov 14 02:28:30 2007
@@ -26,6 +26,7 @@
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
import org.apache.maven.plugin.testing.ArtifactStubFactory;
+import org.apache.maven.plugins.enforcer.utils.TestEnforcerRuleUtils;
/**
*
@@ -48,43 +49,15 @@
rule.setSearchTransitive( false );
- execute( rule, helper, false );
+ TestEnforcerRuleUtils.execute( rule, helper, false );
rule.setSearchTransitive( true );
- execute( rule, helper, true );
+ TestEnforcerRuleUtils.execute( rule, helper, true );
}
- /**
- * Simpler wrapper to execute and deal with the expected
- * result.
- *
- * @param rule
- * @param helper
- * @param shouldFail
- */
- private void execute( NoSnapshots rule, EnforcerRuleHelper helper, boolean shouldFail )
- {
- try
- {
- rule.message = "Test Message";
- rule.execute( helper );
- if ( shouldFail )
- {
- fail( "Exception expected." );
- }
- }
- catch ( EnforcerRuleException e )
- {
- if ( !shouldFail )
- {
- fail( "No Exception expected:" + e.getLocalizedMessage() );
- }
- helper.getLog().debug(e.getMessage());
- }
- }
-
+
public void testId ()
{
NoSnapshots rule = new NoSnapshots();
Added: maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseVersion.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseVersion.java?rev=594826&view=auto
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseVersion.java (added)
+++ maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseVersion.java Wed Nov 14 02:28:30 2007
@@ -0,0 +1,46 @@
+package org.apache.maven.plugins.enforcer;
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.plugin.testing.ArtifactStubFactory;
+import org.apache.maven.plugins.enforcer.utils.TestEnforcerRuleUtils;
+
+/**
+ * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
+ *
+ */
+public class TestRequireReleaseVersion
+ extends TestCase
+{
+ public void testMojo() throws IOException
+ {
+ ArtifactStubFactory factory = new ArtifactStubFactory();
+ MockProject project = new MockProject();
+ EnforcerRuleHelper helper = EnforcerTestUtils.getHelper( project );
+
+ project.setArtifact( factory.getReleaseArtifact() );
+
+ EnforcerRule rule = new RequireReleaseVersion();
+
+ TestEnforcerRuleUtils.execute( rule, helper, false );
+
+ project.setArtifact( factory.getSnapshotArtifact() );
+
+ TestEnforcerRuleUtils.execute( rule, helper, true );
+
+ }
+
+ public void testCache()
+ {
+ EnforcerRule rule = new RequireReleaseVersion();
+ assertFalse( rule.isCacheable() );
+ assertFalse(rule.isResultValid(null));
+ assertEquals( "0", rule.getCacheId() );
+ }
+
+
+}
Modified: maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java?rev=594826&r1=594825&r2=594826&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java Wed Nov 14 02:28:30 2007
@@ -6,6 +6,9 @@
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
@@ -107,5 +110,33 @@
m.setArtifactId( "a" );
models.contains( m );
+ }
+
+ /**
+ * Simpler wrapper to execute and deal with the expected
+ * result.
+ *
+ * @param rule
+ * @param helper
+ * @param shouldFail
+ */
+ public static void execute( EnforcerRule rule, EnforcerRuleHelper helper, boolean shouldFail )
+ {
+ try
+ {
+ rule.execute( helper );
+ if ( shouldFail )
+ {
+ fail( "Exception expected." );
+ }
+ }
+ catch ( EnforcerRuleException e )
+ {
+ if ( !shouldFail )
+ {
+ fail( "No Exception expected:" + e.getLocalizedMessage() );
+ }
+ helper.getLog().debug(e.getMessage());
+ }
}
}