Search in sources :

Example 6 with Proxy

use of org.sonatype.aether.repository.Proxy in project sonatype-aether by sonatype.

the class DefaultRemoteRepositoryManager method aggregateRepositories.

public List<RemoteRepository> aggregateRepositories(RepositorySystemSession session, List<RemoteRepository> dominantRepositories, List<RemoteRepository> recessiveRepositories, boolean recessiveIsRaw) {
    if (recessiveRepositories.isEmpty()) {
        return dominantRepositories;
    }
    MirrorSelector mirrorSelector = session.getMirrorSelector();
    AuthenticationSelector authSelector = session.getAuthenticationSelector();
    ProxySelector proxySelector = session.getProxySelector();
    List<RemoteRepository> result = new ArrayList<RemoteRepository>(dominantRepositories);
    next: for (RemoteRepository recessiveRepository : recessiveRepositories) {
        RemoteRepository repository = recessiveRepository;
        if (recessiveIsRaw) {
            RemoteRepository mirrorRepository = mirrorSelector.getMirror(recessiveRepository);
            if (mirrorRepository == null) {
                repository = recessiveRepository;
            } else {
                logger.debug("Using mirror " + mirrorRepository.getId() + " (" + mirrorRepository.getUrl() + ") for " + recessiveRepository.getId() + " (" + recessiveRepository.getUrl() + ").");
                repository = mirrorRepository;
            }
        }
        String key = getKey(repository);
        for (ListIterator<RemoteRepository> it = result.listIterator(); it.hasNext(); ) {
            RemoteRepository dominantRepository = it.next();
            if (key.equals(getKey(dominantRepository))) {
                if (!dominantRepository.getMirroredRepositories().isEmpty() && !repository.getMirroredRepositories().isEmpty()) {
                    RemoteRepository mergedRepository = mergeMirrors(session, dominantRepository, repository);
                    if (mergedRepository != dominantRepository) {
                        it.set(mergedRepository);
                    }
                }
                continue next;
            }
        }
        if (recessiveIsRaw) {
            Authentication auth = authSelector.getAuthentication(repository);
            if (auth != null) {
                repository.setAuthentication(auth);
            }
            Proxy proxy = proxySelector.getProxy(repository);
            if (proxy != null) {
                repository.setProxy(proxy);
            }
        }
        result.add(repository);
    }
    return result;
}
Also used : ProxySelector(org.sonatype.aether.repository.ProxySelector) Proxy(org.sonatype.aether.repository.Proxy) AuthenticationSelector(org.sonatype.aether.repository.AuthenticationSelector) MirrorSelector(org.sonatype.aether.repository.MirrorSelector) Authentication(org.sonatype.aether.repository.Authentication) ArrayList(java.util.ArrayList) RemoteRepository(org.sonatype.aether.repository.RemoteRepository) ListIterator(java.util.ListIterator)

Example 7 with Proxy

use of org.sonatype.aether.repository.Proxy in project sonatype-aether by sonatype.

the class DefaultUpdateCheckManager method getRepoKey.

private String getRepoKey(RemoteRepository repository) {
    StringBuilder buffer = new StringBuilder(128);
    Proxy proxy = repository.getProxy();
    if (proxy != null) {
        appendAuth(buffer, proxy.getAuthentication());
        buffer.append(proxy.getHost()).append(':').append(proxy.getPort()).append('>');
    }
    Authentication auth = repository.getAuthentication();
    appendAuth(buffer, auth);
    buffer.append(repository.getContentType()).append('-');
    buffer.append(normalizeRepoUrl(repository.getUrl()));
    return buffer.toString();
}
Also used : Proxy(org.sonatype.aether.repository.Proxy) Authentication(org.sonatype.aether.repository.Authentication)

Example 8 with Proxy

use of org.sonatype.aether.repository.Proxy in project gradle by gradle.

the class MavenDeployAction method createRepository.

private org.sonatype.aether.repository.RemoteRepository createRepository(RemoteRepository gradleRepo) {
    org.sonatype.aether.repository.RemoteRepository repo = new org.sonatype.aether.repository.RemoteRepository("remote", gradleRepo.getLayout(), gradleRepo.getUrl());
    org.apache.maven.artifact.ant.Authentication auth = gradleRepo.getAuthentication();
    if (auth != null) {
        repo.setAuthentication(new Authentication(auth.getUserName(), auth.getPassword(), auth.getPrivateKey(), auth.getPassphrase()));
    }
    org.apache.maven.artifact.ant.Proxy proxy = gradleRepo.getProxy();
    if (proxy != null) {
        DefaultProxySelector proxySelector = new DefaultProxySelector();
        Authentication proxyAuth = new Authentication(proxy.getUserName(), proxy.getPassword());
        proxySelector.add(new Proxy(proxy.getType(), proxy.getHost(), proxy.getPort(), proxyAuth), proxy.getNonProxyHosts());
        repo.setProxy(proxySelector.getProxy(repo));
    }
    return repo;
}
Also used : DefaultProxySelector(org.sonatype.aether.util.repository.DefaultProxySelector) RemoteRepository(org.apache.maven.artifact.ant.RemoteRepository) Proxy(org.sonatype.aether.repository.Proxy) Authentication(org.sonatype.aether.repository.Authentication)

Example 9 with Proxy

use of org.sonatype.aether.repository.Proxy in project sonatype-aether by sonatype.

the class AsyncRepositoryConnector method getProxy.

private ProxyServer getProxy(RemoteRepository repository, String credentialEncoding) {
    ProxyServer proxyServer = null;
    Proxy p = repository.getProxy();
    if (p != null) {
        Authentication a = p.getAuthentication();
        boolean useSSL = repository.getProtocol().equalsIgnoreCase("https") || repository.getProtocol().equalsIgnoreCase("dav:https");
        if (a == null) {
            proxyServer = new ProxyServer(useSSL ? Protocol.HTTPS : Protocol.HTTP, p.getHost(), p.getPort());
        } else {
            proxyServer = new ProxyServer(useSSL ? Protocol.HTTPS : Protocol.HTTP, p.getHost(), p.getPort(), a.getUsername(), a.getPassword());
            proxyServer.setEncoding(credentialEncoding);
        }
    }
    return proxyServer;
}
Also used : Proxy(org.sonatype.aether.repository.Proxy) Authentication(org.sonatype.aether.repository.Authentication) ProxyServer(com.ning.http.client.ProxyServer)

Example 10 with Proxy

use of org.sonatype.aether.repository.Proxy in project sonatype-aether by sonatype.

the class WagonRepositoryConnector method getProxy.

private ProxyInfoProvider getProxy(RemoteRepository repository) {
    ProxyInfoProvider proxy = null;
    Proxy p = repository.getProxy();
    if (p != null) {
        final ProxyInfo prox = new ProxyInfo();
        prox.setType(p.getType());
        prox.setHost(p.getHost());
        prox.setPort(p.getPort());
        if (p.getAuthentication() != null) {
            prox.setUserName(p.getAuthentication().getUsername());
            prox.setPassword(p.getAuthentication().getPassword());
        }
        proxy = new ProxyInfoProvider() {

            public ProxyInfo getProxyInfo(String protocol) {
                return prox;
            }
        };
    }
    return proxy;
}
Also used : ProxyInfoProvider(org.apache.maven.wagon.proxy.ProxyInfoProvider) ProxyInfo(org.apache.maven.wagon.proxy.ProxyInfo) Proxy(org.sonatype.aether.repository.Proxy)

Aggregations

Proxy (org.sonatype.aether.repository.Proxy)12 Authentication (org.sonatype.aether.repository.Authentication)8 RemoteRepository (org.sonatype.aether.repository.RemoteRepository)5 Test (org.junit.Test)3 MirrorSelector (org.sonatype.aether.repository.MirrorSelector)3 ArrayList (java.util.ArrayList)2 Before (org.junit.Before)2 ProxySelector (org.sonatype.aether.repository.ProxySelector)2 ProxyServer (com.ning.http.client.ProxyServer)1 ListIterator (java.util.ListIterator)1 RemoteRepository (org.apache.maven.artifact.ant.RemoteRepository)1 ProxyInfo (org.apache.maven.wagon.proxy.ProxyInfo)1 ProxyInfoProvider (org.apache.maven.wagon.proxy.ProxyInfoProvider)1 AuthenticationSelector (org.sonatype.aether.repository.AuthenticationSelector)1 RepositoryConnector (org.sonatype.aether.spi.connector.RepositoryConnector)1 RepositoryConnectorFactory (org.sonatype.aether.spi.connector.RepositoryConnectorFactory)1 NoRepositoryConnectorException (org.sonatype.aether.transfer.NoRepositoryConnectorException)1 DefaultProxySelector (org.sonatype.aether.util.repository.DefaultProxySelector)1