Signed-off-by: Pekka Enberg <[email protected]>
---
java/net/CacheRequest.java | 52 ++++++++++++++++++++++++
java/net/CacheResponse.java | 55 +++++++++++++++++++++++++
java/net/CookieHandler.java | 68 +++++++++++++++++++++++++++++++
java/net/HttpRetryException.java | 80 +++++++++++++++++++++++++++++++++++++
java/net/ResponseCache.java | 69 +++++++++++++++++++++++++++++++
java/net/SecureCacheResponse.java | 55 +++++++++++++++++++++++++
6 files changed, 379 insertions(+), 0 deletions(-)
create mode 100644 java/net/CacheRequest.java
create mode 100644 java/net/CacheResponse.java
create mode 100644 java/net/CookieHandler.java
create mode 100644 java/net/HttpRetryException.java
create mode 100644 java/net/ResponseCache.java
create mode 100644 java/net/SecureCacheResponse.java
diff --git a/java/net/CacheRequest.java b/java/net/CacheRequest.java
new file mode 100644
index 0000000..23e0d9e
--- /dev/null
+++ b/java/net/CacheRequest.java
@@ -0,0 +1,52 @@
+/* CacheRequest.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+
+/**
+ * @since 1.5
+ */
+public abstract class CacheRequest
+{
+ public abstract OutputStream getBody() throws IOException;
+
+ public abstract void abort();
+}
diff --git a/java/net/CacheResponse.java b/java/net/CacheResponse.java
new file mode 100644
index 0000000..d4cf95f
--- /dev/null
+++ b/java/net/CacheResponse.java
@@ -0,0 +1,55 @@
+/* CacheResponse.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @since 1.5
+ */
+public abstract class CacheResponse
+{
+ public abstract InputStream getBody() throws IOException;
+
+ public abstract Map<String, List<String>> getHeaders() throws IOException;
+}
diff --git a/java/net/CookieHandler.java b/java/net/CookieHandler.java
new file mode 100644
index 0000000..c551f5d
--- /dev/null
+++ b/java/net/CookieHandler.java
@@ -0,0 +1,68 @@
+/* CookieHandler.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @since 1.5
+ */
+public abstract class CookieHandler
+{
+ private static CookieHandler defaultHandler;
+
+ public static CookieHandler getDefault()
+ {
+ return defaultHandler;
+ }
+
+ public static void setDefault(CookieHandler handler)
+ {
+ defaultHandler = handler;
+ }
+
+ public abstract Map<String, List<String>> get(URI uri, Map<String,
+ List<String>> requestHeaders)
+ throws IOException;
+
+ public abstract void put(URI uri, Map<String, List<String>> responseHeaders)
+ throws IOException;
+}
diff --git a/java/net/HttpRetryException.java b/java/net/HttpRetryException.java
new file mode 100644
index 0000000..2b51bc5
--- /dev/null
+++ b/java/net/HttpRetryException.java
@@ -0,0 +1,80 @@
+/* HttpRetryException.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.io.IOException;
+
+
+/**
+ * @since 1.5
+ */
+public class HttpRetryException
+ extends IOException
+{
+ private final String reason;
+ private final int responseCode;
+ private final String location;
+
+ public HttpRetryException(String reason, int responseCode)
+ {
+ this(reason, responseCode, null);
+ }
+
+ public HttpRetryException(String reason, int responseCode, String location)
+ {
+ this.reason = reason;
+ this.responseCode = responseCode;
+ this.location = location;
+ }
+
+ public int responseCode()
+ {
+ return this.responseCode;
+ }
+
+ public String getReason()
+ {
+ return reason;
+ }
+
+ public String getLocation()
+ {
+ return location;
+ }
+
+}
diff --git a/java/net/ResponseCache.java b/java/net/ResponseCache.java
new file mode 100644
index 0000000..179fa5f
--- /dev/null
+++ b/java/net/ResponseCache.java
@@ -0,0 +1,69 @@
+/* ResponseCache.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @since 1.5
+ */
+public abstract class ResponseCache
+{
+ private static ResponseCache defaultCache;
+
+ public static ResponseCache getDefault()
+ {
+ return defaultCache;
+ }
+
+ public static void setDefault(ResponseCache cache)
+ {
+ defaultCache = cache;
+ }
+
+ public abstract CacheResponse get(URI uri, String requestMethod,
+ Map<String, List<String>> requestHeaders)
+ throws IOException;
+
+ public abstract CacheRequest put(URI uri, URLConnection connection)
+ throws IOException;
+
+}
diff --git a/java/net/SecureCacheResponse.java
b/java/net/SecureCacheResponse.java
new file mode 100644
index 0000000..e405484
--- /dev/null
+++ b/java/net/SecureCacheResponse.java
@@ -0,0 +1,55 @@
+/* SecureCacheResponse.java --
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 GNU Classpath; 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 java.net;
+
+import java.security.Principal;
+import java.security.cert.Certificate;
+import java.util.List;
+import javax.net.ssl.SSLPeerUnverifiedException;
+
+
+/**
+ * @since 1.5
+ */
+public abstract class SecureCacheResponse
+ extends CacheResponse
+{
+ public abstract String getCipherSuite();
+ public abstract List<Certificate> getLocalCertificateChain();
+ public abstract Principal getLocalPrincipal();
+}
--
1.7.6.5