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());
+        }
     }
 }