1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.supplier;
20
21 import java.util.ArrayList;
22 import java.util.HashMap;
23 import java.util.LinkedHashMap;
24 import java.util.List;
25 import java.util.Map;
26 import java.util.concurrent.atomic.AtomicBoolean;
27 import java.util.function.Supplier;
28
29 import org.apache.maven.model.building.DefaultModelBuilderFactory;
30 import org.apache.maven.model.building.ModelBuilder;
31 import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader;
32 import org.apache.maven.repository.internal.DefaultModelCacheFactory;
33 import org.apache.maven.repository.internal.DefaultVersionRangeResolver;
34 import org.apache.maven.repository.internal.DefaultVersionResolver;
35 import org.apache.maven.repository.internal.MavenArtifactRelocationSource;
36 import org.apache.maven.repository.internal.ModelCacheFactory;
37 import org.apache.maven.repository.internal.PluginsMetadataGeneratorFactory;
38 import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
39 import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
40 import org.apache.maven.repository.internal.relocation.DistributionManagementArtifactRelocationSource;
41 import org.apache.maven.repository.internal.relocation.UserPropertiesArtifactRelocationSource;
42 import org.eclipse.aether.RepositoryListener;
43 import org.eclipse.aether.RepositorySystem;
44 import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
45 import org.eclipse.aether.impl.ArtifactDescriptorReader;
46 import org.eclipse.aether.impl.ArtifactResolver;
47 import org.eclipse.aether.impl.DependencyCollector;
48 import org.eclipse.aether.impl.Deployer;
49 import org.eclipse.aether.impl.Installer;
50 import org.eclipse.aether.impl.LocalRepositoryProvider;
51 import org.eclipse.aether.impl.MetadataGeneratorFactory;
52 import org.eclipse.aether.impl.MetadataResolver;
53 import org.eclipse.aether.impl.NamedLockFactorySelector;
54 import org.eclipse.aether.impl.OfflineController;
55 import org.eclipse.aether.impl.RemoteRepositoryFilterManager;
56 import org.eclipse.aether.impl.RemoteRepositoryManager;
57 import org.eclipse.aether.impl.RepositoryConnectorProvider;
58 import org.eclipse.aether.impl.RepositoryEventDispatcher;
59 import org.eclipse.aether.impl.RepositorySystemLifecycle;
60 import org.eclipse.aether.impl.RepositorySystemValidator;
61 import org.eclipse.aether.impl.UpdateCheckManager;
62 import org.eclipse.aether.impl.UpdatePolicyAnalyzer;
63 import org.eclipse.aether.impl.VersionRangeResolver;
64 import org.eclipse.aether.impl.VersionResolver;
65 import org.eclipse.aether.internal.impl.DefaultArtifactPredicateFactory;
66 import org.eclipse.aether.internal.impl.DefaultArtifactResolver;
67 import org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider;
68 import org.eclipse.aether.internal.impl.DefaultChecksumProcessor;
69 import org.eclipse.aether.internal.impl.DefaultDeployer;
70 import org.eclipse.aether.internal.impl.DefaultInstaller;
71 import org.eclipse.aether.internal.impl.DefaultLocalPathComposer;
72 import org.eclipse.aether.internal.impl.DefaultLocalPathPrefixComposerFactory;
73 import org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider;
74 import org.eclipse.aether.internal.impl.DefaultMetadataResolver;
75 import org.eclipse.aether.internal.impl.DefaultOfflineController;
76 import org.eclipse.aether.internal.impl.DefaultPathProcessor;
77 import org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager;
78 import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider;
79 import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher;
80 import org.eclipse.aether.internal.impl.DefaultRepositoryKeyFunctionFactory;
81 import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider;
82 import org.eclipse.aether.internal.impl.DefaultRepositorySystem;
83 import org.eclipse.aether.internal.impl.DefaultRepositorySystemLifecycle;
84 import org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator;
85 import org.eclipse.aether.internal.impl.DefaultTransporterProvider;
86 import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager;
87 import org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer;
88 import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory;
89 import org.eclipse.aether.internal.impl.LocalPathComposer;
90 import org.eclipse.aether.internal.impl.LocalPathPrefixComposerFactory;
91 import org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory;
92 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
93 import org.eclipse.aether.internal.impl.TrackingFileManager;
94 import org.eclipse.aether.internal.impl.TrackingFileManagerProvider;
95 import org.eclipse.aether.internal.impl.checksum.DefaultChecksumAlgorithmFactorySelector;
96 import org.eclipse.aether.internal.impl.checksum.Md5ChecksumAlgorithmFactory;
97 import org.eclipse.aether.internal.impl.checksum.Sha1ChecksumAlgorithmFactory;
98 import org.eclipse.aether.internal.impl.checksum.Sha256ChecksumAlgorithmFactory;
99 import org.eclipse.aether.internal.impl.checksum.Sha512ChecksumAlgorithmFactory;
100 import org.eclipse.aether.internal.impl.checksum.SparseDirectoryTrustedChecksumsSource;
101 import org.eclipse.aether.internal.impl.checksum.SummaryFileTrustedChecksumsSource;
102 import org.eclipse.aether.internal.impl.checksum.TrustedToProvidedChecksumsSourceAdapter;
103 import org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector;
104 import org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate;
105 import org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector;
106 import org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector;
107 import org.eclipse.aether.internal.impl.filter.DefaultRemoteRepositoryFilterManager;
108 import org.eclipse.aether.internal.impl.filter.FilteringPipelineRepositoryConnectorFactory;
109 import org.eclipse.aether.internal.impl.filter.GroupIdRemoteRepositoryFilterSource;
110 import org.eclipse.aether.internal.impl.filter.PrefixesLockingInhibitorFactory;
111 import org.eclipse.aether.internal.impl.filter.PrefixesRemoteRepositoryFilterSource;
112 import org.eclipse.aether.internal.impl.named.DefaultNamedLockFactorySelector;
113 import org.eclipse.aether.internal.impl.offline.OfflinePipelineRepositoryConnectorFactory;
114 import org.eclipse.aether.internal.impl.resolution.TrustedChecksumsArtifactResolverPostProcessor;
115 import org.eclipse.aether.internal.impl.synccontext.DefaultSyncContextFactory;
116 import org.eclipse.aether.internal.impl.synccontext.named.NameMapper;
117 import org.eclipse.aether.internal.impl.synccontext.named.NameMappers;
118 import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactory;
119 import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactoryImpl;
120 import org.eclipse.aether.internal.impl.transport.http.DefaultChecksumExtractor;
121 import org.eclipse.aether.internal.impl.transport.http.Nx2ChecksumExtractor;
122 import org.eclipse.aether.internal.impl.transport.http.XChecksumExtractor;
123 import org.eclipse.aether.named.NamedLockFactory;
124 import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
125 import org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory;
126 import org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory;
127 import org.eclipse.aether.named.providers.NoopNamedLockFactory;
128 import org.eclipse.aether.spi.artifact.ArtifactPredicateFactory;
129 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory;
130 import org.eclipse.aether.spi.artifact.generator.ArtifactGeneratorFactory;
131 import org.eclipse.aether.spi.artifact.transformer.ArtifactTransformer;
132 import org.eclipse.aether.spi.checksums.ProvidedChecksumsSource;
133 import org.eclipse.aether.spi.checksums.TrustedChecksumsSource;
134 import org.eclipse.aether.spi.connector.PipelineRepositoryConnectorFactory;
135 import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
136 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory;
137 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactorySelector;
138 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider;
139 import org.eclipse.aether.spi.connector.filter.RemoteRepositoryFilterSource;
140 import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory;
141 import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider;
142 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
143 import org.eclipse.aether.spi.connector.transport.TransporterProvider;
144 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractor;
145 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractorStrategy;
146 import org.eclipse.aether.spi.io.ChecksumProcessor;
147 import org.eclipse.aether.spi.io.PathProcessor;
148 import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
149 import org.eclipse.aether.spi.locking.LockingInhibitorFactory;
150 import org.eclipse.aether.spi.remoterepo.RepositoryKeyFunctionFactory;
151 import org.eclipse.aether.spi.resolution.ArtifactResolverPostProcessor;
152 import org.eclipse.aether.spi.synccontext.SyncContextFactory;
153 import org.eclipse.aether.spi.validator.ValidatorFactory;
154 import org.eclipse.aether.transport.apache.ApacheTransporterFactory;
155 import org.eclipse.aether.transport.file.FileTransporterFactory;
156 import org.eclipse.aether.util.version.GenericVersionScheme;
157 import org.eclipse.aether.version.VersionScheme;
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182 public class RepositorySystemSupplier implements Supplier<RepositorySystem> {
183 private final AtomicBoolean closed = new AtomicBoolean(false);
184
185 public RepositorySystemSupplier() {}
186
187 private void checkClosed() {
188 if (closed.get()) {
189 throw new IllegalStateException("Supplier is closed");
190 }
191 }
192
193 private PathProcessor pathProcessor;
194
195 public final PathProcessor getPathProcessor() {
196 checkClosed();
197 if (pathProcessor == null) {
198 pathProcessor = createPathProcessor();
199 }
200 return pathProcessor;
201 }
202
203 protected PathProcessor createPathProcessor() {
204 return new DefaultPathProcessor();
205 }
206
207 private ChecksumProcessor checksumProcessor;
208
209 public final ChecksumProcessor getChecksumProcessor() {
210 checkClosed();
211 if (checksumProcessor == null) {
212 checksumProcessor = createChecksumProcessor();
213 }
214 return checksumProcessor;
215 }
216
217 protected ChecksumProcessor createChecksumProcessor() {
218 return new DefaultChecksumProcessor(getPathProcessor());
219 }
220
221 private TrackingFileManager trackingFileManager;
222
223 public final TrackingFileManager getTrackingFileManager() {
224 checkClosed();
225 if (trackingFileManager == null) {
226 trackingFileManager = createTrackingFileManager();
227 }
228 return trackingFileManager;
229 }
230
231 protected TrackingFileManager createTrackingFileManager() {
232 return new TrackingFileManagerProvider(getNamedLockFactorySelector()).get();
233 }
234
235 private LocalPathComposer localPathComposer;
236
237 public final LocalPathComposer getLocalPathComposer() {
238 checkClosed();
239 if (localPathComposer == null) {
240 localPathComposer = createLocalPathComposer();
241 }
242 return localPathComposer;
243 }
244
245 protected LocalPathComposer createLocalPathComposer() {
246 return new DefaultLocalPathComposer();
247 }
248
249 private LocalPathPrefixComposerFactory localPathPrefixComposerFactory;
250
251 public final LocalPathPrefixComposerFactory getLocalPathPrefixComposerFactory() {
252 checkClosed();
253 if (localPathPrefixComposerFactory == null) {
254 localPathPrefixComposerFactory = createLocalPathPrefixComposerFactory();
255 }
256 return localPathPrefixComposerFactory;
257 }
258
259 protected LocalPathPrefixComposerFactory createLocalPathPrefixComposerFactory() {
260 return new DefaultLocalPathPrefixComposerFactory(getRepositoryKeyFunctionFactory());
261 }
262
263 private RepositorySystemLifecycle repositorySystemLifecycle;
264
265 public final RepositorySystemLifecycle getRepositorySystemLifecycle() {
266 checkClosed();
267 if (repositorySystemLifecycle == null) {
268 repositorySystemLifecycle = createRepositorySystemLifecycle();
269 repositorySystemLifecycle.addOnSystemEndedHandler(() -> closed.set(true));
270 }
271 return repositorySystemLifecycle;
272 }
273
274 protected RepositorySystemLifecycle createRepositorySystemLifecycle() {
275 return new DefaultRepositorySystemLifecycle();
276 }
277
278 private OfflineController offlineController;
279
280 public final OfflineController getOfflineController() {
281 checkClosed();
282 if (offlineController == null) {
283 offlineController = createOfflineController();
284 }
285 return offlineController;
286 }
287
288 protected OfflineController createOfflineController() {
289 return new DefaultOfflineController();
290 }
291
292 private UpdatePolicyAnalyzer updatePolicyAnalyzer;
293
294 public final UpdatePolicyAnalyzer getUpdatePolicyAnalyzer() {
295 checkClosed();
296 if (updatePolicyAnalyzer == null) {
297 updatePolicyAnalyzer = createUpdatePolicyAnalyzer();
298 }
299 return updatePolicyAnalyzer;
300 }
301
302 protected UpdatePolicyAnalyzer createUpdatePolicyAnalyzer() {
303 return new DefaultUpdatePolicyAnalyzer();
304 }
305
306 private ChecksumPolicyProvider checksumPolicyProvider;
307
308 public final ChecksumPolicyProvider getChecksumPolicyProvider() {
309 checkClosed();
310 if (checksumPolicyProvider == null) {
311 checksumPolicyProvider = createChecksumPolicyProvider();
312 }
313 return checksumPolicyProvider;
314 }
315
316 protected ChecksumPolicyProvider createChecksumPolicyProvider() {
317 return new DefaultChecksumPolicyProvider();
318 }
319
320 private UpdateCheckManager updateCheckManager;
321
322 public final UpdateCheckManager getUpdateCheckManager() {
323 checkClosed();
324 if (updateCheckManager == null) {
325 updateCheckManager = createUpdateCheckManager();
326 }
327 return updateCheckManager;
328 }
329
330 protected UpdateCheckManager createUpdateCheckManager() {
331 return new DefaultUpdateCheckManager(getTrackingFileManager(), getUpdatePolicyAnalyzer(), getPathProcessor());
332 }
333
334 private RepositoryKeyFunctionFactory repositoriesKeyFunctionFactory;
335
336 public final RepositoryKeyFunctionFactory getRepositoryKeyFunctionFactory() {
337 checkClosed();
338 if (repositoriesKeyFunctionFactory == null) {
339 repositoriesKeyFunctionFactory = createRepositoryKeyFunctionFactory();
340 }
341 return repositoriesKeyFunctionFactory;
342 }
343
344 protected RepositoryKeyFunctionFactory createRepositoryKeyFunctionFactory() {
345 return new DefaultRepositoryKeyFunctionFactory();
346 }
347
348 private Map<String, NamedLockFactory> namedLockFactories;
349
350 public final Map<String, NamedLockFactory> getNamedLockFactories() {
351 checkClosed();
352 if (namedLockFactories == null) {
353 namedLockFactories = createNamedLockFactories();
354 }
355 return namedLockFactories;
356 }
357
358 protected Map<String, NamedLockFactory> createNamedLockFactories() {
359 HashMap<String, NamedLockFactory> result = new HashMap<>();
360 result.put(NoopNamedLockFactory.NAME, new NoopNamedLockFactory());
361 result.put(LocalReadWriteLockNamedLockFactory.NAME, new LocalReadWriteLockNamedLockFactory());
362 result.put(LocalSemaphoreNamedLockFactory.NAME, new LocalSemaphoreNamedLockFactory());
363 result.put(FileLockNamedLockFactory.NAME, new FileLockNamedLockFactory());
364 return result;
365 }
366
367 private Map<String, NameMapper> nameMappers;
368
369 public final Map<String, NameMapper> getNameMappers() {
370 checkClosed();
371 if (nameMappers == null) {
372 nameMappers = createNameMappers();
373 }
374 return nameMappers;
375 }
376
377 protected Map<String, NameMapper> createNameMappers() {
378 HashMap<String, NameMapper> result = new HashMap<>();
379 result.put(NameMappers.STATIC_NAME, NameMappers.staticNameMapper());
380 result.put(NameMappers.GAV_NAME, NameMappers.gavNameMapper());
381 result.put(NameMappers.GAECV_NAME, NameMappers.gaecvNameMapper());
382 result.put(NameMappers.DISCRIMINATING_NAME, NameMappers.discriminatingNameMapper());
383 result.put(NameMappers.FILE_GAV_NAME, NameMappers.fileGavNameMapper());
384 result.put(NameMappers.FILE_GAECV_NAME, NameMappers.fileGaecvNameMapper());
385 result.put(NameMappers.FILE_HGAV_NAME, NameMappers.fileHashingGavNameMapper());
386 result.put(NameMappers.FILE_HGAECV_NAME, NameMappers.fileHashingGaecvNameMapper());
387 return result;
388 }
389
390 private Map<String, LockingInhibitorFactory> lockingInhibitorFactories;
391
392 public final Map<String, LockingInhibitorFactory> getLockingInhibitorFactories() {
393 checkClosed();
394 if (lockingInhibitorFactories == null) {
395 lockingInhibitorFactories = createLockingInhibitorFactories();
396 }
397 return lockingInhibitorFactories;
398 }
399
400 protected Map<String, LockingInhibitorFactory> createLockingInhibitorFactories() {
401 HashMap<String, LockingInhibitorFactory> result = new HashMap<>();
402 result.put(PrefixesLockingInhibitorFactory.NAME, new PrefixesLockingInhibitorFactory());
403 return result;
404 }
405
406 private NamedLockFactorySelector namedLockFactorySelector;
407
408 public final NamedLockFactorySelector getNamedLockFactorySelector() {
409 checkClosed();
410 if (namedLockFactorySelector == null) {
411 namedLockFactorySelector = createNamedLockFactorySelector();
412 }
413 return namedLockFactorySelector;
414 }
415
416 protected NamedLockFactorySelector createNamedLockFactorySelector() {
417 return new DefaultNamedLockFactorySelector(getNamedLockFactories(), getRepositorySystemLifecycle());
418 }
419
420 private NamedLockFactoryAdapterFactory namedLockFactoryAdapterFactory;
421
422 public final NamedLockFactoryAdapterFactory getNamedLockFactoryAdapterFactory() {
423 checkClosed();
424 if (namedLockFactoryAdapterFactory == null) {
425 namedLockFactoryAdapterFactory = createNamedLockFactoryAdapterFactory();
426 }
427 return namedLockFactoryAdapterFactory;
428 }
429
430 protected NamedLockFactoryAdapterFactory createNamedLockFactoryAdapterFactory() {
431 return new NamedLockFactoryAdapterFactoryImpl(
432 getNamedLockFactorySelector(), getNameMappers(), getLockingInhibitorFactories());
433 }
434
435 private SyncContextFactory syncContextFactory;
436
437 public final SyncContextFactory getSyncContextFactory() {
438 checkClosed();
439 if (syncContextFactory == null) {
440 syncContextFactory = createSyncContextFactory();
441 }
442 return syncContextFactory;
443 }
444
445 protected SyncContextFactory createSyncContextFactory() {
446 return new DefaultSyncContextFactory(getNamedLockFactoryAdapterFactory());
447 }
448
449 private Map<String, ChecksumAlgorithmFactory> checksumAlgorithmFactories;
450
451 public final Map<String, ChecksumAlgorithmFactory> getChecksumAlgorithmFactories() {
452 checkClosed();
453 if (checksumAlgorithmFactories == null) {
454 checksumAlgorithmFactories = createChecksumAlgorithmFactories();
455 }
456 return checksumAlgorithmFactories;
457 }
458
459 protected Map<String, ChecksumAlgorithmFactory> createChecksumAlgorithmFactories() {
460 HashMap<String, ChecksumAlgorithmFactory> result = new HashMap<>();
461 result.put(Sha512ChecksumAlgorithmFactory.NAME, new Sha512ChecksumAlgorithmFactory());
462 result.put(Sha256ChecksumAlgorithmFactory.NAME, new Sha256ChecksumAlgorithmFactory());
463 result.put(Sha1ChecksumAlgorithmFactory.NAME, new Sha1ChecksumAlgorithmFactory());
464 result.put(Md5ChecksumAlgorithmFactory.NAME, new Md5ChecksumAlgorithmFactory());
465 return result;
466 }
467
468 private ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector;
469
470 public final ChecksumAlgorithmFactorySelector getChecksumAlgorithmFactorySelector() {
471 checkClosed();
472 if (checksumAlgorithmFactorySelector == null) {
473 checksumAlgorithmFactorySelector = createChecksumAlgorithmFactorySelector();
474 }
475 return checksumAlgorithmFactorySelector;
476 }
477
478 protected ChecksumAlgorithmFactorySelector createChecksumAlgorithmFactorySelector() {
479 return new DefaultChecksumAlgorithmFactorySelector(getChecksumAlgorithmFactories());
480 }
481
482 private ArtifactPredicateFactory artifactPredicateFactory;
483
484 public final ArtifactPredicateFactory getArtifactPredicateFactory() {
485 checkClosed();
486 if (artifactPredicateFactory == null) {
487 artifactPredicateFactory = createArtifactPredicateFactory();
488 }
489 return artifactPredicateFactory;
490 }
491
492 protected ArtifactPredicateFactory createArtifactPredicateFactory() {
493 return new DefaultArtifactPredicateFactory(getChecksumAlgorithmFactorySelector());
494 }
495
496 private Map<String, RepositoryLayoutFactory> repositoryLayoutFactories;
497
498 public final Map<String, RepositoryLayoutFactory> getRepositoryLayoutFactories() {
499 checkClosed();
500 if (repositoryLayoutFactories == null) {
501 repositoryLayoutFactories = createRepositoryLayoutFactories();
502 }
503 return repositoryLayoutFactories;
504 }
505
506 protected Map<String, RepositoryLayoutFactory> createRepositoryLayoutFactories() {
507 HashMap<String, RepositoryLayoutFactory> result = new HashMap<>();
508 result.put(
509 Maven2RepositoryLayoutFactory.NAME,
510 new Maven2RepositoryLayoutFactory(
511 getChecksumAlgorithmFactorySelector(), getArtifactPredicateFactory()));
512 return result;
513 }
514
515 private RepositoryLayoutProvider repositoryLayoutProvider;
516
517 public final RepositoryLayoutProvider getRepositoryLayoutProvider() {
518 checkClosed();
519 if (repositoryLayoutProvider == null) {
520 repositoryLayoutProvider = createRepositoryLayoutProvider();
521 }
522 return repositoryLayoutProvider;
523 }
524
525 protected RepositoryLayoutProvider createRepositoryLayoutProvider() {
526 return new DefaultRepositoryLayoutProvider(getRepositoryLayoutFactories());
527 }
528
529 private LocalRepositoryProvider localRepositoryProvider;
530
531 public final LocalRepositoryProvider getLocalRepositoryProvider() {
532 checkClosed();
533 if (localRepositoryProvider == null) {
534 localRepositoryProvider = createLocalRepositoryProvider();
535 }
536 return localRepositoryProvider;
537 }
538
539 protected LocalRepositoryProvider createLocalRepositoryProvider() {
540 LocalPathComposer localPathComposer = getLocalPathComposer();
541 RepositoryKeyFunctionFactory repositoryKeyFunctionFactory = getRepositoryKeyFunctionFactory();
542 HashMap<String, LocalRepositoryManagerFactory> localRepositoryProviders = new HashMap<>(2);
543 localRepositoryProviders.put(
544 SimpleLocalRepositoryManagerFactory.NAME,
545 new SimpleLocalRepositoryManagerFactory(localPathComposer, repositoryKeyFunctionFactory));
546 localRepositoryProviders.put(
547 EnhancedLocalRepositoryManagerFactory.NAME,
548 new EnhancedLocalRepositoryManagerFactory(
549 localPathComposer,
550 getTrackingFileManager(),
551 getLocalPathPrefixComposerFactory(),
552 repositoryKeyFunctionFactory));
553 return new DefaultLocalRepositoryProvider(localRepositoryProviders);
554 }
555
556 private RemoteRepositoryManager remoteRepositoryManager;
557
558 public final RemoteRepositoryManager getRemoteRepositoryManager() {
559 checkClosed();
560 if (remoteRepositoryManager == null) {
561 remoteRepositoryManager = createRemoteRepositoryManager();
562 }
563 return remoteRepositoryManager;
564 }
565
566 protected RemoteRepositoryManager createRemoteRepositoryManager() {
567 return new DefaultRemoteRepositoryManager(
568 getUpdatePolicyAnalyzer(), getChecksumPolicyProvider(), getRepositoryKeyFunctionFactory());
569 }
570
571 private Map<String, RemoteRepositoryFilterSource> remoteRepositoryFilterSources;
572
573 public final Map<String, RemoteRepositoryFilterSource> getRemoteRepositoryFilterSources() {
574 checkClosed();
575 if (remoteRepositoryFilterSources == null) {
576 remoteRepositoryFilterSources = createRemoteRepositoryFilterSources();
577 }
578 return remoteRepositoryFilterSources;
579 }
580
581 protected Map<String, RemoteRepositoryFilterSource> createRemoteRepositoryFilterSources() {
582 HashMap<String, RemoteRepositoryFilterSource> result = new HashMap<>();
583 result.put(
584 GroupIdRemoteRepositoryFilterSource.NAME,
585 new GroupIdRemoteRepositoryFilterSource(
586 getRepositoryKeyFunctionFactory(), getRepositorySystemLifecycle(), getPathProcessor()));
587 result.put(
588 PrefixesRemoteRepositoryFilterSource.NAME,
589 new PrefixesRemoteRepositoryFilterSource(
590 getRepositoryKeyFunctionFactory(),
591 this::getMetadataResolver,
592 this::getRemoteRepositoryManager,
593 getRepositoryLayoutProvider()));
594 return result;
595 }
596
597 private RemoteRepositoryFilterManager remoteRepositoryFilterManager;
598
599 public final RemoteRepositoryFilterManager getRemoteRepositoryFilterManager() {
600 checkClosed();
601 if (remoteRepositoryFilterManager == null) {
602 remoteRepositoryFilterManager = createRemoteRepositoryFilterManager();
603 }
604 return remoteRepositoryFilterManager;
605 }
606
607 protected RemoteRepositoryFilterManager createRemoteRepositoryFilterManager() {
608 return new DefaultRemoteRepositoryFilterManager(getRemoteRepositoryFilterSources());
609 }
610
611 private Map<String, RepositoryListener> repositoryListeners;
612
613 public final Map<String, RepositoryListener> getRepositoryListeners() {
614 checkClosed();
615 if (repositoryListeners == null) {
616 repositoryListeners = createRepositoryListeners();
617 }
618 return repositoryListeners;
619 }
620
621 protected Map<String, RepositoryListener> createRepositoryListeners() {
622 return new HashMap<>();
623 }
624
625 private RepositoryEventDispatcher repositoryEventDispatcher;
626
627 public final RepositoryEventDispatcher getRepositoryEventDispatcher() {
628 checkClosed();
629 if (repositoryEventDispatcher == null) {
630 repositoryEventDispatcher = createRepositoryEventDispatcher();
631 }
632 return repositoryEventDispatcher;
633 }
634
635 protected RepositoryEventDispatcher createRepositoryEventDispatcher() {
636 return new DefaultRepositoryEventDispatcher(getRepositoryListeners());
637 }
638
639 private Map<String, TrustedChecksumsSource> trustedChecksumsSources;
640
641 public final Map<String, TrustedChecksumsSource> getTrustedChecksumsSources() {
642 checkClosed();
643 if (trustedChecksumsSources == null) {
644 trustedChecksumsSources = createTrustedChecksumsSources();
645 }
646 return trustedChecksumsSources;
647 }
648
649 protected Map<String, TrustedChecksumsSource> createTrustedChecksumsSources() {
650 HashMap<String, TrustedChecksumsSource> result = new HashMap<>();
651 result.put(
652 SparseDirectoryTrustedChecksumsSource.NAME,
653 new SparseDirectoryTrustedChecksumsSource(
654 getRepositoryKeyFunctionFactory(), getChecksumProcessor(), getLocalPathComposer()));
655 result.put(
656 SummaryFileTrustedChecksumsSource.NAME,
657 new SummaryFileTrustedChecksumsSource(
658 getRepositoryKeyFunctionFactory(),
659 getLocalPathComposer(),
660 getRepositorySystemLifecycle(),
661 getPathProcessor()));
662 return result;
663 }
664
665 private Map<String, ProvidedChecksumsSource> providedChecksumsSources;
666
667 public final Map<String, ProvidedChecksumsSource> getProvidedChecksumsSources() {
668 checkClosed();
669 if (providedChecksumsSources == null) {
670 providedChecksumsSources = createProvidedChecksumsSources();
671 }
672 return providedChecksumsSources;
673 }
674
675 protected Map<String, ProvidedChecksumsSource> createProvidedChecksumsSources() {
676 HashMap<String, ProvidedChecksumsSource> result = new HashMap<>();
677 result.put(
678 TrustedToProvidedChecksumsSourceAdapter.NAME,
679 new TrustedToProvidedChecksumsSourceAdapter(getTrustedChecksumsSources()));
680 return result;
681 }
682
683 private Map<String, ChecksumExtractorStrategy> checksumExtractorStrategies;
684
685 public final Map<String, ChecksumExtractorStrategy> getChecksumExtractorStrategies() {
686 checkClosed();
687 if (checksumExtractorStrategies == null) {
688 checksumExtractorStrategies = createChecksumExtractorStrategies();
689 }
690 return checksumExtractorStrategies;
691 }
692
693 protected Map<String, ChecksumExtractorStrategy> createChecksumExtractorStrategies() {
694 HashMap<String, ChecksumExtractorStrategy> result = new HashMap<>();
695 result.put(XChecksumExtractor.NAME, new XChecksumExtractor());
696 result.put(Nx2ChecksumExtractor.NAME, new Nx2ChecksumExtractor());
697 return result;
698 }
699
700 private ChecksumExtractor checksumExtractor;
701
702 public final ChecksumExtractor getChecksumExtractor() {
703 checkClosed();
704 if (checksumExtractor == null) {
705 checksumExtractor = createChecksumExtractor();
706 }
707 return checksumExtractor;
708 }
709
710 protected ChecksumExtractor createChecksumExtractor() {
711 return new DefaultChecksumExtractor(getChecksumExtractorStrategies());
712 }
713
714 private Map<String, TransporterFactory> transporterFactories;
715
716 public final Map<String, TransporterFactory> getTransporterFactories() {
717 checkClosed();
718 if (transporterFactories == null) {
719 transporterFactories = createTransporterFactories();
720 }
721 return transporterFactories;
722 }
723
724 protected Map<String, TransporterFactory> createTransporterFactories() {
725 HashMap<String, TransporterFactory> result = new HashMap<>();
726 result.put(FileTransporterFactory.NAME, new FileTransporterFactory());
727 result.put(
728 ApacheTransporterFactory.NAME,
729 new ApacheTransporterFactory(getChecksumExtractor(), getPathProcessor()));
730 return result;
731 }
732
733 private TransporterProvider transporterProvider;
734
735 public final TransporterProvider getTransporterProvider() {
736 checkClosed();
737 if (transporterProvider == null) {
738 transporterProvider = createTransporterProvider();
739 }
740 return transporterProvider;
741 }
742
743 protected TransporterProvider createTransporterProvider() {
744 return new DefaultTransporterProvider(getTransporterFactories());
745 }
746
747 private BasicRepositoryConnectorFactory basicRepositoryConnectorFactory;
748
749 public final BasicRepositoryConnectorFactory getBasicRepositoryConnectorFactory() {
750 checkClosed();
751 if (basicRepositoryConnectorFactory == null) {
752 basicRepositoryConnectorFactory = createBasicRepositoryConnectorFactory();
753 }
754 return basicRepositoryConnectorFactory;
755 }
756
757 protected BasicRepositoryConnectorFactory createBasicRepositoryConnectorFactory() {
758 return new BasicRepositoryConnectorFactory(
759 getTransporterProvider(),
760 getRepositoryLayoutProvider(),
761 getChecksumPolicyProvider(),
762 getPathProcessor(),
763 getChecksumProcessor(),
764 getProvidedChecksumsSources());
765 }
766
767 private Map<String, RepositoryConnectorFactory> repositoryConnectorFactories;
768
769 public final Map<String, RepositoryConnectorFactory> getRepositoryConnectorFactories() {
770 checkClosed();
771 if (repositoryConnectorFactories == null) {
772 repositoryConnectorFactories = createRepositoryConnectorFactories();
773 }
774 return repositoryConnectorFactories;
775 }
776
777 protected Map<String, RepositoryConnectorFactory> createRepositoryConnectorFactories() {
778 HashMap<String, RepositoryConnectorFactory> result = new HashMap<>();
779 result.put(BasicRepositoryConnectorFactory.NAME, getBasicRepositoryConnectorFactory());
780 return result;
781 }
782
783 private Map<String, PipelineRepositoryConnectorFactory> pipelineRepositoryConnectorFactories;
784
785 public final Map<String, PipelineRepositoryConnectorFactory> getPipelineRepositoryConnectorFactories() {
786 checkClosed();
787 if (pipelineRepositoryConnectorFactories == null) {
788 pipelineRepositoryConnectorFactories = createPipelineRepositoryConnectorFactories();
789 }
790 return pipelineRepositoryConnectorFactories;
791 }
792
793 protected Map<String, PipelineRepositoryConnectorFactory> createPipelineRepositoryConnectorFactories() {
794 HashMap<String, PipelineRepositoryConnectorFactory> result = new HashMap<>();
795 result.put(
796 FilteringPipelineRepositoryConnectorFactory.NAME,
797 new FilteringPipelineRepositoryConnectorFactory(getRemoteRepositoryFilterManager()));
798 result.put(
799 OfflinePipelineRepositoryConnectorFactory.NAME,
800 new OfflinePipelineRepositoryConnectorFactory(getOfflineController()));
801 return result;
802 }
803
804 private RepositoryConnectorProvider repositoryConnectorProvider;
805
806 public final RepositoryConnectorProvider getRepositoryConnectorProvider() {
807 checkClosed();
808 if (repositoryConnectorProvider == null) {
809 repositoryConnectorProvider = createRepositoryConnectorProvider();
810 }
811 return repositoryConnectorProvider;
812 }
813
814 protected RepositoryConnectorProvider createRepositoryConnectorProvider() {
815 return new DefaultRepositoryConnectorProvider(
816 getRepositoryConnectorFactories(), getPipelineRepositoryConnectorFactories());
817 }
818
819 private Installer installer;
820
821 public final Installer getInstaller() {
822 checkClosed();
823 if (installer == null) {
824 installer = createInstaller();
825 }
826 return installer;
827 }
828
829 protected Installer createInstaller() {
830 return new DefaultInstaller(
831 getPathProcessor(),
832 getRepositoryEventDispatcher(),
833 getArtifactGeneratorFactories(),
834 getMetadataGeneratorFactories(),
835 getArtifactTransformers(),
836 getSyncContextFactory());
837 }
838
839 private Deployer deployer;
840
841 public final Deployer getDeployer() {
842 checkClosed();
843 if (deployer == null) {
844 deployer = createDeployer();
845 }
846 return deployer;
847 }
848
849 protected Deployer createDeployer() {
850 return new DefaultDeployer(
851 getPathProcessor(),
852 getRepositoryEventDispatcher(),
853 getRepositoryConnectorProvider(),
854 getRemoteRepositoryManager(),
855 getUpdateCheckManager(),
856 getArtifactGeneratorFactories(),
857 getMetadataGeneratorFactories(),
858 getArtifactTransformers(),
859 getSyncContextFactory(),
860 getOfflineController());
861 }
862
863 private Map<String, DependencyCollectorDelegate> dependencyCollectorDelegates;
864
865 public final Map<String, DependencyCollectorDelegate> getDependencyCollectorDelegates() {
866 checkClosed();
867 if (dependencyCollectorDelegates == null) {
868 dependencyCollectorDelegates = createDependencyCollectorDelegates();
869 }
870 return dependencyCollectorDelegates;
871 }
872
873 protected Map<String, DependencyCollectorDelegate> createDependencyCollectorDelegates() {
874 RemoteRepositoryManager remoteRepositoryManager = getRemoteRepositoryManager();
875 ArtifactDescriptorReader artifactDescriptorReader = getArtifactDescriptorReader();
876 VersionRangeResolver versionRangeResolver = getVersionRangeResolver();
877 HashMap<String, DependencyCollectorDelegate> result = new HashMap<>();
878 result.put(
879 DfDependencyCollector.NAME,
880 new DfDependencyCollector(
881 remoteRepositoryManager,
882 artifactDescriptorReader,
883 versionRangeResolver,
884 getArtifactDecoratorFactories()));
885 result.put(
886 BfDependencyCollector.NAME,
887 new BfDependencyCollector(
888 remoteRepositoryManager,
889 artifactDescriptorReader,
890 versionRangeResolver,
891 getArtifactDecoratorFactories()));
892 return result;
893 }
894
895 private DependencyCollector dependencyCollector;
896
897 public final DependencyCollector getDependencyCollector() {
898 checkClosed();
899 if (dependencyCollector == null) {
900 dependencyCollector = createDependencyCollector();
901 }
902 return dependencyCollector;
903 }
904
905 protected DependencyCollector createDependencyCollector() {
906 return new DefaultDependencyCollector(getDependencyCollectorDelegates());
907 }
908
909 private Map<String, ArtifactResolverPostProcessor> artifactResolverPostProcessors;
910
911 public final Map<String, ArtifactResolverPostProcessor> getArtifactResolverPostProcessors() {
912 checkClosed();
913 if (artifactResolverPostProcessors == null) {
914 artifactResolverPostProcessors = createArtifactResolverPostProcessors();
915 }
916 return artifactResolverPostProcessors;
917 }
918
919 protected Map<String, ArtifactResolverPostProcessor> createArtifactResolverPostProcessors() {
920 HashMap<String, ArtifactResolverPostProcessor> result = new HashMap<>();
921 result.put(
922 TrustedChecksumsArtifactResolverPostProcessor.NAME,
923 new TrustedChecksumsArtifactResolverPostProcessor(
924 getChecksumAlgorithmFactorySelector(), getTrustedChecksumsSources()));
925 return result;
926 }
927
928 private ArtifactResolver artifactResolver;
929
930 public final ArtifactResolver getArtifactResolver() {
931 checkClosed();
932 if (artifactResolver == null) {
933 artifactResolver = createArtifactResolver();
934 }
935 return artifactResolver;
936 }
937
938 protected ArtifactResolver createArtifactResolver() {
939 return new DefaultArtifactResolver(
940 getPathProcessor(),
941 getRepositoryEventDispatcher(),
942 getVersionResolver(),
943 getUpdateCheckManager(),
944 getRepositoryConnectorProvider(),
945 getRemoteRepositoryManager(),
946 getSyncContextFactory(),
947 getOfflineController(),
948 getArtifactResolverPostProcessors(),
949 getRemoteRepositoryFilterManager());
950 }
951
952 private MetadataResolver metadataResolver;
953
954 public final MetadataResolver getMetadataResolver() {
955 checkClosed();
956 if (metadataResolver == null) {
957 metadataResolver = createMetadataResolver();
958 }
959 return metadataResolver;
960 }
961
962 protected MetadataResolver createMetadataResolver() {
963 return new DefaultMetadataResolver(
964 getRepositoryEventDispatcher(),
965 getUpdateCheckManager(),
966 getRepositoryConnectorProvider(),
967 getRemoteRepositoryManager(),
968 getSyncContextFactory(),
969 getOfflineController(),
970 getRemoteRepositoryFilterManager(),
971 getPathProcessor());
972 }
973
974 private VersionScheme versionScheme;
975
976 public final VersionScheme getVersionScheme() {
977 checkClosed();
978 if (versionScheme == null) {
979 versionScheme = createVersionScheme();
980 }
981 return versionScheme;
982 }
983
984 protected VersionScheme createVersionScheme() {
985 return new GenericVersionScheme();
986 }
987
988 private Map<String, ArtifactGeneratorFactory> artifactGeneratorFactories;
989
990 public final Map<String, ArtifactGeneratorFactory> getArtifactGeneratorFactories() {
991 checkClosed();
992 if (artifactGeneratorFactories == null) {
993 artifactGeneratorFactories = createArtifactGeneratorFactories();
994 }
995 return artifactGeneratorFactories;
996 }
997
998 protected Map<String, ArtifactGeneratorFactory> createArtifactGeneratorFactories() {
999
1000 return new HashMap<>();
1001 }
1002
1003 private Map<String, ArtifactDecoratorFactory> artifactDecoratorFactories;
1004
1005 public final Map<String, ArtifactDecoratorFactory> getArtifactDecoratorFactories() {
1006 checkClosed();
1007 if (artifactDecoratorFactories == null) {
1008 artifactDecoratorFactories = createArtifactDecoratorFactories();
1009 }
1010 return artifactDecoratorFactories;
1011 }
1012
1013 protected Map<String, ArtifactDecoratorFactory> createArtifactDecoratorFactories() {
1014
1015 return new HashMap<>();
1016 }
1017
1018
1019
1020 private Map<String, ArtifactTransformer> artifactTransformers;
1021
1022 public final Map<String, ArtifactTransformer> getArtifactTransformers() {
1023 checkClosed();
1024 if (artifactTransformers == null) {
1025 artifactTransformers = createArtifactTransformers();
1026 }
1027 return artifactTransformers;
1028 }
1029
1030 protected Map<String, ArtifactTransformer> createArtifactTransformers() {
1031 return new HashMap<>();
1032 }
1033
1034 private Map<String, MetadataGeneratorFactory> metadataGeneratorFactories;
1035
1036 public final Map<String, MetadataGeneratorFactory> getMetadataGeneratorFactories() {
1037 checkClosed();
1038 if (metadataGeneratorFactories == null) {
1039 metadataGeneratorFactories = createMetadataGeneratorFactories();
1040 }
1041 return metadataGeneratorFactories;
1042 }
1043
1044 protected Map<String, MetadataGeneratorFactory> createMetadataGeneratorFactories() {
1045
1046 HashMap<String, MetadataGeneratorFactory> result = new HashMap<>();
1047 result.put(PluginsMetadataGeneratorFactory.NAME, new PluginsMetadataGeneratorFactory());
1048 result.put(VersionsMetadataGeneratorFactory.NAME, new VersionsMetadataGeneratorFactory());
1049 result.put(SnapshotMetadataGeneratorFactory.NAME, new SnapshotMetadataGeneratorFactory());
1050 return result;
1051 }
1052
1053 private LinkedHashMap<String, MavenArtifactRelocationSource> artifactRelocationSources;
1054
1055 public final LinkedHashMap<String, MavenArtifactRelocationSource> getMavenArtifactRelocationSources() {
1056 checkClosed();
1057 if (artifactRelocationSources == null) {
1058 artifactRelocationSources = createMavenArtifactRelocationSources();
1059 }
1060 return artifactRelocationSources;
1061 }
1062
1063 protected LinkedHashMap<String, MavenArtifactRelocationSource> createMavenArtifactRelocationSources() {
1064
1065 LinkedHashMap<String, MavenArtifactRelocationSource> result = new LinkedHashMap<>();
1066 result.put(UserPropertiesArtifactRelocationSource.NAME, new UserPropertiesArtifactRelocationSource());
1067 result.put(
1068 DistributionManagementArtifactRelocationSource.NAME,
1069 new DistributionManagementArtifactRelocationSource());
1070 return result;
1071 }
1072
1073 private ArtifactDescriptorReader artifactDescriptorReader;
1074
1075 public final ArtifactDescriptorReader getArtifactDescriptorReader() {
1076 checkClosed();
1077 if (artifactDescriptorReader == null) {
1078 artifactDescriptorReader = createArtifactDescriptorReader();
1079 }
1080 return artifactDescriptorReader;
1081 }
1082
1083 protected ArtifactDescriptorReader createArtifactDescriptorReader() {
1084
1085 return new DefaultArtifactDescriptorReader(
1086 getRemoteRepositoryManager(),
1087 getVersionResolver(),
1088 getVersionRangeResolver(),
1089 getArtifactResolver(),
1090 getModelBuilder(),
1091 getRepositoryEventDispatcher(),
1092 getModelCacheFactory(),
1093 getMavenArtifactRelocationSources());
1094 }
1095
1096 private VersionResolver versionResolver;
1097
1098 public final VersionResolver getVersionResolver() {
1099 checkClosed();
1100 if (versionResolver == null) {
1101 versionResolver = createVersionResolver();
1102 }
1103 return versionResolver;
1104 }
1105
1106 protected VersionResolver createVersionResolver() {
1107
1108 return new DefaultVersionResolver(
1109 getMetadataResolver(), getSyncContextFactory(), getRepositoryEventDispatcher());
1110 }
1111
1112 private VersionRangeResolver versionRangeResolver;
1113
1114 public final VersionRangeResolver getVersionRangeResolver() {
1115 checkClosed();
1116 if (versionRangeResolver == null) {
1117 versionRangeResolver = createVersionRangeResolver();
1118 }
1119 return versionRangeResolver;
1120 }
1121
1122 protected VersionRangeResolver createVersionRangeResolver() {
1123
1124 return new DefaultVersionRangeResolver(
1125 getMetadataResolver(), getSyncContextFactory(), getRepositoryEventDispatcher(), getVersionScheme());
1126 }
1127
1128 private ModelBuilder modelBuilder;
1129
1130 public final ModelBuilder getModelBuilder() {
1131 checkClosed();
1132 if (modelBuilder == null) {
1133 modelBuilder = createModelBuilder();
1134 }
1135 return modelBuilder;
1136 }
1137
1138 protected ModelBuilder createModelBuilder() {
1139
1140 return new DefaultModelBuilderFactory().newInstance();
1141 }
1142
1143 private ModelCacheFactory modelCacheFactory;
1144
1145 public final ModelCacheFactory getModelCacheFactory() {
1146 checkClosed();
1147 if (modelCacheFactory == null) {
1148 modelCacheFactory = createModelCacheFactory();
1149 }
1150 return modelCacheFactory;
1151 }
1152
1153 protected ModelCacheFactory createModelCacheFactory() {
1154
1155 return new DefaultModelCacheFactory();
1156 }
1157
1158 private List<ValidatorFactory> validatorFactories;
1159
1160 public final List<ValidatorFactory> getValidatorFactories() {
1161 checkClosed();
1162 if (validatorFactories == null) {
1163 validatorFactories = createValidatorFactories();
1164 }
1165 return validatorFactories;
1166 }
1167
1168 protected List<ValidatorFactory> createValidatorFactories() {
1169 return new ArrayList<>();
1170 }
1171
1172 private RepositorySystemValidator repositorySystemValidator;
1173
1174 public final RepositorySystemValidator getRepositorySystemValidator() {
1175 checkClosed();
1176 if (repositorySystemValidator == null) {
1177 repositorySystemValidator = createRepositorySystemValidator();
1178 }
1179 return repositorySystemValidator;
1180 }
1181
1182 protected RepositorySystemValidator createRepositorySystemValidator() {
1183 return new DefaultRepositorySystemValidator(getValidatorFactories());
1184 }
1185
1186 private RepositorySystem repositorySystem;
1187
1188 public final RepositorySystem getRepositorySystem() {
1189 checkClosed();
1190 if (repositorySystem == null) {
1191 repositorySystem = createRepositorySystem();
1192 }
1193 return repositorySystem;
1194 }
1195
1196 protected RepositorySystem createRepositorySystem() {
1197 return new DefaultRepositorySystem(
1198 getVersionResolver(),
1199 getVersionRangeResolver(),
1200 getArtifactResolver(),
1201 getMetadataResolver(),
1202 getArtifactDescriptorReader(),
1203 getDependencyCollector(),
1204 getInstaller(),
1205 getDeployer(),
1206 getLocalRepositoryProvider(),
1207 getSyncContextFactory(),
1208 getRemoteRepositoryManager(),
1209 getRepositorySystemLifecycle(),
1210 getArtifactDecoratorFactories(),
1211 getRepositorySystemValidator());
1212 }
1213
1214 @Override
1215 public RepositorySystem get() {
1216 return getRepositorySystem();
1217 }
1218 }