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

rfscholte pushed a commit to branch MNG-6891
in repository https://gitbox.apache.org/repos/asf/maven.git

commit d6b239c679f9cac02d38ca32fb4a316d4def5e42
Author: Maarten Mulders <[email protected]>
AuthorDate: Wed Apr 15 20:02:33 2020 +0200

    Also accept WARNING as value for --fos
---
 .../apache/maven/logwrapper/LogLevelRecorder.java  | 38 +++++++++++++++-------
 .../maven/logwrapper/LogLevelRecorderTest.java     | 10 ++++++
 2 files changed, 36 insertions(+), 12 deletions(-)

diff --git 
a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
 
b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
index 2160034..4cbf326 100644
--- 
a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
+++ 
b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
@@ -21,28 +21,29 @@ package org.apache.maven.logwrapper;
 
 import org.slf4j.event.Level;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Responsible for keeping state of whether the threshold of the 
--fail-on-severity flag has been hit.
  */
 public class LogLevelRecorder
 {
+    private static final Map<String, Level> ACCEPTED_LEVELS = new HashMap<>();
+    static
+    {
+        ACCEPTED_LEVELS.put( "WARN", Level.WARN );
+        ACCEPTED_LEVELS.put( "WARNING", Level.WARN );
+        ACCEPTED_LEVELS.put( "ERROR", Level.ERROR );
+    }
+
     private final Level logThreshold;
     private boolean metThreshold = false;
 
     public LogLevelRecorder( String threshold )
     {
-        Level level;
-        try
-        {
-            level = Level.valueOf( threshold );
-        }
-        catch ( IllegalArgumentException iae )
-        {
-            String message = String.format(
-                    "%s is not a valid log severity threshold. Valid 
severities are WARN and ERROR.",
-                    threshold );
-            throw new IllegalArgumentException( message );
-        }
+        Level level = determineThresholdLevel( threshold );
+
         if ( level.toInt() < Level.WARN.toInt() )
         {
             throw new IllegalArgumentException( "Logging severity thresholds 
can only be set to WARN or ERROR" );
@@ -51,6 +52,19 @@ public class LogLevelRecorder
         logThreshold = level;
     }
 
+    private Level determineThresholdLevel( String input )
+    {
+        final Level result = ACCEPTED_LEVELS.get( input );
+        if ( result == null )
+        {
+            String message = String.format(
+                    "%s is not a valid log severity threshold. Valid 
severities are WARN/WARNING and ERROR.",
+                    input );
+            throw new IllegalArgumentException( message );
+        }
+        return result;
+    }
+
     public void record( Level logLevel )
     {
         if ( !metThreshold && logLevel.toInt() >= logThreshold.toInt() )
diff --git 
a/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
 
b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
index 8b0305c..2bdb867 100644
--- 
a/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
+++ 
b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
@@ -45,12 +45,22 @@ public class LogLevelRecorderTest
     }
 
     @Test
+    public void createsLogLevelRecorderWithWarning()
+    {
+        LogLevelRecorder logLevelRecorder = new LogLevelRecorder( "WARNING" );
+        logLevelRecorder.record( Level.ERROR );
+
+        assertTrue( logLevelRecorder.metThreshold() );
+    }
+
+    @Test
     public void failsOnUnknownLogLevel ()
     {
         Throwable thrown = assertThrows( IllegalArgumentException.class, () -> 
new LogLevelRecorder( "SEVERE" ) );
         String message = thrown.getMessage();
         assertThat( message, containsString( "SEVERE is not a valid log 
severity threshold" ) );
         assertThat( message, containsString( "WARN" ) );
+        assertThat( message, containsString( "WARNING" ) );
         assertThat( message, containsString( "ERROR" ) );
     }
 }
\ No newline at end of file

Reply via email to