Repository: maven
Updated Branches:
  refs/heads/master 15a947fae -> 9fef375bb


[MNG-6135] Maven plugins and core extensions are not dependencies, they should 
be resolved the same way as projects.

o Updated to correctly simulate project resultion. The session's dependency
  selector cannot be used because it will not work in project resolution
  mode the way the resolver is called. Calling the session's dependency manager
  for the first time must be skipped because that also will not work in
  project resolution mode the way the resolver is called.


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

Branch: refs/heads/master
Commit: 9fef375bb0947bdc8ae5ca1ffe5b69d3fd31a4ab
Parents: 15a947f
Author: Christian Schulte <[email protected]>
Authored: Sat Dec 17 05:00:44 2016 +0100
Committer: Christian Schulte <[email protected]>
Committed: Sat Dec 17 05:00:44 2016 +0100

----------------------------------------------------------------------
 .../DefaultPluginDependenciesResolver.java      | 29 +++++++++++++-------
 1 file changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/9fef375b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
index 019a636..f02be6a 100644
--- 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
+++ 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
@@ -197,7 +197,17 @@ public class DefaultPluginDependenciesResolver
         class PluginDependencyManager implements DependencyManager
         {
 
-            private final List<Artifact> exlusions = new LinkedList<>();
+            private int depth;
+
+            private DependencyManager defaultManager = 
session.getDependencyManager();
+
+            private List<Artifact> exlusions = new LinkedList<>();
+
+            PluginDependencyManager()
+            {
+                super();
+                this.depth = 0;
+            }
 
             @Override
             public DependencyManagement manageDependency( final 
org.eclipse.aether.graph.Dependency dependency )
@@ -220,8 +230,8 @@ public class DefaultPluginDependenciesResolver
                     }
                 }
 
-                return !excluded && session.getDependencyManager() != null
-                           ? session.getDependencyManager().manageDependency( 
dependency )
+                return !excluded && this.depth >= 2 && this.defaultManager != 
null
+                           ? this.defaultManager.manageDependency( dependency )
                            : null;
 
             }
@@ -230,10 +240,12 @@ public class DefaultPluginDependenciesResolver
             public DependencyManager deriveChildManager( final 
DependencyCollectionContext context )
             {
                 assert context.getDependency() != null : "Unexpected POM 
resolution.";
-                return session.getDependencyManager() != null
-                           ? 
session.getDependencyManager().deriveChildManager( context )
-                           : null;
+                this.depth++;
+                this.defaultManager = this.defaultManager != null
+                                          ? 
this.defaultManager.deriveChildManager( context )
+                                          : null;
 
+                return this;
             }
 
             public List<Artifact> getExclusions()
@@ -253,10 +265,7 @@ public class DefaultPluginDependenciesResolver
         try
         {
             final DependencySelector pluginDependencySelector =
-                session.getDependencySelector() != null
-                    ? new AndDependencySelector( new 
PluginDependencySelector(), new WagonExcluder(),
-                                                 
session.getDependencySelector() )
-                    : new AndDependencySelector( new 
PluginDependencySelector(), new WagonExcluder() );
+                new AndDependencySelector( new PluginDependencySelector(), new 
WagonExcluder() );
 
             final DependencyGraphTransformer pluginDependencyGraphTransformer =
                 ChainedDependencyGraphTransformer.newInstance( 
session.getDependencyGraphTransformer(), transformer );

Reply via email to