You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2021/10/01 13:57:13 UTC

[maven] 01/01: Clean up core logging

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

cstamas pushed a commit to branch cleanup-core-logging
in repository https://gitbox.apache.org/repos/asf/maven.git

commit dc08f512784669f24817d9596b63c791520334a3
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Fri Oct 1 15:55:29 2021 +0200

    Clean up core logging
    
    We had all kind of Loggers in Core, some Plexus
    injected, some acquired using SLF4J LoggerFactory,
    some static, some final, etc.
    
    This PR aligns all those uses to SLF4J finals.
    
    Notices:
    * maven-core does NOT use Plexus Logger anymore
    * did not touch maven-compat
---
 .../main/java/org/apache/maven/DefaultMaven.java   |   7 +-
 .../maven/classrealm/DefaultClassRealmManager.java |  11 ++-
 .../eventspy/internal/EventSpyDispatcher.java      |   7 +-
 .../DefaultRepositorySystemSessionFactory.java     |   6 +-
 .../internal/aether/LoggingRepositoryListener.java |   2 +-
 .../apache/maven/lifecycle/DefaultLifecycles.java  |  13 ++-
 .../internal/DefaultLifecyclePluginAnalyzer.java   |   8 +-
 .../lifecycle/internal/LifecycleDebugLogger.java   |  14 +--
 .../internal/LifecycleDependencyResolver.java      |  10 +-
 .../maven/lifecycle/internal/LifecycleStarter.java |   8 +-
 .../lifecycle/internal/MojoDescriptorCreator.java  |   7 +-
 .../lifecycle/internal/builder/BuilderCommon.java  |  12 ++-
 .../multithreaded/MultiThreadedBuilder.java        |   7 +-
 .../maven/plugin/DebugConfigurationListener.java   |   4 +-
 .../plugin/PluginParameterExpressionEvaluator.java |   3 +-
 .../plugin/internal/DefaultMavenPluginManager.java |  12 +--
 .../DefaultPluginDependenciesResolver.java         |   7 +-
 .../internal/DefaultPluginPrefixResolver.java      |   7 +-
 .../internal/DefaultPluginVersionResolver.java     |   7 +-
 .../maven/project/DefaultProjectBuilder.java       |   7 +-
 .../project/DefaultProjectBuildingHelper.java      |   7 +-
 .../DefaultProjectDependenciesResolver.java        |   7 +-
 .../project/artifact/MavenMetadataSource.java      |   8 +-
 .../rtinfo/internal/DefaultRuntimeInformation.java |   8 +-
 .../apache/maven/toolchain/DefaultToolchain.java   |   6 +-
 .../maven/toolchain/DefaultToolchainManager.java   |  22 ++++-
 .../toolchain/DefaultToolchainManagerPrivate.java  |  17 ++++
 .../maven/toolchain/DefaultToolchainsBuilder.java  |   8 +-
 .../maven/toolchain/java/DefaultJavaToolChain.java |   2 +-
 .../maven/toolchain/java/JavaToolchainFactory.java |   8 +-
 .../maven/toolchain/java/JavaToolchainImpl.java    |   2 +-
 .../maven/lifecycle/DefaultLifecyclesTest.java     |   3 +-
 .../lifecycle/internal/BuilderCommonTest.java      |  15 ++-
 .../internal/stub/DefaultLifecyclesStub.java       |   2 +-
 .../maven/lifecycle/internal/stub/LoggerStub.java  | 110 ---------------------
 .../DefaultToolchainManagerPrivateTest.java        |  22 +----
 .../toolchain/DefaultToolchainManagerTest.java     |  24 ++---
 .../maven/toolchain/DefaultToolchainTest.java      |   7 +-
 .../internal/BootstrapCoreExtensionManager.java    |   8 +-
 maven-plugin-api/pom.xml                           |   4 +
 .../apache/maven/monitor/logging/DefaultLog.java   |   2 +-
 41 files changed, 160 insertions(+), 291 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index f80833b..39798a8 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -48,11 +48,12 @@ import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
 import org.apache.maven.session.scope.internal.SessionScope;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -82,9 +83,7 @@ import static java.util.stream.Collectors.toSet;
 public class DefaultMaven
     implements Maven
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     protected ProjectBuilder projectBuilder;
diff --git a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
index cf3d746..abd4bb6 100644
--- a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
+++ b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
@@ -45,9 +45,10 @@ import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.ClassWorld;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.codehaus.plexus.classworlds.realm.DuplicateRealmException;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.artifact.Artifact;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Manages the class realms used by Maven. <strong>Warning:</strong> This is an internal utility class that is only
@@ -73,7 +74,7 @@ public class DefaultClassRealmManager
      */
     private static final ClassLoader PARENT_CLASSLOADER = ClassWorld.class.getClassLoader();
 
-    private final Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     private final ClassWorld world;
 
@@ -91,10 +92,10 @@ public class DefaultClassRealmManager
     private final Set<String> providedArtifacts;
 
     @Inject
-    public DefaultClassRealmManager( Logger logger, PlexusContainer container,
-                                     List<ClassRealmManagerDelegate> delegates, CoreExportsProvider exports )
+    public DefaultClassRealmManager( PlexusContainer container,
+                                     List<ClassRealmManagerDelegate> delegates,
+                                     CoreExportsProvider exports )
     {
-        this.logger = logger;
         this.world = ( (MutablePlexusContainer) container ).getClassWorld();
         this.containerRealm = container.getContainerRealm();
         this.delegates = delegates;
diff --git a/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyDispatcher.java b/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyDispatcher.java
index 980bc15..3fb3432 100644
--- a/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyDispatcher.java
+++ b/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyDispatcher.java
@@ -28,8 +28,9 @@ import javax.inject.Singleton;
 
 import org.apache.maven.eventspy.EventSpy;
 import org.apache.maven.execution.ExecutionListener;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.RepositoryListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Dispatches callbacks to all registered eventspies.
@@ -39,9 +40,7 @@ import org.eclipse.aether.RepositoryListener;
 @Singleton
 public class EventSpyDispatcher
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     private List<EventSpy> eventSpies;
 
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index c419f17..9a2d0bb 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -36,7 +36,6 @@ import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
 import org.apache.maven.settings.crypto.SettingsDecrypter;
 import org.apache.maven.settings.crypto.SettingsDecryptionResult;
 import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.eclipse.aether.ConfigurationProperties;
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -57,6 +56,8 @@ import org.eclipse.aether.util.repository.DefaultMirrorSelector;
 import org.eclipse.aether.util.repository.DefaultProxySelector;
 import org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy;
 import org.eclipse.sisu.Nullable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -77,8 +78,7 @@ import java.util.Properties;
 @Named
 public class DefaultRepositorySystemSessionFactory
 {
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private ArtifactHandlerManager artifactHandlerManager;
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java b/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
index ba8c657..340a3b6 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
@@ -21,10 +21,10 @@ package org.apache.maven.internal.aether;
 
 import java.io.FileNotFoundException;
 
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.AbstractRepositoryListener;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.transfer.MetadataNotFoundException;
+import org.slf4j.Logger;
 
 /**
  * @author Benjamin Bentmann
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
index 16b2b8c..1160e88 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
@@ -19,8 +19,6 @@ package org.apache.maven.lifecycle;
  * under the License.
  */
 
-import org.codehaus.plexus.logging.Logger;
-
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -33,6 +31,9 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * @since 3.0
  * @author Jason van Zyl
@@ -46,26 +47,24 @@ public class DefaultLifecycles
 {
     public static final String[] STANDARD_LIFECYCLES = { "default", "clean", "site", "wrapper" };
 
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
+
     // @Configuration(source="org/apache/maven/lifecycle/lifecycles.xml")
 
     private final Map<String, Lifecycle> lifecyclesMap;
 
-    private final Logger logger;
-
     public DefaultLifecycles()
     {
         this.lifecyclesMap = null;
-        this.logger = null;
     }
 
     @Inject
-    public DefaultLifecycles( Map<String, Lifecycle> lifecyclesMap, Logger logger )
+    public DefaultLifecycles( Map<String, Lifecycle> lifecyclesMap )
     {
         // Must keep the lifecyclesMap as is.
         // During initialization it only contains the default lifecycles.
         // However, extensions might add custom lifecycles later on.
         this.lifecyclesMap = lifecyclesMap;
-        this.logger = logger;
     }
 
     /**
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
index f1bb442..823d08c 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
@@ -39,9 +39,10 @@ import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginExecution;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <strong>NOTE:</strong> This class is not part of any public api and can be changed or deleted without prior notice.
@@ -59,15 +60,14 @@ public class DefaultLifecyclePluginAnalyzer
     public static final String DEFAULTLIFECYCLEBINDINGS_MODELID = "org.apache.maven:maven-core:"
         + DefaultLifecyclePluginAnalyzer.class.getPackage().getImplementationVersion() + ":default-lifecycle-bindings";
 
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
+
     @Requirement( role = LifecycleMapping.class )
     private Map<String, LifecycleMapping> lifecycleMappings;
 
     @Requirement
     private DefaultLifecycles defaultLifeCycles;
 
-    @Requirement
-    private Logger logger;
-
     public DefaultLifecyclePluginAnalyzer()
     {
     }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
index 9ffb3d4..7dda3b4 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
@@ -25,7 +25,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
@@ -34,8 +33,9 @@ import org.apache.maven.lifecycle.internal.builder.BuilderCommon;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -52,20 +52,12 @@ import org.codehaus.plexus.util.StringUtils;
 @Singleton
 public class LifecycleDebugLogger
 {
-    @Inject
-    private Logger logger;
-
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     public LifecycleDebugLogger()
     {
     }
 
-    public LifecycleDebugLogger( Logger logger )
-    {
-        this.logger = logger;
-    }
-
-
     public void debug( String s )
     {
         logger.debug( s );
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
index 44d6cef..00d3bd2 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
@@ -46,12 +46,13 @@ import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectDependenciesResolver;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.artifact.ProjectArtifactsCache;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.util.filter.AndDependencyFilter;
 import org.eclipse.aether.util.filter.ScopeDependencyFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -66,14 +67,12 @@ import org.eclipse.aether.util.filter.ScopeDependencyFilter;
 @Named
 public class LifecycleDependencyResolver
 {
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private ProjectDependenciesResolver dependenciesResolver;
 
     @Inject
-    private Logger logger;
-
-    @Inject
     private ProjectArtifactFactory artifactFactory;
 
     @Inject
@@ -86,10 +85,9 @@ public class LifecycleDependencyResolver
     {
     }
 
-    public LifecycleDependencyResolver( ProjectDependenciesResolver projectDependenciesResolver, Logger logger )
+    public LifecycleDependencyResolver( ProjectDependenciesResolver projectDependenciesResolver )
     {
         this.dependenciesResolver = projectDependenciesResolver;
-        this.logger = logger;
     }
 
     public static List<MavenProject> getProjects( MavenProject project, MavenSession session, boolean aggregator )
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
index e3d886d..56b2290 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
@@ -35,7 +35,8 @@ import org.apache.maven.lifecycle.NoGoalSpecifiedException;
 import org.apache.maven.lifecycle.internal.builder.Builder;
 import org.apache.maven.lifecycle.internal.builder.BuilderNotFoundException;
 import org.apache.maven.session.scope.internal.SessionScope;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Starts the build life cycle
@@ -48,6 +49,8 @@ import org.codehaus.plexus.logging.Logger;
 @Singleton
 public class LifecycleStarter
 {
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
+
     @Inject
     private ExecutionEventCatapult eventCatapult;
 
@@ -55,9 +58,6 @@ public class LifecycleStarter
     private DefaultLifecycles defaultLifeCycles;
 
     @Inject
-    private Logger logger;
-
-    @Inject
     private BuildListCalculator buildListCalculator;
 
     @Inject
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
index 03eae37..7f7a7bf 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
@@ -47,8 +47,9 @@ import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.plugin.version.PluginVersionResolver;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -66,9 +67,7 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
 @Singleton
 public class MojoDescriptorCreator
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private PluginVersionResolver pluginVersionResolver;
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
index d16b27d..86d49f5 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
@@ -57,7 +57,8 @@ import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Common code that is shared by the LifecycleModuleBuilder and the LifeCycleWeaveBuilder
@@ -71,6 +72,8 @@ import org.codehaus.plexus.logging.Logger;
 @Singleton
 public class BuilderCommon
 {
+    private final Logger logger;
+
     @Inject
     private LifecycleDebugLogger lifecycleDebugLogger;
 
@@ -80,15 +83,14 @@ public class BuilderCommon
     @Inject
     private ExecutionEventCatapult eventCatapult;
 
-    @Inject
-    private Logger logger;
-
     public BuilderCommon()
     {
+        this.logger = LoggerFactory.getLogger( getClass() );
     }
 
     public BuilderCommon( LifecycleDebugLogger lifecycleDebugLogger,
-                          LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator, Logger logger )
+                          LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator,
+                          Logger logger )
     {
         this.lifecycleDebugLogger = lifecycleDebugLogger;
         this.lifeCycleExecutionPlanCalculator = lifeCycleExecutionPlanCalculator;
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
index 285217f..7a94ade 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
@@ -43,7 +43,8 @@ import org.apache.maven.lifecycle.internal.ReactorContext;
 import org.apache.maven.lifecycle.internal.TaskSegment;
 import org.apache.maven.lifecycle.internal.builder.Builder;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Builds the full lifecycle in weave-mode (phase by phase as opposed to project-by-project).
@@ -64,9 +65,7 @@ import org.codehaus.plexus.logging.Logger;
 public class MultiThreadedBuilder
     implements Builder
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private LifecycleModuleBuilder lifecycleModuleBuilder;
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DebugConfigurationListener.java b/maven-core/src/main/java/org/apache/maven/plugin/DebugConfigurationListener.java
index 0ce3ae2..2ad629f 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DebugConfigurationListener.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DebugConfigurationListener.java
@@ -22,7 +22,7 @@ package org.apache.maven.plugin;
 import java.lang.reflect.Array;
 
 import org.codehaus.plexus.component.configurator.ConfigurationListener;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
 
 /**
  * Log at debug level the mojo configuration.
@@ -33,7 +33,7 @@ import org.codehaus.plexus.logging.Logger;
 public class DebugConfigurationListener
     implements ConfigurationListener
 {
-    private Logger logger;
+    private final Logger logger;
 
     public DebugConfigurationListener( Logger logger )
     {
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
index 4f55033..2d4aaf8 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
@@ -29,7 +29,6 @@ import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.path.PathTranslator;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.component.configurator.expression.TypeAwareExpressionEvaluator;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
 
 /**
@@ -87,7 +86,7 @@ public class PluginParameterExpressionEvaluator
 
     @Deprecated //TODO used by the Enforcer plugin
     public PluginParameterExpressionEvaluator( MavenSession session, MojoExecution mojoExecution,
-                                               PathTranslator pathTranslator, Logger logger, MavenProject project,
+                                               PathTranslator pathTranslator, MavenProject project,
                                                Properties properties )
     {
         this( session, mojoExecution );
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
index 7bb19bb..9e3fdd7 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
@@ -73,8 +73,6 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 import org.codehaus.plexus.configuration.PlexusConfigurationException;
 import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.LoggerManager;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -84,6 +82,8 @@ import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.util.filter.AndDependencyFilter;
 import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
@@ -132,11 +132,7 @@ public class DefaultMavenPluginManager
      */
     public static final String KEY_EXTENSIONS_REALMS = DefaultMavenPluginManager.class.getName() + "/extensionsRealms";
 
-    @Inject
-    private Logger logger;
-
-    @Inject
-    private LoggerManager loggerManager;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private PlexusContainer container;
@@ -571,7 +567,7 @@ public class DefaultMavenPluginManager
 
             if ( mojo instanceof Mojo )
             {
-                Logger mojoLogger = loggerManager.getLoggerForComponent( mojoDescriptor.getImplementation() );
+                Logger mojoLogger = LoggerFactory.getLogger( mojoDescriptor.getImplementation() );
                 ( (Mojo) mojo ).setLog( new DefaultLog( mojoLogger ) );
             }
 
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
index 709bd72..c8ab6c2 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
@@ -33,7 +33,6 @@ import org.apache.maven.RepositoryUtils;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.PluginResolutionException;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
@@ -61,6 +60,8 @@ import org.eclipse.aether.util.filter.ScopeDependencyFilter;
 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 import org.eclipse.aether.util.graph.selector.AndDependencySelector;
 import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Assists in resolving the dependencies of a plugin. <strong>Warning:</strong> This is an internal utility class that
@@ -75,11 +76,9 @@ import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
 public class DefaultPluginDependenciesResolver
     implements PluginDependenciesResolver
 {
-
     private static final String REPOSITORY_CONTEXT = "plugin";
 
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private RepositorySystem repoSystem;
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
index 7b98e80..7b258d7 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
@@ -39,7 +39,6 @@ import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException;
 import org.apache.maven.plugin.prefix.PluginPrefixRequest;
 import org.apache.maven.plugin.prefix.PluginPrefixResolver;
 import org.apache.maven.plugin.prefix.PluginPrefixResult;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.RepositoryEvent.EventType;
@@ -53,6 +52,8 @@ import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.repository.RepositoryPolicy;
 import org.eclipse.aether.resolution.MetadataRequest;
 import org.eclipse.aether.resolution.MetadataResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Resolves a plugin prefix.
@@ -65,11 +66,9 @@ import org.eclipse.aether.resolution.MetadataResult;
 public class DefaultPluginPrefixResolver
     implements PluginPrefixResolver
 {
-
     private static final String REPOSITORY_CONTEXT = "plugin";
 
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private BuildPluginManager pluginManager;
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
index ec72f2a..f88a178 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
@@ -46,7 +46,6 @@ import org.apache.maven.plugin.version.PluginVersionRequest;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.plugin.version.PluginVersionResolver;
 import org.apache.maven.plugin.version.PluginVersionResult;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.RepositoryEvent.EventType;
@@ -64,6 +63,8 @@ import org.eclipse.aether.util.version.GenericVersionScheme;
 import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionScheme;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Resolves a version for a plugin.
@@ -76,13 +77,11 @@ import org.eclipse.aether.version.VersionScheme;
 public class DefaultPluginVersionResolver
     implements PluginVersionResolver
 {
-
     private static final String REPOSITORY_CONTEXT = "plugin";
 
     private static final Object CACHE_KEY = new Object();
 
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private RepositorySystem repositorySystem;
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 3aaf8ee..32ad3a7 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -72,7 +72,6 @@ import org.apache.maven.model.building.TransformerContext;
 import org.apache.maven.model.resolution.ModelResolver;
 import org.apache.maven.repository.internal.ArtifactDescriptorUtils;
 import org.apache.maven.repository.internal.DefaultModelCache;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.Os;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.RepositorySystemSession;
@@ -83,6 +82,8 @@ import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.repository.WorkspaceRepository;
 import org.eclipse.aether.resolution.ArtifactRequest;
 import org.eclipse.aether.resolution.ArtifactResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * DefaultProjectBuilder
@@ -92,9 +93,7 @@ import org.eclipse.aether.resolution.ArtifactResult;
 public class DefaultProjectBuilder
     implements ProjectBuilder
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private ModelBuilder modelBuilder;
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
index e5c89e6..d96adf3 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
@@ -51,9 +51,10 @@ import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Assists the project builder. <strong>Warning:</strong> This is an internal utility class that is only public for
@@ -67,9 +68,7 @@ import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
 public class DefaultProjectBuildingHelper
     implements ProjectBuildingHelper
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private PlexusContainer container;
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
index 267dc2d..127d37f 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
@@ -34,7 +34,6 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
@@ -52,6 +51,8 @@ import org.eclipse.aether.resolution.DependencyRequest;
 import org.eclipse.aether.util.artifact.ArtifactIdUtils;
 import org.eclipse.aether.util.artifact.JavaScopes;
 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author Benjamin Bentmann
@@ -61,9 +62,7 @@ import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 public class DefaultProjectDependenciesResolver
     implements ProjectDependenciesResolver
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     @Inject
     private RepositorySystem repoSystem;
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
index 271e6d6..08ba741 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
+++ b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
@@ -80,11 +80,12 @@ import org.apache.maven.repository.legacy.metadata.DefaultMetadataResolutionRequ
 import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RepositoryPolicy;
 import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.transfer.ArtifactNotFoundException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author Jason van Zyl
@@ -94,6 +95,8 @@ import org.eclipse.aether.transfer.ArtifactNotFoundException;
 public class MavenMetadataSource
     implements ArtifactMetadataSource
 {
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
+
     @Inject
     private RepositoryMetadataManager repositoryMetadataManager;
 
@@ -108,9 +111,6 @@ public class MavenMetadataSource
     private PlexusContainer container;
 
     @Inject
-    private Logger logger;
-
-    @Inject
     private MavenMetadataCache cache;
 
     @Inject
diff --git a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
index fbb817e..1fbfb51 100644
--- a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
+++ b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
@@ -22,18 +22,18 @@ package org.apache.maven.rtinfo.internal;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.rtinfo.RuntimeInformation;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.util.version.GenericVersionScheme;
 import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 import org.eclipse.aether.version.VersionScheme;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Properties;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
@@ -45,9 +45,7 @@ import javax.inject.Singleton;
 public class DefaultRuntimeInformation
     implements RuntimeInformation
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     private String mavenVersion;
 
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java
index 0eb88d7..8b44552 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java
@@ -26,7 +26,7 @@ import java.util.Properties;
 import java.util.Objects;
 
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
 
 /**
  * Default abstract toolchain implementation, to be used as base class for any toolchain implementation
@@ -38,6 +38,7 @@ import org.codehaus.plexus.logging.Logger;
 public abstract class DefaultToolchain // should have been AbstractToolchain...
     implements Toolchain, ToolchainPrivate
 {
+    private final Logger logger;
 
     private String type;
 
@@ -47,8 +48,6 @@ public abstract class DefaultToolchain // should have been AbstractToolchain...
 
     private ToolchainModel model;
 
-    private Logger logger;
-
     /**
      *
      * @param model the model, must not be {@code null}
@@ -57,7 +56,6 @@ public abstract class DefaultToolchain // should have been AbstractToolchain...
     protected DefaultToolchain( ToolchainModel model, Logger logger )
     {
         this.model = model;
-
         this.logger = logger;
     }
 
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java
index cfe22cb..8f9b42d 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java
@@ -33,7 +33,10 @@ import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static java.util.Objects.requireNonNull;
 
 /**
  * @author mkleint
@@ -43,12 +46,25 @@ import org.codehaus.plexus.logging.Logger;
 public class DefaultToolchainManager
     implements ToolchainManager
 {
-    @Inject
-    Logger logger;
+    protected final Logger logger;
 
     @Inject
     Map<String, ToolchainFactory> factories;
 
+    @Inject
+    public DefaultToolchainManager()
+    {
+        this( LoggerFactory.getLogger( DefaultToolchainManager.class ) );
+    }
+
+    /**
+     * Ctor for UT.
+     */
+    public DefaultToolchainManager( Logger logger )
+    {
+        this.logger = requireNonNull( logger );
+    }
+
     @Override
     public Toolchain getToolchainFromBuildContext( String type, MavenSession session )
     {
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
index 538c99d..f3b6acdd 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
@@ -23,13 +23,17 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.toolchain.model.ToolchainModel;
+import org.slf4j.Logger;
 
 /**
+ * TODO: refactor this, component extending component is bad practice.
+ *
  * @author mkleint
  * @author Robert Scholte
  */
@@ -39,6 +43,19 @@ public class DefaultToolchainManagerPrivate
     extends DefaultToolchainManager
     implements ToolchainManagerPrivate
 {
+    @Inject
+    public DefaultToolchainManagerPrivate()
+    {
+        super();
+    }
+
+    /**
+     * Ctor for UT.
+     */
+    public DefaultToolchainManagerPrivate( Logger logger )
+    {
+        super( logger );
+    }
 
     @Override
     public ToolchainPrivate[] getToolchainsForType( String type, MavenSession context )
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
index 94f3114..84a31e4 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
@@ -21,13 +21,13 @@ package org.apache.maven.toolchain;
 
 import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.ReaderFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.Reader;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
@@ -41,9 +41,7 @@ import javax.inject.Singleton;
 public class DefaultToolchainsBuilder
     implements ToolchainsBuilder
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     public PersistedToolchains build( File userToolchainsFile )
         throws MisconfiguredToolchainException
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java b/maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java
index ac29f1f..e264e60 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java
@@ -20,7 +20,7 @@ package org.apache.maven.toolchain.java;
  */
 
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
 
 /**
  * Provides backwards compatibility with Maven 3.2.3 and earlier. Clients that do not require compatibility with Maven
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java b/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java
index f2e45a3..71d0a02 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.util.Map.Entry;
 import java.util.Properties;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
@@ -33,9 +32,10 @@ import org.apache.maven.toolchain.RequirementMatcherFactory;
 import org.apache.maven.toolchain.ToolchainFactory;
 import org.apache.maven.toolchain.ToolchainPrivate;
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * JDK toolchain factory.
@@ -50,9 +50,7 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
 public class JavaToolchainFactory
     implements ToolchainFactory
 {
-
-    @Inject
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( getClass() );
 
     public ToolchainPrivate createToolchain( ToolchainModel model )
         throws MisconfiguredToolchainException
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java b/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java
index d047e7e..af5a88c 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java
@@ -23,9 +23,9 @@ import java.io.File;
 
 import org.apache.maven.toolchain.DefaultToolchain;
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.Os;
+import org.slf4j.Logger;
 
 /**
  * JDK toolchain implementation.
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
index 81dfb71..59229d4 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
@@ -91,8 +91,7 @@ public class DefaultLifecyclesTest
         myLifecycles.addAll( defaultLifeCycles.getLifeCycles() );
 
         DefaultLifecycles dl = new DefaultLifecycles( myLifecycles.stream()
-                                                            .collect( Collectors.toMap( l -> l.getId(), l -> l ) ),
-                                                      null );
+                                                            .collect( Collectors.toMap( l -> l.getId(), l -> l ) ) );
 
         assertThat( dl.getLifeCycles().get( 0 ).getId(), is( "default" ) );
         assertThat( dl.getLifeCycles().get( 1 ).getId(), is( "clean" ) );
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
index fe0776e..7a4fb89 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
@@ -22,8 +22,8 @@ import org.apache.maven.lifecycle.MavenExecutionPlan;
 import org.apache.maven.lifecycle.internal.builder.BuilderCommon;
 import org.apache.maven.lifecycle.internal.stub.LifecycleExecutionPlanCalculatorStub;
 import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub;
-import org.codehaus.plexus.logging.Logger;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.Mockito.mock;
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.verify;
  */
 public class BuilderCommonTest
 {
-    private Logger logger = mock( Logger.class );
+    private Logger logger = mock(Logger.class);
 
     @Test
     public void testResolveBuildPlan()
@@ -46,7 +46,7 @@ public class BuilderCommonTest
         final MavenSession session1 = original.clone();
         session1.setCurrentProject( ProjectDependencyGraphStub.A );
 
-        final BuilderCommon builderCommon = getBuilderCommon();
+        final BuilderCommon builderCommon = getBuilderCommon( logger );
         final MavenExecutionPlan plan =
             builderCommon.resolveBuildPlan( session1, ProjectDependencyGraphStub.A, taskSegment1,
                     new HashSet<>() );
@@ -63,7 +63,7 @@ public class BuilderCommonTest
         final MavenSession session1 = original.clone();
         session1.setCurrentProject( ProjectDependencyGraphStub.A );
 
-        getBuilderCommon().resolveBuildPlan( session1, ProjectDependencyGraphStub.A, taskSegment1, new HashSet<>() );
+        getBuilderCommon( logger ).resolveBuildPlan( session1, ProjectDependencyGraphStub.A, taskSegment1, new HashSet<>() );
 
         verify( logger ).warn("Version not locked for default bindings plugins ["
             + "stub-plugin-initialize, "
@@ -95,11 +95,10 @@ public class BuilderCommonTest
     {
     }
 
-    public BuilderCommon getBuilderCommon()
+    public BuilderCommon getBuilderCommon( Logger logger )
     {
-        final LifecycleDebugLogger debugLogger = new LifecycleDebugLogger( logger );
-        return new BuilderCommon( debugLogger, new LifecycleExecutionPlanCalculatorStub(),
-                                  logger );
+        final LifecycleDebugLogger debugLogger = new LifecycleDebugLogger();
+        return new BuilderCommon( debugLogger, new LifecycleExecutionPlanCalculatorStub(), logger );
     }
 
 }
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
index 14c6743..1d3f8fd 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
@@ -58,7 +58,7 @@ public class DefaultLifecyclesStub
             lifeCycles.put( s, lifecycle );
 
         }
-        return new DefaultLifecycles( lifeCycles, new LoggerStub() );
+        return new DefaultLifecycles( lifeCycles );
     }
 
 }
\ No newline at end of file
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LoggerStub.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LoggerStub.java
deleted file mode 100644
index 00bb3cf..0000000
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LoggerStub.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.maven.lifecycle.internal.stub;
-
-import org.codehaus.plexus.logging.Logger;
-
-/**
- * @author Kristian Rosenvold
- */
-public class LoggerStub
-    implements Logger
-{
-    public void debug( String s )
-    {
-    }
-
-    public void debug( String s, Throwable throwable )
-    {
-    }
-
-    public boolean isDebugEnabled()
-    {
-        return true;
-    }
-
-    public void info( String s )
-    {
-    }
-
-    public void info( String s, Throwable throwable )
-    {
-    }
-
-    public boolean isInfoEnabled()
-    {
-        return true;
-    }
-
-    public void warn( String s )
-    {
-    }
-
-    public void warn( String s, Throwable throwable )
-    {
-    }
-
-    public boolean isWarnEnabled()
-    {
-        return true;
-    }
-
-    public void error( String s )
-    {
-    }
-
-    public void error( String s, Throwable throwable )
-    {
-    }
-
-    public boolean isErrorEnabled()
-    {
-        return true;
-    }
-
-    public void fatalError( String s )
-    {
-    }
-
-    public void fatalError( String s, Throwable throwable )
-    {
-    }
-
-    public boolean isFatalErrorEnabled()
-    {
-        return true;
-    }
-
-    public Logger getChildLogger( String s )
-    {
-        return null;
-    }
-
-    public int getThreshold()
-    {
-        return 0;
-    }
-
-    public void setThreshold( int i )
-    {
-
-    }
-
-    public String getName()
-    {
-        return "StubLogger";
-    }
-}
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
index 523645f..0c0d6d9 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
@@ -35,35 +35,23 @@ import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
 
 public class DefaultToolchainManagerPrivateTest
 {
-    // Mocks to inject into toolchainManager
-    @Mock
-    private Logger logger;
+    private final org.slf4j.Logger logger = mock(Logger.class);
 
-    @InjectMocks
-    private DefaultToolchainManagerPrivate toolchainManager;
+    private final ToolchainFactory toolchainFactory_basicType = mock(ToolchainFactory.class);
 
-    @Mock
-    private ToolchainFactory toolchainFactory_basicType;
+    private final ToolchainFactory toolchainFactory_rareType = mock(ToolchainFactory.class);
 
-    @Mock
-    private ToolchainFactory toolchainFactory_rareType;
+    private final DefaultToolchainManagerPrivate toolchainManager = new DefaultToolchainManagerPrivate( logger );
 
     @BeforeEach
     public void setUp()
     {
-        toolchainManager = new DefaultToolchainManagerPrivate();
-
-        MockitoAnnotations.initMocks( this );
-
         toolchainManager.factories = new HashMap<>();
         toolchainManager.factories.put( "basic", toolchainFactory_basicType );
         toolchainManager.factories.put( "rare", toolchainFactory_rareType );
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerTest.java
index c5b808f..3151fcf 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerTest.java
@@ -35,36 +35,24 @@ import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.toolchain.model.ToolchainModel;
-import org.codehaus.plexus.logging.Logger;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentMatchers;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
 
 public class DefaultToolchainManagerTest
 {
-     // Mocks to inject into toolchainManager
-    @Mock
-    private Logger logger;
+    private final Logger logger = mock(Logger.class);
 
-    @InjectMocks
-    private DefaultToolchainManager toolchainManager;
+    private final ToolchainFactory toolchainFactory_basicType = mock(ToolchainFactory.class);
 
-    @Mock
-    private ToolchainFactory toolchainFactory_basicType;
+    private final ToolchainFactory toolchainFactory_rareType = mock(ToolchainFactory.class);
 
-    @Mock
-    private ToolchainFactory toolchainFactory_rareType;
+    private final DefaultToolchainManager toolchainManager = new DefaultToolchainManager( logger );
 
     @BeforeEach
-    public void onSetup() throws Exception
+    public void onSetup()
     {
-        toolchainManager = new DefaultToolchainManager();
-
-        MockitoAnnotations.initMocks( this );
-
         toolchainManager.factories = new HashMap<>();
         toolchainManager.factories.put( "basic", toolchainFactory_basicType );
         toolchainManager.factories.put( "rare", toolchainFactory_rareType );
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java
index a5d14b2..f4d39c5 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java
@@ -22,6 +22,7 @@ package org.apache.maven.toolchain;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
 import java.io.InputStream;
@@ -31,16 +32,14 @@ import org.apache.maven.toolchain.java.DefaultJavaToolChain;
 import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.ToolchainModel;
 import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader;
-import org.codehaus.plexus.logging.Logger;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
 
 public class DefaultToolchainTest
 {
-    @Mock
-    private Logger logger;
+    private final Logger logger = mock( Logger.class);
 
     private MavenToolchainsXpp3Reader reader = new MavenToolchainsXpp3Reader();
 
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java
index 9fada05..b1bbba7 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java
@@ -40,7 +40,6 @@ import org.codehaus.plexus.DefaultPlexusContainer;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.ClassWorld;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.codehaus.plexus.logging.Logger;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.graph.DependencyFilter;
@@ -48,6 +47,8 @@ import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
 import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * BootstrapCoreExtensionManager
@@ -55,7 +56,7 @@ import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
 @Named
 public class BootstrapCoreExtensionManager
 {
-    private final Logger log;
+    private final Logger log = LoggerFactory.getLogger( getClass() );
 
     private final DefaultPluginDependenciesResolver pluginDependenciesResolver;
 
@@ -66,11 +67,10 @@ public class BootstrapCoreExtensionManager
     private final ClassRealm parentRealm;
 
     @Inject
-    public BootstrapCoreExtensionManager( Logger log, DefaultPluginDependenciesResolver pluginDependenciesResolver,
+    public BootstrapCoreExtensionManager( DefaultPluginDependenciesResolver pluginDependenciesResolver,
                                           DefaultRepositorySystemSessionFactory repositorySystemSessionFactory,
                                           PlexusContainer container )
     {
-        this.log = log;
         this.pluginDependenciesResolver = pluginDependenciesResolver;
         this.repositorySystemSessionFactory = repositorySystemSessionFactory;
         this.classWorld = ( (DefaultPlexusContainer) container ).getClassWorld();
diff --git a/maven-plugin-api/pom.xml b/maven-plugin-api/pom.xml
index be4b993..03e2f59 100644
--- a/maven-plugin-api/pom.xml
+++ b/maven-plugin-api/pom.xml
@@ -35,6 +35,10 @@ under the License.
 
   <dependencies>
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
     </dependency>
diff --git a/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java b/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java
index 1ed64ec..aec0bb1 100644
--- a/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java
+++ b/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java
@@ -20,7 +20,7 @@ package org.apache.maven.monitor.logging;
  */
 
 import org.apache.maven.plugin.logging.Log;
-import org.codehaus.plexus.logging.Logger;
+import org.slf4j.Logger;
 
 /**
  * @author jdcasey