From 48f9d8917920d61e789f803ef6de8e082f5fe306 Mon Sep 17 00:00:00 2001 From: Slawomir Jaranowski Date: Thu, 25 Sep 2025 20:24:53 +0200 Subject: [PATCH] Use Resolver API in go-offline for plugins resolving - use the same method for generating plugin list as in resolve-plugin - move parameter where is used - move some method where is used - cleanups --- .../dependency/AbstractDependencyMojo.java | 39 ---- .../resolvers/AbstractResolveMojo.java | 48 ----- .../dependency/resolvers/GoOfflineMojo.java | 173 +++++++++++++----- .../resolvers/ResolvePluginsMojo.java | 56 +----- .../dependency/utils/ResolverUtil.java | 61 ++++++ .../AbstractDependencyMojoTest.java | 71 ------- 6 files changed, 195 insertions(+), 253 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/dependency/AbstractDependencyMojo.java b/src/main/java/org/apache/maven/plugins/dependency/AbstractDependencyMojo.java index 5045f607c..47296eb74 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/AbstractDependencyMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/AbstractDependencyMojo.java @@ -20,7 +20,6 @@ import java.util.List; -import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; @@ -28,9 +27,7 @@ import org.apache.maven.plugin.logging.SystemStreamLog; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.dependency.utils.DependencySilentLog; -import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.ProjectBuildingRequest; import org.sonatype.plexus.build.incremental.BuildContext; /** @@ -38,18 +35,6 @@ */ public abstract class AbstractDependencyMojo extends AbstractMojo { - /** - * Remote repositories which will be searched for artifacts. - */ - @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true) - private List remoteRepositories; - - /** - * Remote repositories which will be searched for plugins. - */ - @Parameter(defaultValue = "${project.pluginArtifactRepositories}", readonly = true, required = true) - private List remotePluginRepositories; - /** * Contains the full list of projects in the reactor. */ @@ -125,30 +110,6 @@ public final void execute() throws MojoExecutionException, MojoFailureException */ protected abstract void doExecute() throws MojoExecutionException, MojoFailureException; - /** - * @return returns a new ProjectBuildingRequest populated from the current session and the current project remote - * repositories, used to resolve artifacts - */ - public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest() { - return newProjectBuildingRequest(remoteRepositories); - } - - /** - * @return returns a new ProjectBuildingRequest populated from the current session and the current project remote - * repositories, used to resolve plugins - */ - protected ProjectBuildingRequest newResolvePluginProjectBuildingRequest() { - return newProjectBuildingRequest(remotePluginRepositories); - } - - private ProjectBuildingRequest newProjectBuildingRequest(List repositories) { - ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); - - buildingRequest.setRemoteRepositories(repositories); - - return buildingRequest; - } - /** * @return returns the project */ diff --git a/src/main/java/org/apache/maven/plugins/dependency/resolvers/AbstractResolveMojo.java b/src/main/java/org/apache/maven/plugins/dependency/resolvers/AbstractResolveMojo.java index 6abcb140e..222af532e 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/resolvers/AbstractResolveMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/resolvers/AbstractResolveMojo.java @@ -24,16 +24,9 @@ import org.apache.maven.execution.MavenSession; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo; -import org.apache.maven.plugins.dependency.utils.DependencyUtil; import org.apache.maven.plugins.dependency.utils.ResolverUtil; import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilder; -import org.apache.maven.shared.artifact.filter.collection.ArtifactIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ClassifierFilter; -import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts; -import org.apache.maven.shared.artifact.filter.collection.GroupIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; -import org.apache.maven.shared.artifact.filter.collection.TypeFilter; import org.sonatype.plexus.build.incremental.BuildContext; /** @@ -58,14 +51,6 @@ public abstract class AbstractResolveMojo extends AbstractDependencyFilterMojo { @Parameter(property = "appendOutput", defaultValue = "false") protected boolean appendOutput; - /** - * Don't resolve plugins that are in the current reactor. - * - * @since 2.7 - */ - @Parameter(property = "excludeReactor", defaultValue = "true") - protected boolean excludeReactor; - protected AbstractResolveMojo( MavenSession session, BuildContext buildContext, @@ -75,37 +60,4 @@ protected AbstractResolveMojo( ArtifactHandlerManager artifactHandlerManager) { super(session, buildContext, project, resolverUtil, projectBuilder, artifactHandlerManager); } - - /** - * @return {@link FilterArtifacts} - */ - protected FilterArtifacts getArtifactsFilter() { - final FilterArtifacts filter = new FilterArtifacts(); - - if (excludeReactor) { - filter.addFilter(new ExcludeReactorProjectsArtifactFilter(reactorProjects, getLog())); - } - - filter.addFilter(new ScopeFilter( - DependencyUtil.cleanToBeTokenizedString(this.includeScope), - DependencyUtil.cleanToBeTokenizedString(this.excludeScope))); - - filter.addFilter(new TypeFilter( - DependencyUtil.cleanToBeTokenizedString(this.includeTypes), - DependencyUtil.cleanToBeTokenizedString(this.excludeTypes))); - - filter.addFilter(new ClassifierFilter( - DependencyUtil.cleanToBeTokenizedString(this.includeClassifiers), - DependencyUtil.cleanToBeTokenizedString(this.excludeClassifiers))); - - filter.addFilter(new GroupIdFilter( - DependencyUtil.cleanToBeTokenizedString(this.includeGroupIds), - DependencyUtil.cleanToBeTokenizedString(this.excludeGroupIds))); - - filter.addFilter(new ArtifactIdFilter( - DependencyUtil.cleanToBeTokenizedString(this.includeArtifactIds), - DependencyUtil.cleanToBeTokenizedString(this.excludeArtifactIds))); - - return filter; - } } diff --git a/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java b/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java index d6adeefb5..9f8c4ea84 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java @@ -20,12 +20,15 @@ import javax.inject.Inject; +import java.util.Arrays; import java.util.Collection; import java.util.HashSet; -import java.util.LinkedHashSet; +import java.util.List; import java.util.Set; +import java.util.function.Predicate; import java.util.stream.Collectors; +import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.handler.DefaultArtifactHandler; @@ -33,22 +36,33 @@ import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Dependency; +import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo; import org.apache.maven.plugins.dependency.utils.DependencyUtil; import org.apache.maven.plugins.dependency.utils.ResolverUtil; +import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException; +import org.apache.maven.shared.artifact.filter.collection.ArtifactIdFilter; import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter; +import org.apache.maven.shared.artifact.filter.collection.ClassifierFilter; import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts; +import org.apache.maven.shared.artifact.filter.collection.GroupIdFilter; +import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; +import org.apache.maven.shared.artifact.filter.collection.TypeFilter; import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter; import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult; import org.apache.maven.shared.transfer.dependencies.DefaultDependableCoordinate; import org.apache.maven.shared.transfer.dependencies.DependableCoordinate; import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver; import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException; +import org.eclipse.aether.resolution.ArtifactResolutionException; +import org.eclipse.aether.resolution.DependencyResolutionException; import org.sonatype.plexus.build.incremental.BuildContext; /** @@ -60,7 +74,21 @@ * @since 2.0 */ @Mojo(name = "go-offline", threadSafe = true) -public class GoOfflineMojo extends AbstractResolveMojo { +public class GoOfflineMojo extends AbstractDependencyFilterMojo { + + /** + * Remote repositories which will be searched for artifacts. + */ + @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true) + private List remoteRepositories; + + /** + * Don't resolve plugins and artifacts that are in the current reactor. + * + * @since 2.7 + */ + @Parameter(property = "excludeReactor", defaultValue = "true") + protected boolean excludeReactor; private final DependencyResolver dependencyResolver; @@ -89,25 +117,47 @@ public GoOfflineMojo( protected void doExecute() throws MojoExecutionException { try { - final Set plugins = resolvePluginArtifacts(); + final Set plugins = getProjectPlugins(); + + for (Plugin plugin : plugins) { + org.eclipse.aether.artifact.Artifact artifact = + getResolverUtil().resolvePlugin(plugin); + + logMessage("Resolved plugin: " + + DependencyUtil.getFormattedFileName(RepositoryUtils.toArtifact(artifact), false)); + if (!excludeTransitive) { + logMessage("Resolved plugin dependency:"); + List artifacts = + getResolverUtil().resolveDependencies(plugin); + for (org.eclipse.aether.artifact.Artifact a : artifacts) { + logMessage( + " " + DependencyUtil.getFormattedFileName(RepositoryUtils.toArtifact(a), false)); + } + } + } final Set dependencies = resolveDependencyArtifacts(); - if (!isSilent()) { - for (Artifact artifact : plugins) { - this.getLog().info("Resolved plugin: " + DependencyUtil.getFormattedFileName(artifact, false)); - } - - for (Artifact artifact : dependencies) { - this.getLog().info("Resolved dependency: " + DependencyUtil.getFormattedFileName(artifact, false)); - } + for (Artifact artifact : dependencies) { + logMessage("Resolved dependency: " + DependencyUtil.getFormattedFileName(artifact, false)); } - } catch (DependencyResolverException | ArtifactFilterException e) { + } catch (DependencyResolverException + | ArtifactFilterException + | ArtifactResolutionException + | DependencyResolutionException e) { throw new MojoExecutionException(e.getMessage(), e); } } + private void logMessage(String message) { + if (isSilent()) { + getLog().debug(message); + } else { + getLog().info(message); + } + } + /** * This method resolves the dependency artifacts from the project. * @@ -164,31 +214,30 @@ private TransformableFilter getTransformableFilter() { } /** - * This method resolves the plugin artifacts from the project. + * This method retrieve plugins list from the project. * - * @return set of resolved plugin artifacts - * @throws ArtifactFilterException - * @throws DependencyResolverException in case of an error while resolving the artifacts + * @return set of plugin used in project */ - protected Set resolvePluginArtifacts() throws DependencyResolverException, ArtifactFilterException { - - Set plugins = getProject().getPluginArtifacts(); - Set reports = getProject().getReportArtifacts(); - - Set artifacts = new LinkedHashSet<>(); - artifacts.addAll(reports); - artifacts.addAll(plugins); - - final FilterArtifacts filter = getArtifactsFilter(); - artifacts = filter.filter(artifacts); + private Set getProjectPlugins() { + Predicate pluginsFilter = new PluginsIncludeExcludeFilter( + toList(includeGroupIds), + toList(excludeGroupIds), + toList(includeArtifactIds), + toList(excludeArtifactIds)); + + Predicate reactorExclusionFilter = plugin -> true; + if (excludeReactor) { + reactorExclusionFilter = new PluginsReactorExcludeFilter(session.getProjects()); + } - Set dependableCoordinates = artifacts.stream() - .map(this::createDependendableCoordinateFromArtifact) + return getResolverUtil().getProjectPlugins(getProject()).stream() + .filter(reactorExclusionFilter) + .filter(pluginsFilter) .collect(Collectors.toSet()); + } - ProjectBuildingRequest buildingRequest = newResolvePluginProjectBuildingRequest(); - - return resolveDependableCoordinate(buildingRequest, dependableCoordinates, "plugins"); + private List toList(String list) { + return Arrays.asList(DependencyUtil.cleanToBeTokenizedString(list).split(",")); } private Collection filterDependencies(Collection deps) throws ArtifactFilterException { @@ -201,17 +250,6 @@ private Collection filterDependencies(Collection deps) t return createDependencySetFromArtifacts(artifacts); } - private DependableCoordinate createDependendableCoordinateFromArtifact(final Artifact artifact) { - final DefaultDependableCoordinate result = new DefaultDependableCoordinate(); - result.setGroupId(artifact.getGroupId()); - result.setArtifactId(artifact.getArtifactId()); - result.setVersion(artifact.getVersion()); - result.setType(artifact.getType()); - result.setClassifier(artifact.getClassifier()); - - return result; - } - private DependableCoordinate createDependendableCoordinateFromDependency(final Dependency dependency) { final DefaultDependableCoordinate result = new DefaultDependableCoordinate(); result.setGroupId(dependency.getGroupId()); @@ -256,6 +294,55 @@ private Collection createDependencySetFromArtifacts(Set ar return dependencies; } + /** + * @return {@link FilterArtifacts} + */ + protected FilterArtifacts getArtifactsFilter() { + final FilterArtifacts filter = new FilterArtifacts(); + + if (excludeReactor) { + filter.addFilter(new ExcludeReactorProjectsArtifactFilter(reactorProjects, getLog())); + } + + filter.addFilter(new ScopeFilter( + DependencyUtil.cleanToBeTokenizedString(this.includeScope), + DependencyUtil.cleanToBeTokenizedString(this.excludeScope))); + + filter.addFilter(new TypeFilter( + DependencyUtil.cleanToBeTokenizedString(this.includeTypes), + DependencyUtil.cleanToBeTokenizedString(this.excludeTypes))); + + filter.addFilter(new ClassifierFilter( + DependencyUtil.cleanToBeTokenizedString(this.includeClassifiers), + DependencyUtil.cleanToBeTokenizedString(this.excludeClassifiers))); + + filter.addFilter(new GroupIdFilter( + DependencyUtil.cleanToBeTokenizedString(this.includeGroupIds), + DependencyUtil.cleanToBeTokenizedString(this.excludeGroupIds))); + + filter.addFilter(new ArtifactIdFilter( + DependencyUtil.cleanToBeTokenizedString(this.includeArtifactIds), + DependencyUtil.cleanToBeTokenizedString(this.excludeArtifactIds))); + + return filter; + } + + /** + * @return returns a new ProjectBuildingRequest populated from the current session and the current project remote + * repositories, used to resolve artifacts + */ + public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest() { + return newProjectBuildingRequest(remoteRepositories); + } + + private ProjectBuildingRequest newProjectBuildingRequest(List repositories) { + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); + + buildingRequest.setRemoteRepositories(repositories); + + return buildingRequest; + } + @Override protected ArtifactsFilter getMarkedArtifactFilter() { return null; diff --git a/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java b/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java index 116fef919..2840ae615 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java @@ -22,8 +22,6 @@ import java.io.File; import java.io.IOException; -import java.util.Collections; -import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -32,11 +30,7 @@ import java.util.stream.Collectors; import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.ModelBase; import org.apache.maven.model.Plugin; -import org.apache.maven.model.PluginContainer; -import org.apache.maven.model.ReportPlugin; -import org.apache.maven.model.Reporting; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; @@ -235,51 +229,9 @@ private Set getProjectPlugins() { reactorExclusionFilter = new PluginsReactorExcludeFilter(session.getProjects()); } - List reportPlugins = Optional.ofNullable(getProject().getModel()) - .map(ModelBase::getReporting) - .map(Reporting::getPlugins) - .orElse(Collections.emptyList()) - .stream() - .map(this::toPlugin) - .collect(Collectors.toList()); - - List projectPlugins = getProject().getBuild().getPlugins(); - - return new LinkedHashSet(reportPlugins.size() + projectPlugins.size()) { - { - addAll(reportPlugins); - addAll(projectPlugins); - } - }.stream().filter(reactorExclusionFilter).filter(pluginsFilter).collect(Collectors.toSet()); - } - - private Plugin toPlugin(ReportPlugin reportPlugin) { - // first look in the pluginManagement section - Plugin plugin = Optional.ofNullable(getProject().getBuild().getPluginManagement()) - .map(PluginContainer::getPluginsAsMap) - .orElseGet(Collections::emptyMap) - .get(reportPlugin.getKey()); - - if (plugin == null) { - plugin = getProject().getBuild().getPluginsAsMap().get(reportPlugin.getKey()); - } - - if (plugin == null) { - plugin = new Plugin(); - plugin.setGroupId(reportPlugin.getGroupId()); - plugin.setArtifactId(reportPlugin.getArtifactId()); - plugin.setVersion(reportPlugin.getVersion()); - } else { - // override the version with the one from the report plugin if specified - if (reportPlugin.getVersion() != null) { - plugin.setVersion(reportPlugin.getVersion()); - } - } - - if (plugin.getVersion() == null) { - plugin.setVersion("RELEASE"); - } - - return plugin; + return resolverUtil.getProjectPlugins(getProject()).stream() + .filter(reactorExclusionFilter) + .filter(pluginsFilter) + .collect(Collectors.toSet()); } } diff --git a/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java b/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java index ad5b356d3..43fc7e5a2 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java +++ b/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java @@ -25,13 +25,21 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.ModelBase; import org.apache.maven.model.Plugin; +import org.apache.maven.model.PluginContainer; +import org.apache.maven.model.ReportPlugin; +import org.apache.maven.model.Reporting; +import org.apache.maven.project.MavenProject; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.artifact.Artifact; @@ -298,4 +306,57 @@ private ArtifactType getArtifactType(String packaging) { mavenSessionProvider.get().getRepositorySession().getArtifactTypeRegistry(); return artifactTypeRegistry.get(packaging != null ? packaging : "jar"); } + + /** + * Retrieve all plugins used in project either in build or reporting section. + * + * @param project a maven project + * @return a collection of plugins + */ + public Collection getProjectPlugins(MavenProject project) { + List reportPlugins = Optional.ofNullable(project.getModel()) + .map(ModelBase::getReporting) + .map(Reporting::getPlugins) + .orElse(Collections.emptyList()) + .stream() + .map(p -> toPlugin(p, project)) + .collect(Collectors.toList()); + + List projectPlugins = project.getBuild().getPlugins(); + + LinkedHashSet result = new LinkedHashSet<>(reportPlugins.size() + projectPlugins.size()); + result.addAll(reportPlugins); + result.addAll(projectPlugins); + return result; + } + + private Plugin toPlugin(ReportPlugin reportPlugin, MavenProject project) { + // first look in the pluginManagement section + Plugin plugin = Optional.ofNullable(project.getBuild().getPluginManagement()) + .map(PluginContainer::getPluginsAsMap) + .orElseGet(Collections::emptyMap) + .get(reportPlugin.getKey()); + + if (plugin == null) { + plugin = project.getBuild().getPluginsAsMap().get(reportPlugin.getKey()); + } + + if (plugin == null) { + plugin = new Plugin(); + plugin.setGroupId(reportPlugin.getGroupId()); + plugin.setArtifactId(reportPlugin.getArtifactId()); + plugin.setVersion(reportPlugin.getVersion()); + } else { + // override the version with the one from the report plugin if specified + if (reportPlugin.getVersion() != null) { + plugin.setVersion(reportPlugin.getVersion()); + } + } + + if (plugin.getVersion() == null) { + plugin.setVersion("RELEASE"); + } + + return plugin; + } } diff --git a/src/test/java/org/apache/maven/plugins/dependency/AbstractDependencyMojoTest.java b/src/test/java/org/apache/maven/plugins/dependency/AbstractDependencyMojoTest.java index bb8f728da..6d45e86e1 100644 --- a/src/test/java/org/apache/maven/plugins/dependency/AbstractDependencyMojoTest.java +++ b/src/test/java/org/apache/maven/plugins/dependency/AbstractDependencyMojoTest.java @@ -18,9 +18,7 @@ */ package org.apache.maven.plugins.dependency; -import java.lang.reflect.Field; import java.util.ArrayList; -import java.util.List; import junit.framework.TestCase; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -29,8 +27,6 @@ import org.apache.maven.project.ProjectBuildingRequest; import org.sonatype.plexus.build.incremental.BuildContext; -import static org.apache.maven.plugins.dependency.AbstractDependencyMojoTest.ConcreteDependencyMojo.createConcreteDependencyMojoWithArtifactRepositories; -import static org.apache.maven.plugins.dependency.AbstractDependencyMojoTest.ConcreteDependencyMojo.createConcreteDependencyMojoWithPluginRepositories; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -49,30 +45,6 @@ protected ConcreteDependencyMojo(MavenSession session, BuildContext buildContext super(session, buildContext, project); } - static ConcreteDependencyMojo createConcreteDependencyMojoWithArtifactRepositories( - MavenSession mavenSession, List artifactRepos) - throws NoSuchFieldException, IllegalAccessException { - ConcreteDependencyMojo cdm = new ConcreteDependencyMojo(mavenSession, null, null); - - Field par = AbstractDependencyMojo.class.getDeclaredField("remoteRepositories"); - par.setAccessible(true); - par.set(cdm, artifactRepos); - - return cdm; - } - - static ConcreteDependencyMojo createConcreteDependencyMojoWithPluginRepositories( - MavenSession session, List pluginRepos) - throws NoSuchFieldException, IllegalAccessException { - ConcreteDependencyMojo cdm = new ConcreteDependencyMojo(session, null, null); - - Field par = AbstractDependencyMojo.class.getDeclaredField("remotePluginRepositories"); - par.setAccessible(true); - par.set(cdm, pluginRepos); - - return cdm; - } - @Override protected void doExecute() {} } @@ -95,47 +67,4 @@ private static ArtifactRepository newRepositoryWithId(String id) { when(repo.getId()).thenReturn(id); return repo; } - - public void testNewResolveArtifactProjectBuildingRequestRemoteRepositoriesSize() - throws NoSuchFieldException, IllegalAccessException { - AbstractDependencyMojo mojo = createConcreteDependencyMojoWithArtifactRepositories(session, artifactRepos); - - ProjectBuildingRequest pbr = mojo.newResolveArtifactProjectBuildingRequest(); - List rrepos = pbr.getRemoteRepositories(); - - assertEquals(3, rrepos.size()); - } - - public void testNewResolveArtifactProjectBuildingRequestRemoteRepositoriesContents() - throws NoSuchFieldException, IllegalAccessException { - AbstractDependencyMojo mojo = createConcreteDependencyMojoWithArtifactRepositories(session, artifactRepos); - - ProjectBuildingRequest pbr = mojo.newResolveArtifactProjectBuildingRequest(); - List rrepos = pbr.getRemoteRepositories(); - - assertEquals("ar-central", rrepos.get(0).getId()); - assertEquals("ar-snapshots", rrepos.get(1).getId()); - assertEquals("ar-staging", rrepos.get(2).getId()); - } - - public void testNewResolvePluginProjectBuildingRequestRemoteRepositoriesSize() - throws NoSuchFieldException, IllegalAccessException { - AbstractDependencyMojo mojo = createConcreteDependencyMojoWithPluginRepositories(session, pluginRepos); - - ProjectBuildingRequest pbr = mojo.newResolvePluginProjectBuildingRequest(); - List rrepos = pbr.getRemoteRepositories(); - - assertEquals(2, rrepos.size()); - } - - public void testNewResolvePluginProjectBuildingRequestRemoteRepositoriesContents() - throws NoSuchFieldException, IllegalAccessException { - AbstractDependencyMojo mojo = createConcreteDependencyMojoWithPluginRepositories(session, pluginRepos); - - ProjectBuildingRequest pbr = mojo.newResolvePluginProjectBuildingRequest(); - List rrepos = pbr.getRemoteRepositories(); - - assertEquals("pr-central", rrepos.get(0).getId()); - assertEquals("pr-plugins", rrepos.get(1).getId()); - } }