1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.resolver.examples.util;
20
21 import java.util.ArrayList;
22 import java.util.Collections;
23 import java.util.List;
24
25 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
26 import org.eclipse.aether.DefaultRepositorySystemSession;
27 import org.eclipse.aether.RepositorySystem;
28 import org.eclipse.aether.RepositorySystemSession;
29 import org.eclipse.aether.repository.LocalRepository;
30 import org.eclipse.aether.repository.RemoteRepository;
31
32
33
34
35 public class Booter {
36 public static final String SERVICE_LOCATOR = "serviceLocator";
37
38 public static final String GUICE = "guice";
39
40 public static final String SISU = "sisu";
41
42 public static String selectFactory(String[] args) {
43 if (args == null || args.length == 0) {
44 return SERVICE_LOCATOR;
45 } else {
46 return args[0];
47 }
48 }
49
50 public static RepositorySystem newRepositorySystem(final String factory) {
51 switch (factory) {
52 case SERVICE_LOCATOR:
53 return org.apache.maven.resolver.examples.manual.ManualRepositorySystemFactory.newRepositorySystem();
54 case GUICE:
55 return org.apache.maven.resolver.examples.guice.GuiceRepositorySystemFactory.newRepositorySystem();
56 case SISU:
57 return org.apache.maven.resolver.examples.sisu.SisuRepositorySystemFactory.newRepositorySystem();
58 default:
59 throw new IllegalArgumentException("Unknown factory: " + factory);
60 }
61 }
62
63 public static DefaultRepositorySystemSession newRepositorySystemSession(RepositorySystem system) {
64 DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
65
66 LocalRepository localRepo = new LocalRepository("target/local-repo");
67 session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
68
69 session.setTransferListener(new ConsoleTransferListener());
70 session.setRepositoryListener(new ConsoleRepositoryListener());
71
72
73
74
75 return session;
76 }
77
78 public static List<RemoteRepository> newRepositories(RepositorySystem system, RepositorySystemSession session) {
79 return new ArrayList<>(Collections.singletonList(newCentralRepository()));
80 }
81
82 private static RemoteRepository newCentralRepository() {
83 return new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2/").build();
84 }
85 }