From 66e81ea09ea41795a1bcc8dc404192375aa3405f Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 4 Jun 2026 23:37:57 +0000 Subject: [PATCH] Fix #11973: Restore backward-compatible DefaultToolchain constructor Add deprecated constructors accepting org.codehaus.plexus.logging.Logger to maintain binary compatibility with custom toolchain implementations compiled against Maven 3.x. Co-Authored-By: Claude Opus 4.6 --- .../maven/toolchain/DefaultToolchain.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/compat/maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java b/compat/maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java index ef89cee08f20..c97020602244 100644 --- a/compat/maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java +++ b/compat/maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java @@ -26,6 +26,7 @@ import org.apache.maven.toolchain.model.ToolchainModel; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Default abstract toolchain implementation, to be used as base class for any toolchain implementation @@ -68,6 +69,27 @@ protected DefaultToolchain(ToolchainModel model, String type, Logger logger) { this.type = type; } + /** + * @param model the model, must not be {@code null} + * @param logger the logger (ignored, an SLF4J logger is used instead) + * @deprecated Use {@link #DefaultToolchain(ToolchainModel, Logger)} with an SLF4J logger instead. + */ + @Deprecated(since = "4.0.0") + protected DefaultToolchain(ToolchainModel model, org.codehaus.plexus.logging.Logger logger) { + this(model, LoggerFactory.getLogger(DefaultToolchain.class)); + } + + /** + * @param model the model, must not be {@code null} + * @param type the type + * @param logger the logger (ignored, an SLF4J logger is used instead) + * @deprecated Use {@link #DefaultToolchain(ToolchainModel, String, Logger)} with an SLF4J logger instead. + */ + @Deprecated(since = "4.0.0") + protected DefaultToolchain(ToolchainModel model, String type, org.codehaus.plexus.logging.Logger logger) { + this(model, type, LoggerFactory.getLogger(DefaultToolchain.class)); + } + @Override public final String getType() { return type != null ? type : model.getType();