You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2019/12/18 22:15:54 UTC

[maven] branch MNG-6065 created (now 52f2865)

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

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


      at 52f2865  Log fail-level option. Submitted by: Martin Kanters.

This branch includes the following new commits:

     new dbd651c  Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
     new 32968a5  Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
     new 8b1df84  Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
     new 0539acc  Log fail-level option. Submitted by: Martin Kanters.
     new d043df9  Log fail-level option. Submitted by: Martin Kanters.
     new 3123c8c  Log fail-level option. Submitted by: Martin Kanters.
     new 32df05b  Log fail-level option. Submitted by: Martin Kanters.
     new d5e93ce  Corrected logger warning grammar
     new b01235c  Log fail-level option. Submitted by: Martin Kanters.
     new bd8b672  Log fail-level option. Submitted by: Martin Kanters.
     new ccc5cde  Log fail-level option. Submitted by: Martin Kanters.
     new 52f2865  Log fail-level option. Submitted by: Martin Kanters.

The 12 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.



[maven] 03/12: Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.

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

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

commit 8b1df8407f5feace8e8164ed97672e2c0563dfe5
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Thu Oct 3 19:54:58 2019 +0200

    Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
    
    Added Wouter Aarts to the list of contributors, who initially picked up this issue together with Luc.
---
 pom.xml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pom.xml b/pom.xml
index 64c98c5..62f8bfd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -163,6 +163,9 @@ under the License.
     <contributor>
       <name>Luc Klaassen (MNG-6065)</name>
     </contributor>
+    <contributor>
+      <name>Wouter Aarts (MNG-6065)</name>
+    </contributor>
   </contributors>
 
   <!--bootstrap-start-comment-->


[maven] 05/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit d043df945a92be5a2c34540ef8bf6b832b891a16
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Sun Dec 1 16:15:58 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Moved the fail level thresholds logic into the LogLevelRecorder class instead of the factory.
---
 .../org/slf4j/impl/MavenLoggerFactoryTest.java     | 38 +++++++--------------
 .../main/java/org/apache/maven/cli/MavenCli.java   |  8 +++--
 .../maven/cli/event/ExecutionEventLogger.java      | 15 +++++----
 .../java/org/slf4j/impl/MavenFailLevelLogger.java  |  1 +
 .../java/org/slf4j/impl/MavenLoggerFactory.java    | 25 +++++---------
 .../apache/maven/logwrapper}/LogLevelRecorder.java | 19 +++++++----
 .../maven/logwrapper/MavenSlf4jWrapperFactory.java |  7 ++--
 .../maven/logwrapper/LogLevelRecorderTest.java     | 39 +++++++++++-----------
 8 files changed, 70 insertions(+), 82 deletions(-)

diff --git a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
index 8baf624..67ce825 100644
--- a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
+++ b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
@@ -19,6 +19,7 @@ package org.slf4j.impl;
  * under the License.
  */
 
+import org.apache.maven.logwrapper.LogLevelRecorder;
 import org.junit.Test;
 import org.slf4j.Logger;
 
@@ -58,47 +59,32 @@ public class MavenLoggerFactoryTest
     }
 
     @Test
-    public void createsFailLevelLogger()
-    {
-        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogLevel( "WARN" );
-
-        Logger logger = mavenLoggerFactory.getLogger( "Test" );
-
-        assertThat( logger, instanceOf( MavenFailLevelLogger.class ) );
-    }
-
-    @Test
     public void reportsWhenFailLevelHasBeenHit()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogLevel( "ERROR" );
+        mavenLoggerFactory.setLogLevelRecorder( new LogLevelRecorder( "ERROR" ) );
+
+        assertTrue( mavenLoggerFactory.getLogLevelRecorder().isPresent() );
+        LogLevelRecorder logLevelRecorder = mavenLoggerFactory.getLogLevelRecorder().get();
 
         MavenFailLevelLogger logger = ( MavenFailLevelLogger ) mavenLoggerFactory.getLogger( "Test" );
-        assertFalse( mavenLoggerFactory.isThresholdHit() );
+        assertFalse( logLevelRecorder.isThresholdHit() );
 
         logger.warn( "This should not hit the fail level" );
-        assertFalse( mavenLoggerFactory.isThresholdHit() );
+        assertFalse( logLevelRecorder.isThresholdHit() );
 
         logger.error( "This should hit the fail level" );
-        assertTrue( mavenLoggerFactory.isThresholdHit() );
+        assertTrue( logLevelRecorder.isThresholdHit() );
 
         logger.warn( "This should not reset the fail level" );
-        assertTrue( mavenLoggerFactory.isThresholdHit() );
+        assertTrue( logLevelRecorder.isThresholdHit() );
     }
 
     @Test( expected = IllegalStateException.class )
     public void failLevelThresholdCanOnlyBeSetOnce()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogLevel( "WARN" );
-        mavenLoggerFactory.breakOnLogLevel( "ERROR" );
-    }
-
-    @Test( expected = IllegalArgumentException.class )
-    public void onlyWarningOrHigherFailLevelsCanBeSet()
-    {
-        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogLevel( "INFO" );
+        mavenLoggerFactory.setLogLevelRecorder( new LogLevelRecorder( "WARN" ) );
+        mavenLoggerFactory.setLogLevelRecorder( new LogLevelRecorder( "ERROR" ) );
     }
-}
\ No newline at end of file
+}
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index c18d74f..34f5561 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -58,6 +58,7 @@ import org.apache.maven.execution.scope.internal.MojoExecutionScopeModule;
 import org.apache.maven.extension.internal.CoreExports;
 import org.apache.maven.extension.internal.CoreExtensionEntry;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.logwrapper.LogLevelRecorder;
 import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
 import org.apache.maven.model.building.ModelProcessor;
 import org.apache.maven.project.MavenProject;
@@ -546,12 +547,13 @@ public class MavenCli
 
         if ( cliRequest.commandLine.hasOption( CLIManager.FAIL_LEVEL ) )
         {
-            String logLevelToBreakOn = cliRequest.commandLine.getOptionValue( CLIManager.FAIL_LEVEL );
+            String logLevelThreshold = cliRequest.commandLine.getOptionValue( CLIManager.FAIL_LEVEL );
 
             if ( slf4jLoggerFactory instanceof MavenSlf4jWrapperFactory )
             {
-                ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).breakOnLogLevel( logLevelToBreakOn );
-                slf4jLogger.info( "Enabled to break the build on log level {}.", logLevelToBreakOn );
+                LogLevelRecorder logLevelRecorder = new LogLevelRecorder( logLevelThreshold );
+                ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).setLogLevelRecorder( logLevelRecorder );
+                slf4jLogger.info( "Enabled to break the build on log level {}.", logLevelThreshold );
             }
         }
     }
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index 2422fba..dc41021 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -33,6 +33,7 @@ import org.apache.maven.execution.BuildSummary;
 import org.apache.maven.execution.ExecutionEvent;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.logwrapper.LogLevelRecorder;
 import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -138,12 +139,14 @@ public class ExecutionEventLogger extends AbstractExecutionListener
 
             if ( iLoggerFactory instanceof MavenSlf4jWrapperFactory )
             {
-                if ( ( (MavenSlf4jWrapperFactory) iLoggerFactory ).isThresholdHit() )
-                {
-                    event.getSession().getResult().addException( new Exception(
-                            "Build failed due to log statements with a higher severity than allowed. "
-                                    + "Fix the logged issues or remove flag --fail-level (-fl)." ) );
-                }
+                MavenSlf4jWrapperFactory loggerFactory = (MavenSlf4jWrapperFactory) iLoggerFactory;
+                loggerFactory.getLogLevelRecorder()
+                        .filter( LogLevelRecorder::isThresholdHit )
+                        .ifPresent(recorder ->
+                                event.getSession().getResult().addException( new Exception(
+                                        "Build failed due to log statements with a higher severity than allowed. "
+                                        + "Fix the logged issues or remove flag --fail-level (-fl)." ) )
+                );
             }
 
             logResult( event.getSession() );
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
index 7cfa608..b4b4605 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
@@ -19,6 +19,7 @@ package org.slf4j.impl;
  * under the License.
  */
 
+import org.apache.maven.logwrapper.LogLevelRecorder;
 import org.slf4j.event.Level;
 
 /**
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
index cf3760a..914f2a5 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
@@ -19,9 +19,11 @@ package org.slf4j.impl;
  * under the License.
  */
 
+import org.apache.maven.logwrapper.LogLevelRecorder;
 import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
 import org.slf4j.Logger;
-import org.slf4j.event.Level;
+
+import java.util.Optional;
 
 /**
  * LogFactory for Maven which can create a simple logger or a one which, if set, fails the build on a threshold.
@@ -31,31 +33,20 @@ public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4
     private LogLevelRecorder logLevelRecorder = null;
 
     @Override
-    public void breakOnLogLevel( String logLevelToBreakOn )
+    public void setLogLevelRecorder( LogLevelRecorder logLevelRecorder )
     {
-        if ( logLevelRecorder != null )
+        if ( this.logLevelRecorder != null )
         {
             throw new IllegalStateException( "Maven logger fail level has already been set." );
         }
 
-        Level level = Level.valueOf( logLevelToBreakOn );
-        if ( level.toInt() < Level.WARN.toInt() )
-        {
-            throw new IllegalArgumentException( "Logging level thresholds can only be set to WARN or ERROR" );
-        }
-
-        logLevelRecorder = new LogLevelRecorder( level );
+        this.logLevelRecorder = logLevelRecorder;
     }
 
     @Override
-    public boolean isThresholdHit()
+    public Optional<LogLevelRecorder> getLogLevelRecorder()
     {
-        if ( logLevelRecorder != null )
-        {
-            return logLevelRecorder.isThresholdHit();
-        }
-
-        return false;
+        return Optional.ofNullable( logLevelRecorder );
     }
 
     /**
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
similarity index 72%
copy from maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
copy to maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
index 652fee7..0ac2957 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
+++ b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java
@@ -1,4 +1,4 @@
-package org.slf4j.impl;
+package org.apache.maven.logwrapper;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -24,18 +24,23 @@ import org.slf4j.event.Level;
 /**
  * Responsible for keeping state of whether the threshold of the --fail-level flag has been hit.
  */
-class LogLevelRecorder
+public class LogLevelRecorder
 {
     private final Level logThreshold;
     private boolean thresholdHit = false;
 
-    LogLevelRecorder( Level logLevel )
+    public LogLevelRecorder( String threshold )
     {
-        assert logLevel != null;
-        this.logThreshold = logLevel;
+        Level level = Level.valueOf( threshold );
+        if ( level.toInt() < Level.WARN.toInt() )
+        {
+            throw new IllegalArgumentException( "Logging level thresholds can only be set to WARN or ERROR" );
+        }
+
+        logThreshold = level;
     }
 
-    void record( Level logLevel )
+    public void record( Level logLevel )
     {
         if ( !thresholdHit && logLevel.toInt() >= logThreshold.toInt() )
         {
@@ -43,7 +48,7 @@ class LogLevelRecorder
         }
     }
 
-    boolean isThresholdHit()
+    public boolean isThresholdHit()
     {
         return thresholdHit;
     }
diff --git a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
index bdd1520..e2063b7 100644
--- a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
+++ b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
@@ -21,12 +21,13 @@ package org.apache.maven.logwrapper;
 
 import org.slf4j.ILoggerFactory;
 
+import java.util.Optional;
+
 /**
  * Wrapper for creating loggers which can have a log level threshold.
  */
 public interface MavenSlf4jWrapperFactory extends ILoggerFactory
 {
-    boolean isThresholdHit();
-
-    void breakOnLogLevel( String logLevelToBreakOn );
+    void setLogLevelRecorder( LogLevelRecorder logLevelRecorder );
+    Optional<LogLevelRecorder> getLogLevelRecorder();
 }
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
similarity index 54%
rename from maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
rename to maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
index 652fee7..db5337c 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
+++ b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java
@@ -1,4 +1,4 @@
-package org.slf4j.impl;
+package org.apache.maven.logwrapper;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -9,7 +9,7 @@ package org.slf4j.impl;
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *  http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -19,32 +19,31 @@ package org.slf4j.impl;
  * under the License.
  */
 
+import org.junit.Test;
 import org.slf4j.event.Level;
 
-/**
- * Responsible for keeping state of whether the threshold of the --fail-level flag has been hit.
- */
-class LogLevelRecorder
-{
-    private final Level logThreshold;
-    private boolean thresholdHit = false;
+import static org.junit.Assert.assertTrue;
 
-    LogLevelRecorder( Level logLevel )
+public class LogLevelRecorderTest
+{
+    @Test
+    public void createsLogLevelRecorder()
     {
-        assert logLevel != null;
-        this.logThreshold = logLevel;
+        LogLevelRecorder logLevelRecorder = new LogLevelRecorder( "WARN" );
+        logLevelRecorder.record( Level.ERROR );
+
+        assertTrue( logLevelRecorder.isThresholdHit() );
     }
 
-    void record( Level logLevel )
+    @Test( expected = IllegalArgumentException.class )
+    public void failsOnLowerThanWarn ()
     {
-        if ( !thresholdHit && logLevel.toInt() >= logThreshold.toInt() )
-        {
-            thresholdHit = true;
-        }
+        new LogLevelRecorder( "INFO" );
     }
 
-    boolean isThresholdHit()
+    @Test( expected = IllegalArgumentException.class )
+    public void failsOnUnknownLogLevel ()
     {
-        return thresholdHit;
+        new LogLevelRecorder( "SEVERE" );
     }
-}
+}
\ No newline at end of file


[maven] 04/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit 0539acc709376a1c19b8adb256737f878e1f701f
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Wed Nov 27 22:07:12 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Processed minor review comments regarding naming of certain classes and methods
---
 .../org/slf4j/impl/MavenLoggerFactoryTest.java     | 25 ++++++++++++---------
 .../main/java/org/apache/maven/cli/MavenCli.java   |  2 +-
 .../maven/cli/event/ExecutionEventLogger.java      |  2 +-
 ...LevelLoggerState.java => LogLevelRecorder.java} |  8 +++----
 .../java/org/slf4j/impl/MavenFailLevelLogger.java  | 26 +++++++++++-----------
 .../java/org/slf4j/impl/MavenLoggerFactory.java    | 18 +++++++--------
 .../maven/logwrapper/MavenSlf4jWrapperFactory.java |  4 ++--
 7 files changed, 45 insertions(+), 40 deletions(-)

diff --git a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
index cc42172..8baf624 100644
--- a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
+++ b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
@@ -23,7 +23,12 @@ import org.junit.Test;
 import org.slf4j.Logger;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 public class MavenLoggerFactoryTest
 {
@@ -56,7 +61,7 @@ public class MavenLoggerFactoryTest
     public void createsFailLevelLogger()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogsOfLevel( "WARN" );
+        mavenLoggerFactory.breakOnLogLevel( "WARN" );
 
         Logger logger = mavenLoggerFactory.getLogger( "Test" );
 
@@ -67,33 +72,33 @@ public class MavenLoggerFactoryTest
     public void reportsWhenFailLevelHasBeenHit()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogsOfLevel( "ERROR" );
+        mavenLoggerFactory.breakOnLogLevel( "ERROR" );
 
         MavenFailLevelLogger logger = ( MavenFailLevelLogger ) mavenLoggerFactory.getLogger( "Test" );
-        assertFalse( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+        assertFalse( mavenLoggerFactory.isThresholdHit() );
 
         logger.warn( "This should not hit the fail level" );
-        assertFalse( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+        assertFalse( mavenLoggerFactory.isThresholdHit() );
 
         logger.error( "This should hit the fail level" );
-        assertTrue( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+        assertTrue( mavenLoggerFactory.isThresholdHit() );
 
         logger.warn( "This should not reset the fail level" );
-        assertTrue( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+        assertTrue( mavenLoggerFactory.isThresholdHit() );
     }
 
     @Test( expected = IllegalStateException.class )
     public void failLevelThresholdCanOnlyBeSetOnce()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogsOfLevel( "WARN" );
-        mavenLoggerFactory.breakOnLogsOfLevel( "ERROR" );
+        mavenLoggerFactory.breakOnLogLevel( "WARN" );
+        mavenLoggerFactory.breakOnLogLevel( "ERROR" );
     }
 
     @Test( expected = IllegalArgumentException.class )
     public void onlyWarningOrHigherFailLevelsCanBeSet()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
-        mavenLoggerFactory.breakOnLogsOfLevel( "INFO" );
+        mavenLoggerFactory.breakOnLogLevel( "INFO" );
     }
 }
\ No newline at end of file
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index f7f92d6..c18d74f 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -550,7 +550,7 @@ public class MavenCli
 
             if ( slf4jLoggerFactory instanceof MavenSlf4jWrapperFactory )
             {
-                ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).breakOnLogsOfLevel( logLevelToBreakOn );
+                ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).breakOnLogLevel( logLevelToBreakOn );
                 slf4jLogger.info( "Enabled to break the build on log level {}.", logLevelToBreakOn );
             }
         }
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index 85c895e..2422fba 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -138,7 +138,7 @@ public class ExecutionEventLogger extends AbstractExecutionListener
 
             if ( iLoggerFactory instanceof MavenSlf4jWrapperFactory )
             {
-                if ( ( (MavenSlf4jWrapperFactory) iLoggerFactory ).threwLogsOfBreakingLevel() )
+                if ( ( (MavenSlf4jWrapperFactory) iLoggerFactory ).isThresholdHit() )
                 {
                     event.getSession().getResult().addException( new Exception(
                             "Build failed due to log statements with a higher severity than allowed. "
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
similarity index 89%
rename from maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java
rename to maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
index ba6ecdb..652fee7 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/LogLevelRecorder.java
@@ -24,18 +24,18 @@ import org.slf4j.event.Level;
 /**
  * Responsible for keeping state of whether the threshold of the --fail-level flag has been hit.
  */
-class MavenFailLevelLoggerState
+class LogLevelRecorder
 {
     private final Level logThreshold;
     private boolean thresholdHit = false;
 
-    MavenFailLevelLoggerState( Level logLevel )
+    LogLevelRecorder( Level logLevel )
     {
         assert logLevel != null;
         this.logThreshold = logLevel;
     }
 
-    void recordLogLevel( Level logLevel )
+    void record( Level logLevel )
     {
         if ( !thresholdHit && logLevel.toInt() >= logThreshold.toInt() )
         {
@@ -43,7 +43,7 @@ class MavenFailLevelLoggerState
         }
     }
 
-    boolean threwLogsOfBreakingLevel()
+    boolean isThresholdHit()
     {
         return thresholdHit;
     }
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
index 7fde35a..7cfa608 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
@@ -27,12 +27,12 @@ import org.slf4j.event.Level;
  */
 public class MavenFailLevelLogger extends MavenSimpleLogger
 {
-    private final MavenFailLevelLoggerState failLevelLoggerState;
+    private final LogLevelRecorder logLevelRecorder;
 
-    MavenFailLevelLogger( String name, MavenFailLevelLoggerState failLevelLoggerState )
+    MavenFailLevelLogger( String name, LogLevelRecorder logLevelRecorder )
     {
         super( name );
-        this.failLevelLoggerState = failLevelLoggerState;
+        this.logLevelRecorder = logLevelRecorder;
     }
 
     /**
@@ -43,7 +43,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void warn( String msg )
     {
         super.warn( msg );
-        failLevelLoggerState.recordLogLevel( Level.WARN );
+        logLevelRecorder.record( Level.WARN );
     }
 
     /**
@@ -54,7 +54,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void warn( String format, Object arg )
     {
         super.warn( format, arg );
-        failLevelLoggerState.recordLogLevel( Level.WARN );
+        logLevelRecorder.record( Level.WARN );
     }
 
     /**
@@ -65,7 +65,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void warn( String format, Object arg1, Object arg2 )
     {
         super.warn( format, arg1, arg2 );
-        failLevelLoggerState.recordLogLevel( Level.WARN );
+        logLevelRecorder.record( Level.WARN );
     }
 
     /**
@@ -76,7 +76,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void warn( String format, Object... argArray )
     {
         super.warn( format, argArray );
-        failLevelLoggerState.recordLogLevel( Level.WARN );
+        logLevelRecorder.record( Level.WARN );
     }
 
     /** Log a message of level WARN, including an exception. */
@@ -84,7 +84,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void warn( String msg, Throwable t )
     {
         super.warn( msg, t );
-        failLevelLoggerState.recordLogLevel( Level.WARN );
+        logLevelRecorder.record( Level.WARN );
     }
 
     /**
@@ -95,7 +95,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void error( String msg )
     {
         super.error( msg );
-        failLevelLoggerState.recordLogLevel( Level.ERROR );
+        logLevelRecorder.record( Level.ERROR );
     }
 
     /**
@@ -106,7 +106,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void error( String format, Object arg )
     {
         super.error( format, arg );
-        failLevelLoggerState.recordLogLevel( Level.ERROR );
+        logLevelRecorder.record( Level.ERROR );
     }
 
     /**
@@ -117,7 +117,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void error( String format, Object arg1, Object arg2 )
     {
         super.error( format, arg1, arg2 );
-        failLevelLoggerState.recordLogLevel( Level.ERROR );
+        logLevelRecorder.record( Level.ERROR );
     }
 
     /**
@@ -128,7 +128,7 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void error( String format, Object... argArray )
     {
         super.error( format, argArray );
-        failLevelLoggerState.recordLogLevel( Level.ERROR );
+        logLevelRecorder.record( Level.ERROR );
     }
 
     /** Log a message of level ERROR, including an exception. */
@@ -136,6 +136,6 @@ public class MavenFailLevelLogger extends MavenSimpleLogger
     public void error( String msg, Throwable t )
     {
         super.error( msg, t );
-        failLevelLoggerState.recordLogLevel( Level.ERROR );
+        logLevelRecorder.record( Level.ERROR );
     }
 }
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
index 612a11f..cf3760a 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
@@ -28,12 +28,12 @@ import org.slf4j.event.Level;
  */
 public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4jWrapperFactory
 {
-    private MavenFailLevelLoggerState failLevelLoggerState = null;
+    private LogLevelRecorder logLevelRecorder = null;
 
     @Override
-    public void breakOnLogsOfLevel( String logLevelToBreakOn )
+    public void breakOnLogLevel( String logLevelToBreakOn )
     {
-        if ( failLevelLoggerState != null )
+        if ( logLevelRecorder != null )
         {
             throw new IllegalStateException( "Maven logger fail level has already been set." );
         }
@@ -44,15 +44,15 @@ public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4
             throw new IllegalArgumentException( "Logging level thresholds can only be set to WARN or ERROR" );
         }
 
-        failLevelLoggerState = new MavenFailLevelLoggerState( level );
+        logLevelRecorder = new LogLevelRecorder( level );
     }
 
     @Override
-    public boolean threwLogsOfBreakingLevel()
+    public boolean isThresholdHit()
     {
-        if ( failLevelLoggerState != null )
+        if ( logLevelRecorder != null )
         {
-            return failLevelLoggerState.threwLogsOfBreakingLevel();
+            return logLevelRecorder.isThresholdHit();
         }
 
         return false;
@@ -79,13 +79,13 @@ public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4
 
     private Logger getNewLoggingInstance( String name )
     {
-        if ( failLevelLoggerState == null )
+        if ( logLevelRecorder == null )
         {
             return new MavenSimpleLogger( name );
         }
         else
         {
-            return new MavenFailLevelLogger( name, failLevelLoggerState );
+            return new MavenFailLevelLogger( name, logLevelRecorder );
         }
     }
 }
diff --git a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
index 92e6b0c..bdd1520 100644
--- a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
+++ b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
@@ -26,7 +26,7 @@ import org.slf4j.ILoggerFactory;
  */
 public interface MavenSlf4jWrapperFactory extends ILoggerFactory
 {
-    boolean threwLogsOfBreakingLevel();
+    boolean isThresholdHit();
 
-    void breakOnLogsOfLevel( String logLevelToBreakOn );
+    void breakOnLogLevel( String logLevelToBreakOn );
 }


[maven] 10/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit bd8b6727ede227de6bd05ce1849d5efc1c261383
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Sun Dec 8 11:03:44 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Renamed the flag --fail-level to --fail-on-severity (missed testcase in previous commit)
---
 .../src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
index 67ce825..299fa67 100644
--- a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
+++ b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
@@ -59,7 +59,7 @@ public class MavenLoggerFactoryTest
     }
 
     @Test
-    public void reportsWhenFailLevelHasBeenHit()
+    public void reportsWhenFailOnSeverityThresholdHasBeenHit()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
         mavenLoggerFactory.setLogLevelRecorder( new LogLevelRecorder( "ERROR" ) );
@@ -67,21 +67,21 @@ public class MavenLoggerFactoryTest
         assertTrue( mavenLoggerFactory.getLogLevelRecorder().isPresent() );
         LogLevelRecorder logLevelRecorder = mavenLoggerFactory.getLogLevelRecorder().get();
 
-        MavenFailLevelLogger logger = ( MavenFailLevelLogger ) mavenLoggerFactory.getLogger( "Test" );
+        MavenFailOnSeverityLogger logger = (MavenFailOnSeverityLogger) mavenLoggerFactory.getLogger( "Test" );
         assertFalse( logLevelRecorder.isThresholdHit() );
 
-        logger.warn( "This should not hit the fail level" );
+        logger.warn( "This should not hit the fail threshold" );
         assertFalse( logLevelRecorder.isThresholdHit() );
 
-        logger.error( "This should hit the fail level" );
+        logger.error( "This should hit the fail threshold" );
         assertTrue( logLevelRecorder.isThresholdHit() );
 
-        logger.warn( "This should not reset the fail level" );
+        logger.warn( "This should not reset the fail threshold" );
         assertTrue( logLevelRecorder.isThresholdHit() );
     }
 
     @Test( expected = IllegalStateException.class )
-    public void failLevelThresholdCanOnlyBeSetOnce()
+    public void failOnSeverityThresholdCanOnlyBeSetOnce()
     {
         MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
         mavenLoggerFactory.setLogLevelRecorder( new LogLevelRecorder( "WARN" ) );


[maven] 07/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit 32df05bc090f664c25ded0688660a5baf5bbf1cf
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Wed Dec 4 20:47:26 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    When encountering an unexpected loggerFactory, log that the --fail-level flag will not take into effect
---
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 34f5561..bc93846 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -555,6 +555,12 @@ public class MavenCli
                 ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).setLogLevelRecorder( logLevelRecorder );
                 slf4jLogger.info( "Enabled to break the build on log level {}.", logLevelThreshold );
             }
+            else
+            {
+                slf4jLogger.warn( "Expected LoggerFactory to be of type '{}', but found '{}' instead. "
+                        + "The --fail-level flag will not take into effect.",
+                        MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName());
+            }
         }
     }
 


[maven] 01/12: Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.

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

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

commit dbd651c358f1f52804e3e21f6fe36e5b248bbaa0
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Wed Oct 2 20:55:21 2019 +0200

    Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
    
    Squashed work from Luc Klaassen and me.
---
 .../org/slf4j/impl/MavenLoggerFactoryTest.java     |  99 +++++++++++++++
 maven-embedder/pom.xml                             |   4 +
 .../main/java/org/apache/maven/cli/CLIManager.java |   3 +
 .../main/java/org/apache/maven/cli/MavenCli.java   |  16 ++-
 .../maven/cli/event/ExecutionEventLogger.java      |  25 +++-
 .../META-INF/maven/slf4j-configuration.properties  |   2 +-
 maven-slf4j-provider/pom.xml                       |   4 +
 .../java/org/slf4j/impl/MavenFailLevelLogger.java  | 141 +++++++++++++++++++++
 ...Factory.java => MavenFailLevelLoggerState.java} |  37 +++---
 .../java/org/slf4j/impl/MavenLoggerFactory.java    |  91 +++++++++++++
 .../java/org/slf4j/impl/MavenSimpleLogger.java     |  14 +-
 .../java/org/slf4j/impl/StaticLoggerBinder.java    |   4 +-
 maven-slf4j-wrapper/pom.xml                        |  45 +++++++
 .../maven/logwrapper/MavenSlf4jWrapperFactory.java |  29 +----
 maven-slf4j-wrapper/src/site/site.xml              |  38 ++++++
 pom.xml                                            |  11 +-
 16 files changed, 506 insertions(+), 57 deletions(-)

diff --git a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
new file mode 100644
index 0000000..cc42172
--- /dev/null
+++ b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
@@ -0,0 +1,99 @@
+package org.slf4j.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.Test;
+import org.slf4j.Logger;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.*;
+
+public class MavenLoggerFactoryTest
+{
+    @Test
+    public void createsSimpleLogger()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+
+        Logger logger = mavenLoggerFactory.getLogger( "Test" );
+
+        assertThat( logger, instanceOf( MavenSimpleLogger.class ) );
+    }
+
+    @Test
+    public void loggerCachingWorks()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+
+        Logger logger = mavenLoggerFactory.getLogger( "Test" );
+        Logger logger2 = mavenLoggerFactory.getLogger( "Test" );
+        Logger differentLogger = mavenLoggerFactory.getLogger( "TestWithDifferentName" );
+
+        assertNotNull( logger );
+        assertNotNull( differentLogger );
+        assertSame( logger, logger2 );
+        assertNotSame( logger, differentLogger );
+    }
+
+    @Test
+    public void createsFailLevelLogger()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+        mavenLoggerFactory.breakOnLogsOfLevel( "WARN" );
+
+        Logger logger = mavenLoggerFactory.getLogger( "Test" );
+
+        assertThat( logger, instanceOf( MavenFailLevelLogger.class ) );
+    }
+
+    @Test
+    public void reportsWhenFailLevelHasBeenHit()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+        mavenLoggerFactory.breakOnLogsOfLevel( "ERROR" );
+
+        MavenFailLevelLogger logger = ( MavenFailLevelLogger ) mavenLoggerFactory.getLogger( "Test" );
+        assertFalse( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+
+        logger.warn( "This should not hit the fail level" );
+        assertFalse( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+
+        logger.error( "This should hit the fail level" );
+        assertTrue( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+
+        logger.warn( "This should not reset the fail level" );
+        assertTrue( mavenLoggerFactory.threwLogsOfBreakingLevel() );
+    }
+
+    @Test( expected = IllegalStateException.class )
+    public void failLevelThresholdCanOnlyBeSetOnce()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+        mavenLoggerFactory.breakOnLogsOfLevel( "WARN" );
+        mavenLoggerFactory.breakOnLogsOfLevel( "ERROR" );
+    }
+
+    @Test( expected = IllegalArgumentException.class )
+    public void onlyWarningOrHigherFailLevelsCanBeSet()
+    {
+        MavenLoggerFactory mavenLoggerFactory = new MavenLoggerFactory();
+        mavenLoggerFactory.breakOnLogsOfLevel( "INFO" );
+    }
+}
\ No newline at end of file
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index 235ae62..1d42f14 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -75,6 +75,10 @@ under the License.
       <artifactId>maven-shared-utils</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-slf4j-wrapper</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
       <classifier>no_aop</classifier>
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index 1e95010..ea67fde 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -77,6 +77,8 @@ public class CLIManager
 
     public static final String FAIL_FAST = "ff";
 
+    public static final String FAIL_LEVEL = "fl";
+
     public static final String FAIL_AT_END = "fae";
 
     public static final String FAIL_NEVER = "fn";
@@ -128,6 +130,7 @@ public class CLIManager
         options.addOption( Option.builder( ALTERNATE_GLOBAL_SETTINGS ).longOpt( "global-settings" ).desc( "Alternate path for the global settings file" ).hasArg().build() );
         options.addOption( Option.builder( Character.toString( ALTERNATE_USER_TOOLCHAINS ) ).longOpt( "toolchains" ).desc( "Alternate path for the user toolchains file" ).hasArg().build() );
         options.addOption( Option.builder( ALTERNATE_GLOBAL_TOOLCHAINS ).longOpt( "global-toolchains" ).desc( "Alternate path for the global toolchains file" ).hasArg().build() );
+        options.addOption( Option.builder( FAIL_LEVEL ).longOpt( "fail-level" ).desc( "Configure which level of logging should cause the build to fail" ).hasArgs().build() );
         options.addOption( Option.builder( FAIL_FAST ).longOpt( "fail-fast" ).desc( "Stop at first failure in reactorized builds" ).build() );
         options.addOption( Option.builder( FAIL_AT_END ).longOpt( "fail-at-end" ).desc( "Only fail the build afterwards; allow all non-impacted builds to continue" ).build() );
         options.addOption( Option.builder( FAIL_NEVER ).longOpt( "fail-never" ).desc( "NEVER fail the build, regardless of project result" ).build() );
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 7d17e18..de8a725 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -58,6 +58,7 @@ import org.apache.maven.execution.scope.internal.MojoExecutionScopeModule;
 import org.apache.maven.extension.internal.CoreExports;
 import org.apache.maven.extension.internal.CoreExtensionEntry;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
 import org.apache.maven.model.building.ModelProcessor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.properties.internal.EnvironmentUtils;
@@ -542,6 +543,17 @@ public class MavenCli
 
         plexusLoggerManager = new Slf4jLoggerManager();
         slf4jLogger = slf4jLoggerFactory.getLogger( this.getClass().getName() );
+
+        if ( cliRequest.commandLine.hasOption( CLIManager.FAIL_LEVEL ) )
+        {
+            String logLevelToBreakOn = cliRequest.commandLine.getOptionValue( CLIManager.FAIL_LEVEL );
+
+            if ( slf4jLoggerFactory instanceof MavenSlf4jWrapperFactory )
+            {
+                ( (MavenSlf4jWrapperFactory) slf4jLoggerFactory ).breakOnLogsOfLevel( logLevelToBreakOn );
+                slf4jLogger.info( "Enabled to break the build on log level {}.", logLevelToBreakOn );
+            }
+        }
     }
 
     private void version( CliRequest cliRequest )
@@ -1343,6 +1355,8 @@ public class MavenCli
         // this is the default behavior.
         String reactorFailureBehaviour = MavenExecutionRequest.REACTOR_FAIL_FAST;
 
+        slf4jLoggerFactory = LoggerFactory.getILoggerFactory();
+
         if ( commandLine.hasOption( CLIManager.NON_RECURSIVE ) )
         {
             recursive = false;
@@ -1630,7 +1644,7 @@ public class MavenCli
         if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
         {
             String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );
-
+            
             if ( defStrs != null )
             {
                 for ( String defStr : defStrs )
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index 17da655..f7088a7 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -33,11 +33,13 @@ import org.apache.maven.execution.BuildSummary;
 import org.apache.maven.execution.ExecutionEvent;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.utils.logging.MessageBuilder;
 import org.codehaus.plexus.util.StringUtils;
+import org.slf4j.ILoggerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -46,8 +48,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Benjamin Bentmann
  */
-public class ExecutionEventLogger
-    extends AbstractExecutionListener
+public class ExecutionEventLogger extends AbstractExecutionListener
 {
     private final Logger logger;
 
@@ -133,6 +134,18 @@ public class ExecutionEventLogger
                 logReactorSummary( event.getSession() );
             }
 
+            ILoggerFactory iLoggerFactory = LoggerFactory.getILoggerFactory();
+
+            if ( iLoggerFactory instanceof MavenSlf4jWrapperFactory )
+            {
+                if ( ( (MavenSlf4jWrapperFactory) iLoggerFactory ).threwLogsOfBreakingLevel() )
+                {
+                    event.getSession().getResult().addException( new Exception(
+                            "Build failed due to log statements above WARN. "
+                                    + "Fix the logged issues or remove flag --fail-level (-fl)." ) );
+                }
+            }
+
             logResult( event.getSession() );
 
             logStats( event.getSession() );
@@ -298,16 +311,16 @@ public class ExecutionEventLogger
 
             // -------< groupId:artifactId >-------
             String projectKey = project.getGroupId() + ':' + project.getArtifactId();
-            
-            final String preHeader  = "--< ";
+
+            final String preHeader = "--< ";
             final String postHeader = " >--";
 
             final int headerLen = preHeader.length() + projectKey.length() + postHeader.length();
 
             String prefix = chars( '-', Math.max( 0, ( LINE_LENGTH - headerLen ) / 2 ) ) + preHeader;
 
-            String suffix = postHeader
-                + chars( '-', Math.max( 0, LINE_LENGTH - headerLen - prefix.length() + preHeader.length() ) );
+            String suffix = postHeader + chars( '-',
+                    Math.max( 0, LINE_LENGTH - headerLen - prefix.length() + preHeader.length() ) );
 
             logger.info( buffer().strong( prefix ).project( projectKey ).strong( suffix ).toString() );
 
diff --git a/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties b/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties
index ff865bc..23b18c0 100644
--- a/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties
+++ b/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties
@@ -18,6 +18,6 @@
 # key = Slf4j effective logger factory implementation
 # value = corresponding o.a.m.cli.logging.Slf4jConfiguration class
 org.slf4j.impl.SimpleLoggerFactory org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration
-org.slf4j.impl.MavenSimpleLoggerFactory org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration
+org.slf4j.impl.MavenLoggerFactory org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration
 org.apache.logging.slf4j.Log4jLoggerFactory org.apache.maven.cli.logging.impl.Log4j2Configuration
 ch.qos.logback.classic.LoggerContext org.apache.maven.cli.logging.impl.LogbackConfiguration
diff --git a/maven-slf4j-provider/pom.xml b/maven-slf4j-provider/pom.xml
index defe2dd..7af239c 100644
--- a/maven-slf4j-provider/pom.xml
+++ b/maven-slf4j-provider/pom.xml
@@ -45,6 +45,10 @@ under the License.
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-utils</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-slf4j-wrapper</artifactId>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
new file mode 100644
index 0000000..7fde35a
--- /dev/null
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
@@ -0,0 +1,141 @@
+package org.slf4j.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.slf4j.event.Level;
+
+/**
+ * A proxy which enhances the MavenSimpleLogger with functionality to track whether a logging threshold is hit.
+ * Currently only support WARN and ERROR states, since it's been used for the --fail-level flag.
+ */
+public class MavenFailLevelLogger extends MavenSimpleLogger
+{
+    private final MavenFailLevelLoggerState failLevelLoggerState;
+
+    MavenFailLevelLogger( String name, MavenFailLevelLoggerState failLevelLoggerState )
+    {
+        super( name );
+        this.failLevelLoggerState = failLevelLoggerState;
+    }
+
+    /**
+     * A simple implementation which always logs messages of level WARN
+     * according to the format outlined above.
+     */
+    @Override
+    public void warn( String msg )
+    {
+        super.warn( msg );
+        failLevelLoggerState.recordLogLevel( Level.WARN );
+    }
+
+    /**
+     * Perform single parameter substitution before logging the message of level
+     * WARN according to the format outlined above.
+     */
+    @Override
+    public void warn( String format, Object arg )
+    {
+        super.warn( format, arg );
+        failLevelLoggerState.recordLogLevel( Level.WARN );
+    }
+
+    /**
+     * Perform double parameter substitution before logging the message of level
+     * WARN according to the format outlined above.
+     */
+    @Override
+    public void warn( String format, Object arg1, Object arg2 )
+    {
+        super.warn( format, arg1, arg2 );
+        failLevelLoggerState.recordLogLevel( Level.WARN );
+    }
+
+    /**
+     * Perform double parameter substitution before logging the message of level
+     * WARN according to the format outlined above.
+     */
+    @Override
+    public void warn( String format, Object... argArray )
+    {
+        super.warn( format, argArray );
+        failLevelLoggerState.recordLogLevel( Level.WARN );
+    }
+
+    /** Log a message of level WARN, including an exception. */
+    @Override
+    public void warn( String msg, Throwable t )
+    {
+        super.warn( msg, t );
+        failLevelLoggerState.recordLogLevel( Level.WARN );
+    }
+
+    /**
+     * A simple implementation which always logs messages of level ERROR
+     * according to the format outlined above.
+     */
+    @Override
+    public void error( String msg )
+    {
+        super.error( msg );
+        failLevelLoggerState.recordLogLevel( Level.ERROR );
+    }
+
+    /**
+     * Perform single parameter substitution before logging the message of level
+     * ERROR according to the format outlined above.
+     */
+    @Override
+    public void error( String format, Object arg )
+    {
+        super.error( format, arg );
+        failLevelLoggerState.recordLogLevel( Level.ERROR );
+    }
+
+    /**
+     * Perform double parameter substitution before logging the message of level
+     * ERROR according to the format outlined above.
+     */
+    @Override
+    public void error( String format, Object arg1, Object arg2 )
+    {
+        super.error( format, arg1, arg2 );
+        failLevelLoggerState.recordLogLevel( Level.ERROR );
+    }
+
+    /**
+     * Perform double parameter substitution before logging the message of level
+     * ERROR according to the format outlined above.
+     */
+    @Override
+    public void error( String format, Object... argArray )
+    {
+        super.error( format, argArray );
+        failLevelLoggerState.recordLogLevel( Level.ERROR );
+    }
+
+    /** Log a message of level ERROR, including an exception. */
+    @Override
+    public void error( String msg, Throwable t )
+    {
+        super.error( msg, t );
+        failLevelLoggerState.recordLogLevel( Level.ERROR );
+    }
+}
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java
similarity index 58%
copy from maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java
copy to maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java
index 4adfdbe..ba6ecdb 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLoggerState.java
@@ -19,29 +19,32 @@ package org.slf4j.impl;
  * under the License.
  */
 
-import org.slf4j.Logger;
+import org.slf4j.event.Level;
 
 /**
- * MavenSimpleLoggerFactory
+ * Responsible for keeping state of whether the threshold of the --fail-level flag has been hit.
  */
-public class MavenSimpleLoggerFactory
-    extends SimpleLoggerFactory
+class MavenFailLevelLoggerState
 {
-    /**
-     * Return an appropriate {@link MavenSimpleLogger} instance by name.
-     */
-    public Logger getLogger( String name )
+    private final Level logThreshold;
+    private boolean thresholdHit = false;
+
+    MavenFailLevelLoggerState( Level logLevel )
     {
-        Logger simpleLogger = loggerMap.get( name );
-        if ( simpleLogger != null )
-        {
-            return simpleLogger;
-        }
-        else
+        assert logLevel != null;
+        this.logThreshold = logLevel;
+    }
+
+    void recordLogLevel( Level logLevel )
+    {
+        if ( !thresholdHit && logLevel.toInt() >= logThreshold.toInt() )
         {
-            Logger newInstance = new MavenSimpleLogger( name );
-            Logger oldInstance = loggerMap.putIfAbsent( name, newInstance );
-            return oldInstance == null ? newInstance : oldInstance;
+            thresholdHit = true;
         }
     }
+
+    boolean threwLogsOfBreakingLevel()
+    {
+        return thresholdHit;
+    }
 }
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
new file mode 100644
index 0000000..612a11f
--- /dev/null
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
@@ -0,0 +1,91 @@
+package org.slf4j.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.logwrapper.MavenSlf4jWrapperFactory;
+import org.slf4j.Logger;
+import org.slf4j.event.Level;
+
+/**
+ * LogFactory for Maven which can create a simple logger or a one which, if set, fails the build on a threshold.
+ */
+public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4jWrapperFactory
+{
+    private MavenFailLevelLoggerState failLevelLoggerState = null;
+
+    @Override
+    public void breakOnLogsOfLevel( String logLevelToBreakOn )
+    {
+        if ( failLevelLoggerState != null )
+        {
+            throw new IllegalStateException( "Maven logger fail level has already been set." );
+        }
+
+        Level level = Level.valueOf( logLevelToBreakOn );
+        if ( level.toInt() < Level.WARN.toInt() )
+        {
+            throw new IllegalArgumentException( "Logging level thresholds can only be set to WARN or ERROR" );
+        }
+
+        failLevelLoggerState = new MavenFailLevelLoggerState( level );
+    }
+
+    @Override
+    public boolean threwLogsOfBreakingLevel()
+    {
+        if ( failLevelLoggerState != null )
+        {
+            return failLevelLoggerState.threwLogsOfBreakingLevel();
+        }
+
+        return false;
+    }
+
+    /**
+     * Return an appropriate {@link MavenSimpleLogger} instance by name.
+     */
+    @Override
+    public Logger getLogger( String name )
+    {
+        Logger simpleLogger = loggerMap.get( name );
+        if ( simpleLogger != null )
+        {
+            return simpleLogger;
+        }
+        else
+        {
+            Logger newInstance = getNewLoggingInstance( name );
+            Logger oldInstance = loggerMap.putIfAbsent( name, newInstance );
+            return oldInstance == null ? newInstance : oldInstance;
+        }
+    }
+
+    private Logger getNewLoggingInstance( String name )
+    {
+        if ( failLevelLoggerState == null )
+        {
+            return new MavenSimpleLogger( name );
+        }
+        else
+        {
+            return new MavenFailLevelLogger( name, failLevelLoggerState );
+        }
+    }
+}
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java
index 9366687..767220d 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLogger.java
@@ -19,18 +19,18 @@ package org.slf4j.impl;
  * under the License.
  */
 
-import static org.apache.maven.shared.utils.logging.MessageUtils.level;
-import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
-
 import java.io.PrintStream;
 
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
+import static org.apache.maven.shared.utils.logging.MessageUtils.level;
+
 /**
- * Logger for Maven, that support colorization of levels and stacktraces.
- * This class implements 2 methods introduced in slf4j-simple provider local copy.
+ * Logger for Maven, that support colorization of levels and stacktraces. This class implements 2 methods introduced in
+ * slf4j-simple provider local copy.
+ *
  * @since 3.5.0
  */
-public class MavenSimpleLogger
-    extends SimpleLogger
+public class MavenSimpleLogger extends SimpleLogger
 {
     MavenSimpleLogger( String name )
     {
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/StaticLoggerBinder.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
index ba01d83..ed94c70 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
@@ -40,7 +40,7 @@ public final class StaticLoggerBinder
     @SuppressWarnings( { "checkstyle:staticvariablename", "checkstyle:visibilitymodifier" } )
     public static String REQUESTED_API_VERSION = "1.7.25"; // !final
 
-    private static final String LOGGER_FACTORY_CLASS_STR = MavenSimpleLoggerFactory.class.getName();
+    private static final String LOGGER_FACTORY_CLASS_STR = MavenLoggerFactory.class.getName();
 
     /**
      * The unique instance of this class.
@@ -58,7 +58,7 @@ public final class StaticLoggerBinder
      */
     private StaticLoggerBinder()
     {
-        loggerFactory = new MavenSimpleLoggerFactory();
+        loggerFactory = new MavenLoggerFactory();
     }
 
     /**
diff --git a/maven-slf4j-wrapper/pom.xml b/maven-slf4j-wrapper/pom.xml
new file mode 100644
index 0000000..02481a3
--- /dev/null
+++ b/maven-slf4j-wrapper/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven</artifactId>
+    <version>3.6.3-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-slf4j-wrapper</artifactId>
+
+  <name>Maven SLF4J Wrapper</name>
+  <!-- TODO: Fill in a more detailed description.. -->
+  <description>
+    Maven SLF4J Wrapper.
+  </description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
similarity index 54%
rename from maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java
rename to maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
index 4adfdbe..92e6b0c 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenSimpleLoggerFactory.java
+++ b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/MavenSlf4jWrapperFactory.java
@@ -1,4 +1,4 @@
-package org.slf4j.impl;
+package org.apache.maven.logwrapper;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,29 +19,14 @@ package org.slf4j.impl;
  * under the License.
  */
 
-import org.slf4j.Logger;
+import org.slf4j.ILoggerFactory;
 
 /**
- * MavenSimpleLoggerFactory
+ * Wrapper for creating loggers which can have a log level threshold.
  */
-public class MavenSimpleLoggerFactory
-    extends SimpleLoggerFactory
+public interface MavenSlf4jWrapperFactory extends ILoggerFactory
 {
-    /**
-     * Return an appropriate {@link MavenSimpleLogger} instance by name.
-     */
-    public Logger getLogger( String name )
-    {
-        Logger simpleLogger = loggerMap.get( name );
-        if ( simpleLogger != null )
-        {
-            return simpleLogger;
-        }
-        else
-        {
-            Logger newInstance = new MavenSimpleLogger( name );
-            Logger oldInstance = loggerMap.putIfAbsent( name, newInstance );
-            return oldInstance == null ? newInstance : oldInstance;
-        }
-    }
+    boolean threwLogsOfBreakingLevel();
+
+    void breakOnLogsOfLevel( String logLevelToBreakOn );
 }
diff --git a/maven-slf4j-wrapper/src/site/site.xml b/maven-slf4j-wrapper/src/site/site.xml
new file mode 100644
index 0000000..e475330
--- /dev/null
+++ b/maven-slf4j-wrapper/src/site/site.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 http://maven.apache.org/xsd/decoration-1.8.0.xsd">
+
+  <edit>${project.scm.url}</edit>
+
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="JavaDocs" href="apidocs/index.html"/>
+      <item name="Source Xref" href="xref/index.html"/>
+      <!--item name="FAQ" href="faq.html"/-->
+    </menu>
+
+    <menu ref="parent"/>
+    <menu ref="reports"/>
+  </body>
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0a1c92f..64c98c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,6 +92,7 @@ under the License.
     <module>maven-resolver-provider</module>
     <module>maven-repository-metadata</module>
     <module>maven-slf4j-provider</module>
+    <module>maven-slf4j-wrapper</module>
     <module>maven-embedder</module>
     <module>maven-compat</module>
     <module>apache-maven</module>
@@ -157,7 +158,10 @@ under the License.
       <name>Mike Mol (MNG-6665)</name>
     </contributor>
     <contributor>
-      <name>Martin Kanters (MNG-6665)</name>
+      <name>Martin Kanters (MNG-6665, MNG-6065)</name>
+    </contributor>
+    <contributor>
+      <name>Luc Klaassen (MNG-6065)</name>
     </contributor>
   </contributors>
 
@@ -232,6 +236,11 @@ under the License.
         <artifactId>maven-slf4j-provider</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-slf4j-wrapper</artifactId>
+        <version>${project.version}</version>
+      </dependency>
       <!--bootstrap-end-comment-->
       <!--  Plexus -->
       <dependency>


[maven] 02/12: Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.

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

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

commit 32968a58547648983b091a75a5ecb6c1051b5a38
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Wed Oct 2 21:16:22 2019 +0200

    Log fail-level option. Submitted by: Luc Klaassen and Martin Kanters.
    
    Tidying up some loose ends.
---
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java        | 2 +-
 .../src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java | 2 +-
 maven-slf4j-wrapper/pom.xml                                            | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index de8a725..f7f92d6 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -1644,7 +1644,7 @@ public class MavenCli
         if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
         {
             String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );
-            
+
             if ( defStrs != null )
             {
                 for ( String defStr : defStrs )
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index f7088a7..85c895e 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -141,7 +141,7 @@ public class ExecutionEventLogger extends AbstractExecutionListener
                 if ( ( (MavenSlf4jWrapperFactory) iLoggerFactory ).threwLogsOfBreakingLevel() )
                 {
                     event.getSession().getResult().addException( new Exception(
-                            "Build failed due to log statements above WARN. "
+                            "Build failed due to log statements with a higher severity than allowed. "
                                     + "Fix the logged issues or remove flag --fail-level (-fl)." ) );
                 }
             }
diff --git a/maven-slf4j-wrapper/pom.xml b/maven-slf4j-wrapper/pom.xml
index 02481a3..28d2323 100644
--- a/maven-slf4j-wrapper/pom.xml
+++ b/maven-slf4j-wrapper/pom.xml
@@ -31,9 +31,8 @@ under the License.
   <artifactId>maven-slf4j-wrapper</artifactId>
 
   <name>Maven SLF4J Wrapper</name>
-  <!-- TODO: Fill in a more detailed description.. -->
   <description>
-    Maven SLF4J Wrapper.
+    This modules provides an ILoggerFactory interface which avoids a cyclic dependency between maven-embedder and maven-slf4j-provider.
   </description>
 
   <dependencies>


[maven] 06/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit 3123c8c4b7e00678e74dcc32ab4c6e5c73b2a72d
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Wed Dec 4 20:37:42 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Upgraded the new module to 3.7.0-SNAPSHOT after merging in the latest master
---
 maven-slf4j-wrapper/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/maven-slf4j-wrapper/pom.xml b/maven-slf4j-wrapper/pom.xml
index 28d2323..746c328 100644
--- a/maven-slf4j-wrapper/pom.xml
+++ b/maven-slf4j-wrapper/pom.xml
@@ -25,7 +25,7 @@ under the License.
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.6.3-SNAPSHOT</version>
+    <version>3.7.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>maven-slf4j-wrapper</artifactId>


[maven] 11/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit ccc5cde0570d55fa8d6dc6ced326b13069a3375d
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Mon Dec 9 18:01:33 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Renamed isThresholdHit to metThreshold
---
 .../src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java   |  8 ++++----
 .../java/org/apache/maven/cli/event/ExecutionEventLogger.java  |  2 +-
 .../java/org/apache/maven/logwrapper/LogLevelRecorder.java     | 10 +++++-----
 .../java/org/apache/maven/logwrapper/LogLevelRecorderTest.java |  2 +-
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
index 299fa67..352d627 100644
--- a/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
+++ b/apache-maven/src/test/java/org/slf4j/impl/MavenLoggerFactoryTest.java
@@ -68,16 +68,16 @@ public class MavenLoggerFactoryTest
         LogLevelRecorder logLevelRecorder = mavenLoggerFactory.getLogLevelRecorder().get();
 
         MavenFailOnSeverityLogger logger = (MavenFailOnSeverityLogger) mavenLoggerFactory.getLogger( "Test" );
-        assertFalse( logLevelRecorder.isThresholdHit() );
+        assertFalse( logLevelRecorder.metThreshold() );
 
         logger.warn( "This should not hit the fail threshold" );
-        assertFalse( logLevelRecorder.isThresholdHit() );
+        assertFalse( logLevelRecorder.metThreshold() );
 
         logger.error( "This should hit the fail threshold" );
-        assertTrue( logLevelRecorder.isThresholdHit() );
+        assertTrue( logLevelRecorder.metThreshold() );
 
         logger.warn( "This should not reset the fail threshold" );
-        assertTrue( logLevelRecorder.isThresholdHit() );
+        assertTrue( logLevelRecorder.metThreshold() );
     }
 
     @Test( expected = IllegalStateException.class )
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index ed90142..f64efeb 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -141,7 +141,7 @@ public class ExecutionEventLogger extends AbstractExecutionListener
             {
                 MavenSlf4jWrapperFactory loggerFactory = (MavenSlf4jWrapperFactory) iLoggerFactory;
                 loggerFactory.getLogLevelRecorder()
-                        .filter( LogLevelRecorder::isThresholdHit )
+                        .filter( LogLevelRecorder::metThreshold )
                         .ifPresent(recorder ->
                                 event.getSession().getResult().addException( new Exception(
                                         "Build failed due to log statements with a higher severity than allowed. "
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 3dac0a8..9fa4b51 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
@@ -27,7 +27,7 @@ import org.slf4j.event.Level;
 public class LogLevelRecorder
 {
     private final Level logThreshold;
-    private boolean thresholdHit = false;
+    private boolean metThreshold = false;
 
     public LogLevelRecorder( String threshold )
     {
@@ -42,14 +42,14 @@ public class LogLevelRecorder
 
     public void record( Level logLevel )
     {
-        if ( !thresholdHit && logLevel.toInt() >= logThreshold.toInt() )
+        if ( !metThreshold && logLevel.toInt() >= logThreshold.toInt() )
         {
-            thresholdHit = true;
+            metThreshold = true;
         }
     }
 
-    public boolean isThresholdHit()
+    public boolean metThreshold()
     {
-        return thresholdHit;
+        return metThreshold;
     }
 }
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 db5337c..69b2853 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
@@ -32,7 +32,7 @@ public class LogLevelRecorderTest
         LogLevelRecorder logLevelRecorder = new LogLevelRecorder( "WARN" );
         logLevelRecorder.record( Level.ERROR );
 
-        assertTrue( logLevelRecorder.isThresholdHit() );
+        assertTrue( logLevelRecorder.metThreshold() );
     }
 
     @Test( expected = IllegalArgumentException.class )


[maven] 09/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit b01235c7ef173cae7957d6be54600f6bc67831be
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Sun Dec 8 10:58:43 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Renamed the flag --fail-level to --fail-on-severity
---
 maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java   | 4 ++--
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java     | 6 +++---
 .../main/java/org/apache/maven/cli/event/ExecutionEventLogger.java  | 2 +-
 .../{MavenFailLevelLogger.java => MavenFailOnSeverityLogger.java}   | 6 +++---
 .../src/main/java/org/slf4j/impl/MavenLoggerFactory.java            | 6 +++---
 .../src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java | 4 ++--
 6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index ea67fde..ec5e1b1 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -77,7 +77,7 @@ public class CLIManager
 
     public static final String FAIL_FAST = "ff";
 
-    public static final String FAIL_LEVEL = "fl";
+    public static final String FAIL_ON_SEVERITY = "fos";
 
     public static final String FAIL_AT_END = "fae";
 
@@ -130,7 +130,7 @@ public class CLIManager
         options.addOption( Option.builder( ALTERNATE_GLOBAL_SETTINGS ).longOpt( "global-settings" ).desc( "Alternate path for the global settings file" ).hasArg().build() );
         options.addOption( Option.builder( Character.toString( ALTERNATE_USER_TOOLCHAINS ) ).longOpt( "toolchains" ).desc( "Alternate path for the user toolchains file" ).hasArg().build() );
         options.addOption( Option.builder( ALTERNATE_GLOBAL_TOOLCHAINS ).longOpt( "global-toolchains" ).desc( "Alternate path for the global toolchains file" ).hasArg().build() );
-        options.addOption( Option.builder( FAIL_LEVEL ).longOpt( "fail-level" ).desc( "Configure which level of logging should cause the build to fail" ).hasArgs().build() );
+        options.addOption( Option.builder( FAIL_ON_SEVERITY ).longOpt( "fail-on-severity" ).desc( "Configure which severity of logging should cause the build to fail" ).hasArgs().build() );
         options.addOption( Option.builder( FAIL_FAST ).longOpt( "fail-fast" ).desc( "Stop at first failure in reactorized builds" ).build() );
         options.addOption( Option.builder( FAIL_AT_END ).longOpt( "fail-at-end" ).desc( "Only fail the build afterwards; allow all non-impacted builds to continue" ).build() );
         options.addOption( Option.builder( FAIL_NEVER ).longOpt( "fail-never" ).desc( "NEVER fail the build, regardless of project result" ).build() );
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index d8557c6..215d108 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -545,9 +545,9 @@ public class MavenCli
         plexusLoggerManager = new Slf4jLoggerManager();
         slf4jLogger = slf4jLoggerFactory.getLogger( this.getClass().getName() );
 
-        if ( cliRequest.commandLine.hasOption( CLIManager.FAIL_LEVEL ) )
+        if ( cliRequest.commandLine.hasOption( CLIManager.FAIL_ON_SEVERITY ) )
         {
-            String logLevelThreshold = cliRequest.commandLine.getOptionValue( CLIManager.FAIL_LEVEL );
+            String logLevelThreshold = cliRequest.commandLine.getOptionValue( CLIManager.FAIL_ON_SEVERITY );
 
             if ( slf4jLoggerFactory instanceof MavenSlf4jWrapperFactory )
             {
@@ -558,7 +558,7 @@ public class MavenCli
             else
             {
                 slf4jLogger.warn( "Expected LoggerFactory to be of type '{}', but found '{}' instead. "
-                        + "The --fail-level flag will not take effect.",
+                        + "The --fail-on-severity flag will not take effect.",
                         MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName());
             }
         }
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index dc41021..ed90142 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -145,7 +145,7 @@ public class ExecutionEventLogger extends AbstractExecutionListener
                         .ifPresent(recorder ->
                                 event.getSession().getResult().addException( new Exception(
                                         "Build failed due to log statements with a higher severity than allowed. "
-                                        + "Fix the logged issues or remove flag --fail-level (-fl)." ) )
+                                        + "Fix the logged issues or remove flag --fail-on-severity (-fos)." ) )
                 );
             }
 
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailOnSeverityLogger.java
similarity index 95%
rename from maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
rename to maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailOnSeverityLogger.java
index b4b4605..12c6cc2 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailLevelLogger.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenFailOnSeverityLogger.java
@@ -24,13 +24,13 @@ import org.slf4j.event.Level;
 
 /**
  * A proxy which enhances the MavenSimpleLogger with functionality to track whether a logging threshold is hit.
- * Currently only support WARN and ERROR states, since it's been used for the --fail-level flag.
+ * Currently only support WARN and ERROR states, since it's been used for the --fail-on-severity flag.
  */
-public class MavenFailLevelLogger extends MavenSimpleLogger
+public class MavenFailOnSeverityLogger extends MavenSimpleLogger
 {
     private final LogLevelRecorder logLevelRecorder;
 
-    MavenFailLevelLogger( String name, LogLevelRecorder logLevelRecorder )
+    MavenFailOnSeverityLogger( String name, LogLevelRecorder logLevelRecorder )
     {
         super( name );
         this.logLevelRecorder = logLevelRecorder;
diff --git a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
index 914f2a5..7ef126d 100644
--- a/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
+++ b/maven-slf4j-provider/src/main/java/org/slf4j/impl/MavenLoggerFactory.java
@@ -26,7 +26,7 @@ import org.slf4j.Logger;
 import java.util.Optional;
 
 /**
- * LogFactory for Maven which can create a simple logger or a one which, if set, fails the build on a threshold.
+ * LogFactory for Maven which can create a simple logger or one which, if set, fails the build on a severity threshold.
  */
 public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4jWrapperFactory
 {
@@ -37,7 +37,7 @@ public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4
     {
         if ( this.logLevelRecorder != null )
         {
-            throw new IllegalStateException( "Maven logger fail level has already been set." );
+            throw new IllegalStateException( "LogLevelRecorder has already been set." );
         }
 
         this.logLevelRecorder = logLevelRecorder;
@@ -76,7 +76,7 @@ public class MavenLoggerFactory extends SimpleLoggerFactory implements MavenSlf4
         }
         else
         {
-            return new MavenFailLevelLogger( name, logLevelRecorder );
+            return new MavenFailOnSeverityLogger( name, logLevelRecorder );
         }
     }
 }
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 0ac2957..3dac0a8 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
@@ -22,7 +22,7 @@ package org.apache.maven.logwrapper;
 import org.slf4j.event.Level;
 
 /**
- * Responsible for keeping state of whether the threshold of the --fail-level flag has been hit.
+ * Responsible for keeping state of whether the threshold of the --fail-on-severity flag has been hit.
  */
 public class LogLevelRecorder
 {
@@ -34,7 +34,7 @@ public class LogLevelRecorder
         Level level = Level.valueOf( threshold );
         if ( level.toInt() < Level.WARN.toInt() )
         {
-            throw new IllegalArgumentException( "Logging level thresholds can only be set to WARN or ERROR" );
+            throw new IllegalArgumentException( "Logging severity thresholds can only be set to WARN or ERROR" );
         }
 
         logThreshold = level;


[maven] 12/12: Log fail-level option. Submitted by: Martin Kanters.

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

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

commit 52f28651ef76a244d21e1c56a1d167a1613175fb
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Tue Dec 10 22:30:33 2019 +0100

    Log fail-level option. Submitted by: Martin Kanters.
    
    Fixed checkstyle issues
---
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java         | 2 +-
 .../src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 215d108..8653c27 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -559,7 +559,7 @@ public class MavenCli
             {
                 slf4jLogger.warn( "Expected LoggerFactory to be of type '{}', but found '{}' instead. "
                         + "The --fail-on-severity flag will not take effect.",
-                        MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName());
+                        MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName() );
             }
         }
     }
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index f64efeb..f3cd858 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -142,7 +142,7 @@ public class ExecutionEventLogger extends AbstractExecutionListener
                 MavenSlf4jWrapperFactory loggerFactory = (MavenSlf4jWrapperFactory) iLoggerFactory;
                 loggerFactory.getLogLevelRecorder()
                         .filter( LogLevelRecorder::metThreshold )
-                        .ifPresent(recorder ->
+                        .ifPresent( recorder ->
                                 event.getSession().getResult().addException( new Exception(
                                         "Build failed due to log statements with a higher severity than allowed. "
                                         + "Fix the logged issues or remove flag --fail-on-severity (-fos)." ) )


[maven] 08/12: Corrected logger warning grammar

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

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

commit d5e93ce33d6bf00bd22b46deba33c488acfbb123
Author: Martin Kanters <mk...@gmail.com>
AuthorDate: Thu Dec 5 08:47:25 2019 +0100

    Corrected logger warning grammar
---
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index bc93846..d8557c6 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -558,7 +558,7 @@ public class MavenCli
             else
             {
                 slf4jLogger.warn( "Expected LoggerFactory to be of type '{}', but found '{}' instead. "
-                        + "The --fail-level flag will not take into effect.",
+                        + "The --fail-level flag will not take effect.",
                         MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName());
             }
         }