1 package org.eclipse.aether.connector.basic;
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 static java.util.Objects.requireNonNull;
26
27 import org.eclipse.aether.RepositorySystemSession;
28 import org.eclipse.aether.repository.RemoteRepository;
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.FileProcessor;
35 import org.eclipse.aether.spi.locator.Service;
36 import org.eclipse.aether.spi.locator.ServiceLocator;
37 import org.eclipse.aether.transfer.NoRepositoryConnectorException;
38
39
40
41
42
43
44 @Named( "basic" )
45 public final class BasicRepositoryConnectorFactory
46 implements RepositoryConnectorFactory, Service
47 {
48 private TransporterProvider transporterProvider;
49
50 private RepositoryLayoutProvider layoutProvider;
51
52 private ChecksumPolicyProvider checksumPolicyProvider;
53
54 private FileProcessor fileProcessor;
55
56 private float priority;
57
58
59
60
61
62
63 public BasicRepositoryConnectorFactory()
64 {
65
66 }
67
68 @Inject
69 BasicRepositoryConnectorFactory( TransporterProvider transporterProvider, RepositoryLayoutProvider layoutProvider,
70 ChecksumPolicyProvider checksumPolicyProvider, FileProcessor fileProcessor )
71 {
72 setTransporterProvider( transporterProvider );
73 setRepositoryLayoutProvider( layoutProvider );
74 setChecksumPolicyProvider( checksumPolicyProvider );
75 setFileProcessor( fileProcessor );
76 }
77
78 public void initService( ServiceLocator locator )
79 {
80 setTransporterProvider( locator.getService( TransporterProvider.class ) );
81 setRepositoryLayoutProvider( locator.getService( RepositoryLayoutProvider.class ) );
82 setChecksumPolicyProvider( locator.getService( ChecksumPolicyProvider.class ) );
83 setFileProcessor( locator.getService( FileProcessor.class ) );
84 }
85
86
87
88
89
90
91
92 public BasicRepositoryConnectorFactory setTransporterProvider( TransporterProvider transporterProvider )
93 {
94 this.transporterProvider = requireNonNull( transporterProvider, "transporter provider cannot be null" );
95 return this;
96 }
97
98
99
100
101
102
103
104 public BasicRepositoryConnectorFactory setRepositoryLayoutProvider( RepositoryLayoutProvider layoutProvider )
105 {
106 this.layoutProvider = requireNonNull( layoutProvider, "repository layout provider cannot be null" );
107 return this;
108 }
109
110
111
112
113
114
115
116 public BasicRepositoryConnectorFactory setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider )
117 {
118 this.checksumPolicyProvider = requireNonNull(
119 checksumPolicyProvider, "checksum policy provider cannot be null" );
120 return this;
121 }
122
123
124
125
126
127
128
129 public BasicRepositoryConnectorFactory setFileProcessor( FileProcessor fileProcessor )
130 {
131 this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
132 return this;
133 }
134
135 public float getPriority()
136 {
137 return priority;
138 }
139
140
141
142
143
144
145
146 public BasicRepositoryConnectorFactory setPriority( float priority )
147 {
148 this.priority = priority;
149 return this;
150 }
151
152 public RepositoryConnector newInstance( RepositorySystemSession session, RemoteRepository repository )
153 throws NoRepositoryConnectorException
154 {
155 return new BasicRepositoryConnector( session, repository, transporterProvider, layoutProvider,
156 checksumPolicyProvider, fileProcessor );
157 }
158
159 }