From 3307d42bc9c889ff18da59a21331536ee53ce7ac Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 11:14:49 +0200 Subject: [PATCH 1/6] Feat: Align CP orderng with Maven 4 This PR aligns classpath ordering with Maven 4 (level order) and more. --- .../internal/DefaultMavenPluginManager.java | 38 ++++++------------ .../DefaultPluginDependenciesResolver.java | 40 +++++++++++++++---- .../internal/PluginDependenciesResolver.java | 23 +++++++++++ .../BootstrapCoreExtensionManager.java | 16 ++++---- 4 files changed, 77 insertions(+), 40 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java index edd9bb129b59..9bd3e2b02e3a 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java @@ -32,9 +32,7 @@ import java.io.Reader; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -107,10 +105,10 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.graph.DependencyFilter; -import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.resolution.ArtifactResult; +import org.eclipse.aether.resolution.DependencyResult; import org.eclipse.aether.util.filter.AndDependencyFilter; -import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator; /** * Provides basic services to manage Maven plugins and their mojos. This component is kept general in its design such @@ -389,17 +387,17 @@ private void createPluginRealm( DependencyFilter dependencyFilter = project.getExtensionDependencyFilter(); dependencyFilter = AndDependencyFilter.newInstance(dependencyFilter, filter); - DependencyNode root = pluginDependenciesResolver.resolve( + DependencyResult result = pluginDependenciesResolver.resolveAndFlatten( plugin, RepositoryUtils.toArtifact(pluginArtifact), dependencyFilter, project.getRemotePluginRepositories(), repositorySession); - PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); - root.accept(nlg); - - pluginArtifacts = toMavenArtifacts(root, nlg); + pluginArtifacts = result.getArtifactResults().stream() + .filter(ArtifactResult::isResolved) + .map(r -> RepositoryUtils.toArtifact(r.getArtifact())) + .collect(Collectors.toList()); pluginRealm = classRealmManager.createPluginRealm( plugin, parent, null, foreignImports, toAetherArtifacts(pluginArtifacts)); @@ -437,18 +435,6 @@ private List toAetherArtifacts(final List< return new ArrayList<>(RepositoryUtils.toArtifacts(pluginArtifacts)); } - private List toMavenArtifacts(DependencyNode root, PreorderNodeListGenerator nlg) { - List artifacts = new ArrayList<>(nlg.getNodes().size()); - RepositoryUtils.toArtifacts(artifacts, Collections.singleton(root), Collections.emptyList(), null); - for (Iterator it = artifacts.iterator(); it.hasNext(); ) { - Artifact artifact = it.next(); - if (artifact.getFile() == null) { - it.remove(); - } - } - return Collections.unmodifiableList(artifacts); - } - private Map calcImports(MavenProject project, ClassLoader parent, List imports) { Map foreignImports = new HashMap<>(); @@ -841,9 +827,11 @@ public ExtensionRealmCache.CacheRecord setupExtensionsRealm( private List resolveExtensionArtifacts( Plugin extensionPlugin, List repositories, RepositorySystemSession session) throws PluginResolutionException { - DependencyNode root = pluginDependenciesResolver.resolve(extensionPlugin, null, null, repositories, session); - PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); - root.accept(nlg); - return toMavenArtifacts(root, nlg); + DependencyResult result = + pluginDependenciesResolver.resolveAndFlatten(extensionPlugin, null, null, repositories, session); + return result.getArtifactResults().stream() + .filter(ArtifactResult::isResolved) + .map(r -> RepositoryUtils.toArtifact(r.getArtifact())) + .collect(Collectors.toList()); } } 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 b2284661d68d..1f6528a53cc2 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 @@ -57,6 +57,7 @@ import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.DependencyRequest; import org.eclipse.aether.resolution.DependencyResolutionException; +import org.eclipse.aether.resolution.DependencyResult; import org.eclipse.aether.util.artifact.JavaScopes; import org.eclipse.aether.util.filter.AndDependencyFilter; import org.eclipse.aether.util.filter.ScopeDependencyFilter; @@ -98,6 +99,7 @@ private Artifact toArtifact(Plugin plugin, RepositorySystemSession session) { session.getArtifactTypeRegistry().get("maven-plugin")); } + @Override public Artifact resolve(Plugin plugin, List repositories, RepositorySystemSession session) throws PluginResolutionException { RequestTrace trace = RequestTrace.newChild(null, plugin); @@ -161,9 +163,23 @@ public DependencyNode resolveCoreExtension( List repositories, RepositorySystemSession session) throws PluginResolutionException { + return resolveInternal(plugin, null /* pluginArtifact */, dependencyFilter, repositories, session) + .getRoot(); + } + + /** + * @since 3.10.0 + */ + public DependencyResult resolveCoreExtensionAndFlatten( + Plugin plugin, + DependencyFilter dependencyFilter, + List repositories, + RepositorySystemSession session) + throws PluginResolutionException { return resolveInternal(plugin, null /* pluginArtifact */, dependencyFilter, repositories, session); } + @Override public DependencyNode resolve( Plugin plugin, Artifact pluginArtifact, @@ -171,10 +187,22 @@ public DependencyNode resolve( List repositories, RepositorySystemSession session) throws PluginResolutionException { + return resolveInternal(plugin, pluginArtifact, dependencyFilter, repositories, session) + .getRoot(); + } + + @Override + public DependencyResult resolveAndFlatten( + Plugin plugin, + Artifact pluginArtifact, + DependencyFilter dependencyFilter, + List repositories, + RepositorySystemSession session) + throws PluginResolutionException { return resolveInternal(plugin, pluginArtifact, dependencyFilter, repositories, session); } - private DependencyNode resolveInternal( + private DependencyResult resolveInternal( Plugin plugin, Artifact pluginArtifact, DependencyFilter dependencyFilter, @@ -190,8 +218,6 @@ private DependencyNode resolveInternal( DependencyFilter collectionFilter = new ScopeDependencyFilter("provided", "test"); DependencyFilter resolutionFilter = AndDependencyFilter.newInstance(collectionFilter, dependencyFilter); - DependencyNode node; - try { DependencySelector selector = AndDependencySelector.newInstance(session.getDependencySelector(), new WagonExcluder()); @@ -221,14 +247,16 @@ private DependencyNode resolveInternal( request.setTrace(RequestTrace.newChild(trace, depRequest)); - node = repoSystem.collectDependencies(pluginSession, request).getRoot(); + DependencyNode node = + repoSystem.collectDependencies(pluginSession, request).getRoot(); if (logger.isDebugEnabled()) { node.accept(new GraphLogger()); } depRequest.setRoot(node); - repoSystem.resolveDependencies(session, depRequest); + return repoSystem.resolveDependencies(session, depRequest); + } catch (DependencyCollectionException e) { throw new PluginResolutionException( plugin, e.getResult().getExceptions(), logger.isDebugEnabled() ? e : null); @@ -241,8 +269,6 @@ private DependencyNode resolveInternal( .collect(Collectors.toList()); throw new PluginResolutionException(plugin, exceptions, logger.isDebugEnabled() ? e : null); } - - return node; } // Keep this class in sync with org.apache.maven.project.DefaultProjectDependenciesResolver.GraphLogger diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java index 0f865df277d8..922fbdac5996 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java @@ -27,6 +27,7 @@ import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.resolution.DependencyResult; /** * Assists in resolving the dependencies of a plugin. Warning: This is an internal utility interface @@ -61,7 +62,9 @@ Artifact resolve(Plugin plugin, List repositories, RepositoryS * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. * @return The dependency tree denoting the resolved plugin class path, never {@code null}. * @throws PluginResolutionException If any dependency could not be resolved. + * @deprecated This method should be avoided, as it needs manual flattening, instead to let Resolver do it. Use {@link #resolveAndFlatten(Plugin, Artifact, DependencyFilter, List, RepositorySystemSession)} instead. */ + @Deprecated DependencyNode resolve( Plugin plugin, Artifact pluginArtifact, @@ -69,4 +72,24 @@ DependencyNode resolve( List repositories, RepositorySystemSession session) throws PluginResolutionException; + + /** + * Resolves the runtime dependencies of the specified plugin. + * + * @param plugin The plugin for which to resolve the dependencies, must not be {@code null}. + * @param pluginArtifact The plugin's main artifact, may be {@code null}. + * @param dependencyFilter A filter to exclude artifacts from resolution (but not collection), may be {@code null}. + * @param repositories The plugin repositories to use for resolving the plugin artifacts, must not be {@code null}. + * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. + * @return The dependency tree denoting the resolved plugin class path, never {@code null}. + * @throws PluginResolutionException If any dependency could not be resolved. + * @since 3.10.0 + */ + DependencyResult resolveAndFlatten( + Plugin plugin, + Artifact pluginArtifact, + DependencyFilter dependencyFilter, + List repositories, + RepositorySystemSession session) + throws PluginResolutionException; } diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java index c11e6ce89378..c2866d995028 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; import org.apache.maven.cli.internal.extension.model.CoreExtension; @@ -48,10 +49,10 @@ import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.graph.DependencyFilter; -import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.resolution.ArtifactResult; +import org.eclipse.aether.resolution.DependencyResult; import org.eclipse.aether.util.filter.ExclusionsDependencyFilter; -import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator; /** * BootstrapCoreExtensionManager @@ -174,13 +175,12 @@ private List resolveExtension( plugin.setArtifactId(interpolator.interpolate(extension.getArtifactId())); plugin.setVersion(interpolator.interpolate(extension.getVersion())); - DependencyNode root = pluginDependenciesResolver.resolveCoreExtension( + DependencyResult result = pluginDependenciesResolver.resolveCoreExtensionAndFlatten( plugin, dependencyFilter, repositories, repoSession); - PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); - root.accept(nlg); - List artifacts = nlg.getArtifacts(false); - - return artifacts; + return result.getArtifactResults().stream() + .filter(ArtifactResult::isResolved) + .map(ArtifactResult::getArtifact) + .collect(Collectors.toList()); } catch (PluginResolutionException | InterpolationException e) { throw new ExtensionResolutionException(extension, e); } From 4ba5bdab987c8092e0cd35bd91edd41ddc453980 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 11:47:02 +0200 Subject: [PATCH 2/6] Get rid of some more deprecations, fix Javadoc --- .../maven/plugin/internal/PluginDependenciesResolver.java | 2 +- .../maven/cli/transfer/AbstractMavenTransferListener.java | 2 +- .../apache/maven/cli/transfer/Slf4jMavenTransferListener.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java index 922fbdac5996..baada617d9af 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java @@ -81,7 +81,7 @@ DependencyNode resolve( * @param dependencyFilter A filter to exclude artifacts from resolution (but not collection), may be {@code null}. * @param repositories The plugin repositories to use for resolving the plugin artifacts, must not be {@code null}. * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. - * @return The dependency tree denoting the resolved plugin class path, never {@code null}. + * @return The dependency resolution result having the resolved plugin class path but also the tree, never {@code null}. * @throws PluginResolutionException If any dependency could not be resolved. * @since 3.10.0 */ diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java index a283adff0524..ffb3203bad06 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java @@ -236,7 +236,7 @@ public void transferSucceeded(TransferEvent event) { message.append(darkOff).append(resource.getResourceName()); message.append(darkOn).append(" (").append(format.format(contentLength)); - long duration = System.currentTimeMillis() - resource.getTransferStartTime(); + long duration = System.currentTimeMillis() - resource.getStartTime().toEpochMilli(); if (duration > 0L) { double bytesPerSecond = contentLength / (duration / 1000.0); message.append(" at ").append(format.format((long) bytesPerSecond)).append("/s"); diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java index c5c8f096459e..914725738f5d 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java @@ -84,7 +84,7 @@ public void transferSucceeded(TransferEvent event) { message.append(resource.getRepositoryUrl()).append(resource.getResourceName()); message.append(" (").append(format.format(contentLength)); - long duration = System.currentTimeMillis() - resource.getTransferStartTime(); + long duration = System.currentTimeMillis() - resource.getStartTime().toEpochMilli(); if (duration > 0L) { double bytesPerSecond = contentLength / (duration / 1000.0); message.append(" at ").append(format.format((long) bytesPerSecond)).append("/s"); From aa137cfe26fc58c11da9174501d95af9a149245d Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 12:39:18 +0200 Subject: [PATCH 3/6] Undo unrelated changes --- .../maven/cli/transfer/AbstractMavenTransferListener.java | 2 +- .../apache/maven/cli/transfer/Slf4jMavenTransferListener.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java index ffb3203bad06..a283adff0524 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java @@ -236,7 +236,7 @@ public void transferSucceeded(TransferEvent event) { message.append(darkOff).append(resource.getResourceName()); message.append(darkOn).append(" (").append(format.format(contentLength)); - long duration = System.currentTimeMillis() - resource.getStartTime().toEpochMilli(); + long duration = System.currentTimeMillis() - resource.getTransferStartTime(); if (duration > 0L) { double bytesPerSecond = contentLength / (duration / 1000.0); message.append(" at ").append(format.format((long) bytesPerSecond)).append("/s"); diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java index 914725738f5d..c5c8f096459e 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java @@ -84,7 +84,7 @@ public void transferSucceeded(TransferEvent event) { message.append(resource.getRepositoryUrl()).append(resource.getResourceName()); message.append(" (").append(format.format(contentLength)); - long duration = System.currentTimeMillis() - resource.getStartTime().toEpochMilli(); + long duration = System.currentTimeMillis() - resource.getTransferStartTime(); if (duration > 0L) { double bytesPerSecond = contentLength / (duration / 1000.0); message.append(" at ").append(format.format((long) bytesPerSecond)).append("/s"); From aaa96fac2347add23770f6ff2b4a3878c14caf67 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 12:39:57 +0200 Subject: [PATCH 4/6] Update maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java Co-authored-by: Guillaume Nodet --- .../maven/plugin/internal/PluginDependenciesResolver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java index baada617d9af..49595954d139 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java @@ -62,7 +62,7 @@ Artifact resolve(Plugin plugin, List repositories, RepositoryS * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. * @return The dependency tree denoting the resolved plugin class path, never {@code null}. * @throws PluginResolutionException If any dependency could not be resolved. - * @deprecated This method should be avoided, as it needs manual flattening, instead to let Resolver do it. Use {@link #resolveAndFlatten(Plugin, Artifact, DependencyFilter, List, RepositorySystemSession)} instead. + * @deprecated This method should be avoided, as it requires manual flattening; use {@link #resolveAndFlatten(Plugin, Artifact, DependencyFilter, List, RepositorySystemSession)} instead to let Resolver handle it. */ @Deprecated DependencyNode resolve( From e893793d5f9a4b7f88103d690d59b980d768f8d7 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 12:51:18 +0200 Subject: [PATCH 5/6] Lift and add all to iface No more type spec injection of def impl, go for iface. --- .../DefaultPluginDependenciesResolver.java | 3 +++ .../internal/PluginDependenciesResolver.java | 18 ++++++++++++++++++ .../BootstrapCoreExtensionManager.java | 6 +++--- 3 files changed, 24 insertions(+), 3 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 1f6528a53cc2..5ce82ea0e948 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 @@ -156,7 +156,9 @@ public Artifact resolve(Plugin plugin, List repositories, Repo /** * @since 3.3.0 + * @deprecated Is unused since 3.10.0 */ + @Deprecated public DependencyNode resolveCoreExtension( Plugin plugin, DependencyFilter dependencyFilter, @@ -170,6 +172,7 @@ public DependencyNode resolveCoreExtension( /** * @since 3.10.0 */ + @Override public DependencyResult resolveCoreExtensionAndFlatten( Plugin plugin, DependencyFilter dependencyFilter, diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java index 49595954d139..f735750b1ca9 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java @@ -73,6 +73,24 @@ DependencyNode resolve( RepositorySystemSession session) throws PluginResolutionException; + /** + * Resolves the runtime dependencies of the specified core extension. + * + * @param plugin The plugin for which to resolve the dependencies, must not be {@code null}. + * @param dependencyFilter A filter to exclude artifacts from resolution (but not collection), may be {@code null}. + * @param repositories The plugin repositories to use for resolving the plugin artifacts, must not be {@code null}. + * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. + * @return The dependency resolution result having the resolved extension class path but also the tree, never {@code null}. + * @throws PluginResolutionException If any dependency could not be resolved. + * @since 3.10.0 + */ + DependencyResult resolveCoreExtensionAndFlatten( + Plugin plugin, + DependencyFilter dependencyFilter, + List repositories, + RepositorySystemSession session) + throws PluginResolutionException; + /** * Resolves the runtime dependencies of the specified plugin. * diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java index c2866d995028..53e20302d83e 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java @@ -36,7 +36,7 @@ import org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.PluginResolutionException; -import org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver; +import org.apache.maven.plugin.internal.PluginDependenciesResolver; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.classworlds.ClassWorld; @@ -65,7 +65,7 @@ public class BootstrapCoreExtensionManager { private final Logger log; - private final DefaultPluginDependenciesResolver pluginDependenciesResolver; + private final PluginDependenciesResolver pluginDependenciesResolver; private final DefaultRepositorySystemSessionFactory repositorySystemSessionFactory; @@ -78,7 +78,7 @@ public class BootstrapCoreExtensionManager { @Inject public BootstrapCoreExtensionManager( Logger log, - DefaultPluginDependenciesResolver pluginDependenciesResolver, + PluginDependenciesResolver pluginDependenciesResolver, DefaultRepositorySystemSessionFactory repositorySystemSessionFactory, CoreExports coreExports, PlexusContainer container) { From d25d8c63eba7e01cde27a796b7658743f590603e Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 19 Jun 2026 13:03:42 +0200 Subject: [PATCH 6/6] Tidy up --- .../maven/plugin/internal/DefaultMavenPluginManager.java | 4 ++-- .../plugin/internal/DefaultPluginDependenciesResolver.java | 2 +- .../maven/plugin/internal/PluginDependenciesResolver.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java index 9bd3e2b02e3a..44aac424592e 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java @@ -387,7 +387,7 @@ private void createPluginRealm( DependencyFilter dependencyFilter = project.getExtensionDependencyFilter(); dependencyFilter = AndDependencyFilter.newInstance(dependencyFilter, filter); - DependencyResult result = pluginDependenciesResolver.resolveAndFlatten( + DependencyResult result = pluginDependenciesResolver.resolvePluginAndFlatten( plugin, RepositoryUtils.toArtifact(pluginArtifact), dependencyFilter, @@ -828,7 +828,7 @@ private List resolveExtensionArtifacts( Plugin extensionPlugin, List repositories, RepositorySystemSession session) throws PluginResolutionException { DependencyResult result = - pluginDependenciesResolver.resolveAndFlatten(extensionPlugin, null, null, repositories, session); + pluginDependenciesResolver.resolvePluginAndFlatten(extensionPlugin, null, null, repositories, session); return result.getArtifactResults().stream() .filter(ArtifactResult::isResolved) .map(r -> RepositoryUtils.toArtifact(r.getArtifact())) 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 5ce82ea0e948..ca7c1fcf08c2 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 @@ -195,7 +195,7 @@ public DependencyNode resolve( } @Override - public DependencyResult resolveAndFlatten( + public DependencyResult resolvePluginAndFlatten( Plugin plugin, Artifact pluginArtifact, DependencyFilter dependencyFilter, diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java index f735750b1ca9..957365a29348 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java @@ -62,7 +62,7 @@ Artifact resolve(Plugin plugin, List repositories, RepositoryS * @param session The repository session to use for resolving the plugin artifacts, must not be {@code null}. * @return The dependency tree denoting the resolved plugin class path, never {@code null}. * @throws PluginResolutionException If any dependency could not be resolved. - * @deprecated This method should be avoided, as it requires manual flattening; use {@link #resolveAndFlatten(Plugin, Artifact, DependencyFilter, List, RepositorySystemSession)} instead to let Resolver handle it. + * @deprecated This method should be avoided, as it requires manual flattening; use {@link #resolvePluginAndFlatten(Plugin, Artifact, DependencyFilter, List, RepositorySystemSession)} instead to let Resolver handle it. */ @Deprecated DependencyNode resolve( @@ -74,7 +74,7 @@ DependencyNode resolve( throws PluginResolutionException; /** - * Resolves the runtime dependencies of the specified core extension. + * Resolves the runtime dependencies of the specified core extension (as {@link Plugin} as GAV carrier). * * @param plugin The plugin for which to resolve the dependencies, must not be {@code null}. * @param dependencyFilter A filter to exclude artifacts from resolution (but not collection), may be {@code null}. @@ -103,7 +103,7 @@ DependencyResult resolveCoreExtensionAndFlatten( * @throws PluginResolutionException If any dependency could not be resolved. * @since 3.10.0 */ - DependencyResult resolveAndFlatten( + DependencyResult resolvePluginAndFlatten( Plugin plugin, Artifact pluginArtifact, DependencyFilter dependencyFilter,