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

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git

The following commit(s) were added to refs/heads/master by this push:
     new 8a69678007 [MNG-8446] Project cannot start due to too many warnings 
(#1993)
8a69678007 is described below

commit 8a696780075c178e1cbe88d2ebf90fe5466574ba
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue Dec 17 18:44:55 2024 +0100

    [MNG-8446] Project cannot start due to too many warnings (#1993)
    
    JIRA issue: [MNG-8446](https://issues.apache.org/jira/browse/MNG-8446)
    
    This will help (but is not sufficient) to make 
[camel-quarkus](https://github.com/apache/camel-quarkus) buildable with maven 
4.x.
    
    ---
    
    https://issues.apache.org/jira/browse/MNG-8446
---
 .../main/java/org/apache/maven/api/Constants.java  |   8 +
 .../internal/impl/model/DefaultModelBuilder.java   |  25 +-
 .../impl/model/DefaultModelBuilderResult.java      |  43 ++-
 src/site/markdown/configuration.properties         | 296 +++++++++++----------
 src/site/markdown/configuration.yaml               |   6 +
 src/site/markdown/maven-configuration.md           |   1 +
 6 files changed, 219 insertions(+), 160 deletions(-)

diff --git 
a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java 
b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
index dc2ab449ab..f3e76f891a 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
@@ -445,5 +445,13 @@ public final class Constants {
     @Config(type = "java.time.Instant")
     public static final String MAVEN_START_INSTANT = "maven.startInstant";
 
+    /**
+     * Max number of problems for each severity level retained by the model 
builder.
+     *
+     * @since 4.0.0
+     */
+    @Config(type = "java.lang.Integer", defaultValue = "100")
+    public static final String MAVEN_BUILDER_MAX_PROBLEMS = 
"maven.builder.maxProblems";
+
     private Constants() {}
 }
diff --git 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
index 64b023a4d4..147bc10e06 100644
--- 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
+++ 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
@@ -205,6 +205,10 @@ public class DefaultModelBuilder implements ModelBuilder {
         return new ModelBuilderSessionImpl();
     }
 
+    static int getMaxProblems(Session session) {
+        return 
Integer.parseInt(session.getUserProperties().getOrDefault(Constants.MAVEN_BUILDER_MAX_PROBLEMS,
 "100"));
+    }
+
     protected class ModelBuilderSessionImpl implements ModelBuilderSession {
         ModelBuilderSessionState mainSession;
 
@@ -223,7 +227,8 @@ public class DefaultModelBuilder implements ModelBuilder {
                 mainSession = new ModelBuilderSessionState(request);
                 session = mainSession;
             } else {
-                session = mainSession.derive(request, new 
DefaultModelBuilderResult());
+                session =
+                        mainSession.derive(request, new 
DefaultModelBuilderResult(getMaxProblems(mainSession.session)));
             }
             // Build the request
             if (request.getRequestType() == 
ModelBuilderRequest.RequestType.BUILD_PROJECT) {
@@ -259,7 +264,7 @@ public class DefaultModelBuilder implements ModelBuilder {
             this(
                     request.getSession(),
                     request,
-                    new DefaultModelBuilderResult(),
+                    new 
DefaultModelBuilderResult(DefaultModelBuilder.getMaxProblems(request.getSession())),
                     request.getSession()
                             .getData()
                             
.computeIfAbsent(SessionData.key(ModelCache.class), 
modelCacheFactory::newInstance),
@@ -300,8 +305,12 @@ public class DefaultModelBuilder implements ModelBuilder {
             this.result.setSource(this.request.getSource());
         }
 
+        int getMaxProblems() {
+            return DefaultModelBuilder.getMaxProblems(session);
+        }
+
         ModelBuilderSessionState derive(ModelSource source) {
-            return derive(source, new DefaultModelBuilderResult(result));
+            return derive(source, new DefaultModelBuilderResult(result, 
getMaxProblems()));
         }
 
         ModelBuilderSessionState derive(ModelSource source, 
DefaultModelBuilderResult result) {
@@ -312,7 +321,7 @@ public class DefaultModelBuilder implements ModelBuilder {
          * Creates a new session, sharing cached datas and propagating errors.
          */
         ModelBuilderSessionState derive(ModelBuilderRequest request) {
-            return derive(request, new DefaultModelBuilderResult(result));
+            return derive(request, new DefaultModelBuilderResult(result, 
getMaxProblems()));
         }
 
         ModelBuilderSessionState derive(ModelBuilderRequest request, 
DefaultModelBuilderResult result) {
@@ -711,7 +720,8 @@ public class DefaultModelBuilder implements ModelBuilder {
 
         private void loadFromRoot(Path root, Path top) {
             try (PhasingExecutor executor = createExecutor()) {
-                DefaultModelBuilderResult r = Objects.equals(top, root) ? 
result : new DefaultModelBuilderResult();
+                DefaultModelBuilderResult r =
+                        Objects.equals(top, root) ? result : new 
DefaultModelBuilderResult(getMaxProblems());
                 loadFilePom(executor, top, root, Set.of(), r);
             }
             if (result.getFileModel() == null && !Objects.equals(top, root)) {
@@ -783,8 +793,9 @@ public class DefaultModelBuilder implements ModelBuilder {
                         continue;
                     }
 
-                    DefaultModelBuilderResult cr =
-                            Objects.equals(top, subprojectFile) ? result : new 
DefaultModelBuilderResult(r);
+                    DefaultModelBuilderResult cr = Objects.equals(top, 
subprojectFile)
+                            ? result
+                            : new DefaultModelBuilderResult(r, 
getMaxProblems());
                     if (request.isRecursive()) {
                         r.getChildren().add(cr);
                     }
diff --git 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilderResult.java
 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilderResult.java
index f834577a59..be4e0b074a 100644
--- 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilderResult.java
+++ 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilderResult.java
@@ -19,14 +19,18 @@
 package org.apache.maven.internal.impl.model;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.maven.api.model.Model;
 import org.apache.maven.api.model.Profile;
+import org.apache.maven.api.services.BuilderProblem;
 import org.apache.maven.api.services.ModelBuilderResult;
 import org.apache.maven.api.services.ModelProblem;
 import org.apache.maven.api.services.ModelSource;
@@ -42,17 +46,21 @@ class DefaultModelBuilderResult implements 
ModelBuilderResult {
     private Model effectiveModel;
     private List<Profile> activePomProfiles;
     private List<Profile> activeExternalProfiles;
-    private final List<ModelProblem> problems = new CopyOnWriteArrayList<>();
+    private final Queue<ModelProblem> problems = new ConcurrentLinkedQueue<>();
     private final DefaultModelBuilderResult problemHolder;
 
     private final List<DefaultModelBuilderResult> children = new ArrayList<>();
 
-    DefaultModelBuilderResult() {
-        this(null);
+    private int maxProblems;
+    private Map<BuilderProblem.Severity, AtomicInteger> problemCount = new 
ConcurrentHashMap<>();
+
+    DefaultModelBuilderResult(int maxProblems) {
+        this(null, maxProblems);
     }
 
-    DefaultModelBuilderResult(DefaultModelBuilderResult problemHolder) {
+    DefaultModelBuilderResult(DefaultModelBuilderResult problemHolder, int 
maxProblems) {
         this.problemHolder = problemHolder;
+        this.maxProblems = maxProblems;
     }
 
     public ModelSource getSource() {
@@ -125,7 +133,21 @@ class DefaultModelBuilderResult implements 
ModelBuilderResult {
      */
     @Override
     public List<ModelProblem> getProblems() {
-        return Collections.unmodifiableList(problems);
+        List<ModelProblem> additionalProblems = new ArrayList<>();
+        problemCount.forEach((s, i) -> {
+            if (i.get() > maxProblems) {
+                additionalProblems.add(new DefaultModelProblem(
+                        String.format("Too many problems %d of severity %s", 
i.get(), s.name()),
+                        s,
+                        ModelProblem.Version.BASE,
+                        null,
+                        -1,
+                        -1,
+                        null,
+                        null));
+            }
+        });
+        return Stream.concat(problems.stream(), 
additionalProblems.stream()).toList();
     }
 
     /**
@@ -134,7 +156,12 @@ class DefaultModelBuilderResult implements 
ModelBuilderResult {
      * @param problem The problem to be added. It must be an instance of 
ModelProblem.
      */
     public void addProblem(ModelProblem problem) {
-        problems.add(problem);
+        int problemCount = this.problemCount
+                .computeIfAbsent(problem.getSeverity(), s -> new 
AtomicInteger())
+                .incrementAndGet();
+        if (problemCount < maxProblems) {
+            problems.add(problem);
+        }
         if (problemHolder != null) {
             problemHolder.addProblem(problem);
         }
diff --git a/src/site/markdown/configuration.properties 
b/src/site/markdown/configuration.properties
index f275125be5..cd51535b2f 100644
--- a/src/site/markdown/configuration.properties
+++ b/src/site/markdown/configuration.properties
@@ -16,266 +16,272 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-props.count = 44
+props.count = 45
 props.1.key = maven.build.timestamp.format
 props.1.configurationType = String
 props.1.description = Build timestamp format.
 props.1.defaultValue = yyyy-MM-dd'T'HH:mm:ssXXX
 props.1.since = 3.0.0
 props.1.configurationSource = Model properties
-props.2.key = maven.consumer.pom
-props.2.configurationType = Boolean
-props.2.description = User property for enabling/disabling the consumer POM 
feature.
-props.2.defaultValue = true
+props.2.key = maven.builder.maxProblems
+props.2.configurationType = Integer
+props.2.description = Max number of problems for each severity level retained 
by the model builder.
+props.2.defaultValue = 100
 props.2.since = 4.0.0
 props.2.configurationSource = User properties
-props.3.key = maven.deploy.snapshot.buildNumber
-props.3.configurationType = Integer
-props.3.description = User property for overriding calculated "build number" 
for snapshot deploys. Caution: this property should be RARELY used (if used at 
all). It may help in special cases like "aligning" a reactor build subprojects 
build numbers to perform a "snapshot lock down". Value given here must be 
<code>maxRemoteBuildNumber + 1</code> or greater, otherwise build will fail. 
How the number to be obtained is left to user (ie by inspecting snapshot 
repository metadata or alike). No [...]
-props.3.defaultValue = 
+props.3.key = maven.consumer.pom
+props.3.configurationType = Boolean
+props.3.description = User property for enabling/disabling the consumer POM 
feature.
+props.3.defaultValue = true
 props.3.since = 4.0.0
 props.3.configurationSource = User properties
-props.4.key = maven.ext.class.path
-props.4.configurationType = String
-props.4.description = Extensions class path.
+props.4.key = maven.deploy.snapshot.buildNumber
+props.4.configurationType = Integer
+props.4.description = User property for overriding calculated "build number" 
for snapshot deploys. Caution: this property should be RARELY used (if used at 
all). It may help in special cases like "aligning" a reactor build subprojects 
build numbers to perform a "snapshot lock down". Value given here must be 
<code>maxRemoteBuildNumber + 1</code> or greater, otherwise build will fail. 
How the number to be obtained is left to user (ie by inspecting snapshot 
repository metadata or alike). No [...]
 props.4.defaultValue = 
+props.4.since = 4.0.0
 props.4.configurationSource = User properties
-props.5.key = maven.home
+props.5.key = maven.ext.class.path
 props.5.configurationType = String
-props.5.description = Maven home.
+props.5.description = Extensions class path.
 props.5.defaultValue = 
-props.5.since = 3.0.0
 props.5.configurationSource = User properties
-props.6.key = maven.installation.conf
+props.6.key = maven.home
 props.6.configurationType = String
-props.6.description = Maven installation configuration directory.
-props.6.defaultValue = ${maven.home}/conf
-props.6.since = 4.0.0
+props.6.description = Maven home.
+props.6.defaultValue = 
+props.6.since = 3.0.0
 props.6.configurationSource = User properties
-props.7.key = maven.installation.extensions
+props.7.key = maven.installation.conf
 props.7.configurationType = String
-props.7.description = Maven installation extensions.
-props.7.defaultValue = ${maven.installation.conf}/extensions.xml
+props.7.description = Maven installation configuration directory.
+props.7.defaultValue = ${maven.home}/conf
 props.7.since = 4.0.0
 props.7.configurationSource = User properties
-props.8.key = maven.installation.settings
+props.8.key = maven.installation.extensions
 props.8.configurationType = String
-props.8.description = Maven installation settings.
-props.8.defaultValue = ${maven.installation.conf}/settings.xml
+props.8.description = Maven installation extensions.
+props.8.defaultValue = ${maven.installation.conf}/extensions.xml
 props.8.since = 4.0.0
 props.8.configurationSource = User properties
-props.9.key = maven.installation.toolchains
+props.9.key = maven.installation.settings
 props.9.configurationType = String
-props.9.description = Maven installation toolchains.
-props.9.defaultValue = ${maven.installation.conf}/toolchains.xml
+props.9.description = Maven installation settings.
+props.9.defaultValue = ${maven.installation.conf}/settings.xml
 props.9.since = 4.0.0
 props.9.configurationSource = User properties
-props.10.key = maven.modelBuilder.parallelism
-props.10.configurationType = Integer
-props.10.description = ProjectBuilder parallelism.
-props.10.defaultValue = cores/2 + 1
+props.10.key = maven.installation.toolchains
+props.10.configurationType = String
+props.10.description = Maven installation toolchains.
+props.10.defaultValue = ${maven.installation.conf}/toolchains.xml
 props.10.since = 4.0.0
 props.10.configurationSource = User properties
-props.11.key = maven.plugin.validation
-props.11.configurationType = String
-props.11.description = Plugin validation level.
-props.11.defaultValue = inline
-props.11.since = 3.9.2
+props.11.key = maven.modelBuilder.parallelism
+props.11.configurationType = Integer
+props.11.description = ProjectBuilder parallelism.
+props.11.defaultValue = cores/2 + 1
+props.11.since = 4.0.0
 props.11.configurationSource = User properties
-props.12.key = maven.plugin.validation.excludes
+props.12.key = maven.plugin.validation
 props.12.configurationType = String
-props.12.description = Plugin validation exclusions.
-props.12.defaultValue = 
-props.12.since = 3.9.6
+props.12.description = Plugin validation level.
+props.12.defaultValue = inline
+props.12.since = 3.9.2
 props.12.configurationSource = User properties
-props.13.key = maven.project.conf
+props.13.key = maven.plugin.validation.excludes
 props.13.configurationType = String
-props.13.description = Maven project configuration directory.
-props.13.defaultValue = ${session.rootDirectory}/.mvn
-props.13.since = 4.0.0
+props.13.description = Plugin validation exclusions.
+props.13.defaultValue = 
+props.13.since = 3.9.6
 props.13.configurationSource = User properties
-props.14.key = maven.project.extensions
+props.14.key = maven.project.conf
 props.14.configurationType = String
-props.14.description = Maven project extensions.
-props.14.defaultValue = ${maven.project.conf}/extensions.xml
+props.14.description = Maven project configuration directory.
+props.14.defaultValue = ${session.rootDirectory}/.mvn
 props.14.since = 4.0.0
 props.14.configurationSource = User properties
-props.15.key = maven.project.settings
+props.15.key = maven.project.extensions
 props.15.configurationType = String
-props.15.description = Maven project settings.
-props.15.defaultValue = ${maven.project.conf}/settings.xml
+props.15.description = Maven project extensions.
+props.15.defaultValue = ${maven.project.conf}/extensions.xml
 props.15.since = 4.0.0
 props.15.configurationSource = User properties
-props.16.key = maven.relocations.entries
+props.16.key = maven.project.settings
 props.16.configurationType = String
-props.16.description = User controlled relocations. This property is a comma 
separated list of entries with the syntax <code>GAV&gt;GAV</code>. The first 
<code>GAV</code> can contain <code>\*</code> for any elem (so 
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second 
<code>GAV</code> is either fully specified, or also can contain 
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is 
preserved from relocated artifact. Finally, if right hand < [...]
-props.16.defaultValue = 
+props.16.description = Maven project settings.
+props.16.defaultValue = ${maven.project.conf}/settings.xml
 props.16.since = 4.0.0
 props.16.configurationSource = User properties
-props.17.key = maven.repo.central
+props.17.key = maven.relocations.entries
 props.17.configurationType = String
-props.17.description = Maven central repository URL. The property will have 
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is 
defined.
-props.17.defaultValue = https://repo.maven.apache.org/maven2
+props.17.description = User controlled relocations. This property is a comma 
separated list of entries with the syntax <code>GAV&gt;GAV</code>. The first 
<code>GAV</code> can contain <code>\*</code> for any elem (so 
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second 
<code>GAV</code> is either fully specified, or also can contain 
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is 
preserved from relocated artifact. Finally, if right hand < [...]
+props.17.defaultValue = 
 props.17.since = 4.0.0
 props.17.configurationSource = User properties
-props.18.key = maven.repo.local
+props.18.key = maven.repo.central
 props.18.configurationType = String
-props.18.description = Maven local repository.
-props.18.defaultValue = ${maven.user.conf}/repository
-props.18.since = 3.0.0
+props.18.description = Maven central repository URL. The property will have 
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is 
defined.
+props.18.defaultValue = https://repo.maven.apache.org/maven2
+props.18.since = 4.0.0
 props.18.configurationSource = User properties
-props.19.key = maven.repo.local.head
+props.19.key = maven.repo.local
 props.19.configurationType = String
-props.19.description = User property for chained LRM: the new "head" local 
repository to use, and "push" the existing into tail. Similar to 
<code>maven.repo.local.tail</code>, this property may contain comma separated 
list of paths to be used as local repositories (combine with chained local 
repository), but while latter is "appending" this one is "prepending".
-props.19.defaultValue = 
-props.19.since = 4.0.0
+props.19.description = Maven local repository.
+props.19.defaultValue = ${maven.user.conf}/repository
+props.19.since = 3.0.0
 props.19.configurationSource = User properties
-props.20.key = maven.repo.local.recordReverseTree
+props.20.key = maven.repo.local.head
 props.20.configurationType = String
-props.20.description = User property for reverse dependency tree. If enabled, 
Maven will record ".tracking" directory into local repository with "reverse 
dependency tree", essentially explaining WHY given artifact is present in local 
repository. Default: <code>false</code>, will not record anything.
-props.20.defaultValue = false
-props.20.since = 3.9.0
+props.20.description = User property for chained LRM: the new "head" local 
repository to use, and "push" the existing into tail. Similar to 
<code>maven.repo.local.tail</code>, this property may contain comma separated 
list of paths to be used as local repositories (combine with chained local 
repository), but while latter is "appending" this one is "prepending".
+props.20.defaultValue = 
+props.20.since = 4.0.0
 props.20.configurationSource = User properties
-props.21.key = maven.repo.local.tail
+props.21.key = maven.repo.local.recordReverseTree
 props.21.configurationType = String
-props.21.description = User property for chained LRM: list of "tail" local 
repository paths (separated by comma), to be used with 
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>. 
Default value: <code>null</code>, no chained LRM is used.
-props.21.defaultValue = 
+props.21.description = User property for reverse dependency tree. If enabled, 
Maven will record ".tracking" directory into local repository with "reverse 
dependency tree", essentially explaining WHY given artifact is present in local 
repository. Default: <code>false</code>, will not record anything.
+props.21.defaultValue = false
 props.21.since = 3.9.0
 props.21.configurationSource = User properties
-props.22.key = maven.repo.local.tail.ignoreAvailability
+props.22.key = maven.repo.local.tail
 props.22.configurationType = String
-props.22.description = User property for chained LRM: whether to ignore 
"availability check" in tail or not. Usually you do want to ignore it. This 
property is mapped onto corresponding Resolver 2.x property, is like a synonym 
for it. Default value: <code>true</code>.
+props.22.description = User property for chained LRM: list of "tail" local 
repository paths (separated by comma), to be used with 
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>. 
Default value: <code>null</code>, no chained LRM is used.
 props.22.defaultValue = 
 props.22.since = 3.9.0
 props.22.configurationSource = User properties
-props.23.key = maven.resolver.dependencyManagerTransitivity
+props.23.key = maven.repo.local.tail.ignoreAvailability
 props.23.configurationType = String
-props.23.description = User property for selecting dependency manager 
behaviour regarding transitive dependencies and dependency management entries 
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence 
it ignored dependency management entries in transitive dependency POMs. Maven 4 
enables "transitivity" by default, hence unlike Maven2, obeys dependency 
management entries deep in dependency graph as well. <br/> Default: 
<code>"true"</code>.
-props.23.defaultValue = true
-props.23.since = 4.0.0
+props.23.description = User property for chained LRM: whether to ignore 
"availability check" in tail or not. Usually you do want to ignore it. This 
property is mapped onto corresponding Resolver 2.x property, is like a synonym 
for it. Default value: <code>true</code>.
+props.23.defaultValue = 
+props.23.since = 3.9.0
 props.23.configurationSource = User properties
-props.24.key = maven.resolver.transport
+props.24.key = maven.resolver.dependencyManagerTransitivity
 props.24.configurationType = String
-props.24.description = Resolver transport to use. Can be <code>default</code>, 
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
-props.24.defaultValue = default
+props.24.description = User property for selecting dependency manager 
behaviour regarding transitive dependencies and dependency management entries 
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence 
it ignored dependency management entries in transitive dependency POMs. Maven 4 
enables "transitivity" by default, hence unlike Maven2, obeys dependency 
management entries deep in dependency graph as well. <br/> Default: 
<code>"true"</code>.
+props.24.defaultValue = true
 props.24.since = 4.0.0
 props.24.configurationSource = User properties
-props.25.key = maven.session.versionFilter
+props.25.key = maven.resolver.transport
 props.25.configurationType = String
-props.25.description = User property for version filter expression used in 
session, applied to resolving ranges: a semicolon separated list of filters to 
apply. By default, no version filter is applied (like in Maven 3). <br/> 
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of 
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of 
lowest ones filter</li> <li>"s" - contextual snapshot filter</li> 
<li>"e(G:A:V)" - predicate filter (leaves  [...]
-props.25.defaultValue = 
+props.25.description = Resolver transport to use. Can be <code>default</code>, 
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
+props.25.defaultValue = default
 props.25.since = 4.0.0
 props.25.configurationSource = User properties
-props.26.key = maven.settings.security
+props.26.key = maven.session.versionFilter
 props.26.configurationType = String
-props.26.description = 
-props.26.defaultValue = ${maven.user.conf}/settings-security4.xml
+props.26.description = User property for version filter expression used in 
session, applied to resolving ranges: a semicolon separated list of filters to 
apply. By default, no version filter is applied (like in Maven 3). <br/> 
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of 
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of 
lowest ones filter</li> <li>"s" - contextual snapshot filter</li> 
<li>"e(G:A:V)" - predicate filter (leaves  [...]
+props.26.defaultValue = 
+props.26.since = 4.0.0
 props.26.configurationSource = User properties
-props.27.key = maven.startInstant
-props.27.configurationType = java.time.Instant
-props.27.description = User property used to store the build timestamp.
-props.27.defaultValue = 
-props.27.since = 4.0.0
+props.27.key = maven.settings.security
+props.27.configurationType = String
+props.27.description = 
+props.27.defaultValue = ${maven.user.conf}/settings-security4.xml
 props.27.configurationSource = User properties
-props.28.key = maven.style.color
-props.28.configurationType = String
-props.28.description = Maven output color mode. Allowed values are 
<code>auto</code>, <code>always</code>, <code>never</code>.
-props.28.defaultValue = auto
+props.28.key = maven.startInstant
+props.28.configurationType = java.time.Instant
+props.28.description = User property used to store the build timestamp.
+props.28.defaultValue = 
 props.28.since = 4.0.0
 props.28.configurationSource = User properties
-props.29.key = maven.style.debug
+props.29.key = maven.style.color
 props.29.configurationType = String
-props.29.description = Color style for debug messages.
-props.29.defaultValue = bold,f:cyan
+props.29.description = Maven output color mode. Allowed values are 
<code>auto</code>, <code>always</code>, <code>never</code>.
+props.29.defaultValue = auto
 props.29.since = 4.0.0
 props.29.configurationSource = User properties
-props.30.key = maven.style.error
+props.30.key = maven.style.debug
 props.30.configurationType = String
-props.30.description = Color style for error messages.
-props.30.defaultValue = bold,f:red
+props.30.description = Color style for debug messages.
+props.30.defaultValue = bold,f:cyan
 props.30.since = 4.0.0
 props.30.configurationSource = User properties
-props.31.key = maven.style.failure
+props.31.key = maven.style.error
 props.31.configurationType = String
-props.31.description = Color style for failure messages.
+props.31.description = Color style for error messages.
 props.31.defaultValue = bold,f:red
 props.31.since = 4.0.0
 props.31.configurationSource = User properties
-props.32.key = maven.style.info
+props.32.key = maven.style.failure
 props.32.configurationType = String
-props.32.description = Color style for info messages.
-props.32.defaultValue = bold,f:blue
+props.32.description = Color style for failure messages.
+props.32.defaultValue = bold,f:red
 props.32.since = 4.0.0
 props.32.configurationSource = User properties
-props.33.key = maven.style.mojo
+props.33.key = maven.style.info
 props.33.configurationType = String
-props.33.description = Color style for mojo messages.
-props.33.defaultValue = f:green
+props.33.description = Color style for info messages.
+props.33.defaultValue = bold,f:blue
 props.33.since = 4.0.0
 props.33.configurationSource = User properties
-props.34.key = maven.style.project
+props.34.key = maven.style.mojo
 props.34.configurationType = String
-props.34.description = Color style for project messages.
-props.34.defaultValue = f:cyan
+props.34.description = Color style for mojo messages.
+props.34.defaultValue = f:green
 props.34.since = 4.0.0
 props.34.configurationSource = User properties
-props.35.key = maven.style.strong
+props.35.key = maven.style.project
 props.35.configurationType = String
-props.35.description = Color style for strong messages.
-props.35.defaultValue = bold
+props.35.description = Color style for project messages.
+props.35.defaultValue = f:cyan
 props.35.since = 4.0.0
 props.35.configurationSource = User properties
-props.36.key = maven.style.success
+props.36.key = maven.style.strong
 props.36.configurationType = String
-props.36.description = Color style for success messages.
-props.36.defaultValue = bold,f:green
+props.36.description = Color style for strong messages.
+props.36.defaultValue = bold
 props.36.since = 4.0.0
 props.36.configurationSource = User properties
-props.37.key = maven.style.trace
+props.37.key = maven.style.success
 props.37.configurationType = String
-props.37.description = Color style for trace messages.
-props.37.defaultValue = bold,f:magenta
+props.37.description = Color style for success messages.
+props.37.defaultValue = bold,f:green
 props.37.since = 4.0.0
 props.37.configurationSource = User properties
-props.38.key = maven.style.transfer
+props.38.key = maven.style.trace
 props.38.configurationType = String
-props.38.description = Color style for transfer messages.
-props.38.defaultValue = f:bright-black
+props.38.description = Color style for trace messages.
+props.38.defaultValue = bold,f:magenta
 props.38.since = 4.0.0
 props.38.configurationSource = User properties
-props.39.key = maven.style.warning
+props.39.key = maven.style.transfer
 props.39.configurationType = String
-props.39.description = Color style for warning messages.
-props.39.defaultValue = bold,f:yellow
+props.39.description = Color style for transfer messages.
+props.39.defaultValue = f:bright-black
 props.39.since = 4.0.0
 props.39.configurationSource = User properties
-props.40.key = maven.user.conf
+props.40.key = maven.style.warning
 props.40.configurationType = String
-props.40.description = Maven user configuration directory.
-props.40.defaultValue = ${user.home}/.m2
+props.40.description = Color style for warning messages.
+props.40.defaultValue = bold,f:yellow
 props.40.since = 4.0.0
 props.40.configurationSource = User properties
-props.41.key = maven.user.extensions
+props.41.key = maven.user.conf
 props.41.configurationType = String
-props.41.description = Maven user extensions.
-props.41.defaultValue = ${maven.user.conf}/extensions.xml
+props.41.description = Maven user configuration directory.
+props.41.defaultValue = ${user.home}/.m2
 props.41.since = 4.0.0
 props.41.configurationSource = User properties
-props.42.key = maven.user.settings
+props.42.key = maven.user.extensions
 props.42.configurationType = String
-props.42.description = Maven user settings.
-props.42.defaultValue = ${maven.user.conf}/settings.xml
+props.42.description = Maven user extensions.
+props.42.defaultValue = ${maven.user.conf}/extensions.xml
 props.42.since = 4.0.0
 props.42.configurationSource = User properties
-props.43.key = maven.user.toolchains
+props.43.key = maven.user.settings
 props.43.configurationType = String
-props.43.description = Maven user toolchains.
-props.43.defaultValue = ${maven.user.conf}/toolchains.xml
+props.43.description = Maven user settings.
+props.43.defaultValue = ${maven.user.conf}/settings.xml
 props.43.since = 4.0.0
 props.43.configurationSource = User properties
-props.44.key = maven.versionResolver.noCache
-props.44.configurationType = Boolean
-props.44.description = User property for disabling version resolver cache.
-props.44.defaultValue = false
-props.44.since = 3.0.0
+props.44.key = maven.user.toolchains
+props.44.configurationType = String
+props.44.description = Maven user toolchains.
+props.44.defaultValue = ${maven.user.conf}/toolchains.xml
+props.44.since = 4.0.0
 props.44.configurationSource = User properties
+props.45.key = maven.versionResolver.noCache
+props.45.configurationType = Boolean
+props.45.description = User property for disabling version resolver cache.
+props.45.defaultValue = false
+props.45.since = 3.0.0
+props.45.configurationSource = User properties
diff --git a/src/site/markdown/configuration.yaml 
b/src/site/markdown/configuration.yaml
index 2b3d427661..4c95171e7a 100644
--- a/src/site/markdown/configuration.yaml
+++ b/src/site/markdown/configuration.yaml
@@ -23,6 +23,12 @@ props:
       defaultValue: yyyy-MM-dd'T'HH:mm:ssXXX
       since: 3.0.0
       configurationSource: Model properties
+    - key: maven.builder.maxProblems
+      configurationType: Integer
+      description: "Max number of problems for each severity level retained by 
the model builder."
+      defaultValue: 100
+      since: 4.0.0
+      configurationSource: User properties
     - key: maven.consumer.pom
       configurationType: Boolean
       description: "User property for enabling/disabling the consumer POM 
feature."
diff --git a/src/site/markdown/maven-configuration.md 
b/src/site/markdown/maven-configuration.md
index cdb99995b1..aa7a04b76f 100644
--- a/src/site/markdown/maven-configuration.md
+++ b/src/site/markdown/maven-configuration.md
@@ -26,6 +26,7 @@ under the License.
 | Key | Type | Description | Default Value | Since | Source |
 | --- | --- | --- | --- | --- | --- |
 | `maven.build.timestamp.format` | `String` | Build timestamp format. |  
`yyyy-MM-dd'T'HH:mm:ssXXX`  | 3.0.0 | Model properties |
+| `maven.builder.maxProblems` | `Integer` | Max number of problems for each 
severity level retained by the model builder. |  `100`  | 4.0.0 | User 
properties |
 | `maven.consumer.pom` | `Boolean` | User property for enabling/disabling the 
consumer POM feature. |  `true`  | 4.0.0 | User properties |
 | `maven.deploy.snapshot.buildNumber` | `Integer` | User property for 
overriding calculated "build number" for snapshot deploys. Caution: this 
property should be RARELY used (if used at all). It may help in special cases 
like "aligning" a reactor build subprojects build numbers to perform a 
"snapshot lock down". Value given here must be <code>maxRemoteBuildNumber + 
1</code> or greater, otherwise build will fail. How the number to be obtained 
is left to user (ie by inspecting snapshot rep [...]
 | `maven.ext.class.path` | `String` | Extensions class path. |  -  |  | User 
properties |


Reply via email to