diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
index fb39f5039..13c36600f 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
@@ -141,5 +141,10 @@
junit-jupiter-api
test
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DependencyHierarchyWithRanges.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DependencyHierarchyWithRanges.java
index 56aa2a539..12f2f5ff7 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DependencyHierarchyWithRanges.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DependencyHierarchyWithRanges.java
@@ -53,7 +53,7 @@ public static void main(String[] args) throws Exception {
System.out.println(DependencyHierarchyWithRanges.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system);
+ SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system, Booter.selectFs(args));
sessionBuilder.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_IGNORE); // to not bother with checksums
sessionBuilder.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
sessionBuilder.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DeployArtifacts.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DeployArtifacts.java
index fcdd99644..fc141c935 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DeployArtifacts.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/DeployArtifacts.java
@@ -44,8 +44,8 @@ public static void main(String[] args) throws Exception {
System.out.println(DeployArtifacts.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact jarArtifact =
new DefaultArtifact("test", "org.apache.maven.aether.examples", "", "jar", "0.1-SNAPSHOT");
jarArtifact = jarArtifact.setPath(new File("src/main/data/demo.jar").toPath());
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindAvailableVersions.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindAvailableVersions.java
index ced5cad09..d1232b1e4 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindAvailableVersions.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindAvailableVersions.java
@@ -44,8 +44,8 @@ public static void main(String[] args) throws Exception {
System.out.println(FindAvailableVersions.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-util:[0,)");
VersionRangeRequest rangeRequest = new VersionRangeRequest();
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindNewestVersion.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindNewestVersion.java
index c92e9b369..94f46fd0d 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindNewestVersion.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/FindNewestVersion.java
@@ -41,8 +41,8 @@ public static void main(String[] args) throws Exception {
System.out.println(FindNewestVersion.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-util:[0,)");
VersionRangeRequest rangeRequest = new VersionRangeRequest();
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchy.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchy.java
index 28f6c6700..3b337e08d 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchy.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchy.java
@@ -52,7 +52,7 @@ public static void main(String[] args) throws Exception {
System.out.println(GetDependencyHierarchy.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system);
+ SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system, Booter.selectFs(args));
sessionBuilder.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
sessionBuilder.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
try (CloseableSession session = sessionBuilder.build()) {
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflicts.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflicts.java
index 7d80b1fde..dfbd84020 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflicts.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflicts.java
@@ -54,7 +54,7 @@ public static void main(String[] args) throws Exception {
// incompatible versions: two incompatible versions present in graph
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system);
+ SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system, Booter.selectFs(args));
sessionBuilder.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
sessionBuilder.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
try (CloseableSession session = sessionBuilder
@@ -99,7 +99,7 @@ public static void main(String[] args) throws Exception {
// dependency divergence: multiple versions of same GA present in graph
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system);
+ SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system, Booter.selectFs(args));
sessionBuilder.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
sessionBuilder.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
try (CloseableSession session = sessionBuilder
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflictsStrategies.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflictsStrategies.java
index 870860d31..59ba857f0 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflictsStrategies.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyHierarchyWithConflictsStrategies.java
@@ -82,7 +82,7 @@ private static void runItWithStrategy(String[] args, String selectionStrategy, C
System.out.println();
System.out.println(selectionStrategy);
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system);
+ SessionBuilder sessionBuilder = Booter.newRepositorySystemSession(system, Booter.selectFs(args));
sessionBuilder.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, ConflictResolver.Verbosity.STANDARD);
sessionBuilder.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
sessionBuilder.setConfigProperty(
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyTree.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyTree.java
index dd2ed02ce..0cf08d0cc 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyTree.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDependencyTree.java
@@ -42,8 +42,8 @@ public static void main(String[] args) throws Exception {
System.out.println(GetDependencyTree.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact artifact = new DefaultArtifact("org.apache.maven:maven-resolver-provider:3.6.1");
CollectRequest collectRequest = new CollectRequest();
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDirectDependencies.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDirectDependencies.java
index 5e82a44b0..c4e32e8ec 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDirectDependencies.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/GetDirectDependencies.java
@@ -42,8 +42,8 @@ public static void main(String[] args) throws Exception {
System.out.println(GetDirectDependencies.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-impl:1.3.3");
ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/InstallArtifacts.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/InstallArtifacts.java
index d285f10b5..80ffc1d22 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/InstallArtifacts.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/InstallArtifacts.java
@@ -43,8 +43,8 @@ public static void main(String[] args) throws Exception {
System.out.println(InstallArtifacts.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact jarArtifact =
new DefaultArtifact("test", "org.apache.maven.resolver.examples", "", "jar", "0.1-SNAPSHOT");
jarArtifact = jarArtifact.setPath(new File("src/main/data/demo.jar").toPath());
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveArtifact.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveArtifact.java
index b41a10ab8..ce77e0fc2 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveArtifact.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveArtifact.java
@@ -46,8 +46,8 @@ public static void main(String[] args) throws Exception {
ArtifactRequest artifactRequest;
ArtifactResult artifactResult;
- try (CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ try (CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-util:1.3.3");
artifactRequest = new ArtifactRequest();
@@ -62,7 +62,7 @@ public static void main(String[] args) throws Exception {
}
// signature
- try (CloseableSession session = Booter.newRepositorySystemSession(system)
+ try (CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_FAIL)
.build()) {
artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-util:jar.asc:1.3.3");
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java
index a606c3524..007af9448 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java
@@ -48,8 +48,8 @@ public static void main(String[] args) throws Exception {
System.out.println(ResolveTransitiveDependencies.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args));
- CloseableSession session =
- Booter.newRepositorySystemSession(system).build()) {
+ CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
+ .build()) {
Artifact artifact = new DefaultArtifact("org.apache.maven.resolver:maven-resolver-impl:1.3.3");
DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE);
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ReverseDependencyTree.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ReverseDependencyTree.java
index b730e4289..75841a987 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ReverseDependencyTree.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ReverseDependencyTree.java
@@ -45,7 +45,7 @@ public static void main(String[] args) throws Exception {
System.out.println(ReverseDependencyTree.class.getSimpleName());
try (RepositorySystem system = Booter.newRepositorySystem(Booter.selectFactory(args))) {
- try (CloseableSession session = Booter.newRepositorySystemSession(system)
+ try (CloseableSession session = Booter.newRepositorySystemSession(system, Booter.selectFs(args))
.withRepositoryListener(new ReverseTreeRepositoryListener())
.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true)
.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true)
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/Resolver.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/Resolver.java
index a3c9b8fe7..b44f4011b 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/Resolver.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/Resolver.java
@@ -20,7 +20,6 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import org.apache.maven.resolver.examples.util.Booter;
@@ -48,20 +47,23 @@
/**
*/
public class Resolver {
+ private final String[] args;
+
private final String remoteRepository;
private final RepositorySystem repositorySystem;
private final LocalRepository localRepository;
- public Resolver(String factory, String remoteRepository, String localRepository) {
+ public Resolver(String[] args, String remoteRepository, String localRepository) {
+ this.args = args;
this.remoteRepository = remoteRepository;
- this.repositorySystem = Booter.newRepositorySystem(factory);
+ this.repositorySystem = Booter.newRepositorySystem(Booter.selectFactory(args));
this.localRepository = new LocalRepository(localRepository);
}
private RepositorySystemSession newSession() {
- return Booter.newRepositorySystemSession(repositorySystem)
+ return Booter.newRepositorySystemSession(repositorySystem, Booter.selectFs(args))
.withLocalRepositories(localRepository)
.setRepositoryListener(null)
.setTransferListener(null)
@@ -123,13 +125,9 @@ public void deploy(Artifact artifact, Artifact pom, String remoteRepository) thr
}
private void displayTree(DependencyNode node, StringBuilder sb) {
- try {
- ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
- PrintStream ps = new PrintStream(os, true, StandardCharsets.UTF_8.name());
- node.accept(new DependencyGraphDumper(ps::println));
- sb.append(os);
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
+ ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
+ PrintStream ps = new PrintStream(os, true, StandardCharsets.UTF_8);
+ node.accept(new DependencyGraphDumper(ps::println));
+ sb.append(os);
}
}
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/ResolverDemo.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/ResolverDemo.java
index 889161b93..7c0e70a46 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/ResolverDemo.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/resolver/ResolverDemo.java
@@ -21,7 +21,6 @@
import java.io.File;
import java.util.List;
-import org.apache.maven.resolver.examples.util.Booter;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.deployment.DeploymentException;
@@ -38,8 +37,7 @@ public static void main(String[] args) throws Exception {
System.out.println("------------------------------------------------------------");
System.out.println(ResolverDemo.class.getSimpleName());
- Resolver resolver = new Resolver(
- Booter.selectFactory(args), "https://repo.maven.apache.org/maven2/", "target/resolver-demo-repo");
+ Resolver resolver = new Resolver(args, "https://repo.maven.apache.org/maven2/", "target/resolver-demo-repo");
ResolverResult result = resolver.resolve("junit", "junit", "4.13.2");
System.out.println("Result:");
@@ -48,9 +46,9 @@ public static void main(String[] args) throws Exception {
System.out.println("root=" + result.getRoot());
}
- public void resolve(final String factory) throws DependencyResolutionException {
+ public void resolve(String[] args) throws DependencyResolutionException {
Resolver resolver =
- new Resolver(factory, "http://localhost:8081/nexus/content/groups/public", "target/aether-repo");
+ new Resolver(args, "http://localhost:8081/nexus/content/groups/public", "target/aether-repo");
ResolverResult result = resolver.resolve("com.mycompany.app", "super-app", "1.0");
@@ -67,9 +65,9 @@ public void resolve(final String factory) throws DependencyResolutionException {
String classpath = result.getResolvedClassPath();
}
- public void installAndDeploy(final String factory) throws InstallationException, DeploymentException {
+ public void installAndDeploy(String[] args) throws InstallationException, DeploymentException {
Resolver resolver =
- new Resolver(factory, "http://localhost:8081/nexus/content/groups/public", "target/aether-repo");
+ new Resolver(args, "http://localhost:8081/nexus/content/groups/public", "target/aether-repo");
Artifact artifact = new DefaultArtifact("com.mycompany.super", "super-core", "jar", "0.1-SNAPSHOT");
artifact = artifact.setFile(new File("jar-from-whatever-process.jar"));
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
index c88016b56..673b39839 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
@@ -18,12 +18,15 @@
*/
package org.apache.maven.resolver.examples.util;
+import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import com.google.common.jimfs.Configuration;
+import com.google.common.jimfs.Jimfs;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
@@ -36,36 +39,58 @@
* A helper to boot the repository system and a repository system session.
*/
public class Booter {
- public static final String SUPPLIER = "supplier";
+ public static final String FACTORY_SUPPLIER = "supplier";
- public static final String SISU = "sisu";
+ public static final String FACTORY_SISU = "sisu";
+
+ public static final String FS_DEFAULT = "default";
+
+ public static final String FS_JIMFS = "jimfs";
public static final DependencyGraphDumper DUMPER_SOUT = new DependencyGraphDumper(System.out::println);
public static String selectFactory(String[] args) {
if (args == null || args.length == 0) {
- return SUPPLIER;
+ return FACTORY_SUPPLIER;
} else {
return args[0];
}
}
- public static RepositorySystem newRepositorySystem(final String factory) {
- switch (factory) {
- case SUPPLIER:
- return org.apache.maven.resolver.examples.supplier.SupplierRepositorySystemFactory
- .newRepositorySystem();
- case SISU:
- return org.apache.maven.resolver.examples.sisu.SisuRepositorySystemFactory.newRepositorySystem();
- default:
- throw new IllegalArgumentException("Unknown factory: " + factory);
+ public static String selectFs(String[] args) {
+ if (args == null || args.length < 2) {
+ return FS_DEFAULT;
+ } else {
+ return args[1];
}
}
- public static SessionBuilder newRepositorySystemSession(RepositorySystem system) {
+ public static RepositorySystem newRepositorySystem(final String factory) {
+ System.out.println("Using factory: " + factory);
+ return switch (factory) {
+ case FACTORY_SUPPLIER -> org.apache.maven.resolver.examples.supplier.SupplierRepositorySystemFactory
+ .newRepositorySystem();
+ case FACTORY_SISU -> org.apache.maven.resolver.examples.sisu.SisuRepositorySystemFactory
+ .newRepositorySystem();
+ default -> throw new IllegalArgumentException("Unknown factory: " + factory);
+ };
+ }
+
+ public static SessionBuilder newRepositorySystemSession(RepositorySystem system, String fs) {
+ System.out.println("Using FS: " + fs);
+ boolean close;
+ Path localRepository;
+ if (FS_JIMFS.equals(fs)) {
+ close = true;
+ localRepository = Jimfs.newFileSystem(Configuration.unix()).getPath("/demo");
+ } else {
+ close = false;
+ localRepository = Path.of("target/example-snippets-repo");
+ }
+ // Path localRepository = Path.of("target/example-snippets-repo");
SessionBuilder result = new SessionBuilderSupplier(system)
.get()
- .withLocalRepositoryBaseDirectories(Path.of("target/example-snippets-repo"))
+ .withLocalRepositoryBaseDirectories(localRepository)
.setRepositoryListener(new ConsoleRepositoryListener())
.setTransferListener(new ConsoleTransferListener())
.setConfigProperty("aether.generator.gpg.enabled", Boolean.TRUE.toString())
@@ -73,12 +98,21 @@ public static SessionBuilder newRepositorySystemSession(RepositorySystem system)
"aether.generator.gpg.keyFilePath",
Paths.get("src/main/resources/alice.key")
.toAbsolutePath()
- .toString())
- .setConfigProperty("aether.syncContext.named.factory", "noop");
+ .toString());
// uncomment to generate dirty trees
// session.setDependencyGraphTransformer( null );
+ if (close) {
+ result.addOnSessionEndedHandler(() -> {
+ try {
+ localRepository.getFileSystem().close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ });
+ }
+
return result;
}
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/test/java/org/apache/maven/resolver/examples/AllResolverDemosTest.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/test/java/org/apache/maven/resolver/examples/AllResolverDemosTest.java
index 125ccf998..2c4dd66d8 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/test/java/org/apache/maven/resolver/examples/AllResolverDemosTest.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/test/java/org/apache/maven/resolver/examples/AllResolverDemosTest.java
@@ -18,20 +18,26 @@
*/
package org.apache.maven.resolver.examples;
+import java.util.stream.Stream;
+
import org.apache.maven.resolver.examples.util.Booter;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Runs all demos at once as part of UT.
*/
public class AllResolverDemosTest {
- @Test
- void supplier() throws Exception {
- AllResolverDemos.main(new String[] {Booter.SUPPLIER});
+ private static Stream arguments() {
+ return Stream.of(
+ Arguments.of(Booter.FACTORY_SUPPLIER, Booter.FS_DEFAULT),
+ Arguments.of(Booter.FACTORY_SISU, Booter.FS_JIMFS));
}
- @Test
- void sisu() throws Exception {
- AllResolverDemos.main(new String[] {Booter.SISU});
+ @ParameterizedTest
+ @MethodSource("arguments")
+ void runDemos(String factory, String fs) throws Exception {
+ AllResolverDemos.main(new String[] {factory, fs});
}
}
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/FileUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/FileUtils.java
index 52e2348f5..4e4e14b13 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/FileUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/FileUtils.java
@@ -125,8 +125,9 @@ public static CollocatedTempFile newTempFile(Path file) throws IOException {
+ Long.toUnsignedString(ThreadLocalRandom.current().nextLong()) + ".tmp");
return new CollocatedTempFile() {
private final AtomicBoolean wantsMove = new AtomicBoolean(false);
- private final StandardCopyOption copyOption =
- FileUtils.ATOMIC_MOVE ? StandardCopyOption.ATOMIC_MOVE : StandardCopyOption.REPLACE_EXISTING;
+ private final StandardCopyOption[] copyOption = FileUtils.ATOMIC_MOVE
+ ? new StandardCopyOption[] {StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING}
+ : new StandardCopyOption[] {StandardCopyOption.REPLACE_EXISTING};
@Override
public Path getPath() {