You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2016/09/24 15:19:46 UTC
[24/33] maven git commit: [MNG-6075] Increase the model validation
level to the next minor level version.
[MNG-6075] Increase the model validation level to the next minor level version.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/0fbad04c
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/0fbad04c
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/0fbad04c
Branch: refs/heads/MNG-6056-feature-toggle
Commit: 0fbad04c5ff63c87b6d80873cb8b45b6c9b79781
Parents: 744b98e
Author: Christian Schulte <sc...@apache.org>
Authored: Mon Aug 1 09:36:06 2016 +0200
Committer: Christian Schulte <sc...@apache.org>
Committed: Mon Aug 1 09:36:06 2016 +0200
----------------------------------------------------------------------
.../model/building/DefaultModelBuilder.java | 29 ++++++++++++++++++++
1 file changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/0fbad04c/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
----------------------------------------------------------------------
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 e5e5dc5..2d50ed1 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
@@ -30,6 +30,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.apache.commons.lang3.Validate;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
@@ -387,6 +388,7 @@ public class DefaultModelBuilder
}
problems.setSource( inputModel );
+ checkModelVersions( lineage, request, problems );
checkPluginVersions( lineage, request, problems );
// [MNG-4052] import scope dependencies prefer to download pom rather than find it in the current project
@@ -769,6 +771,33 @@ public class DefaultModelBuilder
}
}
+ private void checkModelVersions( final List<ModelData> lineage, final ModelBuildingRequest request,
+ final ModelProblemCollector problems )
+ {
+ if ( request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_1 )
+ {
+ final Set<String> modelVersions = new HashSet<>( lineage.size() );
+
+ for ( int i = lineage.size() - 1; i >= 0; i-- )
+ {
+ final Model model = lineage.get( i ).getModel();
+
+ if ( model.getModelVersion() != null )
+ {
+ if ( !modelVersions.isEmpty() && modelVersions.add( model.getModelVersion() ) )
+ {
+ problems.add( new ModelProblemCollectorRequest( Severity.ERROR, Version.V31 )
+ .setMessage( String.format(
+ "Cannot inherit from parent '%s' with different model version '%s'."
+ + " Expected model version '%s'.",
+ model.getId(), model.getModelVersion(), modelVersions.iterator().next() ) ) );
+
+ }
+ }
+ }
+ }
+ }
+
private void processImports( final List<Model> lineage, final ModelBuildingRequest request,
final DefaultModelProblemCollector problems )
{