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( checksumPolicyProvider, "checksum policy provider cannot be null" );
119 return this;
120 }
121
122
123
124
125
126
127
128 public BasicRepositoryConnectorFactory setFileProcessor( FileProcessor fileProcessor )
129 {
130 this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
131 return this;
132 }
133
134 public float getPriority()
135 {
136 return priority;
137 }
138
139
140
141
142
143
144
145 public BasicRepositoryConnectorFactory setPriority( float priority )
146 {
147 this.priority = priority;
148 return this;
149 }
150
151 public RepositoryConnector newInstance( RepositorySystemSession session, RemoteRepository repository )
152 throws NoRepositoryConnectorException
153 {
154 return new BasicRepositoryConnector( session, repository, transporterProvider, layoutProvider,
155 checksumPolicyProvider, fileProcessor );
156 }
157
158 }