hboutemy commented on a change in pull request #451:
URL: https://github.com/apache/maven/pull/451#discussion_r583782873
##########
File path:
maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
##########
@@ -850,36 +853,75 @@ private boolean validateId( String prefix, String
fieldName, ModelProblemCollect
}
else
{
- if ( !isValidId( id ) )
+ if ( !isValidCoordinateId( id ) )
{
addViolation( problems, severity, version, prefix + fieldName,
sourceHint,
- "with value '" + id + "' does not match a valid
id pattern.", tracker );
+ "with value '" + id + "' does not match a valid
coordinate id pattern.", tracker );
return false;
}
- validIds.add( id );
+ validCoordinateIds.add( id );
return true;
}
}
- private boolean isValidId( String id )
+ private boolean isValidCoordinateId( String id )
{
for ( int i = 0; i < id.length(); i++ )
{
char c = id.charAt( i );
- if ( !isValidIdCharacter( c ) )
+ if ( !isValidCoordinateIdCharacter( c ) )
{
return false;
}
}
return true;
}
-
- private boolean isValidIdCharacter( char c )
+ private boolean isValidCoordinateIdCharacter( char c )
{
return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c
<= '9' || c == '-' || c == '_' || c == '.';
}
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ private boolean validateProfileId( String prefix, String fieldName,
ModelProblemCollector problems,
+ Severity severity, Version version,
String id, String sourceHint,
+ InputLocationTracker tracker )
+ {
+ if ( validProfileIds.contains( id ) )
+ {
+ return true;
+ }
+ if ( !validateStringNotEmpty( prefix, fieldName, problems, severity,
version, id, sourceHint, tracker ) )
+ {
+ return false;
+ }
+ else
+ {
+ if ( !isValidProfileId( id ) )
+ {
+ addViolation( problems, severity, version, prefix + fieldName,
sourceHint,
+ "with value '" + id + "' does not match a valid
profile id pattern.", tracker );
+ return false;
+ }
+ validProfileIds.add( id );
+ return true;
+ }
+ }
+
+ private boolean isValidProfileId( String id )
+ {
+ switch ( id.charAt( 0 ) )
+ { // avoid first character that has special CLI meaning in "mvn -P xxx"
Review comment:
yes, there are good ideas during the discussion on improvements for
profile and coordinate id checks: I'll let that as improvements "up for grabs":
I needed early fix to stop failing on "jdk9+" profile id
Now I'll let improvement ideas go at their own pace
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]