Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -141,5 +141,10 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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:");
Expand All @@ -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");

Expand All @@ -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"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -36,49 +39,80 @@
* 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())
.setConfigProperty(
"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;
}

Expand Down
Loading