diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/ProxySetup.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/ProxySetup.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/ProxySetup.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/ProxySetup.java new file mode 100644 index 00000000..f077f87c --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/ProxySetup.java @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.tools.ant.util; + +import org.apache.tools.ant.Project; + +/** + * Code to do proxy setup. This is just factored out of the main system just to + * keep everything else less convoluted. + * @since Ant1.7 + */ + +public class ProxySetup { + + /** + * owner project; used for logging and extracting properties + */ + private Project owner; + + /** + * Java1.5 property that enables use of system proxies. + */ + public static final String USE_SYSTEM_PROXIES = "java.net.useSystemProxies"; + /** the http proxyhost property */ + public static final String HTTP_PROXY_HOST = "http.proxyHost"; + /** the http proxyport property */ + public static final String HTTP_PROXY_PORT = "http.proxyPort"; + /** the https proxyhost property */ + public static final String HTTPS_PROXY_HOST = "https.proxyHost"; + /** the https proxyport property */ + public static final String HTTPS_PROXY_PORT = "https.proxyPort"; + /** the ftp proxyhost property */ + public static final String FTP_PROXY_HOST = "ftp.proxyHost"; + /** the ftp proxyport property */ + public static final String FTP_PROXY_PORT = "ftp.proxyPort"; + /** the ftp proxyport property */ + public static final String HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts"; + /** the http hosts not to be proxied property */ + public static final String HTTPS_NON_PROXY_HOSTS = "https.nonProxyHosts"; + /** the ftp hosts not to be proxied property */ + public static final String FTP_NON_PROXY_HOSTS = "ftp.nonProxyHosts"; + /** the http proxy username property */ + public static final String HTTP_PROXY_USERNAME = "http.proxyUser"; + /** the http proxy password property */ + public static final String HTTP_PROXY_PASSWORD = "http.proxyPassword"; + /** the socks proxy host property */ + public static final String SOCKS_PROXY_HOST = "socksProxyHost"; + /** the socks proxy port property */ + public static final String SOCKS_PROXY_PORT = "socksProxyPort"; + /** the socks proxy username property */ + public static final String SOCKS_PROXY_USERNAME = "java.net.socks.username"; + /** the socks proxy password property */ + public static final String SOCKS_PROXY_PASSWORD = "java.net.socks.password"; + + /** + * create a proxy setup class bound to this project + * @param owner the project that owns this setup. + */ + public ProxySetup(Project owner) { + this.owner = owner; + } + + /** + * Get the current system property settings + * @return current value; null for none or no access + */ + public static String getSystemProxySetting() { + try { + return System.getProperty(USE_SYSTEM_PROXIES); + } catch (SecurityException e) { + //if you cannot read it, you won't be able to write it either + return null; + } + } + + /** + * turn proxies on; + * if the proxy key is already set to some value: leave alone. + * if an ant property of the value {@link #USE_SYSTEM_PROXIES} + * is set, use that instead. Else set to "true". + */ + public void enableProxies() { + if (!(getSystemProxySetting() != null)) { + String proxies = owner.getProperty(USE_SYSTEM_PROXIES); + if (proxies == null || Project.toBoolean(proxies)) { + proxies = "true"; + } + String message = "setting " + USE_SYSTEM_PROXIES + " to " + proxies; + try { + owner.log(message, Project.MSG_DEBUG); + System.setProperty(USE_SYSTEM_PROXIES, proxies); + } catch (SecurityException e) { + //log security exceptions and continue; it aint that + //important and may be quite common running Ant embedded. + owner.log("Security Exception when " + message); + } + } + } + +} |