1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.connector.basic;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23
24 import java.util.Map;
25
26 import org.eclipse.aether.RepositorySystemSession;
27 import org.eclipse.aether.repository.RemoteRepository;
28 import org.eclipse.aether.spi.checksums.ProvidedChecksumsSource;
29 import org.eclipse.aether.spi.connector.RepositoryConnector;
30 import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
31 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider;
32 import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider;
33 import org.eclipse.aether.spi.connector.transport.TransporterProvider;
34 import org.eclipse.aether.spi.io.ChecksumProcessor;
35 import org.eclipse.aether.spi.io.PathProcessor;
36 import org.eclipse.aether.transfer.NoRepositoryConnectorException;
37
38 import static java.util.Objects.requireNonNull;
39
40
41
42
43
44
45 @Named(BasicRepositoryConnectorFactory.NAME)
46 public final class BasicRepositoryConnectorFactory implements RepositoryConnectorFactory {
47 public static final String NAME = "basic";
48 private final TransporterProvider transporterProvider;
49
50 private final RepositoryLayoutProvider layoutProvider;
51
52 private final ChecksumPolicyProvider checksumPolicyProvider;
53
54 private final PathProcessor pathProcessor;
55
56 private final ChecksumProcessor checksumProcessor;
57
58 private final Map<String, ProvidedChecksumsSource> providedChecksumsSources;
59
60 private float priority;
61
62 @Inject
63 public BasicRepositoryConnectorFactory(
64 TransporterProvider transporterProvider,
65 RepositoryLayoutProvider layoutProvider,
66 ChecksumPolicyProvider checksumPolicyProvider,
67 PathProcessor pathProcessor,
68 ChecksumProcessor checksumProcessor,
69 Map<String, ProvidedChecksumsSource> providedChecksumsSources) {
70 this.transporterProvider = requireNonNull(transporterProvider, "transporter provider cannot be null");
71 this.layoutProvider = requireNonNull(layoutProvider, "repository layout provider cannot be null");
72 this.checksumPolicyProvider = requireNonNull(checksumPolicyProvider, "checksum policy provider cannot be null");
73 this.pathProcessor = requireNonNull(pathProcessor, "path processor cannot be null");
74 this.checksumProcessor = requireNonNull(checksumProcessor, "checksum processor cannot be null");
75 this.providedChecksumsSources =
76 requireNonNull(providedChecksumsSources, "provided checksum sources cannot be null");
77 }
78
79 @Override
80 public float getPriority() {
81 return priority;
82 }
83
84
85
86
87
88
89
90 public BasicRepositoryConnectorFactory setPriority(float priority) {
91 this.priority = priority;
92 return this;
93 }
94
95 @Override
96 public RepositoryConnector newInstance(RepositorySystemSession session, RemoteRepository repository)
97 throws NoRepositoryConnectorException {
98 requireNonNull(session, "session cannot be null");
99 requireNonNull(repository, "repository cannot be null");
100
101 return new BasicRepositoryConnector(
102 session,
103 repository,
104 transporterProvider,
105 layoutProvider,
106 checksumPolicyProvider,
107 pathProcessor,
108 checksumProcessor,
109 providedChecksumsSources);
110 }
111 }