Как получить доступ к динамическим прокси-серверам из настроек сети eclipse?

Я работаю над плагином Eclipse, которому необходимо подключиться к удаленному серверу. Я пытаюсь использовать сетевые настройки Eclipse для получения proxyHost и порта. Мне удалось получить прокси-сервер "Ручной" с помощью классов IProxyService и IProxyData, а также "Родные" параметры прокси-сервера, если они установлены на локальном компьютере. Проблема возникает, когда для proxyProvider установлено значение Native, а значения proxyHost и Port показаны как динамические в настройках Eclipse. Есть ли способ получить доступ к этим значениям?

Спасибо.

Ответы

Ответ 1

Спасибо за ответы, ребята,

Это можно сделать, используя класс IProxyService в eclipse. Ниже приведенные фрагменты кода использовали отражение в некоторых случаях, которые вы можете игнорировать. Также взгляните на эту ссылку (http://www.vogella.de/blog/2009/12/08/eclipse-rcp-proxy-preference/)

1) Получить прокси-трекер

private ServiceTracker getProxyTracker () throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    if (proxyTracker != null)
        return proxyTracker;

    String proxyServiceClassName = "org.eclipse.core.net.proxy.IProxyService";
    String bundleClassName = "org.osgi.framework.Bundle";
    Class bundleClass = Class.forName(bundleClassName);
    Method getBundleContextMth = bundleClass.getMethod("getBundleContext", null);
    getBundleContextMth.setAccessible(true);

    BundleContext bundleCntx = (BundleContext) getBundleContextMth.invoke(bundle, null);
    proxyTracker = new ServiceTracker(bundleCntx, proxyServiceClassName, null);
    proxyTracker.open();

    return proxyTracker;
}

2) Используйте метод isProxiesEnabled, чтобы проверить, включен ли прокси.

3) В зависимости от версии eclipse используйте метод getProxyDataForHost или "select" для доступа к информации прокси-сервера eclipse (host, userID, password и т.д.).

Ответ 2

Разве ваша проблема не связана с тем, что ваша фаза подключаемого модуля выполняется до того, как Eclipse определит хост во время выполнения? Это единственное различие, которое я вижу между статическими и динамическими определениями сетевых настроек Eclipse.

Ответ 3

При настройке прокси-сервера всегда работал у меня.

System.setProperty("https.proxyHost", "myproxy.domain.com");
System.setProperty("https.proxyPort", "myport");