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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 6b60710  [MNG-7349] Limit relocation warning message to direct 
dependencies only
6b60710 is described below

commit 6b607109d3ce045106924139e96705fe7c42172e
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon Jan 24 07:53:26 2022 +0100

    [MNG-7349] Limit relocation warning message to direct dependencies only
    
    # Conflicts:
    #   
maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
---
 .../internal/DefaultPluginDependenciesResolver.java     | 12 ++++++++++++
 .../project/DefaultProjectDependenciesResolver.java     | 16 ++++++++++++++++
 .../internal/DefaultArtifactDescriptorReader.java       | 16 +++-------------
 .../maven/repository/internal/RelocatedArtifact.java    | 17 ++++++++++++-----
 4 files changed, 43 insertions(+), 18 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 22127c5..076a3cb 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
@@ -113,6 +113,18 @@ public class DefaultPluginDependenciesResolver
 
             pluginArtifact = result.getArtifact();
 
+            if ( logger.isWarnEnabled() )
+            {
+                if ( !result.getRelocations().isEmpty() )
+                {
+                    String message = pluginArtifact instanceof 
org.apache.maven.repository.internal.RelocatedArtifact
+                            ? ( ( 
org.apache.maven.repository.internal.RelocatedArtifact ) pluginArtifact 
).getMessage()
+                            : null;
+                    logger.warn( "The artifact " + 
result.getRelocations().get( 0 ) + " has been relocated to "
+                            + pluginArtifact + ( message != null ? ": " + 
message : "" ) );
+                }
+            }
+
             String requiredMavenVersion = (String) result.getProperties().get( 
"prerequisites.maven" );
             if ( requiredMavenVersion != null )
             {
diff --git 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
index 4dba8af..c20b9aa 100644
--- 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
+++ 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
@@ -188,6 +188,22 @@ public class DefaultProjectDependenciesResolver
 
         depRequest.setRoot( node );
 
+        if ( logger.isWarnEnabled() )
+        {
+            for ( DependencyNode child : node.getChildren() )
+            {
+                if ( !child.getRelocations().isEmpty() )
+                {
+                    org.eclipse.aether.artifact.Artifact relocated = 
child.getDependency().getArtifact();
+                    String message = relocated instanceof 
org.apache.maven.repository.internal.RelocatedArtifact
+                            ? ( ( 
org.apache.maven.repository.internal.RelocatedArtifact ) relocated 
).getMessage()
+                            : null;
+                    logger.warn( "The artifact " + child.getRelocations().get( 
0 ) + " has been relocated to "
+                        + relocated + ( message != null ? ": " + message : "" 
) );
+                }
+            }
+        }
+
         if ( logger.isDebugEnabled() )
         {
             node.accept( new GraphLogger( project ) );
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
index 147f8b8..7beeb04 100644
--- 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
@@ -261,20 +261,10 @@ public class DefaultArtifactDescriptorReader implements 
ArtifactDescriptorReader
             if ( relocation != null )
             {
                 result.addRelocation( a );
-                Artifact relocatedArtifact =
+                a =
                     new RelocatedArtifact( a, relocation.getGroupId(), 
relocation.getArtifactId(),
-                                           relocation.getVersion() );
-                if ( LOGGER.isWarnEnabled() )
-                {
-                    String message = "The artifact " + a + " has been 
relocated to " + relocatedArtifact;
-                    if ( relocation.getMessage() != null )
-                    {
-                        message += ": " + relocation.getMessage();
-                    }
-                    LOGGER.warn( message );
-                }
-                result.setArtifact( relocatedArtifact );
-                a = relocatedArtifact;
+                                           relocation.getVersion(), 
relocation.getMessage() );
+                result.setArtifact( a );
             }
             else
             {
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
index 4614ccf..a0a21e9 100644
--- 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
@@ -29,7 +29,7 @@ import org.eclipse.aether.artifact.Artifact;
 /**
  * @author Benjamin Bentmann
  */
-final class RelocatedArtifact
+public final class RelocatedArtifact
     extends AbstractArtifact
 {
 
@@ -41,13 +41,16 @@ final class RelocatedArtifact
 
     private final String version;
 
-    RelocatedArtifact( Artifact artifact, String groupId, String artifactId, 
String version )
+    private final String message;
+
+    RelocatedArtifact( Artifact artifact, String groupId, String artifactId, 
String version, String message )
     {
         this.artifact = Objects.requireNonNull( artifact, "artifact cannot be 
null" );
         // TODO Use StringUtils here
         this.groupId = ( groupId != null && groupId.length() > 0 ) ? groupId : 
null;
         this.artifactId = ( artifactId != null && artifactId.length() > 0 ) ? 
artifactId : null;
         this.version = ( version != null && version.length() > 0 ) ? version : 
null;
+        this.message = ( message != null && message.length() > 0 ) ? message : 
null;
     }
 
     public String getGroupId()
@@ -95,7 +98,7 @@ final class RelocatedArtifact
          {
              return this;
          }
-        return new RelocatedArtifact( artifact, groupId, artifactId, version );
+        return new RelocatedArtifact( artifact, groupId, artifactId, version, 
message );
     }
 
     @Override
@@ -106,7 +109,7 @@ final class RelocatedArtifact
         {
              return this;
         }
-        return new RelocatedArtifact( artifact.setFile( file ), groupId, 
artifactId, version );
+        return new RelocatedArtifact( artifact.setFile( file ), groupId, 
artifactId, version, message );
     }
 
     @Override
@@ -117,7 +120,7 @@ final class RelocatedArtifact
         {
              return this;
         }
-        return new RelocatedArtifact( artifact.setProperties( properties ), 
groupId, artifactId, version );
+        return new RelocatedArtifact( artifact.setProperties( properties ), 
groupId, artifactId, version, message );
     }
 
     public String getClassifier()
@@ -145,4 +148,8 @@ final class RelocatedArtifact
         return artifact.getProperties();
     }
 
+    public String getMessage()
+    {
+        return message;
+    }
 }

Reply via email to