You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/12/30 18:11:44 UTC

maven git commit: [MNG-6305] Validation of CI friendly version incorrect More efficient usage of regular expressions

Repository: maven
Updated Branches:
  refs/heads/MNG-6305-validation-of-ci-friendly ec65d84d6 -> 14bd534ea


[MNG-6305] Validation of CI friendly version incorrect
More efficient usage of regular expressions


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/14bd534e
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/14bd534e
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/14bd534e

Branch: refs/heads/MNG-6305-validation-of-ci-friendly
Commit: 14bd534ea51893b1ceb19d9a956c69c8aa559127
Parents: ec65d84
Author: rfscholte <rf...@apache.org>
Authored: Sat Dec 30 19:11:35 2017 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Sat Dec 30 19:11:35 2017 +0100

----------------------------------------------------------------------
 .../model/validation/DefaultModelValidator.java | 73 +++++++++++++-------
 1 file changed, 47 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/14bd534e/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
----------------------------------------------------------------------
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 30c0043..d355454 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
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.maven.model.Activation;
@@ -877,36 +878,56 @@ public class DefaultModelValidator
         // revision
         // sha1
         //
-        string = string.trim();
-        if ( string.contains( AbstractStringBasedModelInterpolator.CHANGELIST_PROPERTY_EXPRESSION )
-            || string.contains( AbstractStringBasedModelInterpolator.REVISION_PROPERTY_EXPRESSION )
-            || string.contains( AbstractStringBasedModelInterpolator.SHA1_PROPERTY_EXPRESSION ) )
+        
+        Pattern p = Pattern.compile( "\\$\\{(.+)\\}" );
+        
+        List<String> ciVersions = Arrays.asList( AbstractStringBasedModelInterpolator.REVISION_PROPERTY,
+                       AbstractStringBasedModelInterpolator.CHANGELIST_PROPERTY, 
+                       AbstractStringBasedModelInterpolator.SHA1_PROPERTY );
+        Matcher m = p.matcher( string.trim() );
+        while ( m.find() )
         {
-            //@formatter:off
-            string =
-                PATTERN_REVISION_PROPERTY
-                    .matcher( string )
-                    .replaceAll( AbstractStringBasedModelInterpolator.REVISION_PROPERTY );
-            string =
-                PATTERN_CHANGELIST_PROPERTY
-                    .matcher( string )
-                    .replaceAll( AbstractStringBasedModelInterpolator.CHANGELIST_PROPERTY );
-            string =
-                PATTERN_SHA1_PROPERTY
-                    .matcher( string )
-                    .replaceAll( AbstractStringBasedModelInterpolator.SHA1_PROPERTY );
-            //@formatter:on
-
-            if ( !hasExpression( string ) )
+            if ( !ciVersions.contains( m.group( 1 ) ) )
             {
-                return true;
+                addViolation( problems, severity, version, fieldName, null, "contains an expression but should be a constant.",
+                              tracker );
+                
+                return false;
             }
         }
-
-        addViolation( problems, severity, version, fieldName, null, "contains an expression but should be a constant.",
-                      tracker );
-
-        return false;
+        
+        return true;
+        
+//        string = string.trim();
+//        if ( string.contains( AbstractStringBasedModelInterpolator.CHANGELIST_PROPERTY_EXPRESSION )
+//            || string.contains( AbstractStringBasedModelInterpolator.REVISION_PROPERTY_EXPRESSION )
+//            || string.contains( AbstractStringBasedModelInterpolator.SHA1_PROPERTY_EXPRESSION ) )
+//        {
+//            //@formatter:off
+//            string =
+//                PATTERN_REVISION_PROPERTY
+//                    .matcher( string )
+//                    .replaceAll( AbstractStringBasedModelInterpolator.REVISION_PROPERTY );
+//            string =
+//                PATTERN_CHANGELIST_PROPERTY
+//                    .matcher( string )
+//                    .replaceAll( AbstractStringBasedModelInterpolator.CHANGELIST_PROPERTY );
+//            string =
+//                PATTERN_SHA1_PROPERTY
+//                    .matcher( string )
+//                    .replaceAll( AbstractStringBasedModelInterpolator.SHA1_PROPERTY );
+//            //@formatter:on
+//
+//            if ( !hasExpression( string ) )
+//            {
+//                return true;
+//            }
+//        }
+//
+//        addViolation( problems, severity, version, fieldName, null, "contains an expression but should be a constant.",
+//                      tracker );
+//
+//        return false;
     }
 
     private boolean hasExpression( String value )