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
