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 04a6a9e62295..3043a76a0ea6 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 @@ @Named @Singleton public class DefaultModelBuilder implements ModelBuilder { - /** - * Key for "fail on invalid model" property. - *

- * 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}. - *

- * 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 ModelBuildingResult build(ModelBuildingRequest request) throws ModelBuild protected ModelBuildingResult build(ModelBuildingRequest request, Collection importIds) throws ModelBuildingException { // phase 1 - boolean failOnInvalidModel = isFailOnInvalidModel(request); DefaultModelBuildingResult result = new DefaultModelBuildingResult(); DefaultModelProblemCollector problems = new DefaultModelProblemCollector(result); @@ -331,7 +306,7 @@ protected ModelBuildingResult build(ModelBuildingRequest request, Collection interpolatedActivations = - getInterpolatedActivations(rawModel, profileActivationContext, failOnInvalidModel, problems); + getInterpolatedActivations(rawModel, profileActivationContext, problems); injectProfileActivations(tmpModel, interpolatedActivations); List activePomProfiles = @@ -455,12 +430,8 @@ private interface InterpolateString { } private Map getInterpolatedActivations( - Model rawModel, - DefaultProfileActivationContext context, - boolean failOnInvalidModel, - DefaultModelProblemCollector problems) { - Map interpolatedActivations = - getProfileActivations(rawModel, true, failOnInvalidModel, problems); + Model rawModel, DefaultProfileActivationContext context, DefaultModelProblemCollector problems) { + Map interpolatedActivations = getProfileActivations(rawModel, true); if (interpolatedActivations.isEmpty()) { return Collections.emptyMap(); @@ -782,8 +753,7 @@ private void assembleInheritance( } } - private Map getProfileActivations( - Model model, boolean clone, boolean failOnInvalidModel, ModelProblemCollector problems) { + private Map getProfileActivations(Model model, boolean clone) { Map activations = new HashMap<>(); for (Profile profile : model.getProfiles()) { Activation activation = profile.getActivation(); @@ -796,11 +766,7 @@ private Map getProfileActivations( 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 @@ private void injectProfileActivations(Model model, Map activ 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 originalActivations = getProfileActivations(model, true, false, problems); + Map 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 13a8ac0e476b..59fb44750003 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.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 void testCycleInImports() throws Exception { 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 e098a70fb946..000000000000 --- a/maven-model-builder/src/test/resources/poms/building/badprofiles.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - 4.0.0 - - test - test - 0.1-SNAPSHOT - pom - - - - badprofile - - true - - - UTF-8 - - - - badprofile - - - simple.xml - - - - activated - - - -