mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
followup: honor jre global proxy settings (IDEA-181489)
This commit is contained in:
@@ -51,17 +51,15 @@ import java.util.*;
|
||||
*/
|
||||
public class ArtifactRepositoryManager {
|
||||
private static final VersionScheme ourVersioning = new GenericVersionScheme();
|
||||
private static final JreProxySelector ourProxySelector = new JreProxySelector();
|
||||
private final DefaultRepositorySystemSession mySession;
|
||||
|
||||
public static final RemoteRepository MAVEN_CENTRAL_REPOSITORY = createRemoteRepository(
|
||||
private static final RemoteRepository MAVEN_CENTRAL_REPOSITORY = createRemoteRepository(
|
||||
"central", "http://repo1.maven.org/maven2/"
|
||||
);
|
||||
public static final RemoteRepository JBOSS_COMMUNITY_REPOSITORY = createRemoteRepository(
|
||||
private static final RemoteRepository JBOSS_COMMUNITY_REPOSITORY = createRemoteRepository(
|
||||
"jboss.community", "https://repository.jboss.org/nexus/content/repositories/public/"
|
||||
);
|
||||
public static final List<RemoteRepository> PREDEFINED_REMOTE_REPOSITORIES = Collections.unmodifiableList(Arrays.asList(
|
||||
MAVEN_CENTRAL_REPOSITORY, JBOSS_COMMUNITY_REPOSITORY
|
||||
));
|
||||
|
||||
private static final RepositorySystem ourSystem;
|
||||
static {
|
||||
@@ -86,7 +84,8 @@ public class ArtifactRepositoryManager {
|
||||
}
|
||||
|
||||
public ArtifactRepositoryManager(@NotNull File localRepositoryPath, @NotNull final ProgressConsumer progressConsumer) {
|
||||
this(localRepositoryPath, PREDEFINED_REMOTE_REPOSITORIES, progressConsumer);
|
||||
// recreate remote repository objects to ensure the latest proxy settings are used
|
||||
this(localRepositoryPath, Arrays.asList(createRemoteRepository(MAVEN_CENTRAL_REPOSITORY), createRemoteRepository(JBOSS_COMMUNITY_REPOSITORY)), progressConsumer);
|
||||
}
|
||||
|
||||
public ArtifactRepositoryManager(@NotNull File localRepositoryPath, List<RemoteRepository> remoteRepositories, @NotNull final ProgressConsumer progressConsumer) {
|
||||
@@ -115,7 +114,7 @@ public class ArtifactRepositoryManager {
|
||||
// setup session here
|
||||
|
||||
session.setLocalRepositoryManager(ourSystem.newLocalRepositoryManager(session, new LocalRepository(localRepositoryPath)));
|
||||
session.setProxySelector(new org.jetbrains.idea.maven.aether.JreProxySelector());
|
||||
session.setProxySelector(ourProxySelector);
|
||||
session.setReadOnly();
|
||||
mySession = session;
|
||||
}
|
||||
@@ -202,7 +201,12 @@ public class ArtifactRepositoryManager {
|
||||
|
||||
public static RemoteRepository createRemoteRepository(final String id, final String url) {
|
||||
// for maven repos repository type should be 'default'
|
||||
return new RemoteRepository.Builder(id, "default", url).build();
|
||||
return new RemoteRepository.Builder(id, "default", url).setProxy(ourProxySelector.getProxy(url)).build();
|
||||
}
|
||||
|
||||
public static RemoteRepository createRemoteRepository(RemoteRepository prototype) {
|
||||
final String url = prototype.getUrl();
|
||||
return new RemoteRepository.Builder(prototype.getId(), prototype.getContentType(), url).setProxy(ourProxySelector.getProxy(url)).build();
|
||||
}
|
||||
|
||||
private CollectRequest createCollectRequest(String groupId, String artifactId, Collection<VersionConstraint> versions, final Set<ArtifactKind> kinds) {
|
||||
|
||||
@@ -4,6 +4,7 @@ package org.jetbrains.idea.maven.aether;
|
||||
import org.eclipse.aether.repository.*;
|
||||
import org.eclipse.aether.repository.Proxy;
|
||||
import org.eclipse.aether.repository.ProxySelector;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.net.*;
|
||||
import java.util.List;
|
||||
@@ -19,12 +20,17 @@ final class JreProxySelector implements ProxySelector {
|
||||
}
|
||||
|
||||
public Proxy getProxy(RemoteRepository repository) {
|
||||
return getProxy(repository.getUrl());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Proxy getProxy(final String url) {
|
||||
try {
|
||||
final java.net.ProxySelector systemSelector = java.net.ProxySelector.getDefault();
|
||||
if (systemSelector == null) {
|
||||
return null;
|
||||
}
|
||||
final URI uri = new URI(repository.getUrl()).parseServerAuthority();
|
||||
final URI uri = new URI(url).parseServerAuthority();
|
||||
final List<java.net.Proxy> selected = systemSelector.select(uri);
|
||||
if (selected == null || selected.isEmpty()) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user