Skip to content

Commit f6209ea

Browse files
committed
Enforce no expression in GAV and parent GAV (null is allowed for inference)
1 parent 4805dbe commit f6209ea

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelValidator.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -423,17 +423,33 @@ public void validateFileModel(
423423
validateModelVersion(problems, m.getModelVersion(), m, VALID_MODEL_VERSIONS);
424424
}
425425

426-
validateStringNoExpression("groupId", problems, Severity.WARNING, Version.V20, m.getGroupId(), m);
427-
if (parent == null) {
428-
validateStringNotEmpty("groupId", problems, Severity.FATAL, Version.V20, m.getGroupId(), m);
429-
}
426+
boolean isModelVersion41OrMore = !Objects.equals(ModelBuilder.MODEL_VERSION_4_0_0, m.getModelVersion());
427+
if (isModelVersion41OrMore) {
428+
validateStringNoExpression("groupId", problems, Severity.FATAL, Version.V41, m.getGroupId(), m);
429+
validateStringNotEmpty("artifactId", problems, Severity.FATAL, Version.V20, m.getArtifactId(), m);
430+
validateStringNoExpression("artifactId", problems, Severity.FATAL, Version.V20, m.getArtifactId(), m);
431+
validateVersionNoExpression("version", problems, Severity.FATAL, Version.V41, m.getVersion(), m);
432+
if (parent != null) {
433+
validateStringNoExpression(
434+
"groupId", problems, Severity.FATAL, Version.V41, parent.getGroupId(), m);
435+
validateStringNoExpression(
436+
"artifactId", problems, Severity.FATAL, Version.V41, parent.getArtifactId(), m);
437+
validateVersionNoExpression(
438+
"version", problems, Severity.FATAL, Version.V41, parent.getVersion(), m);
439+
}
440+
} else {
441+
validateStringNoExpression("groupId", problems, Severity.WARNING, Version.V20, m.getGroupId(), m);
442+
if (parent == null) {
443+
validateStringNotEmpty("groupId", problems, Severity.FATAL, Version.V20, m.getGroupId(), m);
444+
}
430445

431-
validateStringNoExpression("artifactId", problems, Severity.WARNING, Version.V20, m.getArtifactId(), m);
432-
validateStringNotEmpty("artifactId", problems, Severity.FATAL, Version.V20, m.getArtifactId(), m);
446+
validateStringNoExpression("artifactId", problems, Severity.WARNING, Version.V20, m.getArtifactId(), m);
447+
validateStringNotEmpty("artifactId", problems, Severity.FATAL, Version.V20, m.getArtifactId(), m);
433448

434-
validateVersionNoExpression("version", problems, Severity.WARNING, Version.V20, m.getVersion(), m);
435-
if (parent == null) {
436-
validateStringNotEmpty("version", problems, Severity.FATAL, Version.V20, m.getVersion(), m);
449+
validateVersionNoExpression("version", problems, Severity.WARNING, Version.V20, m.getVersion(), m);
450+
if (parent == null) {
451+
validateStringNotEmpty("version", problems, Severity.FATAL, Version.V20, m.getVersion(), m);
452+
}
437453
}
438454

439455
validate20RawDependencies(

0 commit comments

Comments
 (0)