2010-07-01 4 views
15

Je travaille sur un plugin Eclipse qui doit se connecter à un serveur distant. J'essaie d'utiliser les paramètres réseau Eclipse pour obtenir le proxyHost et le port. J'ai été en mesure d'obtenir le proxy "Manual" paramètres en utilisant les classes IProxyService et IProxyData et aussi les paramètres de proxy "natif" si elle est définie dans la machine locale. Le problème se produit lorsque le proxyProvider est défini sur Native et que les valeurs proxyHost et Port s'affichent comme dynamiques dans les paramètres Eclipse. Y a-t-il un moyen d'accéder à ces valeurs?Comment accéder aux proxies dynamiques à partir des paramètres réseau eclipse?

Merci.

+1

N'est-ce pas dynamique = calculé par la fonction javascript, basé sur l'hôte cible? Avez-vous essayé d'utiliser la méthode IProxyService.select (URI) et spécifiez votre URL cible? –

Répondre

0

Votre problème n'est-il pas que la phase de connexion du plug-in est exécutée avant qu'Eclipse ne détermine l'hôte lors de l'exécution? C'est la seule différence entre les définitions statiques et dynamiques des paramètres réseau d'Eclipse.

0

Ce qui suit a toujours fonctionné pour moi lors de la définition d'un proxy.

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

Merci pour les réponses, les gars

Cela peut être fait en utilisant la classe IProxyService dans Eclipse. Les extraits de code ci-dessous ont utilisé la réflexion dans certains cas que vous pouvez ignorer. Aussi jeter un oeil à ce lien (http://www.vogella.de/blog/2009/12/08/eclipse-rcp-proxy-preference/)

1) Obtenez le tracker proxy

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) Utilisez la méthode "isProxiesEnabled" pour vérifier si proxy est activé

3) En fonction du La version eclipse utilise la méthode "getProxyDataForHost" ou "select" pour accéder aux informations du proxy Eclipse (hôte, ID utilisateur, mot de passe, etc.).

Questions connexes