This is an automated email from the ASF dual-hosted git repository. cstamas pushed a commit to branch maven-3.9.x in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.9.x by this push: new 758e05480b Revert "[MNG-8141] Model builder should report problems it finds during build (#1556)" 758e05480b is described below commit 758e05480b9e9d21a4a2f00016ecaabded2efcb5 Author: Tamas Cservenak <ta...@cservenak.net> AuthorDate: Fri Jun 7 13:06:03 2024 +0200 Revert "[MNG-8141] Model builder should report problems it finds during build (#1556)" This reverts commit 7fcd8c5d154bbf7163350d4d3fbfd03fbe17cf93. --- .../maven/model/building/DefaultModelBuilder.java | 47 +++---------------- .../model/building/DefaultModelBuilderTest.java | 36 --------------- .../test/resources/poms/building/badprofiles.xml | 54 ---------------------- 3 files changed, 6 insertions(+), 131 deletions(-) diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java index 04a6a9e622..3043a76a0e 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java @@ -97,30 +97,6 @@ import static org.apache.maven.model.building.Result.newResult; @Named @Singleton public class DefaultModelBuilder implements ModelBuilder { - /** - * Key for "fail on invalid model" property. - * <p> - * Visible for testing. - */ - static final String FAIL_ON_INVALID_MODEL = "maven.modelBuilder.failOnInvalidModel"; - - /** - * Checks user and system properties (in this order) for value of {@link #FAIL_ON_INVALID_MODEL} property key, if - * set and returns it. If not set, defaults to {@code true}. - * <p> - * This is only meant to provide "escape hatch" for those builds, that are for some reason stuck with invalid models. - */ - private static boolean isFailOnInvalidModel(ModelBuildingRequest request) { - String val = request.getUserProperties().getProperty(FAIL_ON_INVALID_MODEL); - if (val == null) { - val = request.getSystemProperties().getProperty(FAIL_ON_INVALID_MODEL); - } - if (val != null) { - return Boolean.parseBoolean(val); - } - return true; - } - @Inject private ModelProcessor modelProcessor; @@ -277,7 +253,6 @@ public class DefaultModelBuilder implements ModelBuilder { protected ModelBuildingResult build(ModelBuildingRequest request, Collection<String> importIds) throws ModelBuildingException { // phase 1 - boolean failOnInvalidModel = isFailOnInvalidModel(request); DefaultModelBuildingResult result = new DefaultModelBuildingResult(); DefaultModelProblemCollector problems = new DefaultModelProblemCollector(result); @@ -331,7 +306,7 @@ public class DefaultModelBuilder implements ModelBuilder { profileActivationContext.setProjectProperties(tmpModel.getProperties()); Map<String, Activation> interpolatedActivations = - getInterpolatedActivations(rawModel, profileActivationContext, failOnInvalidModel, problems); + getInterpolatedActivations(rawModel, profileActivationContext, problems); injectProfileActivations(tmpModel, interpolatedActivations); List<Profile> activePomProfiles = @@ -455,12 +430,8 @@ public class DefaultModelBuilder implements ModelBuilder { } private Map<String, Activation> getInterpolatedActivations( - Model rawModel, - DefaultProfileActivationContext context, - boolean failOnInvalidModel, - DefaultModelProblemCollector problems) { - Map<String, Activation> interpolatedActivations = - getProfileActivations(rawModel, true, failOnInvalidModel, problems); + Model rawModel, DefaultProfileActivationContext context, DefaultModelProblemCollector problems) { + Map<String, Activation> interpolatedActivations = getProfileActivations(rawModel, true); if (interpolatedActivations.isEmpty()) { return Collections.emptyMap(); @@ -782,8 +753,7 @@ public class DefaultModelBuilder implements ModelBuilder { } } - private Map<String, Activation> getProfileActivations( - Model model, boolean clone, boolean failOnInvalidModel, ModelProblemCollector problems) { + private Map<String, Activation> getProfileActivations(Model model, boolean clone) { Map<String, Activation> activations = new HashMap<>(); for (Profile profile : model.getProfiles()) { Activation activation = profile.getActivation(); @@ -796,11 +766,7 @@ public class DefaultModelBuilder implements ModelBuilder { activation = activation.clone(); } - if (activations.put(profile.getId(), activation) != null) { - problems.add(new ModelProblemCollectorRequest( - failOnInvalidModel ? Severity.FATAL : Severity.WARNING, ModelProblem.Version.BASE) - .setMessage("Duplicate activation for profile " + profile.getId())); - } + activations.put(profile.getId(), activation); } return activations; @@ -821,8 +787,7 @@ public class DefaultModelBuilder implements ModelBuilder { private Model interpolateModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) { // save profile activations before interpolation, since they are evaluated with limited scope - // at this stage we already failed if wanted to - Map<String, Activation> originalActivations = getProfileActivations(model, true, false, problems); + Map<String, Activation> originalActivations = getProfileActivations(model, true); Model interpolatedModel = modelInterpolator.interpolateModel(model, model.getProjectDirectory(), request, problems); diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderTest.java index 13a8ac0e47..59fb447500 100644 --- a/maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderTest.java +++ b/maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderTest.java @@ -18,8 +18,6 @@ */ package org.apache.maven.model.building; -import java.io.File; - import org.apache.maven.model.Dependency; import org.apache.maven.model.Parent; import org.apache.maven.model.Repository; @@ -29,8 +27,6 @@ import org.apache.maven.model.resolution.UnresolvableModelException; import org.junit.Test; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; /** * @author Guillaume Nodet @@ -91,38 +87,6 @@ public class DefaultModelBuilderTest { builder.build(request); } - @Test - public void testBadProfiles() { - ModelBuilder builder = new DefaultModelBuilderFactory().newInstance(); - assertNotNull(builder); - - DefaultModelBuildingRequest request = new DefaultModelBuildingRequest(); - request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); - request.setModelSource(new FileModelSource(new File("src/test/resources/poms/building/badprofiles.xml"))); - request.setModelResolver(new BaseModelResolver()); - - try { - builder.build(request); // throw, making "pom not available" - fail(); - } catch (ModelBuildingException e) { - assertTrue(e.getMessage().contains("Duplicate activation for profile badprofile")); - } - } - - @Test - public void testBadProfilesCheckDisabled() throws Exception { - ModelBuilder builder = new DefaultModelBuilderFactory().newInstance(); - assertNotNull(builder); - - DefaultModelBuildingRequest request = new DefaultModelBuildingRequest(); - request.getUserProperties().setProperty(DefaultModelBuilder.FAIL_ON_INVALID_MODEL, "false"); - request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); - request.setModelSource(new FileModelSource(new File("src/test/resources/poms/building/badprofiles.xml"))); - request.setModelResolver(new BaseModelResolver()); - - builder.build(request); // does not throw, old behaviour (but result may be fully off) - } - static class CycleInImportsResolver extends BaseModelResolver { @Override public ModelSource resolveModel(Dependency dependency) throws UnresolvableModelException { diff --git a/maven-model-builder/src/test/resources/poms/building/badprofiles.xml b/maven-model-builder/src/test/resources/poms/building/badprofiles.xml deleted file mode 100644 index e098a70fb9..0000000000 --- a/maven-model-builder/src/test/resources/poms/building/badprofiles.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>test</groupId> - <artifactId>test</artifactId> - <version>0.1-SNAPSHOT</version> - <packaging>pom</packaging> - - <profiles> - <profile> - <id>badprofile</id> - <activation> - <activeByDefault>true</activeByDefault> - </activation> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - </profile> - <profile> - <id>badprofile</id> - <activation> - <file> - <exists>simple.xml</exists> - </file> - </activation> - <properties> - <profile.file>activated</profile.file> - </properties> - </profile> - </profiles> -</project>