From a35801fd1d426c6a2611b21c2d48663aa6381ede Mon Sep 17 00:00:00 2001 From: Benjamin Bentmann Date: Sat, 6 Jun 2009 17:40:50 +0000 Subject: [PATCH] o Set POM file before validation to provide better source hint for validation problems git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@782283 13f79535-47bb-0310-9956-ffa450edef68 --- .../maven/model/DefaultModelBuilder.java | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) 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 @@ public class DefaultModelBuilder List activeExternalProfiles = getActiveExternalProfiles( request, profileActivationContext, problems ); - Model model = readModel( modelSource, request, problems ); - model.setPomFile( pomFile ); + Model model = readModel( modelSource, pomFile, request, problems ); List rawModels = new ArrayList(); List resultModels = new ArrayList(); @@ -180,7 +179,8 @@ public class DefaultModelBuilder 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 @@ public class DefaultModelBuilder return context; } - private Model readModel( ModelSource modelSource, ModelBuildingRequest request, List problems ) + private Model readModel( ModelSource modelSource, File pomFile, ModelBuildingRequest request, + List problems ) throws ModelBuildingException { Model model; @@ -226,24 +227,16 @@ public class DefaultModelBuilder 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 problems ) + private void addProblems( Model model, ModelValidationResult result, List 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 @@ public class DefaultModelBuilder 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 @@ public class DefaultModelBuilder throw new ModelBuildingException( problems ); } - return readModel( modelSource, request, problems ); + return readModel( modelSource, null, request, problems ); } private Model getSuperModel()