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.RepositorySystemSession;
28 import org.eclipse.aether.collection.CollectRequest;
29 import org.eclipse.aether.collection.CollectResult;
30 import org.eclipse.aether.collection.DependencyCollectionException;
31 import org.eclipse.aether.impl.DependencyCollector;
32 import org.eclipse.aether.util.ConfigUtils;
33
34 import static java.util.Objects.requireNonNull;
35
36
37
38
39 @Singleton
40 @Named
41 public class DefaultDependencyCollector implements DependencyCollector {
42 private static final String CONFIG_PROP_COLLECTOR_IMPL = "aether.dependencyCollector.impl";
43
44 private static final String DEFAULT_COLLECTOR_IMPL =
45 org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.NAME;
46
47 private final Map<String, DependencyCollectorDelegate> delegates;
48
49 @Inject
50 public DefaultDependencyCollector(Map<String, DependencyCollectorDelegate> delegates) {
51 this.delegates = requireNonNull(delegates);
52 }
53
54 @Override
55 public CollectResult collectDependencies(RepositorySystemSession session, CollectRequest request)
56 throws DependencyCollectionException {
57 String delegateName = ConfigUtils.getString(session, DEFAULT_COLLECTOR_IMPL, CONFIG_PROP_COLLECTOR_IMPL);
58 DependencyCollectorDelegate delegate = delegates.get(delegateName);
59 if (delegate == null) {
60 throw new IllegalArgumentException(
61 "Unknown collector impl: '" + delegateName + "', known implementations are " + delegates.keySet());
62 }
63 return delegate.collectDependencies(session, request);
64 }
65 }