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;
}
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();
}
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;
}
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;
}
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;
}
Aggregations