You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/09/11 11:11:53 UTC

[maven-enforcer] branch master updated (1a7e64f -> a06b47b)

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git


    from 1a7e64f  Bump mrm-maven-plugin from 1.3.0 to 1.4.1
     new da61e44  [MENFORCER-430] Allow one of many files in RequireFiles rules to pass
     new a06b47b  [MENFORCER-430] Allow one of many files in RequiresFiles rules to pass.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../plugins/enforcer/AbstractRequireFiles.java     | 65 +++++++++++++++-------
 .../src/site/apt/requireFilesDontExist.apt.vm      |  2 +
 .../src/site/apt/requireFilesExist.apt.vm          |  2 +
 .../src/site/apt/requireFilesSize.apt.vm           |  2 +
 .../enforcer/TestRequireFilesDontExist.java        | 19 +++++++
 .../plugins/enforcer/TestRequireFilesExist.java    | 20 +++++++
 .../plugins/enforcer/TestRequireFilesSize.java     | 20 +++++++
 7 files changed, 111 insertions(+), 19 deletions(-)


[maven-enforcer] 01/02: [MENFORCER-430] Allow one of many files in RequireFiles rules to pass

Posted by sj...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git

commit da61e445be7546b9cf1053bf59306576f2ba6a76
Author: Björn Raupach <ra...@me.com>
AuthorDate: Sun Sep 4 11:55:02 2022 +0200

    [MENFORCER-430] Allow one of many files in RequireFiles rules to pass
---
 .../plugins/enforcer/AbstractRequireFiles.java     | 65 +++++++++++++++-------
 .../enforcer/TestRequireFilesDontExist.java        | 28 ++++++++++
 .../plugins/enforcer/TestRequireFilesExist.java    | 29 ++++++++++
 .../plugins/enforcer/TestRequireFilesSize.java     | 27 +++++++++
 4 files changed, 130 insertions(+), 19 deletions(-)

diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java
index 6b1de74..0d40987 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java
@@ -42,6 +42,9 @@ public abstract class AbstractRequireFiles
     /** if null file handles should be allowed. If they are allowed, it means treat it as a success. */
     private boolean allowNulls = false;
 
+    /** Allow that a single one of the files can make the rule to pass. */
+    private boolean satisfyAny;
+
     // check the file for the specific condition
     /**
      * Check one file.
@@ -82,32 +85,46 @@ public abstract class AbstractRequireFiles
             }
         }
 
-        // if anything was found, log it with the optional message.
-        if ( !failures.isEmpty() )
+        if ( satisfyAny )
         {
-            String message = getMessage();
-            
-            StringBuilder buf = new StringBuilder();
-            if ( message != null )
+            int passed = files.length - failures.size();
+            if ( passed == 0 )
             {
-                buf.append( message + System.lineSeparator() );
+                fail( failures );
             }
-            buf.append( getErrorMsg() );
+        }
+        // if anything was found, log it with the optional message.
+        else if ( !failures.isEmpty() )
+        {
+            fail( failures );
+        }
+    }
+
+    private void fail( List<File> failures )
+            throws EnforcerRuleException
+    {
+        String message = getMessage();
+
+        StringBuilder buf = new StringBuilder();
+        if ( message != null )
+        {
+            buf.append( message + System.lineSeparator() );
+        }
+        buf.append( getErrorMsg() );
 
-            for ( File file : failures )
+        for ( File file : failures )
+        {
+            if ( file != null )
             {
-                if ( file != null )
-                {
-                    buf.append( file.getAbsolutePath() + System.lineSeparator() );
-                }
-                else
-                {
-                    buf.append( "(an empty filename was given and allowNulls is false)" + System.lineSeparator() );
-                }
+                buf.append( file.getAbsolutePath() + System.lineSeparator() );
+            }
+            else
+            {
+                buf.append( "(an empty filename was given and allowNulls is false)" + System.lineSeparator() );
             }
-
-            throw new EnforcerRuleException( buf.toString() );
         }
+
+        throw new EnforcerRuleException( buf.toString() );
     }
 
     @Override
@@ -168,4 +185,14 @@ public abstract class AbstractRequireFiles
     {
         this.allowNulls = allowNulls;
     }
+
+    public boolean isSatisfyAny()
+    {
+        return satisfyAny;
+    }
+
+    public void setSatisfyAny( boolean satisfyAny )
+    {
+        this.satisfyAny = satisfyAny;
+    }
 }
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
index 3ddd941..2cbe663 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
@@ -136,6 +136,34 @@ public class TestRequireFilesDontExist
         rule.execute( EnforcerTestUtils.getHelper() );
     }
 
+    @Test
+    public void testFileDoesNotExistSatisfyAny()
+            throws IOException
+    {
+        File f = File.createTempFile( "junit", null, temporaryFolder );
+        f.delete();
+
+        assertFalse( f.exists() );
+
+        File g = File.createTempFile( "junit", null, temporaryFolder );
+
+        assertTrue( g.exists() );
+
+        rule.setFiles( new File[] { f, g.getCanonicalFile() } );
+        rule.setSatisfyAny(true);
+
+        try
+        {
+            rule.execute( EnforcerTestUtils.getHelper() );
+        }
+        catch ( EnforcerRuleException e )
+        {
+            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
+        }
+
+        g.delete();
+    }
+
     /**
      * Test id.
      */
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
index 3a35a73..91a386b 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
@@ -22,6 +22,7 @@ package org.apache.maven.plugins.enforcer;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.io.File;
+import java.io.IOException;
 
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.junit.jupiter.api.Test;
@@ -121,6 +122,34 @@ public class TestRequireFilesExist
 
     }
 
+    @Test
+    public void testFileExistsSatisfyAny()
+            throws IOException
+    {
+        File f = File.createTempFile( "junit", null, temporaryFolder );
+        f.delete();
+
+        assertFalse( f.exists() );
+
+        File g = File.createTempFile( "junit", null, temporaryFolder );
+
+        assertTrue( g.exists() );
+
+        rule.setFiles( new File[] { f, g.getCanonicalFile() } );
+        rule.setSatisfyAny(true);
+
+        try
+        {
+            rule.execute( EnforcerTestUtils.getHelper() );
+        }
+        catch ( EnforcerRuleException e )
+        {
+            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
+        }
+
+        g.delete();
+    }
+
     /**
      * Test id.
      */
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
index 83e9184..a19383e 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
@@ -165,6 +165,33 @@ public class TestRequireFilesSize
         }
     }
 
+    @Test
+    public void testRequireFilesSizeSatisfyAny()
+            throws IOException
+    {
+        File f = File.createTempFile( "junit", null, temporaryFolder );
+        try ( BufferedWriter out = new BufferedWriter( new FileWriter( f ) ) )
+        {
+            out.write( "123456789101112131415" );
+        }
+        assertTrue( f.length() > 10 );
+
+        File g = File.createTempFile( "junit", null, temporaryFolder );
+
+        rule.setFiles( new File[] { f, g } );
+        rule.setMaxsize( 10 );
+        rule.setSatisfyAny(true);
+
+        try
+        {
+            rule.execute( EnforcerTestUtils.getHelper() );
+        }
+        catch ( EnforcerRuleException e )
+        {
+            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
+        }
+    }
+
     /**
      * Test id.
      */


[maven-enforcer] 02/02: [MENFORCER-430] Allow one of many files in RequiresFiles rules to pass.

Posted by sj...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git

commit a06b47ba079b342d69a49d3cbad0fb546000f734
Author: Björn Raupach <ra...@me.com>
AuthorDate: Sun Sep 11 11:23:26 2022 +0200

    [MENFORCER-430] Allow one of many files in RequiresFiles rules to pass.
---
 enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm    |  2 ++
 enforcer-rules/src/site/apt/requireFilesExist.apt.vm        |  2 ++
 enforcer-rules/src/site/apt/requireFilesSize.apt.vm         |  2 ++
 .../maven/plugins/enforcer/TestRequireFilesDontExist.java   | 13 ++-----------
 .../maven/plugins/enforcer/TestRequireFilesExist.java       | 13 ++-----------
 .../apache/maven/plugins/enforcer/TestRequireFilesSize.java | 11 ++---------
 6 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm b/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
index 4172ed4..89a197a 100644
--- a/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
@@ -35,6 +35,8 @@ Require Files Don't Exist
    * files - A list of files to check.
    
    * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do not exist. Default is false.
+
+   * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
    
    []
 
diff --git a/enforcer-rules/src/site/apt/requireFilesExist.apt.vm b/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
index 820ae9d..c7b7132 100644
--- a/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
@@ -35,6 +35,8 @@ Require Files Exist
    * files - A list of files to check.
    
    * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
+
+   * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
    
    []
 
diff --git a/enforcer-rules/src/site/apt/requireFilesSize.apt.vm b/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
index c9530ae..301765e 100644
--- a/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
@@ -39,6 +39,8 @@ Require File Size
    * minsize - minimum size in bytes for this file.
    
    * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
+
+   * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
    
    []
 
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
index 2cbe663..6980e11 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
@@ -138,7 +138,7 @@ public class TestRequireFilesDontExist
 
     @Test
     public void testFileDoesNotExistSatisfyAny()
-            throws IOException
+            throws EnforcerRuleException, IOException
     {
         File f = File.createTempFile( "junit", null, temporaryFolder );
         f.delete();
@@ -152,16 +152,7 @@ public class TestRequireFilesDontExist
         rule.setFiles( new File[] { f, g.getCanonicalFile() } );
         rule.setSatisfyAny(true);
 
-        try
-        {
-            rule.execute( EnforcerTestUtils.getHelper() );
-        }
-        catch ( EnforcerRuleException e )
-        {
-            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
-        }
-
-        g.delete();
+        rule.execute( EnforcerTestUtils.getHelper() );
     }
 
     /**
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
index 91a386b..acb4162 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
@@ -124,7 +124,7 @@ public class TestRequireFilesExist
 
     @Test
     public void testFileExistsSatisfyAny()
-            throws IOException
+            throws EnforcerRuleException, IOException
     {
         File f = File.createTempFile( "junit", null, temporaryFolder );
         f.delete();
@@ -138,16 +138,7 @@ public class TestRequireFilesExist
         rule.setFiles( new File[] { f, g.getCanonicalFile() } );
         rule.setSatisfyAny(true);
 
-        try
-        {
-            rule.execute( EnforcerTestUtils.getHelper() );
-        }
-        catch ( EnforcerRuleException e )
-        {
-            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
-        }
-
-        g.delete();
+        rule.execute( EnforcerTestUtils.getHelper() );
     }
 
     /**
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
index a19383e..c4a3d3d 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
@@ -167,7 +167,7 @@ public class TestRequireFilesSize
 
     @Test
     public void testRequireFilesSizeSatisfyAny()
-            throws IOException
+            throws EnforcerRuleException, IOException
     {
         File f = File.createTempFile( "junit", null, temporaryFolder );
         try ( BufferedWriter out = new BufferedWriter( new FileWriter( f ) ) )
@@ -182,14 +182,7 @@ public class TestRequireFilesSize
         rule.setMaxsize( 10 );
         rule.setSatisfyAny(true);
 
-        try
-        {
-            rule.execute( EnforcerTestUtils.getHelper() );
-        }
-        catch ( EnforcerRuleException e )
-        {
-            fail( "Unexpected Exception:" + e.getLocalizedMessage() );
-        }
+        rule.execute( EnforcerTestUtils.getHelper() );
     }
 
     /**