1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.internal.impl.collect;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Map;
26
27 import org.eclipse.aether.ConfigurationProperties;
28 import org.eclipse.aether.RepositorySystemSession;
29 import org.eclipse.aether.collection.CollectRequest;
30 import org.eclipse.aether.collection.CollectResult;
31 import org.eclipse.aether.collection.DependencyCollectionException;
32 import org.eclipse.aether.impl.DependencyCollector;
33 import org.eclipse.aether.util.ConfigUtils;
34
35 import static java.util.Objects.requireNonNull;
36
37
38
39
40 @Singleton
41 @Named
42 public class DefaultDependencyCollector implements DependencyCollector {
43
44 public static final String CONFIG_PROPS_PREFIX = ConfigurationProperties.PREFIX_AETHER + "dependencyCollector.";
45
46
47
48
49
50
51
52
53
54
55
56
57
58 public static final String CONFIG_PROP_COLLECTOR_IMPL = CONFIG_PROPS_PREFIX + "impl";
59
60 public static final String DEFAULT_COLLECTOR_IMPL =
61 org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.NAME;
62
63 private final Map<String, DependencyCollectorDelegate> delegates;
64
65 @Inject
66 public DefaultDependencyCollector(Map<String, DependencyCollectorDelegate> delegates) {
67 this.delegates = requireNonNull(delegates);
68 }
69
70 @Override
71 public CollectResult collectDependencies(RepositorySystemSession session, CollectRequest request)
72 throws DependencyCollectionException {
73 String delegateName = ConfigUtils.getString(session, DEFAULT_COLLECTOR_IMPL, CONFIG_PROP_COLLECTOR_IMPL);
74 DependencyCollectorDelegate delegate = delegates.get(delegateName);
75 if (delegate == null) {
76 throw new IllegalArgumentException(
77 "Unknown collector impl: '" + delegateName + "', known implementations are " + delegates.keySet());
78 }
79 return delegate.collectDependencies(session, request);
80 }
81 }