1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.apache;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23
24 import org.eclipse.aether.RepositorySystemSession;
25 import org.eclipse.aether.repository.RemoteRepository;
26 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractor;
27 import org.eclipse.aether.spi.connector.transport.http.HttpTransporter;
28 import org.eclipse.aether.spi.connector.transport.http.HttpTransporterFactory;
29 import org.eclipse.aether.spi.io.PathProcessor;
30 import org.eclipse.aether.transfer.NoTransporterException;
31
32 import static java.util.Objects.requireNonNull;
33
34
35
36
37
38 @Named(ApacheTransporterFactory.NAME)
39 public final class ApacheTransporterFactory implements HttpTransporterFactory {
40 public static final String NAME = "apache";
41
42 private float priority = 5.0f;
43
44 private final ChecksumExtractor checksumExtractor;
45
46 private final PathProcessor pathProcessor;
47
48 @Inject
49 public ApacheTransporterFactory(ChecksumExtractor checksumExtractor, PathProcessor pathProcessor) {
50 this.checksumExtractor = requireNonNull(checksumExtractor, "checksumExtractor");
51 this.pathProcessor = requireNonNull(pathProcessor, "pathProcessor");
52 }
53
54 @Override
55 public float getPriority() {
56 return priority;
57 }
58
59
60
61
62
63
64
65 public ApacheTransporterFactory setPriority(float priority) {
66 this.priority = priority;
67 return this;
68 }
69
70 @Override
71 public HttpTransporter newInstance(RepositorySystemSession session, RemoteRepository repository)
72 throws NoTransporterException {
73 requireNonNull(session, "session cannot be null");
74 requireNonNull(repository, "repository cannot be null");
75
76 if (!"http".equalsIgnoreCase(repository.getProtocol()) && !"https".equalsIgnoreCase(repository.getProtocol())) {
77 throw new NoTransporterException(repository);
78 }
79
80 return new ApacheTransporter(repository, session, checksumExtractor, pathProcessor);
81 }
82 }