option for proxy auto-configuration (IDEA-92275)

This commit is contained in:
Dmitry Jemerov
2012-10-08 19:03:57 +02:00
parent 44b47f604e
commit 70abc42ce6
12 changed files with 59 additions and 11 deletions
+9
View File
@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="proxy-vole">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/proxy-vole_20120920.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
+11
View File
@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="rhino-js-1_7R3">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/rhino-js-1_7R3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/src/rhino-js-1_7R3.zip!/src" />
</SOURCES>
</library>
</component>
+3 -1
View File
@@ -170,7 +170,7 @@ libraryLicense(name: "Apache Sanselan", libraryName: "Sanselan", version: "0.98"
libraryLicense(name: "Automaton", libraryName: "automaton.jar", version: "1.11", license: "BSD", url: "http://www.brics.dk/automaton/", licenseUrl: "http://www.opensource.org/licenses/bsd-license.php")
libraryLicense(name: "DTDParser", version: "1.13", license: "LGPL", url: "http://sourceforge.net/projects/dtdparser/", licenseUrl: "http://www.opensource.org/licenses/lgpl-2.1")
libraryLicense(name: "Ganymed", version: "bundled with SVNKit", libraryName: "svnkit.jar", license: "BSD", url: "http://www.ganymed.ethz.ch/ssh2/", licenseUrl: "http://www.ganymed.ethz.ch/ssh2/LICENSE.txt")
libraryLicense(name: "sqljet", version: "bundled with SVNKit", libraryName: "sqljet.jar", license: "GPLv2", url: "http://sqljet.com", licenseUrl: "http://www.opensource.org/licenses/lgpl-2.1")
libraryLicense(name: "sqljet", version: "bundled with SVNKit", libraryName: "sqljet.jar", license: "link (commercial license)", url: "http://sqljet.com", licenseUrl: "http://svnkit.com/license.html")
libraryLicense(name: "svnkit-javahl", version: "bundled with SVNKit", libraryName: "svnkit-javahl.jar", license: "link (commercial license)", url: "http://www.svnkit.com/", licenseUrl: "http://svnkit.com/license.html")
libraryLicense(name: "javahl", version: "1.7.2", libraryName: "javahl.jar", license: "Apache", url: "http://subversion.apache.org", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
libraryLicense(name: "Apache Commons HTTPClient", libraryName: "httpclient-4.1.1.jar", version:"4.1.1", license: "Apache 2.0",
@@ -239,6 +239,8 @@ libraryLicense(name: "Snappy-Java", libraryName: "Snappy-Java", version: "1.0.4.
libraryLicense(name: "Cucumber-JVM", libraryName: "cucumber-jvm", version: "1.0.11", license: "MIT License", url: "https://github.com/cucumber/cucumber-jvm/", licenseUrl: "http://www.opensource.org/licenses/mit-license.html")
libraryLicense(name: "Cucumber-Groovy", libraryName: "cucumber-groovy", version: "1.0.14", license: "MIT License", url: "https://github.com/cucumber/cucumber-jvm/", licenseUrl: "http://www.opensource.org/licenses/mit-license.html")
libraryLicense(name: "Mantis", libraryName: "mantis", license: "GNU General Public License, version 2", url: "https://github.com/rombert/mantis-axis-soap-client")
libraryLicense(name: "proxy-vole", libraryName: "proxy-vole", version: "20120920", license: "New BSD License", url: "http://code.google.com/p/proxy-vole/", licenseUrl: "http://opensource.org/licenses/BSD-3-Clause")
libraryLicense(name: "Rhino JavaScript Engine", libraryName: "rhino-js-1_7R3", version: "1.7R3", license: "MPL 1.1", url: "http://www.mozilla.org/rhino/", licenseUrl: "http://www.mozilla.org/MPL/MPL-1.1.html")
jetbrainsLibrary("JPS")
jetbrainsLibrary("Maven Embedder")
jetbrainsLibrary("tcServiceMessages")
Binary file not shown.
+2
View File
@@ -47,3 +47,5 @@ xstream.jar
swingx-core-1.6.2.jar
netty-3.5.8.Final.jar
protobuf-2.4.1.jar
rhino-js-1_7R3.jar
proxy-vole_20120920.jar
Binary file not shown.
Binary file not shown.
+1
View File
@@ -29,6 +29,7 @@
</orderEntry>
<orderEntry type="module" module-name="projectModel-api" exported="" />
<orderEntry type="library" name="Netty" level="project" />
<orderEntry type="library" name="proxy-vole" level="project" />
</component>
</module>
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.util.net.HTTPProxySettingsPanel">
<grid id="111c4" binding="myMainPanel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="111c4" binding="myMainPanel" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="111" y="44" width="523" height="263"/>
<xy x="111" y="44" width="523" height="254"/>
</constraints>
<properties/>
<border type="none"/>
@@ -11,7 +11,7 @@
<grid id="fe3b6" layout-manager="GridLayoutManager" row-count="6" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="5" left="20" bottom="10" right="10"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
@@ -112,20 +112,30 @@
</hspacer>
</children>
</grid>
<component id="699d9" class="javax.swing.JCheckBox" binding="myUseProxyCheckBox">
<vspacer id="53d33">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="e826f" class="javax.swing.JCheckBox" binding="myUseProxyPacCheckBox">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<margin top="2" left="4" bottom="2" right="2"/>
<text resource-bundle="messages/CommonBundle" key="checkbox.use.http.proxy.pac"/>
<toolTipText resource-bundle="messages/CommonBundle" key="tooltip.http.proxy.pac"/>
</properties>
</component>
<component id="699d9" class="javax.swing.JCheckBox" binding="myUseProxyCheckBox">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<margin top="2" left="4" bottom="2" right="2"/>
<text resource-bundle="messages/CommonBundle" key="checkbox.use.http.proxy"/>
</properties>
</component>
<vspacer id="53d33">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
</children>
</grid>
</form>
</form>
@@ -49,11 +49,13 @@ public class HTTPProxySettingsPanel implements SearchableConfigurable, Configura
private JLabel myProxyPasswordLabel;
private JLabel myHostNameLabel;
private JLabel myPortNumberLabel;
private JCheckBox myUseProxyPacCheckBox;
private final HttpConfigurable myHttpConfigurable;
public boolean isModified() {
boolean isModified = false;
HttpConfigurable httpConfigurable = myHttpConfigurable;
isModified |= httpConfigurable.USE_PROXY_PAC != myUseProxyPacCheckBox.isSelected();
isModified |= httpConfigurable.USE_HTTP_PROXY != myUseProxyCheckBox.isSelected();
isModified |= httpConfigurable.PROXY_AUTHENTICATION != myProxyAuthCheckBox.isSelected();
isModified |= httpConfigurable.KEEP_PROXY_PASSWORD != myRememberProxyPasswordCheckBox.isSelected();
@@ -87,6 +89,7 @@ public class HTTPProxySettingsPanel implements SearchableConfigurable, Configura
public void reset() {
HttpConfigurable httpConfigurable = myHttpConfigurable;
myUseProxyPacCheckBox.setSelected(httpConfigurable.USE_PROXY_PAC);
myUseProxyCheckBox.setSelected(httpConfigurable.USE_HTTP_PROXY);
myProxyAuthCheckBox.setSelected(httpConfigurable.PROXY_AUTHENTICATION);
@@ -103,6 +106,7 @@ public class HTTPProxySettingsPanel implements SearchableConfigurable, Configura
public void apply () {
HttpConfigurable httpConfigurable = myHttpConfigurable;
httpConfigurable.USE_PROXY_PAC = myUseProxyPacCheckBox.isSelected();
httpConfigurable.USE_HTTP_PROXY = myUseProxyCheckBox.isSelected();
httpConfigurable.PROXY_AUTHENTICATION = myProxyAuthCheckBox.isSelected();
httpConfigurable.KEEP_PROXY_PASSWORD = myRememberProxyPasswordCheckBox.isSelected();
@@ -15,6 +15,7 @@
*/
package com.intellij.util.net;
import com.btr.proxy.search.ProxySearch;
import com.intellij.openapi.components.*;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.util.InvalidDataException;
@@ -49,6 +50,7 @@ import java.util.List;
)
public class HttpConfigurable implements PersistentStateComponent<HttpConfigurable>, JDOMExternalizable {
public boolean USE_HTTP_PROXY = false;
public boolean USE_PROXY_PAC = false;
public String PROXY_HOST = "";
public int PROXY_PORT = 80;
@@ -165,6 +167,11 @@ public class HttpConfigurable implements PersistentStateComponent<HttpConfigurab
System.setProperty("http.proxyHost", PROXY_HOST);
System.setProperty("http.proxyPort", Integer.toString (PROXY_PORT));
Authenticator.setDefault(getAuthenticator());
} else if (USE_PROXY_PAC) {
ProxySearch proxySearch = ProxySearch.getDefaultProxySearch();
ProxySelector proxySelector = proxySearch.getProxySelector();
ProxySelector.setDefault(proxySelector);
Authenticator.setDefault(proxySelector != null ? getAuthenticator() : null);
} else {
System.setProperty("proxySet", "false");
System.clearProperty("http.proxyHost");
@@ -14,6 +14,8 @@ checkbox.remember.password=&Remember password
editbox.login=&Login:
checkbox.use.http.proxy=&Use HTTP proxy
checkbox.proxy.authentication=Proxy &authentication
checkbox.use.http.proxy.pac=Auto-Detect Proxy Settings
tooltip.http.proxy.pac=This will attempt to use your system settings and is useful if your system uses a proxy autoconfiguration file (.pac).
editbox.port.number= Port &number:
editbox.host.name= &Host name:
title.http.proxy.settings=HTTP Proxy Settings