Add Log.child(), Log.problem(), and injection-point-aware DI factory
- Injector.bindFactory(Class, Function<Key, T>): factory-based binding
that receives the full injection-point Key (including @Named qualifier),
enabling qualifier-derived instances like hierarchical logger names.
- Log.child(String): returns a child logger with hierarchical naming
(e.g. "compiler:compile" → "compiler:compile.diagnostics"), useful
when plugins delegate to sub-components that need independently
filterable log output.
- Log.problem(BuilderProblem): reports a structured problem to the
diagnostic collector with dedup key, suggestion, and documentation
URL, while also logging at the appropriate level. Uses a thread-local
flag to prevent double-counting by BuildReportCollector's WARN
auto-promotion.
- DefaultMavenPluginManager: switched from bindInstance to bindFactory
for Log injection, so @Inject @Named("diagnostics") Log in a
DI-managed plugin component gets "compiler:compile.diagnostics".
- Fixed pre-existing bug: DefaultLog.warn(Supplier, Throwable) was
calling logger.info() instead of logger.warn().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
If you think you have found a bug, please file an issue in the Maven Issue Tracker.
More information can be found on Apache Maven Homepage. Questions related to the usage of Maven should be posted on the Maven User List.
You can download the release source from our download page.
If you are interested in the development of Maven, please consult the documentation first and afterward you are welcome to join the developers mailing list to ask questions or discuss new ideas/features/bugs etc.
Take a look into the contribution guidelines.
This code is under the Apache License, Version 2.0, January 2004.
See the NOTICE file for required notices and attributions.
Do you like Apache Maven? Then donate back to the ASF to support the development.
If you want to bootstrap Maven, you'll need:
mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-4.1.x-SNAPSHOT" clean package