1 package org.eclipse.aether.transport.http;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import javax.inject.Inject;
23 import javax.inject.Named;
24
25 import java.util.Collections;
26 import java.util.HashMap;
27 import java.util.Map;
28
29 import org.eclipse.aether.RepositorySystemSession;
30 import org.eclipse.aether.repository.RemoteRepository;
31 import org.eclipse.aether.spi.connector.transport.Transporter;
32 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
33 import org.eclipse.aether.transfer.NoTransporterException;
34
35 import static java.util.Objects.requireNonNull;
36
37
38
39
40
41 @Named( "http" )
42 public final class HttpTransporterFactory
43 implements TransporterFactory
44 {
45 private static final Map<String, ChecksumExtractor> EXTRACTORS;
46
47 static
48 {
49 HashMap<String, ChecksumExtractor> map = new HashMap<>();
50 map.put( Nexus2ChecksumExtractor.NAME, new Nexus2ChecksumExtractor() );
51 map.put( XChecksumChecksumExtractor.NAME, new XChecksumChecksumExtractor() );
52 EXTRACTORS = Collections.unmodifiableMap( map );
53 }
54
55 private float priority = 5.0f;
56
57 private final Map<String, ChecksumExtractor> extractors;
58
59
60
61
62 @Deprecated
63 public HttpTransporterFactory()
64 {
65 this( EXTRACTORS );
66 }
67
68
69
70
71
72
73 @Inject
74 public HttpTransporterFactory( Map<String, ChecksumExtractor> extractors )
75 {
76 this.extractors = requireNonNull( extractors );
77 }
78
79 @Override
80 public float getPriority()
81 {
82 return priority;
83 }
84
85
86
87
88
89
90
91 public HttpTransporterFactory setPriority( float priority )
92 {
93 this.priority = priority;
94 return this;
95 }
96
97 @Override
98 public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
99 throws NoTransporterException
100 {
101 requireNonNull( session, "session cannot be null" );
102 requireNonNull( repository, "repository cannot be null" );
103
104 return new HttpTransporter( extractors, repository, session );
105 }
106
107 }