diff options
author | Omair Majid <[email protected]> | 2011-03-07 11:10:42 -0500 |
---|---|---|
committer | Omair Majid <[email protected]> | 2011-03-07 11:10:42 -0500 |
commit | 6ee70462f3655208b658ab057e05c0f42d2b0afb (patch) | |
tree | 1a8fe5d5fd4d12968db3af28f88e1b75f43f4370 /netx/net/sourceforge/jnlp/runtime/PacEvaluator.java | |
parent | 9bc8e7fc91fa792f30093e8a24396d4aa5b9a9b5 (diff) |
Add Proxy Auto Config (PAC) support
This patch adds support for reading, parsing and evaluating PAC files using
rhino.
2011-03-07 Omair Majid <[email protected]>
* NEWS: Update.
* Makefile.am
(RHINO_RUNTIME): Define to point to rhino jars, or empty.
(RUNTIME, LAUNCHER_BOOTCLASSPATH, PLUGIN_BOOTCLASSPATH): Include
RHINO_RUNTIME.
(PHONY): Add check-pac-functions, clean-jrunscript and clean-tests.
(check-local): New target. Depends on check-pac-functions.
(check-pac-functions): New target.
(jrunscript): New target.
(clean-tests): New target.
(clean-jrunscript): New target.
(netx-source-files.txt): Remove rhino related files if not building with
rhino.
(build.properties): New target.
(stamps/netx.stamp): Depend on build.properties and copy new files to
build location.
(clean-netx): Remove build.properties.
(stamps/bootstrap-directory.stamp): Add java to bootstrap programs.
* acinclude.m4 (IT_FIND_RHINO_JAR): New macro.
* configure.ac: Invoke IT_FIND_RHINO_JAR.
* netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java: Add
browserProxyAutoConfig.
(initFromBrowserConfig): Initialize browserProxyAutoConfig if needed.
(getFromBrowserPAC): Use browserProxyAutoConfig to find proxies.
* netx/net/sourceforge/jnlp/resources/Messages.properties: Replace
RPRoxyPacNotImplemented with RPRoxyPacNotSupported.
* netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java: Add
pacEvaluator.
(parseConfiguration): Initialize pacEvaluator if needed.
(getFromPAC): Use pacEvaulator to find proxies.
(getProxiesFromPacResult): New method. Converts a proxy string to a list
or proxies.
* netx/net/sourceforge/jnlp/runtime/PacEvaluator.java: New file. Defines a
Java interface for a PAC evaluator.
* netx/net/sourceforge/jnlp/runtime/FakePacEvaluator.java: New file. Dummy
implementation of a PAC evaluator.
* netx/net/sourceforge/jnlp/runtime/RhinoBasedPacEvaluator.java: New file.
A rhino-based PAC evaluator.
* netx/net/sourceforge/jnlp/runtime/PacEvaluatorFactory.java: New file. A
factory for creating the right PAC evaulator.
* netx/net/sourceforge/jnlp/runtime/pac-funcs.js: New file. Defines helper
functions needed while evaluating PAC files.
* tests/netx/pac/pac-funcs-test.js: New file. Tests the PAC helper
functions.
Diffstat (limited to 'netx/net/sourceforge/jnlp/runtime/PacEvaluator.java')
-rw-r--r-- | netx/net/sourceforge/jnlp/runtime/PacEvaluator.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/PacEvaluator.java b/netx/net/sourceforge/jnlp/runtime/PacEvaluator.java new file mode 100644 index 0000000..936602e --- /dev/null +++ b/netx/net/sourceforge/jnlp/runtime/PacEvaluator.java @@ -0,0 +1,56 @@ +/* PacEvaluator.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.net.URL; + +/** + * This interface represents an object which can evaluate Proxy Auto Config + * files. + */ +public interface PacEvaluator { + /** + * Get the proxies for accessing a given URL. The result is obtained by + * evaluating the PAC file with the given url (and the host) as input. + * + * @param url the url for which a proxy is desired + * @return a list of proxies in a string like + * <pre>"PROXY foo.example.com:8080; PROXY bar.example.com:8080; DIRECT"</pre> + */ + public String getProxies(URL url); +} |