You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/06/09 08:16:29 UTC

maven git commit: [MNG-5971] Imported dependencies should be available to inheritance processing

Repository: maven
Updated Branches:
  refs/heads/master b2a8aaded -> a6d52372a


[MNG-5971] Imported dependencies should be available to inheritance processing

o Updated to support inherited ${project.groupId} and ${project.version} expressions
  in dependency management import declarations.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a6d52372
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a6d52372
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a6d52372

Branch: refs/heads/master
Commit: a6d52372afddb56a5ca6cc1ef095c32f622eddb6
Parents: b2a8aad
Author: Christian Schulte <sc...@apache.org>
Authored: Thu Jun 9 10:03:00 2016 +0200
Committer: Christian Schulte <sc...@apache.org>
Committed: Thu Jun 9 10:03:00 2016 +0200

----------------------------------------------------------------------
 .../maven/model/building/DefaultModelBuilder.java  | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/a6d52372/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 df9d2bd..014e401 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
@@ -755,8 +755,10 @@ public class DefaultModelBuilder
                                  final DefaultModelProblemCollector problems )
     {
         // [MNG-5971] Imported dependencies should be available to inheritance processing
+        // It's not possible to support all ${project.xyz} properties in dependency management import declarations
+        // because import processing is performed before the final inheritance processing is performed. So the set of
+        // ${project.xyz} properties supported in dependency management import declarations is limited.
 
-        // Creates an intermediate model with only property and repository inheritance.
         final List<Model> intermediateLineage = new ArrayList<>( lineage.size() );
 
         for ( int i = 0, s0 = lineage.size(); i < s0; i++ )
@@ -769,6 +771,17 @@ public class DefaultModelBuilder
             final Model parent = intermediateLineage.get( i + 1 );
             final Model child = intermediateLineage.get( i );
 
+            if ( child.getGroupId() == null )
+            {
+                // Support ${project.groupId} in dependency management import declarations.
+                child.setGroupId( parent.getGroupId() );
+            }
+            if ( child.getVersion() == null )
+            {
+                // Support ${project.version} in dependency management import declarations.
+                child.setVersion( parent.getVersion() );
+            }
+
             final Properties properties = new Properties();
             properties.putAll( parent.getProperties() );
             properties.putAll( child.getProperties() );
@@ -838,7 +851,7 @@ public class DefaultModelBuilder
         }
 
         // Imports dependencies into the original model using the repositories of the intermediate model.
-        for ( int i = 0, s0 = lineage.size(), superModelIdx = lineage.size() - 1; i < s0; i++ )
+        for ( int i = 0, s0 = lineage.size(); i < s0; i++ )
         {
             final Model model = lineage.get( i );
             this.configureResolver( lenientRequest.getModelResolver(), intermediateLineage.get( i ), problems, true );