From 2b4d1aec07e80d5692682d15698f4b54fff1c75c Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 13 Jan 2022 08:58:40 +0100 Subject: [PATCH 1/5] Revert "[MNG-7253] Display relocation message defined in model" This reverts commit a1ba33069fad1fb9c6e9cd458ad233ff3a74aadd. --- .../DefaultProjectDependenciesResolver.java | 12 ++++++++++++ .../DefaultArtifactDescriptorReader.java | 18 ++---------------- 2 files changed, 14 insertions(+), 16 deletions(-) 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 3644b67ef40..7500e43d2a3 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 @@ -181,6 +181,18 @@ public DependencyResolutionResult resolve( DependencyResolutionRequest request ) depRequest.setRoot( node ); + if ( logger.isWarnEnabled() ) + { + for ( DependencyNode child : node.getChildren() ) + { + if ( !child.getRelocations().isEmpty() ) + { + logger.warn( "The artifact " + child.getRelocations().get( 0 ) + " has been relocated to " + + child.getDependency().getArtifact() ); + } + } + } + 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 888f4581b46..c2ba0a3d729 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 @@ -68,8 +68,6 @@ import org.eclipse.aether.spi.locator.Service; import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.ArtifactNotFoundException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author Benjamin Bentmann @@ -79,8 +77,6 @@ public class DefaultArtifactDescriptorReader implements ArtifactDescriptorReader, Service { - private static final Logger LOGGER = LoggerFactory.getLogger( DefaultArtifactDescriptorReader.class ); - private RemoteRepositoryManager remoteRepositoryManager; private VersionResolver versionResolver; @@ -320,20 +316,10 @@ private Model loadPom( RepositorySystemSession session, ArtifactDescriptorReques 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; + result.setArtifact( a ); } else { From db6afe024823b5d486551aae60034166f6cb6598 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 13 Jan 2022 09:55:26 +0100 Subject: [PATCH 2/5] MNG-7349 [MNG-7349] Superfluous relocation warning messages --- .../DefaultProjectDependenciesResolver.java | 7 ++++++- .../DefaultArtifactDescriptorReader.java | 2 +- .../repository/internal/RelocatedArtifact.java | 17 ++++++++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) 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 7500e43d2a3..3c557ab1055 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 @@ -187,8 +187,13 @@ public DependencyResolutionResult resolve( DependencyResolutionRequest request ) { 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 " - + child.getDependency().getArtifact() ); + + child.getDependency().getArtifact() + + ( message != null ? ": " + message : "" ) ); } } } 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 c2ba0a3d729..e78c77ff322 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 @@ -318,7 +318,7 @@ private Model loadPom( RepositorySystemSession session, ArtifactDescriptorReques result.addRelocation( a ); a = new RelocatedArtifact( a, relocation.getGroupId(), relocation.getArtifactId(), - relocation.getVersion() ); + 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 4614ccfe5c5..a0a21e9a600 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 @@ /** * @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 @@ public Artifact setVersion( String version ) { return this; } - return new RelocatedArtifact( artifact, groupId, artifactId, version ); + return new RelocatedArtifact( artifact, groupId, artifactId, version, message ); } @Override @@ -106,7 +109,7 @@ public Artifact setFile( File file ) { 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 @@ public Artifact setProperties( Map properties ) { 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 @@ public Map getProperties() return artifact.getProperties(); } + public String getMessage() + { + return message; + } } From 33e8a0b5c7fefa1afef7c15d5deb7e974c54e340 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 13 Jan 2022 15:23:48 +0100 Subject: [PATCH 3/5] Reuse existing variable --- .../maven/project/DefaultProjectDependenciesResolver.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 3c557ab1055..7ce49065d03 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 @@ -192,8 +192,7 @@ public DependencyResolutionResult resolve( DependencyResolutionRequest request ) ? ( ( org.apache.maven.repository.internal.RelocatedArtifact ) relocated ).getMessage() : null; logger.warn( "The artifact " + child.getRelocations().get( 0 ) + " has been relocated to " - + child.getDependency().getArtifact() - + ( message != null ? ": " + message : "" ) ); + + relocated + ( message != null ? ": " + message : "" ) ); } } } From 5cc33744e0dbdc8dabf5fd0927e8864919596fbf Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Mon, 17 Jan 2022 14:45:04 +0100 Subject: [PATCH 4/5] Also fix the plugin dependencies resolver --- .../DefaultPluginDependenciesResolver.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 8d16c613667..90f9cc90428 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 @@ -205,6 +205,22 @@ private DependencyNode resolveInternal( Plugin plugin, Artifact pluginArtifact, node = repoSystem.collectDependencies( pluginSession, request ).getRoot(); + 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() ); From 21f21c932c870f26a9ac7130821f100df9239be4 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Fri, 21 Jan 2022 11:00:09 +0100 Subject: [PATCH 5/5] Make sure we test the plugin's relocation and not its dependencies --- .../DefaultPluginDependenciesResolver.java | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 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 90f9cc90428..c4bddc5f6ae 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 @@ -108,6 +108,18 @@ public Artifact resolve( Plugin plugin, List repositories, Rep 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 ) { @@ -205,22 +217,6 @@ private DependencyNode resolveInternal( Plugin plugin, Artifact pluginArtifact, node = repoSystem.collectDependencies( pluginSession, request ).getRoot(); - 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() );