aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/runtime/PacEvaluator.java
diff options
context:
space:
mode:
authorOmair Majid <[email protected]>2011-03-07 11:10:42 -0500
committerOmair Majid <[email protected]>2011-03-07 11:10:42 -0500
commit6ee70462f3655208b658ab057e05c0f42d2b0afb (patch)
tree1a8fe5d5fd4d12968db3af28f88e1b75f43f4370 /netx/net/sourceforge/jnlp/runtime/PacEvaluator.java
parent9bc8e7fc91fa792f30093e8a24396d4aa5b9a9b5 (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.java56
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);
+}