diff --git a/maven-surefire-common/pom.xml b/maven-surefire-common/pom.xml
index 82abed6148..c9b10cbc43 100644
--- a/maven-surefire-common/pom.xml
+++ b/maven-surefire-common/pom.xml
@@ -52,6 +52,12 @@
maven-core
provided
+
+ org.eclipse.aether
+ aether-util
+
+ 1.0.0.v20140518
+
org.apache.maven.plugin-tools
maven-plugin-annotations
@@ -160,6 +166,10 @@
+
+ org.eclipse.sisu
+ sisu-maven-plugin
+
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index 2c0365627b..4286b90baf 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -35,6 +35,7 @@
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
import java.util.Properties;
import java.util.Set;
import java.util.SortedSet;
@@ -45,8 +46,6 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
import org.apache.maven.artifact.versioning.ArtifactVersion;
@@ -77,7 +76,6 @@
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
import org.apache.maven.surefire.api.booter.ProviderParameterNames;
import org.apache.maven.surefire.api.booter.Shutdown;
@@ -282,13 +280,6 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
@Parameter(defaultValue = "${project.build.testSourceDirectory}")
private File testSourceDirectory;
- /**
- * ArtifactRepository of the localRepository. To obtain the directory of localRepository in unit tests use
- * System.getProperty("localRepository").
- */
- @Parameter(defaultValue = "${localRepository}", required = true, readonly = true)
- private ArtifactRepository localRepository;
-
/**
* List of System properties to pass to a provider.
*
@@ -635,17 +626,6 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
@Parameter(property = "trimStackTrace", defaultValue = "false")
private boolean trimStackTrace;
- /**
- * The remote plugin repositories declared in the POM.
- *
- * @since 2.2
- */
- @Parameter(defaultValue = "${project.pluginArtifactRepositories}", readonly = true, required = true)
- private List remoteRepositories;
-
- @Parameter(defaultValue = "${project.remoteArtifactRepositories}", required = true, readonly = true)
- private List projectRemoteRepositories;
-
/**
* Flag to disable the generation of report files in xml format.
* Deprecated since 3.0.0-M4.
@@ -771,15 +751,9 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
@Component
private LocationManager locationManager;
- @Component
- private RepositorySystem repositorySystem;
-
@Component
private ProviderDetector providerDetector;
- @Component
- private ResolutionErrorHandler resolutionErrorHandler;
-
private Toolchain toolchain;
private int effectiveForkCount = -1;
@@ -855,6 +829,7 @@ private String getDefaultExcludes() {
return "**/*$*";
}
+ @Component(role = SurefireDependencyResolver.class)
private SurefireDependencyResolver surefireDependencyResolver;
private TestListResolver specificTests;
@@ -905,6 +880,10 @@ void setLogger(Logger logger) {
this.logger = logger;
}
+ void setSurefireDependencyResolver(SurefireDependencyResolver surefireDependencyResolver) {
+ this.surefireDependencyResolver = surefireDependencyResolver;
+ }
+
@Nonnull
protected final PluginConsoleLogger getConsoleLogger() {
if (consoleLogger == null) {
@@ -952,15 +931,6 @@ private Toolchain getToolchain() throws MojoFailureException {
}
private void setupStuff() throws MojoFailureException {
- surefireDependencyResolver = new SurefireDependencyResolver(
- getRepositorySystem(),
- getConsoleLogger(),
- getLocalRepository(),
- getRemoteRepositories(),
- getProjectRemoteRepositories(),
- resolutionErrorHandler,
- getPluginName(),
- getSession().isOffline());
if (getBooterArtifact() == null) {
throw new RuntimeException("Unable to locate surefire-booter in the list of plugin artifacts");
@@ -1125,7 +1095,7 @@ private SurefireProperties setupProperties() {
getSystemProperties(), getSystemPropertyVariables(), getUserProperties(), sysProps);
result.setProperty("basedir", getBasedir().getAbsolutePath());
- result.setProperty("localRepository", getLocalRepository().getBasedir());
+ result.setProperty("localRepository", getLocalRepositoryPath());
if (isForking()) {
for (Object o : result.propertiesThatCannotBeSetASystemProperties()) {
if (getArgLine() == null || !getArgLine().contains("-D" + o + "=")) {
@@ -1269,14 +1239,6 @@ protected void logReportsDirectory() {
logDebugOrCliShowErrors(capitalizeFirstLetter(getPluginName()) + " report directory: " + getReportsDirectory());
}
- public RepositorySystem getRepositorySystem() {
- return repositorySystem;
- }
-
- public void setRepositorySystem(RepositorySystem repositorySystem) {
- this.repositorySystem = repositorySystem;
- }
-
private boolean existsModuleDescriptor(ResolvePathResultWrapper resolvedJavaModularityResult) {
return resolvedJavaModularityResult.getResolvePathResult() != null;
}
@@ -2467,7 +2429,7 @@ private String getConfigChecksum() {
checksum.add(getSkipAfterFailureCount());
checksum.add(getShutdown());
checksum.add(getExcludes());
- checksum.add(getLocalRepository());
+ checksum.add(getLocalRepositoryPath());
checksum.add(getSystemProperties());
checksum.add(getSystemPropertyVariables());
checksum.add(getSystemPropertiesFile());
@@ -2505,8 +2467,6 @@ private String getConfigChecksum() {
checksum.add(getParallel());
checksum.add(isParallelOptimized());
checksum.add(isTrimStackTrace());
- checksum.add(getRemoteRepositories());
- checksum.add(getProjectRemoteRepositories());
checksum.add(isDisableXmlReport());
checksum.add(isUseSystemClassLoader());
checksum.add(isUseManifestOnlyJar());
@@ -2610,13 +2570,9 @@ private Classpath getArtifactClasspath(Artifact surefireArtifact) throws MojoExe
Classpath existing = classpathCache.getCachedClassPath(surefireArtifact.getArtifactId());
if (existing == null) {
List items = new ArrayList<>();
- Set booterArtifacts = surefireDependencyResolver
- .resolvePluginArtifact(surefireArtifact)
- .getArtifacts();
+ Set booterArtifacts = surefireDependencyResolver.resolveArtifacts(
+ session.getRepositorySession(), project.getRemotePluginRepositories(), surefireArtifact);
for (Artifact artifact : booterArtifacts) {
- getConsoleLogger()
- .debug("Adding to " + getPluginName() + " booter test classpath: "
- + artifact.getFile().getAbsolutePath() + " Scope: " + artifact.getScope());
items.add(artifact.getFile().getAbsolutePath());
}
existing = new Classpath(items);
@@ -2797,7 +2753,8 @@ public List getJpmsArguments(@Nonnull ProviderRequirements forkRequire
public Set getProviderClasspath() throws MojoExecutionException {
Artifact surefireArtifact = getBooterArtifact();
String version = surefireArtifact.getBaseVersion();
- return surefireDependencyResolver.getProviderClasspath("surefire-testng", version);
+ return surefireDependencyResolver.getProviderClasspath(
+ session.getRepositorySession(), project.getRemotePluginRepositories(), "surefire-testng", version);
}
}
@@ -2828,7 +2785,8 @@ public Set getProviderClasspath() throws MojoExecutionException {
// add the JUnit provider as default - it doesn't require JUnit to be present,
// since it supports POJO tests.
String version = getBooterArtifact().getBaseVersion();
- return surefireDependencyResolver.getProviderClasspath("surefire-junit3", version);
+ return surefireDependencyResolver.getProviderClasspath(
+ session.getRepositorySession(), project.getRemotePluginRepositories(), "surefire-junit3", version);
}
}
@@ -2866,7 +2824,8 @@ public List getJpmsArguments(@Nonnull ProviderRequirements forkRequire
@Nonnull
public Set getProviderClasspath() throws MojoExecutionException {
String version = getBooterArtifact().getBaseVersion();
- return surefireDependencyResolver.getProviderClasspath("surefire-junit4", version);
+ return surefireDependencyResolver.getProviderClasspath(
+ session.getRepositorySession(), project.getRemotePluginRepositories(), "surefire-junit4", version);
}
}
@@ -2915,13 +2874,19 @@ public List getJpmsArguments(@Nonnull ProviderRequirements forkRequire
@Nonnull
public Set getProviderClasspath() throws MojoExecutionException {
String surefireVersion = getBooterArtifact().getBaseVersion();
- Map providerArtifacts =
- surefireDependencyResolver.getProviderClasspathAsMap("surefire-junit-platform", surefireVersion);
+ Map providerArtifacts = surefireDependencyResolver.getProviderClasspathAsMap(
+ session.getRepositorySession(),
+ project.getRemotePluginRepositories(),
+ "surefire-junit-platform",
+ surefireVersion);
Map testDeps = testClasspath.getTestDependencies();
Plugin plugin = getPluginDescriptor().getPlugin();
- Map pluginDeps =
- surefireDependencyResolver.resolvePluginDependencies(plugin, getPluginArtifactMap());
+ Map pluginDeps = surefireDependencyResolver.resolvePluginDependencies(
+ session.getRepositorySession(),
+ project.getRemotePluginRepositories(),
+ plugin,
+ getPluginArtifactMap());
if (hasDependencyPlatformEngine(pluginDeps)) {
providerArtifacts.putAll(pluginDeps);
@@ -3006,8 +2971,8 @@ private Set resolve(String g, String a, String v, String c, String t)
ArtifactHandler handler = junitPlatformArtifact.getArtifactHandler();
Artifact artifact = new DefaultArtifact(g, a, v, null, t, c, handler);
getConsoleLogger().debug("Resolving artifact " + g + ":" + a + ":" + v);
- Set r =
- surefireDependencyResolver.resolveProjectArtifact(artifact).getArtifacts();
+ Set r = surefireDependencyResolver.resolveArtifacts(
+ session.getRepositorySession(), project.getRemoteProjectRepositories(), artifact);
getConsoleLogger().debug("Resolved artifact " + g + ":" + a + ":" + v + " to " + r);
return r;
}
@@ -3071,7 +3036,8 @@ public List getJpmsArguments(@Nonnull ProviderRequirements forkRequire
@Nonnull
public Set getProviderClasspath() throws MojoExecutionException {
String version = getBooterArtifact().getBaseVersion();
- return surefireDependencyResolver.getProviderClasspath("surefire-junit47", version);
+ return surefireDependencyResolver.getProviderClasspath(
+ session.getRepositorySession(), project.getRemotePluginRepositories(), "surefire-junit47", version);
}
}
@@ -3118,8 +3084,11 @@ public List getJpmsArguments(@Nonnull ProviderRequirements forkRequire
@Nonnull
public Set getProviderClasspath() throws MojoExecutionException {
Plugin plugin = getPluginDescriptor().getPlugin();
- Map providerArtifacts =
- surefireDependencyResolver.resolvePluginDependencies(plugin, getPluginArtifactMap());
+ Map providerArtifacts = surefireDependencyResolver.resolvePluginDependencies(
+ session.getRepositorySession(),
+ project.getRemotePluginRepositories(),
+ plugin,
+ getPluginArtifactMap());
return new LinkedHashSet<>(providerArtifacts.values());
}
}
@@ -3140,13 +3109,11 @@ File createSurefireBootDirectoryInTemp() {
}
@Override
- public ArtifactRepository getLocalRepository() {
- return localRepository;
- }
-
- @Override
- public void setLocalRepository(ArtifactRepository localRepository) {
- this.localRepository = localRepository;
+ public String getLocalRepositoryPath() {
+ return Optional.ofNullable(
+ session.getRepositorySession().getLocalRepository().getBasedir())
+ .map(File::getAbsolutePath)
+ .orElse(".");
}
public Properties getSystemProperties() {
@@ -3383,24 +3350,6 @@ public void setTrimStackTrace(boolean trimStackTrace) {
this.trimStackTrace = trimStackTrace;
}
- public List getProjectRemoteRepositories() {
- return projectRemoteRepositories;
- }
-
- @SuppressWarnings("UnusedDeclaration")
- public void setProjectRemoteRepositories(List projectRemoteRepositories) {
- this.projectRemoteRepositories = projectRemoteRepositories;
- }
-
- public List getRemoteRepositories() {
- return remoteRepositories;
- }
-
- @SuppressWarnings("UnusedDeclaration")
- public void setRemoteRepositories(List remoteRepositories) {
- this.remoteRepositories = remoteRepositories;
- }
-
public boolean isDisableXmlReport() {
return disableXmlReport;
}
@@ -3556,10 +3505,6 @@ public void setTempDir(String tempDir) {
this.tempDir = tempDir;
}
- public void setResolutionErrorHandler(ResolutionErrorHandler resolutionErrorHandler) {
- this.resolutionErrorHandler = resolutionErrorHandler;
- }
-
private static final class ClasspathCache {
private final Map classpaths = new HashMap<>(4);
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireDependencyResolver.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireDependencyResolver.java
index 9af9db2780..b581a88bbf 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireDependencyResolver.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireDependencyResolver.java
@@ -20,6 +20,9 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
import java.util.Collection;
import java.util.Iterator;
@@ -28,14 +31,10 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
@@ -43,13 +42,17 @@
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
-import org.apache.maven.repository.RepositorySystem;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.collection.CollectRequest;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactResult;
+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.DependencyFilterUtils;
-import static java.util.Arrays.asList;
-import static org.apache.maven.artifact.Artifact.SCOPE_COMPILE;
-import static org.apache.maven.artifact.Artifact.SCOPE_COMPILE_PLUS_RUNTIME;
-import static org.apache.maven.artifact.Artifact.SCOPE_RUNTIME;
import static org.apache.maven.artifact.ArtifactUtils.artifactMapByVersionlessId;
import static org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec;
@@ -59,7 +62,10 @@
* @author Stephen Connolly
* @author Kristian Rosenvold
*/
-final class SurefireDependencyResolver {
+@Named
+@Singleton
+class SurefireDependencyResolver {
+
static final String PROVIDER_GROUP_ID = "org.apache.maven.surefire";
private static final String[] PROVIDER_CLASSPATH_ORDER = {
@@ -80,37 +86,9 @@ final class SurefireDependencyResolver {
private final RepositorySystem repositorySystem;
- private final ConsoleLogger log;
-
- private final ArtifactRepository localRepository;
-
- private final List pluginRemoteRepositories;
-
- private final List projectRemoteRepositories;
-
- private final ResolutionErrorHandler resolutionErrorHandler;
-
- private final String pluginName;
-
- private final boolean offline;
-
- SurefireDependencyResolver(
- RepositorySystem repositorySystem,
- ConsoleLogger log,
- ArtifactRepository localRepository,
- List pluginRemoteRepositories,
- List projectRemoteRepositories,
- ResolutionErrorHandler resolutionErrorHandler,
- String pluginName,
- boolean offline) {
+ @Inject
+ SurefireDependencyResolver(RepositorySystem repositorySystem) {
this.repositorySystem = repositorySystem;
- this.log = log;
- this.localRepository = localRepository;
- this.pluginRemoteRepositories = pluginRemoteRepositories;
- this.projectRemoteRepositories = projectRemoteRepositories;
- this.resolutionErrorHandler = resolutionErrorHandler;
- this.pluginName = pluginName;
- this.offline = offline;
}
static boolean isWithinVersionSpec(@Nullable Artifact artifact, @Nonnull String versionSpec) {
@@ -129,15 +107,19 @@ static boolean isWithinVersionSpec(@Nullable Artifact artifact, @Nonnull String
}
}
- Map resolvePluginDependencies(Plugin plugin, Map pluginResolvedDependencies)
+ Map resolvePluginDependencies(
+ RepositorySystemSession session,
+ List repositories,
+ Plugin plugin,
+ Map pluginResolvedDependencies)
throws MojoExecutionException {
Map resolved = new LinkedHashMap<>();
Collection pluginDependencies = plugin.getDependencies();
for (Dependency dependency : pluginDependencies) {
- Artifact dependencyArtifact = repositorySystem.createDependencyArtifact(dependency);
- ArtifactResolutionResult artifactResolutionResult = resolvePluginArtifact(dependencyArtifact);
- for (Artifact artifact : artifactResolutionResult.getArtifacts()) {
+ Set artifacts = resolveDependencies(
+ session, repositories, RepositoryUtils.toDependency(dependency, session.getArtifactTypeRegistry()));
+ for (Artifact artifact : artifacts) {
String key = artifact.getGroupId() + ":" + artifact.getArtifactId();
Artifact resolvedPluginDependency = pluginResolvedDependencies.get(key);
if (resolvedPluginDependency != null) {
@@ -148,69 +130,65 @@ Map resolvePluginDependencies(Plugin plugin, Map resolveArtifacts(
+ RepositorySystemSession session, List repositories, Artifact artifact)
throws MojoExecutionException {
- return resolveArtifact(artifact, pluginRemoteRepositories, filter);
+ return resolveDependencies(session, repositories, RepositoryUtils.toDependency(artifact, null));
}
- private ArtifactResolutionResult resolveProjectArtifact(Artifact artifact, ArtifactFilter filter)
+ private Set resolveDependencies(
+ RepositorySystemSession session,
+ List repositories,
+ org.eclipse.aether.graph.Dependency dependency)
throws MojoExecutionException {
- return resolveArtifact(artifact, projectRemoteRepositories, filter);
- }
-
- private ArtifactResolutionResult resolveArtifact(
- Artifact artifact, List repositories, ArtifactFilter filter)
- throws MojoExecutionException {
- ArtifactResolutionRequest request = new ArtifactResolutionRequest()
- .setOffline(offline)
- .setArtifact(artifact)
- .setLocalRepository(localRepository)
- .setResolveTransitively(true)
- .setCollectionFilter(filter)
- .setRemoteRepositories(repositories);
- ArtifactResolutionResult result = repositorySystem.resolve(request);
try {
- resolutionErrorHandler.throwErrors(request, result);
- } catch (ArtifactResolutionException e) {
+
+ CollectRequest collectRequest = new CollectRequest();
+ collectRequest.setRoot(dependency);
+ collectRequest.setRepositories(repositories);
+
+ DependencyRequest request = new DependencyRequest();
+ request.setCollectRequest(collectRequest);
+ request.setFilter(DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));
+
+ DependencyResult dependencyResult = repositorySystem.resolveDependencies(session, request);
+ return dependencyResult.getArtifactResults().stream()
+ .map(ArtifactResult::getArtifact)
+ .map(RepositoryUtils::toArtifact)
+ .collect(Collectors.toSet());
+
+ } catch (DependencyResolutionException e) {
throw new MojoExecutionException(e.getMessage(), e);
}
-
- return result;
}
@Nonnull
- Set getProviderClasspath(String providerArtifactId, String providerVersion)
+ Set getProviderClasspath(
+ RepositorySystemSession session,
+ List repositories,
+ String providerArtifactId,
+ String providerVersion)
throws MojoExecutionException {
Dependency provider = toProviderDependency(providerArtifactId, providerVersion);
- Artifact providerArtifact = repositorySystem.createDependencyArtifact(provider);
+ org.eclipse.aether.graph.Dependency dependency =
+ RepositoryUtils.toDependency(provider, session.getArtifactTypeRegistry());
- ArtifactResolutionResult result = resolvePluginArtifact(providerArtifact);
+ Set result = resolveDependencies(session, repositories, dependency);
- if (log.isDebugEnabled()) {
- for (Artifact artifact : result.getArtifacts()) {
- String artifactPath = artifact.getFile().getAbsolutePath();
- String scope = artifact.getScope();
- log.debug("Adding to " + pluginName + " test classpath: " + artifactPath + " Scope: " + scope);
- }
- }
-
- return orderProviderArtifacts(result.getArtifacts());
+ return orderProviderArtifacts(result);
}
@Nonnull
- Map getProviderClasspathAsMap(String providerArtifactId, String providerVersion)
+ Map getProviderClasspathAsMap(
+ RepositorySystemSession session,
+ List repositories,
+ String providerArtifactId,
+ String providerVersion)
throws MojoExecutionException {
- return artifactMapByVersionlessId(getProviderClasspath(providerArtifactId, providerVersion));
+ return artifactMapByVersionlessId(
+ getProviderClasspath(session, repositories, providerArtifactId, providerVersion));
}
// FIXME
@@ -240,27 +218,4 @@ private static Dependency toProviderDependency(String providerArtifactId, String
dependency.setType("jar");
return dependency;
}
-
- static class RuntimeArtifactFilter implements ArtifactFilter {
- private static final Collection SCOPES =
- asList(SCOPE_COMPILE, SCOPE_COMPILE_PLUS_RUNTIME, SCOPE_RUNTIME);
-
- private final Artifact filter;
-
- RuntimeArtifactFilter() {
- this(null);
- }
-
- RuntimeArtifactFilter(Artifact filter) {
- this.filter = filter;
- }
-
- @Override
- public boolean include(Artifact artifact) {
- String scope = artifact.getScope();
- return (filter == null || artifact.equals(filter))
- && !artifact.isOptional()
- && (scope == null || SCOPES.contains(scope));
- }
- }
}
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
index 2d4b838959..d69cb88287 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
@@ -21,8 +21,6 @@
import java.io.File;
import java.util.List;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-
/**
* This interface contains all the common parameters that have different implementations in Surefire vs IntegrationTest
*
@@ -73,9 +71,7 @@ public interface SurefireExecutionParameters {
void setExcludes(List excludes);
- ArtifactRepository getLocalRepository();
-
- void setLocalRepository(ArtifactRepository localRepository);
+ String getLocalRepositoryPath();
boolean isPrintSummary();
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ChecksumCalculator.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ChecksumCalculator.java
index 498d6c95db..04ddf7bc05 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ChecksumCalculator.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ChecksumCalculator.java
@@ -26,7 +26,6 @@
import java.util.Map;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -68,10 +67,6 @@ public void add(File workingDirectory) {
appendObject(workingDirectory);
}
- public void add(ArtifactRepository localRepository) {
- appendObject(localRepository);
- }
-
public void add(List> items) {
if (items != null) {
for (Object item : items) {
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java
index 76e3729547..0fc3ccded1 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java
@@ -40,10 +40,6 @@
import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.DefaultResolutionErrorHandler;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
@@ -54,8 +50,6 @@
import org.apache.maven.plugin.surefire.booterclient.Platform;
import org.apache.maven.plugin.surefire.log.PluginConsoleLogger;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.surefire.api.suite.RunResult;
import org.apache.maven.surefire.api.util.DefaultScanResult;
import org.apache.maven.surefire.api.util.SureFireFileManager;
@@ -81,8 +75,6 @@
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@@ -95,6 +87,7 @@
import static java.util.Collections.emptyMap;
import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
+import static org.apache.maven.artifact.ArtifactUtils.artifactMapByVersionlessId;
import static org.apache.maven.artifact.versioning.VersionRange.createFromVersion;
import static org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec;
import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_9;
@@ -102,9 +95,9 @@
import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS;
import static org.assertj.core.api.Assertions.assertThat;
import static org.codehaus.plexus.languages.java.jpms.ModuleNameSource.MODULEDESCRIPTOR;
-import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -162,7 +155,6 @@ public void setupMojo() {
plugin.setVersion(mojoArtifact.getVersion());
when(pluginDescriptor.getPlugin()).thenReturn(plugin);
mojo.setPluginDescriptor(pluginDescriptor);
- mojo.setResolutionErrorHandler(new DefaultResolutionErrorHandler());
}
@Test
@@ -857,143 +849,20 @@ public void shouldSmartlyResolveJUnit5ProviderWithJUnit4() throws Exception {
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
-
- final Artifact pluginDependency = new DefaultArtifact(
- "org.junit.vintage",
- "junit-vintage-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency dependency = (Dependency) invocation.getArguments()[0];
- if (dependency.getArtifactId().equals("surefire-junit-platform")) {
- return surefireProvider;
- } else if (dependency.getArtifactId().equals("junit-vintage-engine")) {
- return pluginDependency;
- } else {
- fail(dependency.getGroupId() + ":" + dependency.getArtifactId());
- return null;
- }
- }
- });
-
- final ArtifactResolutionResult surefireProviderResolutionResult = mock(ArtifactResolutionResult.class);
- final ArtifactResolutionResult pluginDependencyResolutionResult = mock(ArtifactResolutionResult.class);
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact artifact = req.getArtifact();
- if (artifact == surefireProvider) {
- return surefireProviderResolutionResult;
- } else if (artifact == pluginDependency) {
- return pluginDependencyResolutionResult;
- } else if ("org.junit.platform".equals(artifact.getGroupId())
- && "junit-platform-launcher".equals(artifact.getArtifactId())
- && "1.4.0".equals(artifact.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(artifact.getGroupId() + ":" + artifact.getArtifactId());
- return null;
- }
- }
- });
-
- Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact apiguardian = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact commons = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact opentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Set providerArtifacts = new HashSet<>();
- providerArtifacts.add(surefireProvider);
- providerArtifacts.add(java5);
- providerArtifacts.add(launcher);
- providerArtifacts.add(apiguardian);
- providerArtifacts.add(engine);
- providerArtifacts.add(commons);
- providerArtifacts.add(opentest4j);
-
- when(surefireProviderResolutionResult.getArtifacts()).thenReturn(providerArtifacts);
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
final Artifact pluginDep1 = new DefaultArtifact(
- "org.junit.vintage",
- "junit-vintage-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.vintage", "junit-vintage-engine", createFromVersion("5.4.0"), null, "jar", "", null);
final Artifact pluginDep2 = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apiguardian", "apiguardian-api", createFromVersion("1.0.0"), null, "jar", "", null);
final Artifact pluginDep3 = new DefaultArtifact(
"org.junit.platform",
@@ -1036,7 +905,6 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
addPluginDependencies(pluginDep1, pluginDep2, pluginDep3, pluginDep4, pluginDep5, pluginDep6, pluginDep7);
- mojo.setRepositorySystem(repositorySystem);
mojo.setLogger(mock(Logger.class));
Set pluginDependencyArtifacts = new HashSet<>();
@@ -1047,17 +915,14 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
pluginDependencyArtifacts.add(pluginDep5);
pluginDependencyArtifacts.add(pluginDep6);
pluginDependencyArtifacts.add(pluginDep7);
- when(pluginDependencyResolutionResult.getArtifacts()).thenReturn(pluginDependencyArtifacts);
-
- invokeMethod(mojo, "setupStuff");
- when(mojo.getSession().getProjectBuildingRequest()).thenReturn(mock(ProjectBuildingRequest.class));
+ when(dependencyResolver.resolvePluginDependencies(any(), any(), any(), any()))
+ .thenReturn(artifactMapByVersionlessId(pluginDependencyArtifacts));
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
mojo.setPluginDescriptor(pluginDescriptor);
Plugin p = mock(Plugin.class);
when(pluginDescriptor.getPlugin()).thenReturn(p);
- when(p.getDependencies()).thenReturn(singletonList(toDependency(pluginDependency)));
Artifact junitPlatformArtifact = invokeMethod(mojo, "getJUnit5Artifact");
assertThat(junitPlatformArtifact.getGroupId()).isEqualTo("org.junit.platform");
@@ -1070,69 +935,22 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
Artifact expectedProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact expectedCommonJava5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact expectedLauncher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact expectedApiguardian = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apiguardian", "apiguardian-api", createFromVersion("1.0.0"), null, "jar", "", null);
Artifact expectedJUnit5Engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact expectedOpentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null);
+ Artifact expectedOpentest4j =
+ new DefaultArtifact("org.opentest4j", "opentest4j", createFromVersion("1.1.1"), null, "jar", "", null);
Artifact expectedPlatformCommons = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-commons", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact expectedEngine = new DefaultArtifact(
- "org.junit.vintage",
- "junit-vintage-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.vintage", "junit-vintage-engine", createFromVersion("5.4.0"), null, "jar", "", null);
+
assertThat(prov.getProviderClasspath())
.hasSize(8)
.containsOnly(
@@ -1239,109 +1057,16 @@ public void shouldSmartlyResolveJUnit5ProviderWithVintage() throws Exception {
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency provider = (Dependency) invocation.getArguments()[0];
- assertThat(provider.getGroupId()).isEqualTo("org.apache.maven.surefire");
- assertThat(provider.getArtifactId()).isEqualTo("surefire-junit-platform");
- return surefireProvider;
- }
- });
- final ArtifactResolutionResult surefireProviderResolutionResult = mock(ArtifactResolutionResult.class);
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return surefireProviderResolutionResult;
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
- Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact apiguardian = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact commons = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact opentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Set providerArtifacts = new HashSet<>();
- providerArtifacts.add(surefireProvider);
- providerArtifacts.add(java5);
- providerArtifacts.add(launcher);
- providerArtifacts.add(apiguardian);
- providerArtifacts.add(engine);
- providerArtifacts.add(commons);
- providerArtifacts.add(opentest4j);
- when(surefireProviderResolutionResult.getArtifacts()).thenReturn(providerArtifacts);
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
- mojo.setRepositorySystem(repositorySystem);
- mojo.setLogger(mock(Logger.class));
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
- invokeMethod(mojo, "setupStuff");
+ mojo.setLogger(mock(Logger.class));
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
mojo.setPluginDescriptor(pluginDescriptor);
@@ -1360,29 +1085,11 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
Artifact expectedProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact expectedCommonJava5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact expectedLauncher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
assertThat(prov.getProviderClasspath())
.hasSize(3)
.containsOnly(expectedProvider, expectedCommonJava5, expectedLauncher);
@@ -1441,54 +1148,19 @@ public void shouldSmartlyResolveJUnit5ProviderWithJUnit5Commons() throws Excepti
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency provider = (Dependency) invocation.getArguments()[0];
- assertThat(provider.getGroupId()).isEqualTo("org.apache.maven.surefire");
- assertThat(provider.getArtifactId()).isEqualTo("surefire-junit-platform");
- return surefireProvider;
- }
- });
-
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return createSurefireProviderResolutionResult(surefireVersion);
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
-
- mojo.setRepositorySystem(repositorySystem);
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
+
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
+
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
+
mojo.setLogger(mock(Logger.class));
invokeMethod(mojo, "setupStuff");
- when(mojo.getSession().getProjectBuildingRequest()).thenReturn(mock(ProjectBuildingRequest.class));
-
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
mojo.setPluginDescriptor(pluginDescriptor);
Plugin p = mock(Plugin.class);
@@ -1508,45 +1180,15 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
Set resolvedProviderArtifacts = prov.getProviderClasspath();
Artifact provider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact opentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null);
+ Artifact opentest4j =
+ new DefaultArtifact("org.opentest4j", "opentest4j", createFromVersion("1.1.1"), null, "jar", "", null);
assertThat(resolvedProviderArtifacts).hasSize(5).containsOnly(provider, java5, launcher, engine, opentest4j);
assertThat(testClasspathWrapper.getTestDependencies())
@@ -1620,48 +1262,15 @@ public void shouldSmartlyResolveJUnit5ProviderWithJUnit5Engine() throws Exceptio
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency provider = (Dependency) invocation.getArguments()[0];
- assertThat(provider.getGroupId()).isEqualTo("org.apache.maven.surefire");
- assertThat(provider.getArtifactId()).isEqualTo("surefire-junit-platform");
- return surefireProvider;
- }
- });
-
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return createSurefireProviderResolutionResult(surefireVersion);
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
-
- mojo.setRepositorySystem(repositorySystem);
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
+
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
+
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
+
mojo.setLogger(mock(Logger.class));
invokeMethod(mojo, "setupStuff");
@@ -1676,24 +1285,16 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
- Set resolvedProviderArtifacts = prov.getProviderClasspath();
+ Artifact surefireProvider = new DefaultArtifact(
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
+
+ Set resolvedProviderArtifacts = prov.getProviderClasspath();
+
assertThat(resolvedProviderArtifacts).hasSize(3).containsOnly(surefireProvider, java5, launcher);
assertThat(testClasspathWrapper.getTestDependencies())
@@ -1766,60 +1367,40 @@ public void shouldSmartlyResolveJUnit5ProviderWithJupiterApi() throws Exception
File testClassesDirectory = new File("target/test-classes");
- TestClassPath testClasspathWrapper =
- new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
+ TestClassPath testClasspathWrapper =
+ new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
+
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
+
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
+
+ Artifact jUnitPlatformLauncherArtifact = new DefaultArtifact(
+ "org.junit.platform",
+ "junit-platform-launcher",
+ createFromVersion("1.4.0"),
+ null,
+ "jar",
+ null,
+ mock(ArtifactHandler.class));
+
+ when(dependencyResolver.resolveArtifacts(any(), any(), eq(jUnitPlatformLauncherArtifact)))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
+ Artifact jupiterEngineArtifact = new DefaultArtifact(
+ "org.junit.jupiter",
+ "junit-jupiter-engine",
+ createFromVersion("5.4.0"),
null,
"jar",
null,
mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency provider = (Dependency) invocation.getArguments()[0];
- assertThat(provider.getGroupId()).isEqualTo("org.apache.maven.surefire");
- assertThat(provider.getArtifactId()).isEqualTo("surefire-junit-platform");
- return surefireProvider;
- }
- });
-
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return createSurefireProviderResolutionResult(surefireVersion);
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else if ("org.junit.jupiter".equals(resolvable.getGroupId())
- && "junit-jupiter-engine".equals(resolvable.getArtifactId())
- && "5.4.0".equals(resolvable.getVersion())) {
- return createJupiterEngineResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
-
- mojo.setRepositorySystem(repositorySystem);
- mojo.setLogger(mock(Logger.class));
- invokeMethod(mojo, "setupStuff");
+ when(dependencyResolver.resolveArtifacts(any(), any(), eq(jupiterEngineArtifact)))
+ .thenReturn(createJupiterEngineResolutionResult());
- when(mojo.getSession().getProjectBuildingRequest()).thenReturn(mock(ProjectBuildingRequest.class));
+ mojo.setLogger(mock(Logger.class));
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
mojo.setPluginDescriptor(pluginDescriptor);
@@ -1837,40 +1418,26 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
- Set resolvedProviderArtifacts = prov.getProviderClasspath();
+ final Artifact surefireProvider = new DefaultArtifact(
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact jupiterEngine = new DefaultArtifact(
"org.junit.jupiter",
- "junit-jupiter-engine",
+ "junit-jupiter-engine", ///// <------
createFromVersion("5.4.0"),
null,
"jar",
- null,
- mock(ArtifactHandler.class));
+ "",
+ null);
Artifact platformEngine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null);
+
+ Set resolvedProviderArtifacts = prov.getProviderClasspath();
+
assertThat(resolvedProviderArtifacts)
.hasSize(5)
.containsOnly(surefireProvider, java5, launcher, jupiterEngine, platformEngine);
@@ -1968,51 +1535,16 @@ public void shouldSmartlyResolveJUnit5ProviderWithJupiterEngine() throws Excepti
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency provider = (Dependency) invocation.getArguments()[0];
- assertThat(provider.getGroupId()).isEqualTo("org.apache.maven.surefire");
- assertThat(provider.getArtifactId()).isEqualTo("surefire-junit-platform");
- return surefireProvider;
- }
- });
-
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return createSurefireProviderResolutionResult(surefireVersion);
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
-
- mojo.setRepositorySystem(repositorySystem);
- mojo.setLogger(mock(Logger.class));
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
- invokeMethod(mojo, "setupStuff");
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
+
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
+
+ mojo.setLogger(mock(Logger.class));
Artifact junitPlatformArtifact = invokeMethod(mojo, "getJUnit5Artifact");
assertThat(junitPlatformArtifact.getGroupId()).isEqualTo("org.junit.platform");
@@ -2024,24 +1556,15 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
- Set resolvedProviderArtifacts = prov.getProviderClasspath();
-
+ Artifact surefireProvider = new DefaultArtifact(
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
+
+ Set resolvedProviderArtifacts = prov.getProviderClasspath();
+
assertThat(resolvedProviderArtifacts).hasSize(3).containsOnly(surefireProvider, java5, launcher);
assertThat(testClasspathWrapper.getTestDependencies())
@@ -2078,13 +1601,7 @@ public void shouldSmartlyResolveJUnit5ProviderWithJupiterEngineInPluginDependenc
mock(ArtifactHandler.class));
final Artifact pluginDepJupiterEngine = new DefaultArtifact(
- "org.junit.jupiter",
- "junit-jupiter-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.jupiter", "junit-jupiter-engine", createFromVersion("5.4.0"), null, "jar", "", null);
final Artifact pluginDepPlatformEngine = new DefaultArtifact(
"org.junit.platform",
@@ -2131,14 +1648,15 @@ public void shouldSmartlyResolveJUnit5ProviderWithJupiterEngineInPluginDependenc
null,
mock(ArtifactHandler.class));
- mojo.getPluginArtifactMap().put("org.apache.maven.surefire:maven-surefire-plugin", plugin);
- mojo.getPluginArtifactMap().put("org.apache.maven.surefire:surefire-booter", forkedBooter);
- mojo.getPluginArtifactMap().put("org.junit.jupiter:junit-jupiter-engine", pluginDepJupiterEngine);
- mojo.getPluginArtifactMap().put("org.junit.platform:junit-platform-engine", pluginDepPlatformEngine);
- mojo.getPluginArtifactMap().put("org.junit.jupiter:junit-jupiter-api", pluginDepJupiterApi);
- mojo.getPluginArtifactMap().put("org.apiguardian:apiguardian-api", pluginDepApiguardian);
- mojo.getPluginArtifactMap().put("org.junit.platform:junit-platform-commons", pluginDepCommons);
- mojo.getPluginArtifactMap().put("org.opentest4j:opentest4j", pluginDepOpentest4j);
+ addPluginDependencies(
+ plugin,
+ forkedBooter,
+ pluginDepJupiterEngine,
+ pluginDepPlatformEngine,
+ pluginDepJupiterApi,
+ pluginDepApiguardian,
+ pluginDepCommons,
+ pluginDepOpentest4j);
MavenProject mavenProject = new MavenProject();
mavenProject.setArtifact(new DefaultArtifact(
@@ -2200,58 +1718,15 @@ public void shouldSmartlyResolveJUnit5ProviderWithJupiterEngineInPluginDependenc
TestClassPath testClasspathWrapper =
new TestClassPath(testArtifacts, classesDirectory, testClassesDirectory, null);
- mojo.setRemoteRepositories(Collections.emptyList());
- mojo.setProjectRemoteRepositories(Collections.emptyList());
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
+ SurefireDependencyResolver dependencyResolver = mock(SurefireDependencyResolver.class);
+ mojo.setSurefireDependencyResolver(dependencyResolver);
+
+ when(dependencyResolver.getProviderClasspathAsMap(any(), any(), anyString(), anyString()))
+ .thenReturn(artifactMapByVersionlessId(createSurefireProviderResolutionResult(surefireVersion)));
+
+ when(dependencyResolver.resolveArtifacts(any(), any(), any()))
+ .thenReturn(createExpectedJUnitPlatformLauncherResolutionResult());
- final Artifact surefireProvider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenAnswer(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Dependency dependency = (Dependency) invocation.getArguments()[0];
- if (dependency.getArtifactId().equals("surefire-junit-platform")) {
- return surefireProvider;
- } else if (dependency.getArtifactId().equals("junit-jupiter-engine")) {
- return pluginDepJupiterEngine;
- } else {
- fail(dependency.getGroupId() + ":" + dependency.getArtifactId());
- return null;
- }
- }
- });
-
- final ArtifactResolutionResult pluginDepJupiterEngineResolutionResult = mock(ArtifactResolutionResult.class);
-
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .thenAnswer(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- ArtifactResolutionRequest req =
- (ArtifactResolutionRequest) invocation.getArguments()[0];
- Artifact resolvable = req.getArtifact();
- if (resolvable == surefireProvider) {
- return createSurefireProviderResolutionResult(surefireVersion);
- } else if (resolvable == pluginDepJupiterEngine) {
- return pluginDepJupiterEngineResolutionResult;
- } else if ("org.junit.platform".equals(resolvable.getGroupId())
- && "junit-platform-launcher".equals(resolvable.getArtifactId())
- && "1.4.0".equals(resolvable.getVersion())) {
- return createExpectedJUnitPlatformLauncherResolutionResult();
- } else {
- fail(resolvable.getGroupId() + ":" + resolvable.getArtifactId());
- return null;
- }
- }
- });
-
- mojo.setRepositorySystem(repositorySystem);
mojo.setLogger(mock(Logger.class));
Set pluginDepJupiterEngineArtifacts = new HashSet<>();
@@ -2262,9 +1737,8 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
pluginDepJupiterEngineArtifacts.add(pluginDepCommons);
pluginDepJupiterEngineArtifacts.add(pluginDepOpentest4j);
- when(pluginDepJupiterEngineResolutionResult.getArtifacts()).thenReturn(pluginDepJupiterEngineArtifacts);
-
- invokeMethod(mojo, "setupStuff");
+ when(dependencyResolver.resolvePluginDependencies(any(), any(), any(), any()))
+ .thenReturn(artifactMapByVersionlessId(pluginDepJupiterEngineArtifacts));
Artifact junitPlatformArtifact = invokeMethod(mojo, "getJUnit5Artifact");
assertThat(junitPlatformArtifact.getGroupId()).isEqualTo("org.junit.platform");
@@ -2276,8 +1750,6 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
assertThat(prov.isApplicable()).isTrue();
- when(mojo.getSession().getProjectBuildingRequest()).thenReturn(mock(ProjectBuildingRequest.class));
-
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
mojo.setPluginDescriptor(pluginDescriptor);
Plugin p = mock(Plugin.class);
@@ -2285,40 +1757,19 @@ public ArtifactResolutionResult answer(InvocationOnMock invocation) {
List directPluginDependencies = toDependencies(pluginDepJupiterEngine);
when(p.getDependencies()).thenReturn(directPluginDependencies);
- Set resolvedProviderArtifacts = prov.getProviderClasspath();
-
+ Artifact surefireProvider = new DefaultArtifact(
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact jupiterEngine = new DefaultArtifact(
- "org.junit.jupiter",
- "junit-jupiter-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.jupiter", "junit-jupiter-engine", createFromVersion("5.4.0"), null, "jar", "", null);
Artifact platformEngine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null);
+
+ Set resolvedProviderArtifacts = prov.getProviderClasspath();
+
assertThat(resolvedProviderArtifacts)
.hasSize(5)
.containsOnly(surefireProvider, java5, launcher, jupiterEngine, platformEngine);
@@ -2354,178 +1805,65 @@ public void shouldConvertJunitEngineParameters() throws Exception {
assertThat(properties).containsEntry("excludejunit5engines", "e1,e2");
}
- private static ArtifactResolutionResult createJUnitPlatformLauncherResolutionResult(
+ private static Set createJUnitPlatformLauncherResolutionResult(
Artifact junit5Engine, Artifact apiguardian, Artifact commons, Artifact opentest4j) {
- ArtifactResolutionResult launcherResolutionResult = mock(ArtifactResolutionResult.class);
Set resolvedLauncherArtifacts = new HashSet<>();
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- commons.getVersionRange(),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", commons.getVersionRange(), null, "jar", "", null);
resolvedLauncherArtifacts.add(launcher);
resolvedLauncherArtifacts.add(apiguardian);
resolvedLauncherArtifacts.add(junit5Engine);
resolvedLauncherArtifacts.add(commons);
resolvedLauncherArtifacts.add(opentest4j);
resolvedLauncherArtifacts.remove(null);
- when(launcherResolutionResult.getArtifacts()).thenReturn(resolvedLauncherArtifacts);
- return launcherResolutionResult;
+ return resolvedLauncherArtifacts;
}
- private static ArtifactResolutionResult createJupiterEngineResolutionResult() {
- ArtifactResolutionResult launcherResolutionResult = mock(ArtifactResolutionResult.class);
+ private static Set createJupiterEngineResolutionResult() {
Set resolvedLauncherArtifacts = new HashSet<>();
resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.junit.jupiter",
- "junit-jupiter-engine",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
- resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.junit.jupiter",
- "junit-jupiter-api",
- createFromVersion("5.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
+ "org.junit.jupiter", "junit-jupiter-engine", createFromVersion("5.4.0"), null, "jar", "", null));
resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
+ "org.junit.jupiter", "junit-jupiter-api", createFromVersion("5.4.0"), null, "jar", "", null));
resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null));
resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
+ "org.apiguardian", "apiguardian-api", createFromVersion("1.0.0"), null, "jar", "", null));
+ resolvedLauncherArtifacts.add(
+ new DefaultArtifact("org.opentest4j", "opentest4j", createFromVersion("1.1.1"), null, "jar", "", null));
resolvedLauncherArtifacts.add(new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class)));
- when(launcherResolutionResult.getArtifacts()).thenReturn(resolvedLauncherArtifacts);
- return launcherResolutionResult;
+ "org.junit.platform", "junit-platform-commons", createFromVersion("1.4.0"), null, "jar", "", null));
+ return resolvedLauncherArtifacts;
}
- private static ArtifactResolutionResult createExpectedJUnitPlatformLauncherResolutionResult() {
+ private static Set createExpectedJUnitPlatformLauncherResolutionResult() {
Artifact engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact commons = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.4.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-commons", createFromVersion("1.4.0"), null, "jar", "", null);
Artifact apiguardian = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact opentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apiguardian", "apiguardian-api", createFromVersion("1.0.0"), null, "jar", "", null);
+ Artifact opentest4j =
+ new DefaultArtifact("org.opentest4j", "opentest4j", createFromVersion("1.1.1"), null, "jar", "", null);
return createJUnitPlatformLauncherResolutionResult(engine, apiguardian, commons, opentest4j);
}
- private static ArtifactResolutionResult createSurefireProviderResolutionResult(VersionRange surefireVersion) {
- ArtifactResolutionResult surefirePlatformResolutionResult = mock(ArtifactResolutionResult.class);
+ private static Set createSurefireProviderResolutionResult(VersionRange surefireVersion) {
Artifact provider = new DefaultArtifact(
- "org.apache.maven.surefire",
- "surefire-junit-platform",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "surefire-junit-platform", surefireVersion, null, "jar", "", null);
Artifact java5 = new DefaultArtifact(
- "org.apache.maven.surefire",
- "common-java5",
- surefireVersion,
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apache.maven.surefire", "common-java5", surefireVersion, null, "jar", "", null);
Artifact launcher = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-launcher",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-launcher", createFromVersion("1.3.2"), null, "jar", "", null);
Artifact apiguardian = new DefaultArtifact(
- "org.apiguardian",
- "apiguardian-api",
- createFromVersion("1.0.0"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.apiguardian", "apiguardian-api", createFromVersion("1.0.0"), null, "jar", "", null);
Artifact engine = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-engine",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-engine", createFromVersion("1.3.2"), null, "jar", "", null);
Artifact commons = new DefaultArtifact(
- "org.junit.platform",
- "junit-platform-commons",
- createFromVersion("1.3.2"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
- Artifact opentest4j = new DefaultArtifact(
- "org.opentest4j",
- "opentest4j",
- createFromVersion("1.1.1"),
- null,
- "jar",
- null,
- mock(ArtifactHandler.class));
+ "org.junit.platform", "junit-platform-commons", createFromVersion("1.3.2"), null, "jar", "", null);
+ Artifact opentest4j =
+ new DefaultArtifact("org.opentest4j", "opentest4j", createFromVersion("1.1.1"), null, "jar", "", null);
Set providerArtifacts = new HashSet<>();
providerArtifacts.add(provider);
@@ -2536,8 +1874,7 @@ private static ArtifactResolutionResult createSurefireProviderResolutionResult(V
providerArtifacts.add(commons);
providerArtifacts.add(opentest4j);
- when(surefirePlatformResolutionResult.getArtifacts()).thenReturn(providerArtifacts);
- return surefirePlatformResolutionResult;
+ return providerArtifacts;
}
@Test
@@ -2576,17 +1913,29 @@ private void addPluginDependencies(Artifact... deps) {
*/
public static class Mojo extends AbstractSurefireMojo implements SurefireReportParameters {
private File mainBuildPath;
+
private File testClassesDirectory;
+
private boolean useModulePath;
+
private int failOnFlakeCount;
+
private String[] includeJUnit5Engines;
+
private String[] excludeJUnit5Engines;
+
private List projectTestArtifacts;
+
private File includesFile;
+
private File excludesFile;
+
private List includes;
+
private List excludes;
+
private String test;
+
private boolean testFailureIgnore;
private JUnitPlatformProviderInfo createJUnitPlatformProviderInfo(
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
index c8f3b1890f..60b9428118 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
@@ -19,40 +19,44 @@
package org.apache.maven.plugin.surefire;
import java.io.File;
+import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+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.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.DefaultResolutionErrorHandler;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.surefire.SurefireDependencyResolver.RuntimeArtifactFilter;
-import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
-import org.apache.maven.repository.RepositorySystem;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.resolution.DependencyRequest;
+import org.eclipse.aether.resolution.DependencyResolutionException;
+import org.eclipse.aether.resolution.DependencyResult;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.ArgumentCaptor;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
import static java.util.Collections.singletonMap;
import static org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec;
import static org.apache.maven.plugin.surefire.SurefireDependencyResolver.PROVIDER_GROUP_ID;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.any;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -101,39 +105,29 @@ public void shouldBeFailWithinRange() throws InvalidVersionSpecificationExceptio
}
@Test
- public void testResolveArtifact() throws InvalidVersionSpecificationException, MojoExecutionException {
- final Artifact provider = createArtifact("surefire-junit-platform");
+ public void testResolveArtifact()
+ throws InvalidVersionSpecificationException, MojoExecutionException, DependencyResolutionException {
+
+ Artifact provider = createArtifact("surefire-junit-platform");
RepositorySystem repositorySystem = mock(RepositorySystem.class);
- final ArtifactResolutionResult expectedResult = mock(ArtifactResolutionResult.class);
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .then(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- Object[] args = invocation.getArguments();
- assertThat(args).hasSize(1);
- ArtifactResolutionRequest request = (ArtifactResolutionRequest) args[0];
- assertThat(request.getArtifact()).isSameAs(provider);
- assertThat(request.isResolveTransitively()).isTrue();
- assertThat(request.getArtifactDependencies()).isNull();
- assertThat(request.getRemoteRepositories()).isNull();
- assertThat(request.getLocalRepository()).isNull();
- assertThat(request.getCollectionFilter()).isNotNull();
- assertThat(request.getCollectionFilter()).isInstanceOf(RuntimeArtifactFilter.class);
- assertThat(request.getManagedVersionMap()).isNull();
- assertThat(request.getMirrors()).isEmpty();
- assertThat(request.getProxies()).isEmpty();
- assertThat(request.getResolutionFilter()).isNull();
- assertThat(request.getServers()).isEmpty();
- return expectedResult;
- }
- });
-
- SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(
- repositorySystem, null, null, null, null, new DefaultResolutionErrorHandler(), null, false);
-
- ArtifactResolutionResult actualResult = surefireDependencyResolver.resolvePluginArtifact(provider);
-
- assertThat(actualResult).isSameAs(expectedResult);
+ RepositorySystemSession session = mock(RepositorySystemSession.class);
+ ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(DependencyRequest.class);
+
+ DependencyResult result = new DependencyResult(new DependencyRequest());
+ when(repositorySystem.resolveDependencies(eq(session), requestCaptor.capture()))
+ .thenReturn(result);
+
+ SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(repositorySystem);
+ surefireDependencyResolver.resolveArtifacts(session, Collections.emptyList(), provider);
+
+ DependencyRequest value = requestCaptor.getValue();
+ assertThat(value).isNotNull();
+ org.eclipse.aether.graph.Dependency requestDependency =
+ value.getCollectRequest().getRoot();
+ assertThat(requestDependency.getArtifact().getGroupId()).isEqualTo(provider.getGroupId());
+ assertThat(requestDependency.getArtifact().getArtifactId()).isEqualTo(provider.getArtifactId());
+ assertThat(requestDependency.getArtifact().getVersion()).isEqualTo(provider.getVersion());
+ assertThat(requestDependency.getArtifact().getExtension()).isEqualTo(provider.getType());
}
@Test
@@ -141,7 +135,7 @@ public void testGetProviderClasspath() throws Exception {
Artifact commonJunit4 = createArtifact("common-junit4");
Artifact api = createArtifact("surefire-api");
- final Artifact provider = createArtifact("surefire-junit-platform");
+ Artifact provider = createArtifact("surefire-junit-platform");
Artifact ext = createArtifact("org.apiguardian", "apiguardian-api");
Artifact logger = createArtifact("surefire-logger-api");
@@ -152,104 +146,53 @@ public void testGetProviderClasspath() throws Exception {
providerArtifacts.add(ext);
providerArtifacts.add(logger);
- final ArtifactResolutionResult result = mock(ArtifactResolutionResult.class);
- when(result.getArtifacts()).thenReturn(providerArtifacts);
+ List artifactResults = providerArtifacts.stream()
+ .map(RepositoryUtils::toArtifact)
+ .map(a -> new ArtifactResult(new ArtifactRequest()).setArtifact(a))
+ .collect(Collectors.toList());
+
+ DependencyResult result = new DependencyResult(new DependencyRequest());
+ result.setArtifactResults(artifactResults);
RepositorySystem repositorySystem = mock(RepositorySystem.class);
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class)))
- .then(new Answer() {
- @Override
- public ArtifactResolutionResult answer(InvocationOnMock invocation) {
- Object[] args = invocation.getArguments();
- assertThat(args).hasSize(1);
- ArtifactResolutionRequest request = (ArtifactResolutionRequest) args[0];
- assertThat(request.getArtifact()).isSameAs(provider);
- assertThat(request.isResolveTransitively()).isTrue();
- assertThat(request.getArtifactDependencies()).isNull();
- assertThat(request.getRemoteRepositories()).isNull();
- assertThat(request.getLocalRepository()).isNull();
- assertThat(request.getCollectionFilter()).isNotNull();
- assertThat(request.getCollectionFilter()).isInstanceOf(RuntimeArtifactFilter.class);
- assertThat(request.getManagedVersionMap()).isNull();
- assertThat(request.getMirrors()).isEmpty();
- assertThat(request.getProxies()).isEmpty();
- assertThat(request.getResolutionFilter()).isNull();
- assertThat(request.getServers()).isEmpty();
- return result;
- }
- });
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).then(new Answer() {
- @Override
- public Artifact answer(InvocationOnMock invocation) {
- Object[] args = invocation.getArguments();
- assertThat(args).hasSize(1);
- Dependency request = (Dependency) args[0];
- assertThat(request.getGroupId()).isEqualTo(provider.getGroupId());
- assertThat(request.getArtifactId()).isEqualTo(provider.getArtifactId());
- assertThat(request.getVersion()).isEqualTo(provider.getVersion());
- assertThat(request.getType()).isEqualTo(provider.getType());
- assertThat(request.getScope()).isNull();
- return provider;
- }
- });
-
- ConsoleLogger log = mock(ConsoleLogger.class);
-
- SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(
- repositorySystem, log, null, null, null, new DefaultResolutionErrorHandler(), null, false);
-
- when(log.isDebugEnabled()).thenReturn(true);
-
- Set classpath = surefireDependencyResolver.getProviderClasspath("surefire-junit-platform", "1");
+ RepositorySystemSession session = mock(RepositorySystemSession.class);
+
+ when(session.getArtifactTypeRegistry()).thenReturn(mock(ArtifactTypeRegistry.class));
+ when(repositorySystem.resolveDependencies(eq(session), any())).thenReturn(result);
+
+ SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(repositorySystem);
+ Set classpath = surefireDependencyResolver.getProviderClasspath(
+ session, Collections.emptyList(), "surefire-junit-platform", "1");
assertThat(classpath).hasSize(5);
Iterator it = classpath.iterator();
// result should be ordered
- assertThat(it.next()).isSameAs(provider);
-
- assertThat(it.next()).isSameAs(api);
-
- assertThat(it.next()).isSameAs(logger);
-
- assertThat(it.next()).isSameAs(commonJunit4);
-
- assertThat(it.next()).isSameAs(ext);
+ assertThat(it.next()).isEqualTo(provider);
+ assertThat(it.next()).isEqualTo(api);
+ assertThat(it.next()).isEqualTo(logger);
+ assertThat(it.next()).isEqualTo(commonJunit4);
+ assertThat(it.next()).isEqualTo(ext);
}
@Test
public void testGetProviderClasspathShouldPropagateTheResolutionException() throws Exception {
- Artifact provider = createArtifact("surefire-junit-platform");
- provider.setFile(null);
- Set providerArtifacts = new LinkedHashSet<>();
- providerArtifacts.add(provider);
+ RepositorySystem repositorySystem = mock(RepositorySystem.class);
+ RepositorySystemSession session = mock(RepositorySystemSession.class);
+ when(session.getArtifactTypeRegistry()).thenReturn(mock(ArtifactTypeRegistry.class));
- ArtifactResolutionResult result = mock(ArtifactResolutionResult.class);
- when(result.getArtifacts()).thenReturn(providerArtifacts);
- when(result.hasMetadataResolutionExceptions()).thenReturn(true);
- ArtifactResolutionException resolutionException =
- new ArtifactResolutionException("failed to resolve", provider);
- when(result.getMetadataResolutionException(0)).thenReturn(resolutionException);
+ DependencyResolutionException dependencyResolutionException =
+ new DependencyResolutionException(new DependencyResult(new DependencyRequest()), new Exception());
+ when(repositorySystem.resolveDependencies(eq(session), any())).thenThrow(dependencyResolutionException);
- RepositorySystem repositorySystem = mock(RepositorySystem.class);
- when(repositorySystem.resolve(any(ArtifactResolutionRequest.class))).thenReturn(result);
- when(repositorySystem.createDependencyArtifact(any(Dependency.class))).thenReturn(provider);
-
- SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(
- repositorySystem,
- mock(ConsoleLogger.class),
- null,
- null,
- null,
- new DefaultResolutionErrorHandler(),
- null,
- false);
-
- assertThatThrownBy(() -> surefireDependencyResolver.getProviderClasspath("surefire-junit-platform", "1"))
+ SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(repositorySystem);
+
+ assertThatThrownBy(() -> surefireDependencyResolver.getProviderClasspath(
+ session, Collections.emptyList(), "surefire-junit-platform", "1"))
.isInstanceOf(MojoExecutionException.class)
- .hasCause(resolutionException);
+ .hasCause(dependencyResolutionException);
}
@Test
@@ -265,34 +208,28 @@ public void testResolvePluginDependencies() throws Exception {
when(plugin.getDependencies()).thenReturn(singletonList(providerAsDependency));
RepositorySystem repositorySystem = mock(RepositorySystem.class);
- when(repositorySystem.createDependencyArtifact(providerAsDependency)).thenReturn(providerAsArtifact);
+ RepositorySystemSession session = mock(RepositorySystemSession.class);
+ when(session.getArtifactTypeRegistry()).thenReturn(mock(ArtifactTypeRegistry.class));
- ArtifactResolutionResult resolutionResult = mock(ArtifactResolutionResult.class);
- when(resolutionResult.getArtifacts()).thenReturn(singleton(providerAsArtifact));
+ ArtifactResult artifactResult =
+ new ArtifactResult(new ArtifactRequest().setArtifact(RepositoryUtils.toArtifact(providerAsArtifact)));
+ artifactResult.setArtifact(RepositoryUtils.toArtifact(providerAsArtifact));
+ DependencyResult result = new DependencyResult(new DependencyRequest());
+ result.setArtifactResults(Collections.singletonList(artifactResult));
- ArgumentCaptor resolutionRequestCaptor =
- ArgumentCaptor.forClass(ArtifactResolutionRequest.class);
- when(repositorySystem.resolve(resolutionRequestCaptor.capture())).thenReturn(resolutionResult);
+ when(repositorySystem.resolveDependencies(eq(session), any())).thenReturn(result);
Map pluginResolvedDependencies =
singletonMap(PROVIDER_GROUP_ID + ":surefire-shadefire", providerAsArtifact);
- SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(
- repositorySystem, null, null, null, null, new DefaultResolutionErrorHandler(), null, false);
+ SurefireDependencyResolver surefireDependencyResolver = new SurefireDependencyResolver(repositorySystem);
- Map providers =
- surefireDependencyResolver.resolvePluginDependencies(plugin, pluginResolvedDependencies);
+ Map providers = surefireDependencyResolver.resolvePluginDependencies(
+ session, Collections.emptyList(), plugin, pluginResolvedDependencies);
assertThat(providers.values()).hasSize(1).containsOnly(providerAsArtifact);
- assertThat(resolutionRequestCaptor.getAllValues()).hasSize(1);
-
- ArtifactResolutionRequest resolutionRequest = resolutionRequestCaptor.getValue();
-
- assertThat(resolutionRequest.getArtifact()).isSameAs(providerAsArtifact);
-
- verify(repositorySystem).createDependencyArtifact(any(Dependency.class));
- verify(repositorySystem).resolve(any(ArtifactResolutionRequest.class));
+ verify(repositorySystem).resolveDependencies(eq(session), any());
verifyNoMoreInteractions(repositorySystem);
}
@@ -308,8 +245,8 @@ private static Artifact createArtifact(String groupId, String artifactId)
private static Artifact createArtifact(String groupId, String artifactId, String version)
throws InvalidVersionSpecificationException {
VersionRange versionSpec = createFromVersionSpec(version);
- DefaultArtifact defaultArtifact =
- new DefaultArtifact(groupId, artifactId, versionSpec, "compile", "jar", "", null);
+ DefaultArtifact defaultArtifact = new DefaultArtifact(
+ groupId, artifactId, versionSpec, null, "jar", null, new DefaultArtifactHandler("jar"));
defaultArtifact.setFile(new File(""));
return defaultArtifact;
}