diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java index 9ba962affa..233a842c1f 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java @@ -116,8 +116,7 @@ private ModelBuildingResult build( ModelSource modelSource, File pomFile, ModelB List<Profile> activeExternalProfiles = getActiveExternalProfiles( request, profileActivationContext, problems ); - Model model = readModel( modelSource, request, problems ); - model.setPomFile( pomFile ); + Model model = readModel( modelSource, pomFile, request, problems ); List<Model> rawModels = new ArrayList<Model>(); List<Model> resultModels = new ArrayList<Model>(); @@ -180,7 +179,8 @@ private ModelBuildingResult build( ModelSource modelSource, File pomFile, ModelB pluginConfigurationExpander.expandPluginConfiguration( resultModel, request ); } - validateModel( resultModel, false, request, problems ); + ModelValidationResult validationResult = modelValidator.validateEffectiveModel( resultModel, request ); + addProblems( resultModel, validationResult, problems ); if ( !problems.isEmpty() ) { @@ -201,7 +201,8 @@ private ProfileActivationContext getProfileActivationContext( ModelBuildingReque return context; } - private Model readModel( ModelSource modelSource, ModelBuildingRequest request, List<ModelProblem> problems ) + private Model readModel( ModelSource modelSource, File pomFile, ModelBuildingRequest request, + List<ModelProblem> problems ) throws ModelBuildingException { Model model; @@ -226,24 +227,16 @@ Collections.<String, Object> singletonMap( ModelReader.IS_STRICT, throw new ModelBuildingException( problems ); } - validateModel( model, true, request, problems ); + model.setPomFile( pomFile ); + + ModelValidationResult validationResult = modelValidator.validateRawModel( model, request ); + addProblems( model, validationResult, problems ); return model; } - private void validateModel( Model model, boolean raw, ModelBuildingRequest request, List<ModelProblem> problems ) + private void addProblems( Model model, ModelValidationResult result, List<ModelProblem> problems ) { - ModelValidationResult result; - - if ( raw ) - { - result = modelValidator.validateRawModel( model, request ); - } - else - { - result = modelValidator.validateEffectiveModel( model, request ); - } - if ( result.getMessageCount() > 0 ) { String source = toSourceHint( model ); @@ -384,8 +377,7 @@ private Model readParentLocally( Model childModel, ModelBuildingRequest request, return null; } - Model candidateModel = readModel( new FileModelSource( pomFile ), request, problems ); - candidateModel.setPomFile( pomFile ); + Model candidateModel = readModel( new FileModelSource( pomFile ), pomFile, request, problems ); String groupId = candidateModel.getGroupId(); if ( groupId == null && candidateModel.getParent() != null ) @@ -441,7 +433,7 @@ private Model readParentExternally( Model childModel, ModelBuildingRequest reque throw new ModelBuildingException( problems ); } - return readModel( modelSource, request, problems ); + return readModel( modelSource, null, request, problems ); } private Model getSuperModel()