1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.impl.standalone;
20
21 import java.util.List;
22 import java.util.Map;
23
24 import org.apache.maven.api.annotations.Nullable;
25 import org.apache.maven.api.di.Named;
26 import org.apache.maven.api.di.Provides;
27 import org.apache.maven.impl.resolver.validator.MavenValidatorFactory;
28 import org.eclipse.aether.RepositoryListener;
29 import org.eclipse.aether.RepositorySystem;
30 import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
31 import org.eclipse.aether.impl.ArtifactDescriptorReader;
32 import org.eclipse.aether.impl.ArtifactResolver;
33 import org.eclipse.aether.impl.DependencyCollector;
34 import org.eclipse.aether.impl.Deployer;
35 import org.eclipse.aether.impl.Installer;
36 import org.eclipse.aether.impl.LocalRepositoryProvider;
37 import org.eclipse.aether.impl.MetadataGeneratorFactory;
38 import org.eclipse.aether.impl.MetadataResolver;
39 import org.eclipse.aether.impl.OfflineController;
40 import org.eclipse.aether.impl.RemoteRepositoryFilterManager;
41 import org.eclipse.aether.impl.RemoteRepositoryManager;
42 import org.eclipse.aether.impl.RepositoryConnectorProvider;
43 import org.eclipse.aether.impl.RepositoryEventDispatcher;
44 import org.eclipse.aether.impl.RepositorySystemLifecycle;
45 import org.eclipse.aether.impl.RepositorySystemValidator;
46 import org.eclipse.aether.impl.UpdateCheckManager;
47 import org.eclipse.aether.impl.UpdatePolicyAnalyzer;
48 import org.eclipse.aether.impl.VersionRangeResolver;
49 import org.eclipse.aether.impl.VersionResolver;
50 import org.eclipse.aether.internal.impl.DefaultArtifactPredicateFactory;
51 import org.eclipse.aether.internal.impl.DefaultArtifactResolver;
52 import org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider;
53 import org.eclipse.aether.internal.impl.DefaultChecksumProcessor;
54 import org.eclipse.aether.internal.impl.DefaultDeployer;
55 import org.eclipse.aether.internal.impl.DefaultInstaller;
56 import org.eclipse.aether.internal.impl.DefaultLocalPathComposer;
57 import org.eclipse.aether.internal.impl.DefaultLocalPathPrefixComposerFactory;
58 import org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider;
59 import org.eclipse.aether.internal.impl.DefaultMetadataResolver;
60 import org.eclipse.aether.internal.impl.DefaultOfflineController;
61 import org.eclipse.aether.internal.impl.DefaultPathProcessor;
62 import org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager;
63 import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider;
64 import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher;
65 import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider;
66 import org.eclipse.aether.internal.impl.DefaultRepositorySystem;
67 import org.eclipse.aether.internal.impl.DefaultRepositorySystemLifecycle;
68 import org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator;
69 import org.eclipse.aether.internal.impl.DefaultTrackingFileManager;
70 import org.eclipse.aether.internal.impl.DefaultTransporterProvider;
71 import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager;
72 import org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer;
73 import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory;
74 import org.eclipse.aether.internal.impl.LocalPathComposer;
75 import org.eclipse.aether.internal.impl.LocalPathPrefixComposerFactory;
76 import org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory;
77 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
78 import org.eclipse.aether.internal.impl.TrackingFileManager;
79 import org.eclipse.aether.internal.impl.checksum.DefaultChecksumAlgorithmFactorySelector;
80 import org.eclipse.aether.internal.impl.checksum.Md5ChecksumAlgorithmFactory;
81 import org.eclipse.aether.internal.impl.checksum.Sha1ChecksumAlgorithmFactory;
82 import org.eclipse.aether.internal.impl.checksum.Sha256ChecksumAlgorithmFactory;
83 import org.eclipse.aether.internal.impl.checksum.Sha512ChecksumAlgorithmFactory;
84 import org.eclipse.aether.internal.impl.checksum.SparseDirectoryTrustedChecksumsSource;
85 import org.eclipse.aether.internal.impl.checksum.SummaryFileTrustedChecksumsSource;
86 import org.eclipse.aether.internal.impl.checksum.TrustedToProvidedChecksumsSourceAdapter;
87 import org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector;
88 import org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate;
89 import org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector;
90 import org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector;
91 import org.eclipse.aether.internal.impl.filter.DefaultRemoteRepositoryFilterManager;
92 import org.eclipse.aether.internal.impl.filter.FilteringPipelineRepositoryConnectorFactory;
93 import org.eclipse.aether.internal.impl.filter.GroupIdRemoteRepositoryFilterSource;
94 import org.eclipse.aether.internal.impl.filter.PrefixesRemoteRepositoryFilterSource;
95 import org.eclipse.aether.internal.impl.offline.OfflinePipelineRepositoryConnectorFactory;
96 import org.eclipse.aether.internal.impl.synccontext.DefaultSyncContextFactory;
97 import org.eclipse.aether.internal.impl.synccontext.named.NameMapper;
98 import org.eclipse.aether.internal.impl.synccontext.named.NameMappers;
99 import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactory;
100 import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactoryImpl;
101 import org.eclipse.aether.internal.impl.transport.http.DefaultChecksumExtractor;
102 import org.eclipse.aether.internal.impl.transport.http.Nx2ChecksumExtractor;
103 import org.eclipse.aether.internal.impl.transport.http.XChecksumExtractor;
104 import org.eclipse.aether.named.NamedLockFactory;
105 import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
106 import org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory;
107 import org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory;
108 import org.eclipse.aether.named.providers.NoopNamedLockFactory;
109 import org.eclipse.aether.spi.artifact.ArtifactPredicateFactory;
110 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory;
111 import org.eclipse.aether.spi.artifact.generator.ArtifactGeneratorFactory;
112 import org.eclipse.aether.spi.checksums.ProvidedChecksumsSource;
113 import org.eclipse.aether.spi.checksums.TrustedChecksumsSource;
114 import org.eclipse.aether.spi.connector.PipelineRepositoryConnectorFactory;
115 import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
116 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory;
117 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactorySelector;
118 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider;
119 import org.eclipse.aether.spi.connector.filter.RemoteRepositoryFilterSource;
120 import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory;
121 import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider;
122 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
123 import org.eclipse.aether.spi.connector.transport.TransporterProvider;
124 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractor;
125 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractorStrategy;
126 import org.eclipse.aether.spi.io.ChecksumProcessor;
127 import org.eclipse.aether.spi.io.PathProcessor;
128 import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
129 import org.eclipse.aether.spi.resolution.ArtifactResolverPostProcessor;
130 import org.eclipse.aether.spi.synccontext.SyncContextFactory;
131 import org.eclipse.aether.spi.validator.ValidatorFactory;
132
133
134
135
136
137
138 @SuppressWarnings({"unused", "checkstyle:ParameterNumber"})
139 public class RepositorySystemSupplier {
140
141 @Provides
142 static MetadataResolver newMetadataResolver(
143 RepositoryEventDispatcher repositoryEventDispatcher,
144 UpdateCheckManager updateCheckManager,
145 RepositoryConnectorProvider repositoryConnectorProvider,
146 RemoteRepositoryManager remoteRepositoryManager,
147 SyncContextFactory syncContextFactory,
148 OfflineController offlineController,
149 RemoteRepositoryFilterManager remoteRepositoryFilterManager,
150 PathProcessor pathProcessor) {
151 return new DefaultMetadataResolver(
152 repositoryEventDispatcher,
153 updateCheckManager,
154 repositoryConnectorProvider,
155 remoteRepositoryManager,
156 syncContextFactory,
157 offlineController,
158 remoteRepositoryFilterManager,
159 pathProcessor);
160 }
161
162 @Provides
163 static RepositoryEventDispatcher newRepositoryEventDispatcher(@Nullable Map<String, RepositoryListener> listeners) {
164 return new DefaultRepositoryEventDispatcher(listeners != null ? listeners : Map.of());
165 }
166
167 @Provides
168 static UpdateCheckManager newUpdateCheckManager(
169 TrackingFileManager trackingFileManager,
170 UpdatePolicyAnalyzer updatePolicyAnalyzer,
171 PathProcessor pathProcessor) {
172 return new DefaultUpdateCheckManager(trackingFileManager, updatePolicyAnalyzer, pathProcessor);
173 }
174
175 @Provides
176 static TrackingFileManager newTrackingFileManager() {
177 return new DefaultTrackingFileManager();
178 }
179
180 @Provides
181 static UpdatePolicyAnalyzer newUpdatePolicyAnalyzer() {
182 return new DefaultUpdatePolicyAnalyzer();
183 }
184
185 @Provides
186 static RepositoryConnectorProvider newRepositoryConnectorProvider(
187 Map<String, RepositoryConnectorFactory> connectorFactories,
188 Map<String, PipelineRepositoryConnectorFactory> pipelineConnectorFactories) {
189 return new DefaultRepositoryConnectorProvider(connectorFactories, pipelineConnectorFactories);
190 }
191
192 @Named("basic")
193 @Provides
194 static BasicRepositoryConnectorFactory newBasicRepositoryConnectorFactory(
195 TransporterProvider transporterProvider,
196 RepositoryLayoutProvider layoutProvider,
197 ChecksumPolicyProvider checksumPolicyProvider,
198 ChecksumProcessor checksumProcessor,
199 Map<String, ProvidedChecksumsSource> providedChecksumsSources) {
200 return new BasicRepositoryConnectorFactory(
201 transporterProvider,
202 layoutProvider,
203 checksumPolicyProvider,
204 checksumProcessor,
205 providedChecksumsSources);
206 }
207
208 @Named(OfflinePipelineRepositoryConnectorFactory.NAME)
209 @Provides
210 static OfflinePipelineRepositoryConnectorFactory newOfflinePipelineConnectorFactory(
211 OfflineController offlineController) {
212 return new OfflinePipelineRepositoryConnectorFactory(offlineController);
213 }
214
215 @Named(FilteringPipelineRepositoryConnectorFactory.NAME)
216 @Provides
217 static FilteringPipelineRepositoryConnectorFactory newFilteringPipelineConnectorFactory(
218 RemoteRepositoryFilterManager remoteRepositoryFilterManager) {
219 return new FilteringPipelineRepositoryConnectorFactory(remoteRepositoryFilterManager);
220 }
221
222 @Provides
223 static RepositoryLayoutProvider newRepositoryLayoutProvider(Map<String, RepositoryLayoutFactory> layoutFactories) {
224 return new DefaultRepositoryLayoutProvider(layoutFactories);
225 }
226
227 @Provides
228 @Named(Maven2RepositoryLayoutFactory.NAME)
229 static Maven2RepositoryLayoutFactory newMaven2RepositoryLayoutFactory(
230 ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector,
231 ArtifactPredicateFactory artifactPredicateFactory) {
232 return new Maven2RepositoryLayoutFactory(checksumAlgorithmFactorySelector, artifactPredicateFactory);
233 }
234
235 @Provides
236 static SyncContextFactory newSyncContextFactory(NamedLockFactoryAdapterFactory namedLockFactoryAdapterFactory) {
237 return new DefaultSyncContextFactory(namedLockFactoryAdapterFactory);
238 }
239
240 @Provides
241 static OfflineController newOfflineController() {
242 return new DefaultOfflineController();
243 }
244
245 @Provides
246 static RemoteRepositoryFilterManager newRemoteRepositoryFilterManager(
247 Map<String, RemoteRepositoryFilterSource> sources) {
248 return new DefaultRemoteRepositoryFilterManager(sources);
249 }
250
251 @Provides
252 @Named(GroupIdRemoteRepositoryFilterSource.NAME)
253 static GroupIdRemoteRepositoryFilterSource newGroupIdRemoteRepositoryFilterSource(
254 RepositorySystemLifecycle repositorySystemLifecycle) {
255 return new GroupIdRemoteRepositoryFilterSource(repositorySystemLifecycle);
256 }
257
258 @Provides
259 @Named(PrefixesRemoteRepositoryFilterSource.NAME)
260 static PrefixesRemoteRepositoryFilterSource newPrefixesRemoteRepositoryFilterSource(
261 RepositoryLayoutProvider repositoryLayoutProvider) {
262 return new PrefixesRemoteRepositoryFilterSource(repositoryLayoutProvider);
263 }
264
265 @Provides
266 static PathProcessor newPathProcessor() {
267 return new DefaultPathProcessor();
268 }
269
270 @Provides
271 static List<ValidatorFactory> newValidatorFactories() {
272 return List.of(new MavenValidatorFactory());
273 }
274
275 @Provides
276 static RepositorySystemValidator newRepositorySystemValidator(List<ValidatorFactory> validatorFactories) {
277 return new DefaultRepositorySystemValidator(validatorFactories);
278 }
279
280 @Provides
281 static RepositorySystem newRepositorySystem(
282 VersionResolver versionResolver,
283 VersionRangeResolver versionRangeResolver,
284 ArtifactResolver artifactResolver,
285 MetadataResolver metadataResolver,
286 ArtifactDescriptorReader artifactDescriptorReader,
287 DependencyCollector dependencyCollector,
288 Installer installer,
289 Deployer deployer,
290 LocalRepositoryProvider localRepositoryProvider,
291 SyncContextFactory syncContextFactory,
292 RemoteRepositoryManager remoteRepositoryManager,
293 RepositorySystemLifecycle repositorySystemLifecycle,
294 @Nullable Map<String, ArtifactDecoratorFactory> artifactDecoratorFactories,
295 RepositorySystemValidator repositorySystemValidator) {
296 return new DefaultRepositorySystem(
297 versionResolver,
298 versionRangeResolver,
299 artifactResolver,
300 metadataResolver,
301 artifactDescriptorReader,
302 dependencyCollector,
303 installer,
304 deployer,
305 localRepositoryProvider,
306 syncContextFactory,
307 remoteRepositoryManager,
308 repositorySystemLifecycle,
309 artifactDecoratorFactories != null ? artifactDecoratorFactories : Map.of(),
310 repositorySystemValidator);
311 }
312
313 @Provides
314 static RemoteRepositoryManager newRemoteRepositoryManager(
315 UpdatePolicyAnalyzer updatePolicyAnalyzer, ChecksumPolicyProvider checksumPolicyProvider) {
316 return new DefaultRemoteRepositoryManager(updatePolicyAnalyzer, checksumPolicyProvider);
317 }
318
319 @Provides
320 static ChecksumPolicyProvider newChecksumPolicyProvider() {
321 return new DefaultChecksumPolicyProvider();
322 }
323
324 @Provides
325 static NamedLockFactoryAdapterFactory newNamedLockFactoryAdapterFactory(
326 Map<String, NamedLockFactory> factories,
327 Map<String, NameMapper> nameMappers,
328 RepositorySystemLifecycle lifecycle) {
329 return new NamedLockFactoryAdapterFactoryImpl(factories, nameMappers, lifecycle);
330 }
331
332 @Provides
333 @Named(FileLockNamedLockFactory.NAME)
334 static FileLockNamedLockFactory newFileLockNamedLockFactory() {
335 return new FileLockNamedLockFactory();
336 }
337
338 @Provides
339 @Named(LocalReadWriteLockNamedLockFactory.NAME)
340 static LocalReadWriteLockNamedLockFactory newLocalReadWriteLockNamedLockFactory() {
341 return new LocalReadWriteLockNamedLockFactory();
342 }
343
344 @Provides
345 @Named(LocalSemaphoreNamedLockFactory.NAME)
346 static LocalSemaphoreNamedLockFactory newLocalSemaphoreNamedLockFactory() {
347 return new LocalSemaphoreNamedLockFactory();
348 }
349
350 @Provides
351 @Named(NoopNamedLockFactory.NAME)
352 static NoopNamedLockFactory newNoopNamedLockFactory() {
353 return new NoopNamedLockFactory();
354 }
355
356 @Provides
357 @Named(NameMappers.STATIC_NAME)
358 static NameMapper staticNameMapper() {
359 return NameMappers.staticNameMapper();
360 }
361
362 @Provides
363 @Named(NameMappers.GAV_NAME)
364 static NameMapper gavNameMapper() {
365 return NameMappers.gavNameMapper();
366 }
367
368 @Provides
369 @Named(NameMappers.DISCRIMINATING_NAME)
370 static NameMapper discriminatingNameMapper() {
371 return NameMappers.discriminatingNameMapper();
372 }
373
374 @Provides
375 @Named(NameMappers.FILE_GAV_NAME)
376 static NameMapper fileGavNameMapper() {
377 return NameMappers.fileGavNameMapper();
378 }
379
380 @Provides
381 @Named(NameMappers.FILE_HGAV_NAME)
382 static NameMapper fileHashingGavNameMapper() {
383 return NameMappers.fileHashingGavNameMapper();
384 }
385
386 @Provides
387 static RepositorySystemLifecycle newRepositorySystemLifecycle() {
388 return new DefaultRepositorySystemLifecycle();
389 }
390
391 @Provides
392 static ArtifactResolver newArtifactResolver(
393 PathProcessor pathProcessor,
394 RepositoryEventDispatcher repositoryEventDispatcher,
395 VersionResolver versionResolver,
396 UpdateCheckManager updateCheckManager,
397 RepositoryConnectorProvider repositoryConnectorProvider,
398 RemoteRepositoryManager remoteRepositoryManager,
399 SyncContextFactory syncContextFactory,
400 OfflineController offlineController,
401 Map<String, ArtifactResolverPostProcessor> artifactResolverPostProcessors,
402 RemoteRepositoryFilterManager remoteRepositoryFilterManager) {
403 return new DefaultArtifactResolver(
404 pathProcessor,
405 repositoryEventDispatcher,
406 versionResolver,
407 updateCheckManager,
408 repositoryConnectorProvider,
409 remoteRepositoryManager,
410 syncContextFactory,
411 offlineController,
412 artifactResolverPostProcessors,
413 remoteRepositoryFilterManager);
414 }
415
416 @Provides
417 static DependencyCollector newDependencyCollector(Map<String, DependencyCollectorDelegate> delegates) {
418 return new DefaultDependencyCollector(delegates);
419 }
420
421 @Provides
422 @Named(BfDependencyCollector.NAME)
423 static BfDependencyCollector newBfDependencyCollector(
424 RemoteRepositoryManager remoteRepositoryManager,
425 ArtifactDescriptorReader artifactDescriptorReader,
426 VersionRangeResolver versionRangeResolver,
427 @Nullable Map<String, ArtifactDecoratorFactory> artifactDecoratorFactories) {
428 return new BfDependencyCollector(
429 remoteRepositoryManager,
430 artifactDescriptorReader,
431 versionRangeResolver,
432 artifactDecoratorFactories != null ? artifactDecoratorFactories : Map.of());
433 }
434
435 @Provides
436 @Named(DfDependencyCollector.NAME)
437 static DfDependencyCollector newDfDependencyCollector(
438 RemoteRepositoryManager remoteRepositoryManager,
439 ArtifactDescriptorReader artifactDescriptorReader,
440 VersionRangeResolver versionRangeResolver,
441 @Nullable Map<String, ArtifactDecoratorFactory> artifactDecoratorFactories) {
442 return new DfDependencyCollector(
443 remoteRepositoryManager,
444 artifactDescriptorReader,
445 versionRangeResolver,
446 artifactDecoratorFactories != null ? artifactDecoratorFactories : Map.of());
447 }
448
449 @Provides
450 static Installer newInstaller(
451 PathProcessor pathProcessor,
452 RepositoryEventDispatcher repositoryEventDispatcher,
453 @Nullable Map<String, ArtifactGeneratorFactory> artifactFactories,
454 Map<String, MetadataGeneratorFactory> metadataFactories,
455 SyncContextFactory syncContextFactory) {
456 return new DefaultInstaller(
457 pathProcessor,
458 repositoryEventDispatcher,
459 artifactFactories != null ? artifactFactories : Map.of(),
460 metadataFactories,
461 Map.of(),
462 syncContextFactory);
463 }
464
465 @Provides
466 static Deployer newDeployer(
467 PathProcessor pathProcessor,
468 RepositoryEventDispatcher repositoryEventDispatcher,
469 RepositoryConnectorProvider repositoryConnectorProvider,
470 RemoteRepositoryManager remoteRepositoryManager,
471 UpdateCheckManager updateCheckManager,
472 @Nullable Map<String, ArtifactGeneratorFactory> artifactFactories,
473 Map<String, MetadataGeneratorFactory> metadataFactories,
474 SyncContextFactory syncContextFactory,
475 OfflineController offlineController) {
476 return new DefaultDeployer(
477 pathProcessor,
478 repositoryEventDispatcher,
479 repositoryConnectorProvider,
480 remoteRepositoryManager,
481 updateCheckManager,
482 artifactFactories != null ? artifactFactories : Map.of(),
483 metadataFactories,
484 Map.of(),
485 syncContextFactory,
486 offlineController);
487 }
488
489 @Provides
490 static LocalRepositoryProvider newLocalRepositoryProvider(
491 Map<String, LocalRepositoryManagerFactory> localRepositoryManagerFactories) {
492 return new DefaultLocalRepositoryProvider(localRepositoryManagerFactories);
493 }
494
495 @Provides
496 @Named(EnhancedLocalRepositoryManagerFactory.NAME)
497 static EnhancedLocalRepositoryManagerFactory newEnhancedLocalRepositoryManagerFactory(
498 LocalPathComposer localPathComposer,
499 TrackingFileManager trackingFileManager,
500 LocalPathPrefixComposerFactory localPathPrefixComposerFactory) {
501 return new EnhancedLocalRepositoryManagerFactory(
502 localPathComposer, trackingFileManager, localPathPrefixComposerFactory);
503 }
504
505 @Provides
506 @Named(SimpleLocalRepositoryManagerFactory.NAME)
507 static SimpleLocalRepositoryManagerFactory newSimpleLocalRepositoryManagerFactory(
508 LocalPathComposer localPathComposer) {
509 return new SimpleLocalRepositoryManagerFactory(localPathComposer);
510 }
511
512 @Provides
513 static LocalPathComposer newLocalPathComposer() {
514 return new DefaultLocalPathComposer();
515 }
516
517 @Provides
518 static LocalPathPrefixComposerFactory newLocalPathPrefixComposerFactory() {
519 return new DefaultLocalPathPrefixComposerFactory();
520 }
521
522 @Provides
523 static TransporterProvider newTransportProvider(@Nullable Map<String, TransporterFactory> transporterFactories) {
524 return new DefaultTransporterProvider(transporterFactories != null ? transporterFactories : Map.of());
525 }
526
527 @Provides
528 static ChecksumProcessor newChecksumProcessor(PathProcessor pathProcessor) {
529 return new DefaultChecksumProcessor(pathProcessor);
530 }
531
532 @Provides
533 static ChecksumExtractor newChecksumExtractor(Map<String, ChecksumExtractorStrategy> strategies) {
534 return new DefaultChecksumExtractor(strategies);
535 }
536
537 @Provides
538 @Named(Nx2ChecksumExtractor.NAME)
539 static Nx2ChecksumExtractor newNx2ChecksumExtractor() {
540 return new Nx2ChecksumExtractor();
541 }
542
543 @Provides
544 @Named(XChecksumExtractor.NAME)
545 static XChecksumExtractor newXChecksumExtractor() {
546 return new XChecksumExtractor();
547 }
548
549 @Provides
550 @Named(TrustedToProvidedChecksumsSourceAdapter.NAME)
551 static TrustedToProvidedChecksumsSourceAdapter newTrustedToProvidedChecksumsSourceAdapter(
552 Map<String, TrustedChecksumsSource> trustedChecksumsSources) {
553 return new TrustedToProvidedChecksumsSourceAdapter(trustedChecksumsSources);
554 }
555
556 @Provides
557 @Named(SparseDirectoryTrustedChecksumsSource.NAME)
558 static SparseDirectoryTrustedChecksumsSource newSparseDirectoryTrustedChecksumsSource(
559 ChecksumProcessor checksumProcessor, LocalPathComposer localPathComposer) {
560 return new SparseDirectoryTrustedChecksumsSource(checksumProcessor, localPathComposer);
561 }
562
563 @Provides
564 @Named(SummaryFileTrustedChecksumsSource.NAME)
565 static SummaryFileTrustedChecksumsSource newSummaryFileTrustedChecksumsSource(
566 LocalPathComposer localPathComposer, RepositorySystemLifecycle repositorySystemLifecycle) {
567 return new SummaryFileTrustedChecksumsSource(localPathComposer, repositorySystemLifecycle);
568 }
569
570 @Provides
571 static ChecksumAlgorithmFactorySelector newChecksumAlgorithmFactorySelector(
572 Map<String, ChecksumAlgorithmFactory> factories) {
573 return new DefaultChecksumAlgorithmFactorySelector(factories);
574 }
575
576 @Provides
577 @Named(Md5ChecksumAlgorithmFactory.NAME)
578 static Md5ChecksumAlgorithmFactory newMd5ChecksumAlgorithmFactory() {
579 return new Md5ChecksumAlgorithmFactory();
580 }
581
582 @Provides
583 @Named(Sha1ChecksumAlgorithmFactory.NAME)
584 static Sha1ChecksumAlgorithmFactory newSh1ChecksumAlgorithmFactory() {
585 return new Sha1ChecksumAlgorithmFactory();
586 }
587
588 @Provides
589 @Named(Sha256ChecksumAlgorithmFactory.NAME)
590 static Sha256ChecksumAlgorithmFactory newSh256ChecksumAlgorithmFactory() {
591 return new Sha256ChecksumAlgorithmFactory();
592 }
593
594 @Provides
595 @Named(Sha512ChecksumAlgorithmFactory.NAME)
596 static Sha512ChecksumAlgorithmFactory newSh512ChecksumAlgorithmFactory() {
597 return new Sha512ChecksumAlgorithmFactory();
598 }
599
600 @Provides
601 static ArtifactPredicateFactory newArtifactPredicateFactory(
602 ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector) {
603 return new DefaultArtifactPredicateFactory(checksumAlgorithmFactorySelector);
604 }
605 }