You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2019/07/10 12:36:24 UTC

[maven] 02/04: [MNG-6702] Improve DefaultModelValidator speed: Cache valid ids

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

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

commit fa11ac6cbb37546ef9bf9a6b7b9466db5e049f97
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Sun Jul 7 23:04:49 2019 +0200

    [MNG-6702] Improve DefaultModelValidator speed: Cache valid ids
---
 .../org/apache/maven/model/validation/DefaultModelValidator.java   | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
index e14838d..ca5ed20 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
@@ -84,6 +84,8 @@ public class DefaultModelValidator
 
     private static final String EMPTY = "";
 
+    private final Set<String> validIds = new HashSet<>();
+
     @Override
     public void validateRawModel( Model m, ModelBuildingRequest request, ModelProblemCollector problems )
     {
@@ -825,6 +827,10 @@ public class DefaultModelValidator
     private boolean validateId( String prefix, String fieldName, ModelProblemCollector problems, Severity severity,
                                 Version version, String id, String sourceHint, InputLocationTracker tracker )
     {
+        if ( validIds.contains( id ) )
+        {
+            return true;
+        }
         if ( !validateStringNotEmpty( prefix, fieldName, problems, severity, version, id, sourceHint, tracker ) )
         {
             return false;
@@ -837,6 +843,7 @@ public class DefaultModelValidator
                               "with value '" + id + "' does not match a valid id pattern.", tracker );
                 return false;
             }
+            validIds.add( id );
             return true;
         }
     }