diff --git a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/BuildModelTransformer.java b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/BuildModelTransformer.java index cc48498afe..c1ff4d8efa 100644 --- a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/BuildModelTransformer.java +++ b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/BuildModelTransformer.java @@ -44,28 +44,15 @@ @Singleton public class BuildModelTransformer implements ModelTransformer { - public static final String NAMESPACE_PREFIX = "http://maven.apache.org/POM/"; - @Override public Model transform(ModelTransformerContext context, Model model, Path path) { Model.Builder builder = Model.newBuilder(model); - handleModelVersion(context, model, path, builder); handleParent(context, model, path, builder); handleReactorDependencies(context, model, path, builder); handleCiFriendlyVersion(context, model, path, builder); return builder.build(); } - // - // Infer modelVersion from namespace URI - // - void handleModelVersion(ModelTransformerContext context, Model model, Path pomFile, Model.Builder builder) { - String namespace = model.getNamespaceUri(); - if (model.getModelVersion() == null && namespace != null && namespace.startsWith(NAMESPACE_PREFIX)) { - builder.modelVersion(namespace.substring(NAMESPACE_PREFIX.length())); - } - } - // // Infer parent information // diff --git a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java index b66f04d6d9..0ea2430097 100644 --- a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java +++ b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java @@ -99,6 +99,7 @@ @Singleton public class DefaultModelBuilder implements ModelBuilder { + public static final String NAMESPACE_PREFIX = "http://maven.apache.org/POM/"; private static final String RAW = "raw"; private static final String FILE = "file"; private static final String IMPORT = "import"; @@ -749,6 +750,11 @@ private ModelData doReadRawModel( } } + String namespace = rawModel.getNamespaceUri(); + if (rawModel.getModelVersion() == null && namespace != null && namespace.startsWith(NAMESPACE_PREFIX)) { + rawModel = rawModel.withModelVersion(namespace.substring(NAMESPACE_PREFIX.length())); + } + modelValidator.validateRawModel(rawModel, request, problems); if (hasFatalErrors(problems)) {