1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.jetty;
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.transfer.NoTransporterException;
30
31 import static java.util.Objects.requireNonNull;
32
33
34
35
36
37
38 @Named(JettyTransporterFactory.NAME)
39 public final class JettyTransporterFactory implements HttpTransporterFactory {
40 public static final String NAME = "jetty";
41
42 private float priority = 15.0f;
43
44 private final ChecksumExtractor checksumExtractor;
45
46 @Inject
47 public JettyTransporterFactory(ChecksumExtractor checksumExtractor) {
48 this.checksumExtractor = requireNonNull(checksumExtractor, "checksumExtractor");
49 }
50
51 @Override
52 public float getPriority() {
53 return priority;
54 }
55
56 public JettyTransporterFactory setPriority(float priority) {
57 this.priority = priority;
58 return this;
59 }
60
61 @Override
62 public HttpTransporter newInstance(RepositorySystemSession session, RemoteRepository repository)
63 throws NoTransporterException {
64 requireNonNull(session, "session cannot be null");
65 requireNonNull(repository, "repository cannot be null");
66
67 if (!"http".equalsIgnoreCase(repository.getProtocol()) && !"https".equalsIgnoreCase(repository.getProtocol())) {
68 throw new NoTransporterException(repository);
69 }
70
71 return new JettyTransporter(session, repository, checksumExtractor);
72 }
73 }