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 2013/11/21 22:18:22 UTC
git commit: [MNG-3832] Allow wildcards in dependency exclusions
Already supported since M3.0, now adjust warnings
Updated Branches:
refs/heads/master b5ce17bb8 -> 65c135d52
[MNG-3832] Allow wildcards in dependency exclusions
Already supported since M3.0, now adjust warnings
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/65c135d5
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/65c135d5
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/65c135d5
Branch: refs/heads/master
Commit: 65c135d5298b2680f03593a221b15bb4689c89e9
Parents: b5ce17b
Author: Robert Scholte <rf...@codehaus.org>
Authored: Thu Nov 21 22:17:43 2013 +0100
Committer: Robert Scholte <rf...@codehaus.org>
Committed: Thu Nov 21 22:17:43 2013 +0100
----------------------------------------------------------------------
.../model/validation/DefaultModelValidator.java | 41 ++++++++++++++++++--
.../validation/DefaultModelValidatorTest.java | 9 ++++-
2 files changed, 45 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/65c135d5/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 67d255f..54597d9 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
@@ -64,6 +64,8 @@ public class DefaultModelValidator
private static final Pattern ID_REGEX = Pattern.compile( "[A-Za-z0-9_\\-.]+" );
+ private static final Pattern ID_WITH_WILDCARDS_REGEX = Pattern.compile( "[A-Za-z0-9_\\-.?*]+" );
+
private static final String ILLEGAL_FS_CHARS = "\\/:\"<>|?*";
private static final String ILLEGAL_VERSION_CHARS = ILLEGAL_FS_CHARS;
@@ -526,11 +528,22 @@ public class DefaultModelValidator
{
for ( Exclusion exclusion : d.getExclusions() )
{
- validateId( prefix + "exclusions.exclusion.groupId", problems, Severity.WARNING, Version.V20,
- exclusion.getGroupId(), d.getManagementKey(), exclusion );
+ if ( request.getValidationLevel() < ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 )
+ {
+ validateId( prefix + "exclusions.exclusion.groupId", problems, Severity.WARNING, Version.V20,
+ exclusion.getGroupId(), d.getManagementKey(), exclusion );
+
+ validateId( prefix + "exclusions.exclusion.artifactId", problems, Severity.WARNING, Version.V20,
+ exclusion.getArtifactId(), d.getManagementKey(), exclusion );
+ }
+ else
+ {
+ validateIdWithWildcards( prefix + "exclusions.exclusion.groupId", problems, Severity.WARNING, Version.V30,
+ exclusion.getGroupId(), d.getManagementKey(), exclusion );
- validateId( prefix + "exclusions.exclusion.artifactId", problems, Severity.WARNING, Version.V20,
- exclusion.getArtifactId(), d.getManagementKey(), exclusion );
+ validateIdWithWildcards( prefix + "exclusions.exclusion.artifactId", problems, Severity.WARNING, Version.V30,
+ exclusion.getArtifactId(), d.getManagementKey(), exclusion );
+ }
}
}
}
@@ -634,6 +647,26 @@ public class DefaultModelValidator
}
}
+ private boolean validateIdWithWildcards( String fieldName, ModelProblemCollector problems, Severity severity, Version version, String id,
+ String sourceHint, InputLocationTracker tracker )
+ {
+ if ( !validateStringNotEmpty( fieldName, problems, severity, version, id, sourceHint, tracker ) )
+ {
+ return false;
+ }
+ else
+ {
+ boolean match = ID_WITH_WILDCARDS_REGEX.matcher( id ).matches();
+ if ( !match )
+ {
+ addViolation( problems, severity, version, fieldName, sourceHint, "with value '" + id
+ + "' does not match a valid id pattern.", tracker );
+ }
+ return match;
+ }
+ }
+
+
private boolean validateStringNoExpression( String fieldName, ModelProblemCollector problems, Severity severity, Version version,
String string, InputLocationTracker tracker )
{
http://git-wip-us.apache.org/repos/asf/maven/blob/65c135d5/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
index 065a06f..ac7ead0 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
@@ -555,7 +555,7 @@ public class DefaultModelValidatorTest
public void testBadDependencyExclusionId()
throws Exception
{
- SimpleProblemCollector result = validate( "bad-dependency-exclusion-id.xml" );
+ SimpleProblemCollector result = validateEffective( "bad-dependency-exclusion-id.xml", ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 );
assertViolations( result, 0, 0, 2 );
@@ -563,6 +563,13 @@ public class DefaultModelValidatorTest
"'dependencies.dependency.exclusions.exclusion.groupId' for gid:aid:jar" );
assertContains( result.getWarnings().get( 1 ),
"'dependencies.dependency.exclusions.exclusion.artifactId' for gid:aid:jar" );
+
+ // MNG-3832: Aether (part of M3+) supports wildcard expressions for exclusions
+
+ SimpleProblemCollector result_30 = validate( "bad-dependency-exclusion-id.xml" );
+
+ assertViolations( result_30, 0, 0, 0 );
+
}
public void testMissingDependencyExclusionId()