You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2020/10/04 19:23:43 UTC

[maven] 01/01: [MNG-6965] Extensions suddenly have org.codehaus.plexus:plexus-utils:jar:1.1 on their classpath

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MNG-6965
in repository https://gitbox.apache.org/repos/asf/maven.git

commit b8b4e6587c3cfd40e682693b73cee470693b9fb8
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Fri Jul 24 01:59:50 2020 +0200

    [MNG-6965] Extensions suddenly have org.codehaus.plexus:plexus-utils:jar:1.1 on their classpath
    
    This closes #367
---
 .../DefaultPluginDependenciesResolver.java         | 12 +--
 .../maven/plugin/internal/PlexusUtilsInjector.java | 87 ----------------------
 .../project/DefaultProjectBuildingHelper.java      |  5 +-
 3 files changed, 5 insertions(+), 99 deletions(-)

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 d1f2834..709bd72 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
@@ -43,7 +43,6 @@ import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.collection.CollectRequest;
 import org.eclipse.aether.collection.DependencyCollectionException;
-import org.eclipse.aether.collection.DependencyGraphTransformer;
 import org.eclipse.aether.collection.DependencySelector;
 import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.DependencyNode;
@@ -61,7 +60,6 @@ import org.eclipse.aether.util.filter.AndDependencyFilter;
 import org.eclipse.aether.util.filter.ScopeDependencyFilter;
 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 import org.eclipse.aether.util.graph.selector.AndDependencySelector;
-import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
 import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
 
 /**
@@ -145,7 +143,7 @@ public class DefaultPluginDependenciesResolver
                                                 List<RemoteRepository> repositories, RepositorySystemSession session )
         throws PluginResolutionException
     {
-        return resolveInternal( plugin, null /* pluginArtifact */, dependencyFilter, null /* transformer */,
+        return resolveInternal( plugin, null /* pluginArtifact */, dependencyFilter,
                                 repositories, session );
     }
 
@@ -153,12 +151,11 @@ public class DefaultPluginDependenciesResolver
                                    List<RemoteRepository> repositories, RepositorySystemSession session )
         throws PluginResolutionException
     {
-        return resolveInternal( plugin, pluginArtifact, dependencyFilter, new PlexusUtilsInjector(), repositories,
+        return resolveInternal( plugin, pluginArtifact, dependencyFilter, repositories,
                                 session );
     }
 
     private DependencyNode resolveInternal( Plugin plugin, Artifact pluginArtifact, DependencyFilter dependencyFilter,
-                                            DependencyGraphTransformer transformer,
                                             List<RemoteRepository> repositories, RepositorySystemSession session )
         throws PluginResolutionException
     {
@@ -179,12 +176,9 @@ public class DefaultPluginDependenciesResolver
             DependencySelector selector =
                 AndDependencySelector.newInstance( session.getDependencySelector(), new WagonExcluder() );
 
-            transformer =
-                ChainedDependencyGraphTransformer.newInstance( session.getDependencyGraphTransformer(), transformer );
-
             DefaultRepositorySystemSession pluginSession = new DefaultRepositorySystemSession( session );
             pluginSession.setDependencySelector( selector );
-            pluginSession.setDependencyGraphTransformer( transformer );
+            pluginSession.setDependencyGraphTransformer( session.getDependencyGraphTransformer() );
 
             CollectRequest request = new CollectRequest();
             request.setRequestContext( REPOSITORY_CONTEXT );
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java
deleted file mode 100644
index 16a0b63..0000000
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.apache.maven.plugin.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.eclipse.aether.RepositoryException;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.collection.DependencyGraphTransformationContext;
-import org.eclipse.aether.collection.DependencyGraphTransformer;
-import org.eclipse.aether.graph.DefaultDependencyNode;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.util.artifact.JavaScopes;
-
-/**
- * Injects plexus-utils:1.1 into a plugin's class path if it doesn't already declare a dependency on plexus-utils. This
- * is another legacy bit to provide backward-compat with Maven 2.x.
- *
- * @author Benjamin Bentmann
- */
-class PlexusUtilsInjector
-    implements DependencyGraphTransformer
-{
-
-    private static final String GID = "org.codehaus.plexus";
-
-    private static final String AID = "plexus-utils";
-
-    private static final String VER = "1.1";
-
-    private static final String EXT = "jar";
-
-    public DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context )
-        throws RepositoryException
-    {
-        if ( findPlexusUtils( node ) == null )
-        {
-            Artifact pu = new DefaultArtifact( GID, AID, null, EXT, VER );
-            DefaultDependencyNode child = new DefaultDependencyNode( new Dependency( pu, JavaScopes.RUNTIME ) );
-            child.setRepositories( node.getRepositories() );
-            child.setRequestContext( node.getRequestContext() );
-            node.getChildren().add( child );
-        }
-
-        return node;
-    }
-
-    private DependencyNode findPlexusUtils( DependencyNode node )
-    {
-        Artifact artifact = node.getDependency().getArtifact();
-
-        if ( AID.equals( artifact.getArtifactId() ) && GID.equals( artifact.getGroupId() )
-            && EXT.equals( artifact.getExtension() ) && "".equals( artifact.getClassifier() ) )
-        {
-            return node;
-        }
-
-        for ( DependencyNode child : node.getChildren() )
-        {
-            DependencyNode result = findPlexusUtils( child );
-            if ( result != null )
-            {
-                return result;
-            }
-        }
-
-        return null;
-    }
-
-}
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
index 33256fb..e5c89e6 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
@@ -210,15 +210,14 @@ public class DefaultProjectBuildingHelper
                 exportedArtifacts.put( extensionRealm, extensionDescriptor.getExportedArtifacts() );
             }
 
-            if ( !plugin.isExtensions() && artifacts.size() == 2 && artifacts.get( 0 ).getFile() != null
-                && "plexus-utils".equals( artifacts.get( 1 ).getArtifactId() ) )
+            if ( !plugin.isExtensions() && artifacts.size() == 1 && artifacts.get( 0 ).getFile() != null )
             {
                 /*
                  * This is purely for backward-compat with 2.x where <extensions> consisting of a single artifact where
                  * loaded into the core and hence available to plugins, in contrast to bigger extensions that were
                  * loaded into a dedicated realm which is invisible to plugins (MNG-2749).
                  */
-                publicArtifacts.add( artifacts.get( 0 ) );
+                publicArtifacts.addAll( artifacts );
             }
         }