private static DefaultArtifactResolver getArtifactResolver()

in tooling/common/src/main/java/org/apache/karaf/minho/tooling/common/maven/Parser.java [721:781]


    private static DefaultArtifactResolver getArtifactResolver(RepositorySystemSession repositorySystemSession,
                                                               LocalRepositoryProvider localRepositoryProvider,
                                                               List<RemoteRepository> remoteRepositories) throws Exception {
        DefaultArtifactResolver artifactResolver = new DefaultArtifactResolver();

        DefaultSyncContextFactory syncContextFactory = new DefaultSyncContextFactory();
        DefaultRepositoryEventDispatcher repositoryEventDispatcher = new DefaultRepositoryEventDispatcher();
        DefaultVersionResolver versionResolver = new DefaultVersionResolver();
        DefaultMetadataResolver metadataResolver = new DefaultMetadataResolver();
        metadataResolver.setSyncContextFactory(syncContextFactory);
        metadataResolver.setRepositoryEventDispatcher(repositoryEventDispatcher);
        versionResolver.setMetadataResolver(metadataResolver);
        versionResolver.setSyncContextFactory(syncContextFactory);
        versionResolver.setRepositoryEventDispatcher(repositoryEventDispatcher);

        DefaultRepositorySystem repositorySystem = new DefaultRepositorySystem();
        repositorySystem.setLocalRepositoryProvider(localRepositoryProvider);
        repositorySystem.setVersionResolver(versionResolver);

        DefaultRemoteRepositoryManager remoteRepositoryManager = new DefaultRemoteRepositoryManager();
        metadataResolver.setRemoteRepositoryManager(remoteRepositoryManager);

        DefaultUpdateCheckManager updateCheckManager = new DefaultUpdateCheckManager();
        updateCheckManager.setUpdatePolicyAnalyzer(new DefaultUpdatePolicyAnalyzer());
        metadataResolver.setUpdateCheckManager(updateCheckManager);

        remoteRepositoryManager.aggregateRepositories(repositorySystemSession, remoteRepositories, new ArrayList<>(), false);
        remoteRepositoryManager.setChecksumPolicyProvider(new DefaultChecksumPolicyProvider());
        remoteRepositoryManager.setUpdatePolicyAnalyzer(new DefaultUpdatePolicyAnalyzer());
        repositorySystem.setRemoteRepositoryManager(remoteRepositoryManager);

        DefaultVersionRangeResolver versionRangeResolver = new DefaultVersionRangeResolver();
        versionRangeResolver.setMetadataResolver(metadataResolver);
        versionRangeResolver.setSyncContextFactory(syncContextFactory);
        versionRangeResolver.setRepositoryEventDispatcher(repositoryEventDispatcher);

        artifactResolver.setVersionResolver(versionResolver);
        artifactResolver.setSyncContextFactory(syncContextFactory);
        artifactResolver.setRepositoryEventDispatcher(repositoryEventDispatcher);

        DefaultRepositoryConnectorProvider repositoryConnectorProvider = new DefaultRepositoryConnectorProvider();
        BasicRepositoryConnectorFactory repositoryConnectorFactory = new BasicRepositoryConnectorFactory();
        DefaultRepositoryLayoutProvider repositoryLayoutProvider = new DefaultRepositoryLayoutProvider();
        repositoryLayoutProvider.setRepositoryLayoutFactories(Collections.singletonList(new Maven2RepositoryLayoutFactory()));
        DefaultTransporterProvider transporterProvider = new DefaultTransporterProvider();
        transporterProvider.addTransporterFactory(new HttpTransporterFactory());
        repositoryConnectorFactory.setRepositoryLayoutProvider(repositoryLayoutProvider);
        repositoryConnectorFactory.setTransporterProvider(transporterProvider);
        repositoryConnectorFactory.setFileProcessor(new DefaultFileProcessor());
        repositoryConnectorFactory.setChecksumPolicyProvider(new DefaultChecksumPolicyProvider());
        repositoryConnectorProvider.addRepositoryConnectorFactory(repositoryConnectorFactory);
        artifactResolver.setRepositoryConnectorProvider(repositoryConnectorProvider);
        artifactResolver.setRemoteRepositoryManager(remoteRepositoryManager);

        metadataResolver.setRepositoryConnectorProvider(repositoryConnectorProvider);

        repositorySystem.setVersionRangeResolver(versionRangeResolver);
        repositorySystem.setArtifactResolver(artifactResolver);

        return artifactResolver;
    }